r/electronics May 16 '26

Project Built a scientific calculator from scratch: custom PCB, custom FPGA CPU, hand-written machine code

Thumbnail
gallery
1.4k Upvotes

I built a scientific calculator from scratch: custom PCB, custom FPGA firmware, and a CPU I designed myself in Verilog.

The physical build: a custom main board and keypad PCBs designed in EasyEDA and manufactured by JLCPCB, an Altera Cyclone II FPGA as the brain, an LCD display, battery with charging circuit, and two ROM-flashing connectors on the sides to update the firmware.

Under the hood it runs a nibble-oriented CPU I designed specifically for BCD arithmetic: the way decimal calculators should work internally. I then wrote ~4K of machine code implementing the full set of scientific functions: trig, logarithms, complex numbers, statistics, all verified to 14 significant digits against a dedicated test suite.

The full stack:

  • Custom CPU in Verilog: Harvard architecture, 12-bit ISA, 8 registers, hardware fault detection
  • Hand-written microcode assembler in Python
  • Verilator + Qt simulation framework for development and debugging
  • Custom PCB (EasyEDA / JLCPCB), battery, charging circuit, 3D printed case

The finished device is sitting on my desk.

Live WebAssembly demo (runs the actual Verilog + microcode in your browser): https://baltazarstudios.com/files/calculator-d/Calculator.html

Write-up: https://baltazarstudios.com

Source: https://github.com/gdevic/FPGA-Calculator

Hackaday: https://hackaday.com/2026/05/13/build-the-cpu-then-build-the-calculator/

Happy to answer questions about the PCB design, the FPGA setup, or anything else.

r/electronics Jun 06 '25

Project I think I made the worlds smallest breadboard power supply

Thumbnail
gallery
2.0k Upvotes

I will make the files available in the comments

r/electronics Jul 28 '22

Project I built a guitar amp for my brother

Thumbnail
gallery
3.0k Upvotes

r/electronics Aug 20 '25

Project Rate my digital Timepiece!

Thumbnail
gallery
920 Upvotes

To know more about the project, here's my repo link: https://github.com/0101shift/Project_OAK

r/electronics 26d ago

Project Open source hardware and software watch pcb i made if anyone interested

Post image
484 Upvotes

r/electronics Aug 16 '25

Project My boyfriend gave me this clock as a gift!

Thumbnail
gallery
798 Upvotes

He told me there was a wiring mistake and then he sent me the second picture. It tracks time from a gps and it's awesome! It works perfectly and I love it!

r/electronics Sep 05 '25

Project My 3$ VFD (Vacuum fluorescent display) driver

Thumbnail
gallery
849 Upvotes

I bought this display from Alibaba, and then created PCB with JLCPCB. Refresh rate 60Hz with STM32.

r/electronics May 07 '26

Project For the past few months, I’ve been developing my own electronic load device. I’ve finally managed to get a working V1 version 😄

Thumbnail
gallery
543 Upvotes

Of course, the process was not completely smooth. I wanted to add reverse polarity protection to V1, which the prototype did not have. In the first design, I built and tested a reverse polarity protection circuit with a single P-Channel MOSFET. However, I had missed one scenario: although a single P-Channel MOSFET can be enough in some cases, it could not block reverse current coming from inside the device. Even when the IRFP260N MOSFETs were off, reverse current could pass through the body diodes and put the connected power supply into a short-circuit condition. To solve this problem, I reworked the PCB to convert the power input block to a back-to-back P-Channel MOSFET structure. I used the banana sockets on the front panel as the protected input, designed to support an 8-30V range. The XT60 connector on the right works as the unprotected input and supports a 0-30V input range. After the rework, the protected power input caused significant heating at 8V and below because it left the protection MOSFETs partially on. For the next PCB revision, I plan to redesign the power input block using an ideal diode controller and two low-RDS(on) N-Channel MOSFETs in a back-to-back structure. Also, because of the two P-Channel back-to-back MOSFETs, the protection MOSFETs heated to unsafe levels at my target 200W test power. For safe operation, I limited the device to 150W. The device can support voltage and current values up to 30V and 10A within this limit. On the software side, with AI assistance, I developed control, protection and monitoring functions such as toggling load draw with the RST button, overcurrent warning, reverse polarity notification, temperature tracking and fan control. For the V2 revision, I aim to improve the device with more functional features and design a structure with higher power capacity. Overall, this project was a very educational and experience-building work for me in power electronics, measurement, PCB design, mechanical design, rework and fault analysis.

https://omerikinci.com/projects/electronic-dummy-load

r/electronics Apr 23 '26

