Blueprint

IOX-77 - An ESP32 based SuperBoard (75+ GPIOs)

The IOX-77 is a powerful ESP32-C3 based devboard. It comes with 75 GPIOs, which is even more than the Arduino Mega while being smaller and embedding WiFi and Bluetooth capabilities. It's like a 6 core configuration with 5 cheap CH32v003 MCUs communicating with the main core, the ESP32. With this devboard, I'll never run out of IOs for all my future projects, even those requiring dozens of IOs. This board is an upgraded ESP 32 devboard, gathering the computational power of the ESP32 and the many GPIOs offered by all the CH32. I hope you'll enjoy ! 😉

Created by Clém Clém

Tier 3

19 views

0 followers

Clém Clém added to the journal ago

we've got the PCBs 🎉

I received the PCBs, and they look so cool!
To be honest, I though they would be a bit bigger, the pcb always looks big on the screen when designing it, but I guess having a small board footprint is always a good news 😊

IMG_20260110_163144641

IMG_20260110_170845968_HDR

Here is a size comparison with the Raspberry pi, so that you've got an idea on how small it is with it's 76 GPIOs :

IMG_20260110_163551588~2

Hope they aren't any electrical mistake, 'cause the inner layers are kind of inaccessibles 🤣 but I guess we'll find out this WE when the PCB will be soldered...

Clém Clém added to the journal ago

Ordered the components

I've already ordered the PCB and stencil a while ago, and now I placed the LCSC order, with the electronical components. I'm combining multiple LCSC order, so I don't have to pay multiple times shipping cost and handling fees, so I had to make a top-up form, pay for the additionnal cost in a donation to HCB (15 bucks of other components, for other projects or connectors to make custom shields for the IOX-77 devboard), and I've now placed the LCSC order which adds up to $57.28 ($40.29 worth of components for the IOX-77 project, and $15.49 in additional component).

Can't wait for the components to arrive! 😁

Here are the parts required for the IOX-77 project:

IOX-77 Parts ONLY 1

IOX-77 Parts ONLY 2

IOX-77 Parts ONLY 3

IOX-77 Parts ONLY 4

IOX-77 Parts ONLY 5

And here the additional parts (for other projects)

ADDITIONAL Parts ONLY 1

ADDITIONAL Parts ONLY 2

ADDITIONAL Parts ONLY 3

So in total:

Order combined price

006

Iamalive Iamalive 🚀 approved IOX-77 - An ESP32 based SuperBoard (75+ GPIOs) ago

Tier approved: 3

Grant approved: $63.00

Looks good!

Clém Clém added to the journal ago

Added the pinout

IOX-77 PINOUT

There are so many pins on this devboard! Thus, I created a PDF with the pinout neatly explained. (the PDF also available on the Github Repo)

Pinout 1-3

Pinout 2-3

Pinout 3-3

IOX-77 PINOUT

Clém Clém submitted IOX-77 - An ESP32 based SuperBoard (75+ GPIOs) for review ago

Iamalive Iamalive 🚀 requested changes for IOX-77 - An ESP32 based SuperBoard (75+ GPIOs) ago

It seems like your project description is partially made by AI, which we do not tolerate. Please fix this!

Clém Clém submitted IOX-77 - An ESP32 based SuperBoard (75+ GPIOs) for review ago

Clém Clém added to the journal ago

Preparing orders

IOX_77_RENDER_01_CG_08

As I said earlier, I've already made a few PCBs using SMD components, so I'm used to solder QFN20 and other SMD packages. I'll order the components on LCSC, and the PCBs/Stencil on JLCPCB. It's cheaper than choosing PCBA option, and let's be honest, it's way funnier to build your PCB, once you've spent so many hours designing it on a screen😉! In addition to that, I'll need to order a SWIO USB programmer, to programm the CH32V003 (we can find them for pretty cheap on aliexpress).

Here is the BOM for the electronic components: (one PCB)

BOM PYCHARM

And here are the additional parts (and other hardware):

BOM Hardware PYCHARM

Here is the JLCPCB order: 5 PCBs and a stencil. Thanks to the small size of the stencil (I chose 100mm by 100mm), the cost is as low as 3$! Making PCBs has became so cheap these days! 🤗

JLCPCB ORDER SCREENSHOT

