FurModularity
FurModularity is a modular retro "smart watch" with sound circuit, 4x module connectors, 4x audio connectors (2x input + 2x output) with internal mixer circuit (digital potentiometers, analog switches and summing amplifiers), and 20x4 character LCD.
Created by
housey2k
Tier 3
7 views
0 followers
housey2k
added to the journal ago
I forgr
Turns out I forgot to commit to my github repo, I just did it now before the project was reviewed
This commit contains:
EasyEDA project mirror
BOM on the root

housey2k
submitted FurModularity for review ago
housey2k
added to the journal ago
Finished case design
The case is finally finished. I exported the f3d file and STEP file and put them on the github repository.
I believe this was one of the longer parts of this project because i really suck at CAD
Below there a few pictures of the case with the LCD and PCB:



housey2k
added to the journal ago
Laser module schematic
Designed a laser, it uses an ATTINY85 to talk to the master microcontroller, this attiny will hold the driver code that will be sent to the ESP32 to be interpreted and low level code to drive the GPIO.

housey2k
added to the journal ago
Switching software for case
Midway through the design, i noticed that Shapr3D software cannot export high quality files on the free tier, I was using it because it was really simple, but i'll be switching to Fusion since it won't limit me

housey2k
added to the journal ago
Made KiCad project mirror
Converted the EasyEDA project to a KiCad project and reviewed a few errors from the conversion. The goal of this is to hopefully speed up the review process. Now the repository has the schematic avaiable as PDF, EasyEda Pro and KiCad, which i think helps with redundancy and access from different CAD softwares.

housey2k
added to the journal ago
Redesigning the case
With the help of a friend we are designing a case with the Shapr3D software, we started with a simple outline of where the board will stay:

We imported a model of the LCD and saw that the screen is really big, so we will be putting the module connectors through the sides instead of upwards.
For the buttons, i'll be just gluing them over the case with the goal of making assembly easier, and reducing fatigue on the 3D printed material from repeated button pressed.
Tanuki β‘π
requested changes for FurModularity ago
Your PCB is REALLY nice, just add more polish to the case! please include the file in the repo and add mounting, I would recc fusion or onshape instead because tinkercad is very hard to use, and doesnt have step. Nice PCB tho, really cool!
housey2k
submitted FurModularity for review ago
housey2k
added to the journal ago
Updated readme and BOM
Just as the review requested, I updated the readme file to include schematic pictures, and added a new PCB CAD picture. This is a EasyEDA project so the .epro format is already correct


Iamalive π
requested changes for FurModularity ago
Hey, couple things - can you include the full pcb and part cart screenshots(with the specific shipping option you chose so we can verify its the cheapest). Additionally, please include the schematic and pcb screenshots in your readme. Finally, please make your BOM a .csv file and also upload each of your kicad files and not as a .epro file. Thanks!
housey2k
added to the journal ago
Designed a case
While the DIY case (Which I don't know how I'd make, i thought on sticks but tbh it would turn out a bit ugly in my opinion) is still an option, I did a pretty basic design on TinkerCAD, I suck with modeling stuff so this is the best I could do, I can try 3D printing it at my school.

housey2k
added to the journal ago
Repositioned connectors
Made some quick changes in the board, i made the module connectors evenly spaced so it looks a better. For some reason EasyEDA won't move the traces together with the components, so every time i move something I need to manually route again.

housey2k
added to the journal ago
Updated GitHub
I just published the updated BOM, gerbers and schematics to the GitHub repository, I also received a lot of cool feedback from a different engineering community, while that made me change the PCB a bunch of times, hopefully it will work flawlessly after assembly

housey2k
submitted FurModularity for review ago
housey2k
added to the journal ago
Finished PCB
After a lot of work the board is finally ready, this time with no fees, now instead it costs $7.00, the earlier board had a $30+ engineering fee because of a few milimiters too big. This is how the board turned out:



housey2k
added to the journal ago
Started rerouting PCB... Againπ΅βπ«
I did my PCB without noticing that it was slightly wider than 100mm, that generates a big engineering fee. I tried partially rerouting by copying and pasting the old traces, the only part I touched was the MCU and module connectors, but stuff kept breaking on the whole board so I'm just doing it again

housey2k
added to the journal ago
Started writing firmware
Started writing the WIP firmware, I already have a hopefully working sketch that performs the power-on-self-test (it interacts with the digital potentiometer's to confirm they are connected and working, at least I think that is really fancy), and then writes the main menu, and allows you to move an arrow around that later when you click enter it will go into a sub-menu.
The complete firmware is avaiable at the GitHub repository

housey2k
added to the journal ago
USB pins change
I just learned that the USB pins are one of the few things that are NOT handled by the ESP32's internal IOMUX, they are fixed to GPIOs 19 and 20, so I had to switch D- to GPIO19, D+ to GPIO20, and CTRLIN2OUT1 to IO21, This is how the MCU side looks now:

And this is how the MCU looks on the PCB:

housey2k
added to the journal ago
Finished PCB
After A LOT of suffering and layout changes, I received some feedback and I decided to switch to a 4 layer PCB with a ground and a 3.3V plane, that made the board way cleaner since now there are solid power and ground planes that are way less likely to have noise or voltage drop issues.
I also switched the inductors L1 and L2 to a L1207 packaging, that made them way smaller, this is how the actual final PCB looks like:

housey2k
added to the journal ago
Connected buttons to GPIO
There's not much to talk here, it's just that I forgot to connect the button lines to the ESP32.
I realized it while I was routing the board and saw that there are no ratlines. It was a pretty quick fix

housey2k
added to the journal ago
Changed PCB layout due to RF concerns
On the previous board the ESP32 was around the middle of the board, but I learned that the antenna should be positioned in the board edge for better signal quality, less noise in the circuit and less power used.
Since there was a lot of free space I also changed the position of the buck/boost converters and made them more spaced for thermal and noise concerns. This involved rerouting parts of these sectors
This is how the board looks now midway through routing:

housey2k
added to the journal ago
Changed reference voltage for summing amplifiers
Today I learned that when working with a single rail summing amplifier circuit, we cannot put GND on the non inverting input like we see on many schematics on the internet. We should actually reference it to 1/2VCC (That's 0V if it was a dual rail circuit). So I did a small change of putting a voltage divider on the 3.3V line and replacing GND with a line called REF_1V65 on all the op-amps, below you can see the voltage divider I created:

And here is how it looks on the amplifiers:

housey2k
added to the journal ago
Finished PCB layout + schematic changes
I just finished the PCB layout, this is how it looks so far:

A few changes were made to the circuit:

On the power circuit, I added a VBAT sense voltage divider so the microcontroller can know the battery voltage level, and a charge sense through the MCP's PG# pin
This is how the MCU looks like with the added lines:

housey2k
added to the journal ago
Added module headers, finished MCU design
Added connectors for the modules, the original design was supposed to have 4 modules, but I switched to 5 because there was A LOT of free GPIO

This is how the finished MCU looks like

housey2k
added to the journal ago
Finished designing audio circuit
I finished designing the audio circuit
For volume, I picked the MCP4261 because it's a popular digital potentiometer IC that's well documented and has libraries for it.
I used the 74VHC4066N Quad Analog Switch for routing inputs to outputs, it's a modern and simple IC.
I'm using the LMV324 because it's similiar to the popular LM324, but suitable for low voltage rail-to-rail operation.
Now we have a basic mixer inside the device, with two inputs and two outputs, you can route inputs A, B or both to outputs A, B, or both, and you can also tweak inputs A and B volume
This is how the audio circuit turned out:

This is how the MCU turned circuit turned out:

housey2k
added to the journal ago
Partial MCU
I picked a ESP32-S3 for this project due to its high processing power and easy to implement board with built in antenna and decoupling circuits.
I already added button input and LCD output, I'll be adding audio control lines once the audio circuit is finshed

housey2k
added to the journal ago
Designed power circuit
The foundation of every circuit is it's power, so my first step to designing a board is designing the power circuit
I started adding connectors for USB-C charging, and LiPo battery
I added a MCP73871 (Load Sharing and Battery Charge Controller) to handle USB and LiPo power, and two TPS63030, these ICs generate the 3.3V and 5V rails that will be used to power the microcontroller and peripherals with 3.3V, and 5V to power the LCD backlight and audio circuit!

housey2k
started FurModularity ago
12/26/2025 4 PM - Designed power circuit
The foundation of every circuit is it's power, so my first step to designing a board is designing the power circuit
I started adding connectors for USB-C charging, and LiPo battery
I added a MCP73871 (Load Sharing and Battery Charge Controller) to handle USB and LiPo power, and two TPS63030, these ICs generate the 3.3V and 5V rails that will be used to power the microcontroller and peripherals with 3.3V, and 5V to power the LCD backlight and audio circuit!

12/26/2025 6 PM - Partial MCU
I picked a ESP32-S3 for this project due to its high processing power and easy to implement board with built in antenna and decoupling circuits.
I already added button input and LCD output, I'll be adding audio control lines once the audio circuit is finshed

12/26/2025 9 PM - Finished designing audio circuit
I finished designing the audio circuit
For volume, I picked the MCP4261 because it's a popular digital potentiometer IC that's well documented and has libraries for it.
I used the 74VHC4066N Quad Analog Switch for routing inputs to outputs, it's a modern and simple IC.
I'm using the LMV324 because it's similiar to the popular LM324, but suitable for low voltage rail-to-rail operation.
Now we have a basic mixer inside the device, with two inputs and two outputs, you can route inputs A, B or both to outputs A, B, or both, and you can also tweak inputs A and B volume
This is how the audio circuit turned out:

This is how the MCU turned circuit turned out:

12/26/2025 10 PM - Added module headers, finished MCU design
Added connectors for the modules, the original design was supposed to have 4 modules, but I switched to 5 because there was A LOT of free GPIO

This is how the finished MCU looks like

12/27/2025 12 AM - Finished PCB layout + schematic changes
I just finished the PCB layout, this is how it looks so far:

A few changes were made to the circuit:

On the power circuit, I added a VBAT sense voltage divider so the microcontroller can know the battery voltage level, and a charge sense through the MCP's PG# pin
This is how the MCU looks like with the added lines:

12/27/2025 12 PM - Changed reference voltage for summing amplifiers
Today I learned that when working with a single rail summing amplifier circuit, we cannot put GND on the non inverting input like we see on many schematics on the internet. We should actually reference it to 1/2VCC (That's 0V if it was a dual rail circuit). So I did a small change of putting a voltage divider on the 3.3V line and replacing GND with a line called REF_1V65 on all the op-amps, below you can see the voltage divider I created:

And here is how it looks on the amplifiers:

12/27/2025 2 PM - Changed PCB layout due to RF concerns
On the previous board the ESP32 was around the middle of the board, but I learned that the antenna should be positioned in the board edge for better signal quality, less noise in the circuit and less power used.
Since there was a lot of free space I also changed the position of the buck/boost converters and made them more spaced for thermal and noise concerns. This involved rerouting parts of these sectors
This is how the board looks now midway through routing:

12/27/2025 3 PM - Connected buttons to GPIO
There's not much to talk here, it's just that I forgot to connect the button lines to the ESP32.
I realized it while I was routing the board and saw that there are no ratlines. It was a pretty quick fix

12/27/2025 6 PM - Finished PCB
After A LOT of suffering and layout changes, I received some feedback and I decided to switch to a 4 layer PCB with a ground and a 3.3V plane, that made the board way cleaner since now there are solid power and ground planes that are way less likely to have noise or voltage drop issues.
I also switched the inductors L1 and L2 to a L1207 packaging, that made them way smaller, this is how the actual final PCB looks like:

12/27/2025 7 PM - USB pins change
I just learned that the USB pins are one of the few things that are NOT handled by the ESP32's internal IOMUX, they are fixed to GPIOs 19 and 20, so I had to switch D- to GPIO19, D+ to GPIO20, and CTRLIN2OUT1 to IO21, This is how the MCU side looks now:

And this is how the MCU looks on the PCB:

12/27/2025 11 PM - Started writing firmware
Started writing the WIP firmware, I already have a hopefully working sketch that performs the power-on-self-test (it interacts with the digital potentiometer's to confirm they are connected and working, at least I think that is really fancy), and then writes the main menu, and allows you to move an arrow around that later when you click enter it will go into a sub-menu.
The complete firmware is avaiable at the GitHub repository

12/28/2025 12 PM - Started rerouting PCB... Againπ΅βπ«
I did my PCB without noticing that it was slightly wider than 100mm, that generates a big engineering fee. I tried partially rerouting by copying and pasting the old traces, the only part I touched was the MCU and module connectors, but stuff kept breaking on the whole board so I'm just doing it again

12/28/2025 2 PM - Finished PCB
After a lot of work the board is finally ready, this time with no fees, now instead it costs $7.00, the earlier board had a $30+ engineering fee because of a few milimiters too big. This is how the board turned out:



12/28/2025 4 PM - Updated GitHub
I just published the updated BOM, gerbers and schematics to the GitHub repository, I also received a lot of cool feedback from a different engineering community, while that made me change the PCB a bunch of times, hopefully it will work flawlessly after assembly

12/30/2025 1 PM - Repositioned connectors
Made some quick changes in the board, i made the module connectors evenly spaced so it looks a better. For some reason EasyEDA won't move the traces together with the components, so every time i move something I need to manually route again.

12/30/2025 3 PM - Designed a case
While the DIY case (Which I don't know how I'd make, i thought on sticks but tbh it would turn out a bit ugly in my opinion) is still an option, I did a pretty basic design on TinkerCAD, I suck with modeling stuff so this is the best I could do, I can try 3D printing it at my school.
1/7/2026 - Updated readme and BOM
Just as the review requested, I updated the readme file to include schematic pictures, and added a new PCB CAD picture. This is a EasyEDA project so the .epro format is already correct


1/23/2026 6:01 PM - Redesigning the case
With the help of a friend we are designing a case with the Shapr3D software, we started with a simple outline of where the board will stay:

We imported a model of the LCD and saw that the screen is really big, so we will be putting the module connectors through the sides instead of upwards.
For the buttons, i'll be just gluing them over the case with the goal of making assembly easier, and reducing fatigue on the 3D printed material from repeated button pressed.
1/23/2026 6:18 PM - Made KiCad project mirror
Converted the EasyEDA project to a KiCad project and reviewed a few errors from the conversion. The goal of this is to hopefully speed up the review process. Now the repository has the schematic avaiable as PDF, EasyEda Pro and KiCad, which i think helps with redundancy and access from different CAD softwares.

1/23/2026 8 PM - Switching software for case
Midway through the design, i noticed that Shapr3D software cannot export high quality files on the free tier, I was using it because it was really simple, but i'll be switching to Fusion since it won't limit me

1/24/2026 3 PM - Laser module schematic
Designed a laser, it uses an ATTINY85 to talk to the master microcontroller, this attiny will hold the driver code that will be sent to the ESP32 to be interpreted and low level code to drive the GPIO.

1/24/2026 4 PM - Finished case design
The case is finally finished. I exported the f3d file and STEP file and put them on the github repository.
I believe this was one of the longer parts of this project because i really suck at CAD
Below there a few pictures of the case with the LCD and PCB:



1/31/2026 - I forgr
Turns out I forgot to commit to my github repo, I just did it now before the project was reviewed
This commit contains:
EasyEDA project mirror
BOM on the root