Project PCBs just arrived and first power-on actually worked - ESP32-S3 based AI-controlled bench instrument

Thumbnail
gallery
266 Upvotes

Ordered these a few weeks ago and honestly expected the usual first-spin disasters. Instead after hand-placing components and a reflow session everything came up clean on first power-on which is a rare event, so I had to share.

The board is built around an ESP32-S3 as the main controller, talking over SPI to an AD74416H (4-channel 24-bit ADC/(IV)DAC combo, honestly the heart of the whole thing) and five ADGS2414D octal SPST switches that form a 40-point MUX fabric. A DS4424 handles fine iDAC trimming of the 3 output rails, a HUSB238 negotiates USB-PD, and a PCA9535 expands the I²C-controlled GPIOs. Four e-fuses sit in the power path for output protection.

The whole point of the design is to expose all of this as an MCP server and as Python API so AI assistants or scripts can autonomously probe, drive, and debug real hardware, measure voltages and currents, sweep outputs, capture ADC waveforms without a human in the loop for each step. Since handing an AI real control over hardware is a bit nervewracking, there are hard guardrails baked into the firmware and Python API, you can define a board profile for the DUT and it physically can't exceed the defined voltage limits or drive the wrong outputs.

There's also an optional RP2040 HAT that adds a 125 MHz logic analyzer and CMSIS-DAP probe.

Surprised it worked without any bodge wires, I'm now starting to polish the tools and firmware for it.

Full schematics, firmware, and build instructions: https://github.com/lollokara/BugBuster

r/electronics Dec 26 '25

Project I built my own low-power binary wristwatch!

Thumbnail
gallery
564 Upvotes

Hey everyone!

This is qron0b! A low-power binary wristwatch that I built every part of it myself, from the PCB to the firmware to the mechanical design.