When ordering components on LCSC, an important part of the cost comes from shipping (even though, it can be reduced to 9 bucks with Global Standard Direct Line). Moreover, the major part of the components are ordered in multiples of 10 or even 100 (0402 res and other). So at the end the only components that I can really choose the quantity are the ESP32, the two 1.27 headers and the five CH32V003 (all the other have a MOQ of at least 5pcs, or more). It means that while building one PCB cost you around 25 bucks in components, building 2 PCBs will only cost you like 5 bucks more...

So I though about it and made some calculations, and I think that building 4 PCBs is the sweet spot: I'm using 4 of the 5 PCBs, the total cost is still relatively low, and most importantly, the per board cost is way lower.

Here is the simulation:

PRICE SIMULATION

The total cost takes in account the JLCPCB, Aliexpress and LCSC orders, with the components needed to build the board. However, as I used uncommon FPCs and 1.27mm pitched headers to give my devboard a smaller footprint, I also need to buy a few extra components (male headers, FPC cables, and FPC connectors) in order to implement them on custom Shields that I'll design later on.

Here is the LCSC order (IOX-77 devboard components + extra connectors for the upcoming shields):

LCSC CART1

LCSC CART2

LCSC CART3

LCSC CART4

LCSC CART5

LCSC CART PRICE

So the total cost for 4 PCBs is ... less than 60 $ 🥳

GLOBAL BILL IOX77

(Small update: while checking whether everything was ok, I noticed that I completely forgot to add to the cart 0402 Resistors for the Ideal Diode Controller. I need 2 Res, with values varying from 50k to 2M (50K, 100K, 200K, 500K, 1M, 2M), this way I can tune the reverse current blocking speed vs continuous current consumption ratio.
Not a big deal, the cost increase by a itty bitty 30 cents 😅 )

Clém Clém added to the journal ago

Made some cool renders on Fusion 360

All the previous images were taken from Easy EDA viewing tool.
To finish in style, I decided to make a few higher quality renders.

Here are some renders of the IOX-77 made with Fusion 360:
IOX_77_RENDER_01_CG_08

IOX77_RENDER_02_CG

IOX_77_RENDER_CG_03

IOX_77_RENDER_CG_05

IOX_77_RENDER_CG_06

IOX_77_RENDER_01_CG_9

Clém Clém added to the journal ago

Cleaning a bit the silkscreen

I cleaned a bit the silkscreen layer by removing all original silkscreens around the components, and the board looks way better now. I also added custom silkscreen to highlight the GND and +3.3V pins, and a custom logo for my IOS-77 board. (Yeah, I changed the inital name because I thought IOX-77 was cooler, and yes, the devboard actually has 75 GPIOs if we only count the usable GPIOs, but hey, come on! 77 is a way cooler number 😅)

In the meantime, I also changed a few things on the PCB layout to make sure everything runs smoothly (I tried to remove all "bottlenecks" in the power planes, so that all power path are wide enough.)

I really like how this board turned out, and I can't wait to assemble the PCBs and see if it even works.

As it's not my first PCB project, I'm used to solder QFN-20 packages and 0603, but I leveled up the game with 0402 ones this time. I even have two ESD diodes in a SOD882 package (1mm by 0.6mm... I don’t even know if I'll be able to solder them... well, we have to try. And if I can't, all this work will be useless... No seriously, with a good stencil and precise hands, it's fine: the surface tension does all the job!

BOARD PCB 9 1

BOARD PCB 9 2

So here are the 4 Copper Layers of the PCB design:

Top Copper Layer:
BOARD PCB 10 1
Inner Layer 1:
BOARD PCB 10 2

Inner Layer 2:
BOARD PCB 10 3

Bottom Copper Layer:
BOARD PCB 10 4

Clém Clém added to the journal ago

Designing the PCB Part 6: Everything is connected 🥳

The PCB is finally done! Hurrah! 🥳

So, it took me quite a while to make sure everything was connected (the ratline layer should be empty then), and for the last 20 or so traces, I needed to move other traces to free up some space... Everything is quite tightly packed... But at the end of the day, I've got a neat and well designed PCB.

I added a few extra components (a TVS diode and decoupling cap near the ESP32-C3) and I changed the FPC connector on the right: It wasn't the same ref as the other ones, so it looked awkward. Now they are all the same so the board is more consistent.

I've designed many PCBs for my electronics project over the last 3 years (2L PCBs), but I have to admit that the routing on this project was harder than on the previous ones. In total, there are 71 components, 490 pads, 112 nets, and ... wait, what did I just read ? ... 289 vias! No wonder if the routing wasn't easy with all these vias on the way 😂! Fun fact: the total length of all the traces is more than 4 meters!

Have a look at this overkill devboard:

BOARD PCB 8 2

BOARD PCB 8 3

BOARD PCB 8 4

BOARD PCB 8 1

So, I'm really happy with how this turned out, and the last thing to do before submitting is arranging the silkscreen layer a bit, so the board is neat and pleasant to look at.

Clém Clém added to the journal ago

Designing the PCB Part 5: Routing progress 90%

I've spent another 2 and a half hours adding and routing the remaining components of the circuit (Power Management, USB C passives...).

While doing this, I noticed an error in the schematic: The VBUS coming out of the USB C wasn't connected to anything, so I replaced it with a +5V tag, as it should have been.

I even added two GND and +3.3V planes on the top and bottom layers, but I still need to add some prohibited regions because the initial plane created by Easy EDA isn't perfect (it is trying to seep through every single part of the circuit, while it shouldn't)

