Blueprint

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 housey2k

Tier 3

7 views

0 followers

housey2k 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

image

housey2k housey2k submitted FurModularity for review ago

housey2k 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:
image

image

image

housey2k 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.
image

housey2k 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
image

housey2k 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.
image

housey2k 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:

image

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 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 housey2k submitted FurModularity for review ago

housey2k 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

image

image

Iamalive 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 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.

image

housey2k 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.
image

housey2k 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
image

housey2k housey2k submitted FurModularity for review ago

housey2k 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:
image
image
image

housey2k 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
image

housey2k 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
image

housey2k 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:
image
And this is how the MCU looks on the PCB:
image

housey2k 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:
PCB

housey2k 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
image

housey2k 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:
Board

housey2k 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:
Divider
And here is how it looks on the amplifiers:
amps

housey2k housey2k added to the journal ago

Finished PCB layout + schematic changes

I just finished the PCB layout, this is how it looks so far:
PCB
A few changes were made to the circuit:
Power
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:
MCU

housey2k 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
Header schematics
This is how the finished MCU looks like
MCU

housey2k 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:
Audio circuit
This is how the MCU turned circuit turned out:
MCU

housey2k 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
MCU

housey2k 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!
Power circuit

housey2k 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!
Power 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
MCU

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:
Audio circuit
This is how the MCU turned circuit turned out:
MCU

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
Header schematics
This is how the finished MCU looks like
MCU

12/27/2025 12 AM - Finished PCB layout + schematic changes

I just finished the PCB layout, this is how it looks so far:
PCB
A few changes were made to the circuit:
Power
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:
MCU

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:
Divider
And here is how it looks on the amplifiers:
amps

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:
Board

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
image

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:
PCB

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:
image
And this is how the MCU looks on the PCB:
image

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
image

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
image

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:
image
image
image

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
image

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.
image

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.

image

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

image

image

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:

image

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.
image

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
image

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.
image

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:
image

image

image

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

image