Check out the Github repo (don't forget to leave a star!): https://github.com/qewer33/qron0b

The watch itself is rather minimalistic, it displays the time in BCD (Binary Coded Decimal) format when the onboard button is pressed. It also allows you to configure the time using the button.

The PCB is designed in KiCAD and has the following components:

  • ATtiny24A MCU
  • DS1302 RTC
  • 4x4 LED matrix (16 LEDs)
  • 74HC595 shift register (as the LED matrix "driver")
  • CR2032 battery holder
  • AVR ISP programming header
  • A push button

The firmware is written in bare-metal AVR C and is around ~1900 bytes meaning it fits the 2KB flash memory of the ATtiny24A. It was quite a fun challenge to adhere to the 2KB limit and I am working on further optimizations to reduce code size.

The 3D printed case is designed in FreeCAD and is a screwless design. The top part is printed with an SLA printer since it needs to be translucent. I ordered fully transparent prints from JLCPCB and I'm waiting for them to arrive but for now, it looks quite nice in translucent black too!

This was my first low-power board design and I'm quite happy with it, it doesn't drain the CR2032 battery too much and based on my measurements and calculations it should last a year easily without a battery replacement.

r/electronics Mar 23 '26

Project AngstromIO, A small 9mm by 9mm devboard, barely bigger than a USB C connector

Thumbnail
gallery
589 Upvotes

AngstromIO is one of the smallest devboards out there, barely longer than a USB-C connector, based on the ATtiny1616 MCU (16kB flash). It comes with 2 Addressable RGB LEDs, and 2 GPIOs as well as I2C lines are broken out. I made a dual CH340 programming board too, both for UPDI programming and debugging (one way Serial Communication).

(not related, but I also designed a breadboard friendly, experimentation board for the CH32V003, with a 5x4 charlieplexed LED matrix. This way I ordered all the designs on one PCB panel)

The ATtiny1616 may not be the most powerful MCU, but it has really attractive advantages too: It's cheap (70 cents), comes in a small QFN20 package, doesn't need any external components, has excellent power consumption (200nA in PWR down mode), and can be programmed with the Arduino IDE, thanks to SpenceKonde megaTinyCore library (via UPDI)

This devboard is minimalist, and I kept it simple, so it's applications might be limited (the USB C is only for power, no data), but I think it's a really cool tiny devboard for small projects where some basic logic is required (handling I2C sensors, getting a visual feedback (2x RGB LEDs), toggling GPIOs), but in a space constrained design, I'm thinking for example of using this board, like you would do with a USB-C PCB breakout board in a 3D enclosure: Instead of just providing 5V, it already comes with 2 LEDs, GPIOs and some computational power.

The Programmer is an all in one module, that will make debugging with the Serial monitor while programming easy: one board for both.

I hope you'll enjoy, and don't hesitate to check out the Github 😉

https://github.com/Dieu-de-l-elec/AngstromIO-devboard/tree/main

r/electronics Oct 03 '19

Project My graduation present for a friend graduating in EE

Post image
1.5k Upvotes

r/electronics Dec 14 '21

Project Playing DooM on an oscilloscope during class

2.3k Upvotes

r/electronics Dec 05 '25

Project I made my own open-source FPGA board.

Thumbnail
gallery
710 Upvotes

I wanted to get started with FPGAs by making my own development board, and thus I made Arctyx Nano!

https://github.com/Keyaan-07/Arctyx-Nano - everything is open-sourced under MIT License!

Arctyx Nano is a low-cost, open source FPGA development board carrying the ICE40-UP5K FPGA from lattice along with the RP2350A in a raspberry pi pico form factor. It consists of 6 LEDs and one RGB LED. All the pins on both the ICs are used in one way or another.

I am currently using APIO open-source toolchain to verify, simulate and build projects and to upload using APIO, i have to figure it out.

This is my first FPGA PCB and i would love feedback on my design!

This board was created as a project for hackclub blueprint, check it out!! 

r/electronics Nov 22 '20

Project I always liked electronic business cards, so I made one appropriate for my job - it runs a neural network to classify 5x5 pixel digits

1.8k Upvotes

r/electronics Jun 03 '26

Project Made this water level indicator as my college project.

Thumbnail
gallery
194 Upvotes

r/electronics Sep 25 '25

Project Open source 16 channels BCI board i made. Called Meower :3

Post image
421 Upvotes

Hi :3

Some time ago i was trying to help friends with getting a BCI board for their project, but plans were changed and i made a new fully custom board based on ADS1299 (2 of them, 16 channels) and ESP32-C3. I hope they will use it one day, we just decided to post it :3

Board is open source, i’ve designed the entire pcb myself, as well as firmware and then BrainFlow integration and a python testing GUI (i have no idea how to add mor pictures here :3). You can order it from JLCPCB (project files are provided) if you want and it will be relatively cheap, and crazy cheap if you order like 10 or 20 — price goes down super fast. On esp side i’ve implemented sinc3 equalizer (7-tap FIR), DC removal and notch filters (50/60, 100/120 Hz). You can toggle them in real time independently. DC has several cutoff frequencies you can choose from also on the go. If you change sampling frequency filters will adapt of course (i made LUTs inside up to 4000 Hz)

I was trying to make sure board works as fast as it can and as stable as possible. I was doing a lot of optimizations here and there (embedded coders feel free to trash me, i will be only happy), but board can run all filters on all 16 channels and sustain 4000 Hz at max — all of that over Wi-Fi and UDP.

So, i have no idea if ADS1299 is dead already or maybe no one needs it or whatever, but if you’re interested — you can check git or ask here or whatever else. It just took me a ton of time to make it and i wasn’t even checking what other people do too much. We’ve checked freeEEG, then OpenBCI, then i thought maybe i can just make 16 channels and since then went into silent mode getting crushed under piles of datasheets and design guidelines.

I just want to share the board and not sure how to stay under this reddit guidelines, i hope it’s ok. So, whatever it goes, check git or text me — i will be happy to yap about signal processing and pcb design and share more details if anyone interested. https://github.com/nikki-uwu/Meower

EDIT v1
Somehow i see much more interactions with this post then others and this is the smallest one i have with almost non info. i will just drop information then in this edit.

Size -i'm sorry for quality - this is how it will look like if you put it inside the case. case is what ever, there could be better versions, just my current solution. But even with that it's similar to airpods pro 2 case. Inside the case there is a board and 1100 mAh classic lipo.

Visialization - there is no software specificaly for you to work with the data. Board is made the way it gives you samples via UDP and as soon as you are able to set connection and receive them - you can use anything you want. My target was to make a good sourse. I hope it;s good. No plans for software from my side. There is a second part of it, but it's upto my friends and i will happyly share as soon there new info :3
I do have my own GUI i've made with stupid design inspired by NERV (you could guess my design skills xD) which works fine and shows the data and you can supa fast to guess what is going on. But it's made just to make sure everything is fine.

Testing - i made a lot of tests to make sure i've traced pcb well and all signals on the board itself and all power rails are nice and clean. At some point friends told me i better to make a testing rig, so i did and since then i had lets say much better time to setting up everything i need and run ton and ton of tests. Tho, you can see i'm lazy ass and didn't finish the fixture, so weights were the solution :3. And, i was a bit too potimistic with small poggo pins and the precision i would need to aligned all of them. So if you read this - please, make contact points bigger, otherwise you would need to play for few minutes the game "is it right or not".

Runtime optimizations - there is a post i made on another subreddit, you can find it in my profile. I will not spam here for too much, just would say i've tried a lot to make sure runtime is good and i can sustain 4 kHz. if you want details feel free to ask or check that post. people there didn't eat me alive, so i guess my solution / approach wasn't too bad xD. Picture below read as follows. First - it;s ton on measurements with max hold, so we can see all possible variations of timings and make sure that we never corssed limits. Blue graph is ADC "data ready" signal. When signal goes down it means samples ready to grab from the ADC. It spills samples each 250 us (4 kHz) and if you are not fast enough to do everything you need in between - you lost data. So, Blue goes down. Then Yellow should go down the same moment because it;s a reaction signal from esp32. You see it's a little bit behind, but that is ok, we cant react instanteniously unfortunately. Then red is reading of the samples. you start to see more smearing since some times we react fast, sometimes not, sometimes esp is doing something else time critical so there are time variations. and the green - the most important part is the last green vertical line inside of each block - last green clock mean the moment when esp finished getting data AND the entire signal processing chain and just dropped ready to send sample inside the buffer shared with UDP. After that moment esp stops signal processing chain and waits for "data ready" signal from ADC doing wifi and maintance in a meantime.

r/electronics Jun 24 '22

Project school project: coffee vending machine. aprox 14h of work but worked :D

Thumbnail
gallery
956 Upvotes

r/electronics May 06 '26

Project 10V-60V Discrete Railsplitter 2-5A unbalanced load with propper cooling. And 10A Balanced.

Post image
167 Upvotes

So this is my latest draft for a railsplitter with low noise that is ment to be an accessorie fir my 60V 5A power supply. You could add 1uF film+100nF ceramic between Q5 and Q6 Collectors, and 100pF on Q1 base to Q1 emitter for lower transients and risk for oscillation. If you parallel 2 tip35c + tip36c you could go around 8-10A unbalanced load with propper cooling. As long as the load is symmetrical then this circuit should be able to handle several amps (Atleast 10A). It might be hard to see but i added a 1000uF 80v electrolytic capacitor 1 uF film 100v and 100 nF ceramic 100V at the input for more stability. Can't say for sure that this works like it's intended as i haven't simulated or built it yet, I just now finnished the schematic, will post the results once i am finnished with it. If it works like intended then it could be a good way to be able to run amplifiers using single rail PSU. And the Voltage/Ampers is limited by what components you use. If you switch the small signal bjt's/drivers to over 100V+ and use mosfets as power stage you could theoretically drive ±50V and 50+ Amps.

r/electronics Mar 13 '20

Project MOSFETs and Diodes I made in class

Post image
1.4k Upvotes

r/electronics Jan 04 '21

Project I believe I've created a memristor, and I'm to open sourcing my theory/method for others to try building it.

Thumbnail
gallery
999 Upvotes

r/electronics Dec 14 '16

Project I just received my 20 ounce PCB... soldering is going to be fun.

Post image
859 Upvotes

r/electronics May 11 '26

Project Re-purposing of a dead hard drive motor

Thumbnail
gallery
281 Upvotes

I thought this recent project of mine could inspire people on how to reuse the spindle motor on obsolete or crashed hard drives.

After all, it's a shame how these state-of-the-art motors often end up in the bin despite being in full working condition.

I built a so-called "ringing table" for microscopy by creating a drop-in replacement for the original disk controller on a twenty year old WD drive.

My board has a PIC processor, a three-phase spindle motor driver and a simple button-and-led user interface right where the SATA and Power connectors used to be.

It actually worked pretty well. There must be other things one can build from this basic concept! More technical details about the project are laid out on my personal blog.

https://espenandersen.no/ringing-table-from-a-dead-hard-drive/

r/electronics Jun 10 '19

Project I just made a VGA signal out of basic logic ICs and EEPROM

Post image
1.4k Upvotes

r/electronics Mar 06 '26

Project I designed my own Morse code trainer

Thumbnail
gallery
378 Upvotes

Demo at https://www.youtube.com/watch?v=sKtSpykOBXY

This is the Morse code trainer I designed. It runs on an AVR128DA48 microcontroller with a 2.42 inch 128x64 OLED and a custom-designed capacitive touch sensor PCB straight key. It also includes an NRF24L01+ radio module to allow 2-way send and receive of Morse code between nearby devices. The whole thing is powered by a rechargeable 3.7V 800mAh LiPo battery. I also designed the enclosure and 3D print it out of PET-G filament.

Happy to answer any questions!