Here’s a preview:

BOARD PCB 7 1

BOARD PCB 7 2

Clém Clém added to the journal ago

Designing the PCB Part 4: GPIOs Routing 100% completed 🥳

Hurray! All the GPIOs are now connected to the 5 MCUs! 🥳
It's taking shape slowly but surely. Actually, I think the final board will look amazing, with all those little 8mil traces running everywhere on the 4 Layer PCB (yeah, I know, the inner layer won't be visible, but still, they are on the design file 😊)

BOARD PCB 06 2

BOARD PCB 06 1

BOARD PCB 06 3

BOARD PCB 06 4

Clém Clém added to the journal ago

Designing the PCB Part 3: Still adding GPIO traces

So, it's moving forward! I rerouted everything, linking the two left MCUs to both the FPC and headers. It was a quite long and tedious task, but still it was fun and I didn't even notice the time passing...

As I said, I had to make some modifications in the schematic to ensure that the traces align well with the header pads without having too much crossing. It was sometimes quite mind-boggling, but I eventually found out how to route everything.

Next time it should be easier, because I don't need to bother connecting the FPC, as the other MCUs only have their GPIOs connected to the 2 headers.BOARD PCB 04 1

Clém Clém added to the journal ago

Designing the PCB Part 3: I'm changing my mind

So... Hum... Yeah:

BOARD PCB 03 1

After another hour of routing the PCB, I definitely know it won't make it: the connections Headers-MCUs are just not efficient at all: when one pin of an MCU goes on the left on the top header, the next pin goes to the opposite side! So obviously, it makes routing way more difficult because the traces need to cross each other... So I'm adopting a different approach: I'll route every MCU pin to the closest Header pin, then I'll change the nets on the schematic according to this disposition, and hopefully I'll get better results.

Let's try it!

Clém Clém added to the journal ago

Designing the PCB Part 2

I added the 5 CH32 and their passive components. I started routing the GPIOs to the FPC/Headers, and I know it's going to be pretty difficult to fit all these traces even on a 4 layers board...

Here is the progression:

BOARD PCB 02 3

BOARD PCB 02 1

BOARD PCB 02 2

Clém Clém added to the journal ago

Designing the PCB Part 1 : Overall shape

I started the PCB by creating the board outline and by placing the major components (ESP32, GPIO interfaces...). I tried to have something practical (placing the FPCs, USB... on the sides of the board) while still being visually pleasant, and I think that this first sketch is pretty cool. We'll see in the future if we need more space for all the traces, but for the moment, I think it's not that bad! Have a look:

BOARD PCB 01
BOARD PCB 01 2

Clém Clém added to the journal ago

Schematic Part 4: Power Management

The last thing to add in our schematic is the Power Management.

The ESP32 operates at 3.3V, so the CH32 run at 3.3V too. There are 3 ways of powering the board:

(A) - By the USB-C at 5V
(B) - By a dedicated port between 3.5V and 5.5V (but the "+5V" rail will be at this voltage, so if it's not exactly 5V, we have to be careful about what we connect to it)
(C) - By another dedicated port with a steady 3.3V (directly fed into the +3.3V rail).

For the options (A) and (B), there is a 3.3V LDO voltage regulator (TLV75733PDBVR) who provides a steady 3.3V output. I chose this one because it had a small quiescent current (25µA). However, this IC wasn't protected against reverse current: If I power the board directly with 3.3V (option (C)), the output of the LDO would be at 3.3V, while the IN of the LDO would still be at 0V (no input connected), and this scenario could damage the LDO. So it took me a while to figure out what to do, but I ended up using an Ideal Diode Controller (the DZDH0401DW) along with a ultra-low RDSon P-channel MOSFET(the SI2393DS). This way, current can only flow in one direction, from the LDO to the +3.3V rail, without inducing an important voltage drop (it would have been the case with a Schottky diode)

So here are the schematics for the LDO and the Ideal Diode Controller:

ESPIO schematic 04 Pwr Mng 2png

ESPIO schematic 04 Pwr Mng 1

And the whole schematic :

ESPIO schematic 04 Whole page

So, I think the Schematic is good to go, next time I'll start the best part of this project: Routing! 🤗

Clém Clém added to the journal ago

Schematic Part 3: Accessing the IOs

Now that the 5 CH32 offer their 70 GPIOs, it's time to arrange them on the devboard. I've decided to use multiple access points :

  • A 40 Pins .5mm FPC connector gives access to 32 of the GPIOs.
  • Two 2x34 small pitch female Dupont Headers (1.27mm pitch, instead of the typical 2.54mm ones), with all 70 GPIOs, the remaining ESP32's IOs, I2C lines, multiple 3.3V and GND pins, and even a +5V pin (the +5V is accessible when the devboard is powered via the USB)
  • a more user-friendly 2.54mm 2x8 header, with the ESP32 IOs, I2C lines, Power pins and 4 CH32 (E) IOs (including two 5V tolerant pins)
  • A 6P .5mm FPC with I2C and UART (from the ESP32)
  • Lastly, another .5mm FPC (8P) with all SWIO pins, which will be used for programming.

I think that with all of that, adding sensors, shields, modules, etc, will be very neat and easy.

Here are some screenshots:

The 2.54mm header, and two 6P and 8P FPCs:

ESPIO schematic 03 FPC1

The two 1.27mm header:

ESPIO schematic 03 FPC3

And the 40P FPC:
ESPIO schematic 03 FPC2

Browsing parts on LCSC and adding all the nets to the schematic was really fun, even if it was indeed a repetitive task. However, thinking about routing all this mess makes me a bit nervous... 😅 but hey, one step at a time!

And here is the updated progression of the schematic:

ESPIO schematic 03 Whole page

Now, the last thing to do on the schematic is handling the Power management.

Clém Clém added to the journal ago

Schematic Part 2: The CH32V003

I added 5 CH32v003F4U6 (QFN-20). They all share the same I2C bus with the Master (ESP32). I gave each CH32V003 an orange 0603 LED: it could be really useful for debugging...

Each CH32V003 has the ability to go in Standby Mode, where the current consumption is a tiny 10µA (so 50µA in total). The idea is that when we want to limit the overall current consumption, the ESP32 sends a signal to each CH32V003 Via I2C, ordering them to enter Standby Mode. Once the ESP32 needs them again, it can wake them up by resetting them: It's the ESP32 that commands the 5 NRST pins (Negative Resets pins). This way, if one of the CH32V003 isn't responding anymore, the ESP32 can force the reset, and hopefully, it's going to work again. It's also practical when we want to reset the entire devboard: The ESP32 can handle everything, no need to have one button for each CH32.

PC5 and PC6 are 5V tolerant, so I added the suffix "FT".

The CH32 can be programmed using the SWIO protocol, with a specialized programmer (the WCH-Link) I will later on add a header (or an FPC connector) to access all 5 SWIO pins, +3.3V, and GND for programming.

This is what one of the CH32 implementations looks like:

ESPIO schematic 02 Zoom CH32v003

And here is the progression of the schematic:

ESPIO schematic 02 CH32v003

Two hours is quite long for implementing 5 CH32v003, but I needed to do some research to ensure that the CH32V003 could act as I wanted it to, so I went through part of the CH32V003 datasheet, and checked multiple CH32V003 devboard schematics.

Clém Clém added to the journal ago

Started the Schematic: Basic ESP32 board

I started the schematic of the devboard by adding all the minimal components for the ESP32-C3-MINI-1-N4 module, like the USB C, a bunch of 0402 resistors, decoupling caps, ESD protection diodes, the boot and Chip Enable Buttons... During these first 2 hours, I also documented myself by looking at other ESP-C3-MINI devboards (like the Adafruit Rust) and the schematic example provided by ESPRESSIF.

I chose the ESP32-C3-MINI-1-N4 module, instead of the bare ESP32 QFN chip, because I preferred not to deal with the Antenna stuff, as the RF tuning is way too complicated for me, and without tuning, the devboard isn't optimized, and the RF range can be reduced.

Here is the first part of the schematic:

ESPIO schematic 01 ESP32 minimal requirements

Clém Clém started IOX-77 - An ESP32 based SuperBoard (75+ GPIOs) ago

11/29/2025 12 PM - Started the Schematic: Basic ESP32 board

I started the schematic of the devboard by adding all the minimal components for the ESP32-C3-MINI-1-N4 module, like the USB C, a bunch of 0402 resistors, decoupling caps, ESD protection diodes, the boot and Chip Enable Buttons... During these first 2 hours, I also documented myself by looking at other ESP-C3-MINI devboards (like the Adafruit Rust) and the schematic example provided by ESPRESSIF.

I chose the ESP32-C3-MINI-1-N4 module, instead of the bare ESP32 QFN chip, because I preferred not to deal with the Antenna stuff, as the RF tuning is way too complicated for me, and without tuning, the devboard isn't optimized, and the RF range can be reduced.

Here is the first part of the schematic:

ESPIO schematic 01 ESP32 minimal requirements

11/29/2025 5 PM - Schematic Part 2: The CH32V003

I added 5 CH32v003F4U6 (QFN-20). They all share the same I2C bus with the Master (ESP32). I gave each CH32V003 an orange 0603 LED: it could be really useful for debugging...

Each CH32V003 has the ability to go in Standby Mode, where the current consumption is a tiny 10µA (so 50µA in total). The idea is that when we want to limit the overall current consumption, the ESP32 sends a signal to each CH32V003 Via I2C, ordering them to enter Standby Mode. Once the ESP32 needs them again, it can wake them up by resetting them: It's the ESP32 that commands the 5 NRST pins (Negative Resets pins). This way, if one of the CH32V003 isn't responding anymore, the ESP32 can force the reset, and hopefully, it's going to work again. It's also practical when we want to reset the entire devboard: The ESP32 can handle everything, no need to have one button for each CH32.

PC5 and PC6 are 5V tolerant, so I added the suffix "FT".

The CH32 can be programmed using the SWIO protocol, with a specialized programmer (the WCH-Link) I will later on add a header (or an FPC connector) to access all 5 SWIO pins, +3.3V, and GND for programming.

This is what one of the CH32 implementations looks like:

ESPIO schematic 02 Zoom CH32v003

And here is the progression of the schematic:

ESPIO schematic 02 CH32v003

Two hours is quite long for implementing 5 CH32v003, but I needed to do some research to ensure that the CH32V003 could act as I wanted it to, so I went through part of the CH32V003 datasheet, and checked multiple CH32V003 devboard schematics.

11/30/2025 10 AM - Schematic Part 3: Accessing the IOs

Now that the 5 CH32 offer their 70 GPIOs, it's time to arrange them on the devboard. I've decided to use multiple access points :

  • A 40 Pins .5mm FPC connector gives access to 32 of the GPIOs.
  • Two 2x34 small pitch female Dupont Headers (1.27mm pitch, instead of the typical 2.54mm ones), with all 70 GPIOs, the remaining ESP32's IOs, I2C lines, multiple 3.3V and GND pins, and even a +5V pin (the +5V is accessible when the devboard is powered via the USB)
  • a more user-friendly 2.54mm 2x8 header, with the ESP32 IOs, I2C lines, Power pins and 4 CH32 (E) IOs (including two 5V tolerant pins)
  • A 6P .5mm FPC with I2C and UART (from the ESP32)
  • Lastly, another .5mm FPC (8P) with all SWIO pins, which will be used for programming.

I think that with all of that, adding sensors, shields, modules, etc, will be very neat and easy.

Here are some screenshots:

The 2.54mm header, and two 6P and 8P FPCs:

ESPIO schematic 03 FPC1

The two 1.27mm header:

ESPIO schematic 03 FPC3

And the 40P FPC:
ESPIO schematic 03 FPC2

Browsing parts on LCSC and adding all the nets to the schematic was really fun, even if it was indeed a repetitive task. However, thinking about routing all this mess makes me a bit nervous... 😅 but hey, one step at a time!

And here is the updated progression of the schematic:

ESPIO schematic 03 Whole page

Now, the last thing to do on the schematic is handling the Power management.

11/30/2025 3 PM - Schematic Part 4: Power Management

The last thing to add in our schematic is the Power Management.

The ESP32 operates at 3.3V, so the CH32 run at 3.3V too. There are 3 ways of powering the board:

(A) - By the USB-C at 5V
(B) - By a dedicated port between 3.5V and 5.5V (but the "+5V" rail will be at this voltage, so if it's not exactly 5V, we have to be careful about what we connect to it)
(C) - By another dedicated port with a steady 3.3V (directly fed into the +3.3V rail).

For the options (A) and (B), there is a 3.3V LDO voltage regulator (TLV75733PDBVR) who provides a steady 3.3V output. I chose this one because it had a small quiescent current (25µA). However, this IC wasn't protected against reverse current: If I power the board directly with 3.3V (option (C)), the output of the LDO would be at 3.3V, while the IN of the LDO would still be at 0V (no input connected), and this scenario could damage the LDO. So it took me a while to figure out what to do, but I ended up using an Ideal Diode Controller (the DZDH0401DW) along with a ultra-low RDSon P-channel MOSFET(the SI2393DS). This way, current can only flow in one direction, from the LDO to the +3.3V rail, without inducing an important voltage drop (it would have been the case with a Schottky diode)

So here are the schematics for the LDO and the Ideal Diode Controller:

ESPIO schematic 04 Pwr Mng 2png

ESPIO schematic 04 Pwr Mng 1

And the whole schematic :

ESPIO schematic 04 Whole page

So, I think the Schematic is good to go, next time I'll start the best part of this project: Routing! 🤗

11/30/2025 5 PM - Designing the PCB Part 1 : Overall shape

I started the PCB by creating the board outline and by placing the major components (ESP32, GPIO interfaces...). I tried to have something practical (placing the FPCs, USB... on the sides of the board) while still being visually pleasant, and I think that this first sketch is pretty cool. We'll see in the future if we need more space for all the traces, but for the moment, I think it's not that bad! Have a look:

BOARD PCB 01
BOARD PCB 01 2

11/30/2025 11 PM - Designing the PCB Part 2

I added the 5 CH32 and their passive components. I started routing the GPIOs to the FPC/Headers, and I know it's going to be pretty difficult to fit all these traces even on a 4 layers board...

Here is the progression:

BOARD PCB 02 3

BOARD PCB 02 1

BOARD PCB 02 2

12/2/2025 6 PM - Designing the PCB Part 3: I'm changing my mind

So... Hum... Yeah:

BOARD PCB 03 1

After another hour of routing the PCB, I definitely know it won't make it: the connections Headers-MCUs are just not efficient at all: when one pin of an MCU goes on the left on the top header, the next pin goes to the opposite side! So obviously, it makes routing way more difficult because the traces need to cross each other... So I'm adopting a different approach: I'll route every MCU pin to the closest Header pin, then I'll change the nets on the schematic according to this disposition, and hopefully I'll get better results.

Let's try it!

12/2/2025 10 PM - Designing the PCB Part 3: Still adding GPIO traces

So, it's moving forward! I rerouted everything, linking the two left MCUs to both the FPC and headers. It was a quite long and tedious task, but still it was fun and I didn't even notice the time passing...

As I said, I had to make some modifications in the schematic to ensure that the traces align well with the header pads without having too much crossing. It was sometimes quite mind-boggling, but I eventually found out how to route everything.

Next time it should be easier, because I don't need to bother connecting the FPC, as the other MCUs only have their GPIOs connected to the 2 headers.BOARD PCB 04 1

12/3/2025 - Designing the PCB Part 4: GPIOs Routing 100% completed 🥳

Hurray! All the GPIOs are now connected to the 5 MCUs! 🥳
It's taking shape slowly but surely. Actually, I think the final board will look amazing, with all those little 8mil traces running everywhere on the 4 Layer PCB (yeah, I know, the inner layer won't be visible, but still, they are on the design file 😊)

BOARD PCB 06 2

BOARD PCB 06 1

BOARD PCB 06 3

BOARD PCB 06 4

12/4/2025 - Designing the PCB Part 5: Routing progress 90%

I've spent another 2 and a half hours adding and routing the remaining components of the circuit (Power Management, USB C passives...).

While doing this, I noticed an error in the schematic: The VBUS coming out of the USB C wasn't connected to anything, so I replaced it with a +5V tag, as it should have been.

I even added two GND and +3.3V planes on the top and bottom layers, but I still need to add some prohibited regions because the initial plane created by Easy EDA isn't perfect (it is trying to seep through every single part of the circuit, while it shouldn't)

Here’s a preview:

BOARD PCB 7 1

BOARD PCB 7 2

12/5/2025 - Designing the PCB Part 6: Everything is connected 🥳

The PCB is finally done! Hurrah! 🥳

So, it took me quite a while to make sure everything was connected (the ratline layer should be empty then), and for the last 20 or so traces, I needed to move other traces to free up some space... Everything is quite tightly packed... But at the end of the day, I've got a neat and well designed PCB.

I added a few extra components (a TVS diode and decoupling cap near the ESP32-C3) and I changed the FPC connector on the right: It wasn't the same ref as the other ones, so it looked awkward. Now they are all the same so the board is more consistent.

I've designed many PCBs for my electronics project over the last 3 years (2L PCBs), but I have to admit that the routing on this project was harder than on the previous ones. In total, there are 71 components, 490 pads, 112 nets, and ... wait, what did I just read ? ... 289 vias! No wonder if the routing wasn't easy with all these vias on the way 😂! Fun fact: the total length of all the traces is more than 4 meters!

Have a look at this overkill devboard:

BOARD PCB 8 2

BOARD PCB 8 3

BOARD PCB 8 4

BOARD PCB 8 1

So, I'm really happy with how this turned out, and the last thing to do before submitting is arranging the silkscreen layer a bit, so the board is neat and pleasant to look at.

12/6/2025 - Cleaning a bit the silkscreen

I cleaned a bit the silkscreen layer by removing all original silkscreens around the components, and the board looks way better now. I also added custom silkscreen to highlight the GND and +3.3V pins, and a custom logo for my IOS-77 board. (Yeah, I changed the inital name because I thought IOX-77 was cooler, and yes, the devboard actually has 75 GPIOs if we only count the usable GPIOs, but hey, come on! 77 is a way cooler number 😅)

In the meantime, I also changed a few things on the PCB layout to make sure everything runs smoothly (I tried to remove all "bottlenecks" in the power planes, so that all power path are wide enough.)

I really like how this board turned out, and I can't wait to assemble the PCBs and see if it even works.

As it's not my first PCB project, I'm used to solder QFN-20 packages and 0603, but I leveled up the game with 0402 ones this time. I even have two ESD diodes in a SOD882 package (1mm by 0.6mm... I don’t even know if I'll be able to solder them... well, we have to try. And if I can't, all this work will be useless... No seriously, with a good stencil and precise hands, it's fine: the surface tension does all the job!

BOARD PCB 9 1

BOARD PCB 9 2

So here are the 4 Copper Layers of the PCB design:

Top Copper Layer:
BOARD PCB 10 1
Inner Layer 1:
BOARD PCB 10 2

Inner Layer 2:
BOARD PCB 10 3

Bottom Copper Layer:
BOARD PCB 10 4

12/7/2025 - Made some cool renders on Fusion 360

All the previous images were taken from Easy EDA viewing tool.
To finish in style, I decided to make a few higher quality renders.

Here are some renders of the IOX-77 made with Fusion 360:
IOX_77_RENDER_01_CG_08

IOX77_RENDER_02_CG

IOX_77_RENDER_CG_03

IOX_77_RENDER_CG_05

IOX_77_RENDER_CG_06

IOX_77_RENDER_01_CG_9

12/9/2025 - Preparing orders

IOX_77_RENDER_01_CG_08

As I said earlier, I've already made a few PCBs using SMD components, so I'm used to solder QFN20 and other SMD packages. I'll order the components on LCSC, and the PCBs/Stencil on JLCPCB. It's cheaper than choosing PCBA option, and let's be honest, it's way funnier to build your PCB, once you've spent so many hours designing it on a screen😉! In addition to that, I'll need to order a SWIO USB programmer, to programm the CH32V003 (we can find them for pretty cheap on aliexpress).

Here is the BOM for the electronic components: (one PCB)

BOM PYCHARM

And here are the additional parts (and other hardware):

BOM Hardware PYCHARM

Here is the JLCPCB order: 5 PCBs and a stencil. Thanks to the small size of the stencil (I chose 100mm by 100mm), the cost is as low as 3$! Making PCBs has became so cheap these days! 🤗

JLCPCB ORDER SCREENSHOT

When ordering components on LCSC, an important part of the cost comes from shipping (even though, it can be reduced to 9 bucks with Global Standard Direct Line). Moreover, the major part of the components are ordered in multiples of 10 or even 100 (0402 res and other). So at the end the only components that I can really choose the quantity are the ESP32, the two 1.27 headers and the five CH32V003 (all the other have a MOQ of at least 5pcs, or more). It means that while building one PCB cost you around 25 bucks in components, building 2 PCBs will only cost you like 5 bucks more...

So I though about it and made some calculations, and I think that building 4 PCBs is the sweet spot: I'm using 4 of the 5 PCBs, the total cost is still relatively low, and most importantly, the per board cost is way lower.

Here is the simulation:

PRICE SIMULATION

The total cost takes in account the JLCPCB, Aliexpress and LCSC orders, with the components needed to build the board. However, as I used uncommon FPCs and 1.27mm pitched headers to give my devboard a smaller footprint, I also need to buy a few extra components (male headers, FPC cables, and FPC connectors) in order to implement them on custom Shields that I'll design later on.

Here is the LCSC order (IOX-77 devboard components + extra connectors for the upcoming shields):

LCSC CART1

LCSC CART2

LCSC CART3

LCSC CART4

LCSC CART5

LCSC CART PRICE

So the total cost for 4 PCBs is ... less than 60 $ 🥳

GLOBAL BILL IOX77

(Small update: while checking whether everything was ok, I noticed that I completely forgot to add to the cart 0402 Resistors for the Ideal Diode Controller. I need 2 Res, with values varying from 50k to 2M (50K, 100K, 200K, 500K, 1M, 2M), this way I can tune the reverse current blocking speed vs continuous current consumption ratio.
Not a big deal, the cost increase by a itty bitty 30 cents 😅 )

12/13/2025 - Added the pinout

IOX-77 PINOUT

There are so many pins on this devboard! Thus, I created a PDF with the pinout neatly explained. (the PDF also available on the Github Repo)

Pinout 1-3

Pinout 2-3

Pinout 3-3

IOX-77 PINOUT

1/1/2026 - Ordered the components

I've already ordered the PCB and stencil a while ago, and now I placed the LCSC order, with the electronical components. I'm combining multiple LCSC order, so I don't have to pay multiple times shipping cost and handling fees, so I had to make a top-up form, pay for the additionnal cost in a donation to HCB (15 bucks of other components, for other projects or connectors to make custom shields for the IOX-77 devboard), and I've now placed the LCSC order which adds up to $57.28 ($40.29 worth of components for the IOX-77 project, and $15.49 in additional component).

Can't wait for the components to arrive! 😁

Here are the parts required for the IOX-77 project:

IOX-77 Parts ONLY 1

IOX-77 Parts ONLY 2

IOX-77 Parts ONLY 3

IOX-77 Parts ONLY 4

IOX-77 Parts ONLY 5

And here the additional parts (for other projects)

ADDITIONAL Parts ONLY 1

ADDITIONAL Parts ONLY 2

ADDITIONAL Parts ONLY 3

So in total:

Order combined price

006

1/14/2026 - we've got the PCBs 🎉

I received the PCBs, and they look so cool!
To be honest, I though they would be a bit bigger, the pcb always looks big on the screen when designing it, but I guess having a small board footprint is always a good news 😊

IMG_20260110_163144641

IMG_20260110_170845968_HDR

Here is a size comparison with the Raspberry pi, so that you've got an idea on how small it is with it's 76 GPIOs :

IMG_20260110_163551588~2

Hope they aren't any electrical mistake, 'cause the inner layers are kind of inaccessibles 🤣 but I guess we'll find out this WE when the PCB will be soldered...