# \[canbrd\] CAN I/O board

**URL:** <https://community.aisler.net/t/canbrd-can-i-o-board/1500>\
**Category:** Great Projects\
**Created:** [October 20, 2022, 11:54am UTC](https://community.aisler.net/t/canbrd-can-i-o-board/1500 "2022-10-20T11:54:50Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![bmesolar](https://community-cdn.aisler.net/letter_avatar_proxy/v4/letter/b/4af34b/32.png) [@bmesolar](https://community.aisler.net/u/bmesolar)\
**Post date:** [October 20, 2022, 11:54am UTC](https://community.aisler.net/t/canbrd-can-i-o-board/1500/1 "2022-10-20T11:54:50Z")

</div>

Project link: [https://aisler.net/p/KCWYJRPH](https://aisler.net/p/KCWYJRPH)

**1. Why I started with this project?**  
I started this project as a member of a solar boat racing team (BME Solar Boat Team), and this board was planned to be the main building block of the boat’s new CAN-based control network. The idea was to design a universal MCU board with everything necessary to get power from the boat’s power system, and reliably communicate over CAN bus, while also exposing as many I/O as possible.  
The board is based on a Raspberry Pi RP2040 microcontroller (as currently this is about the only MCU you can consistently source), it has a robust power supply, isolated CAN bus, protected I/Os, microSD for logging, and a seven-segment display with DIP switches for debug/configuration.  
Because the RP2040 has a limited number of I/O pins, the debug/config section is arranged in a weird 9x2 multiplex array (we decided to call it ioplex). This allows us to drive two digits of seven-segment display, two LEDs, and read eight DIP switches and a button using only 11 I/O pins.

 ![canbrd_v2.2](https://community.aisler.net/uploads/default/original/1X/41a301f9e5ca63b739a129c5b89f516edc8c0b7c.jpeg)

**2. What I love about electronics?**

**3. Which PCB Design Tool I use and why?**  
KiCAD, as it is the most convenient for me out of the EDAs available on Linux. (and it’s also free)

**4. What’s my greatest fail with the project?**  
And we have arrived to the ugly part: this PCB cannot be assembled, and even assembled it wouldn’t work properly:

- My biggest oversight was selecting a MOSFET that has a proprietary package, which makes it impossible to substitute it with any other model. And, of course, the originally selected model is unobtainable now (we have tried everything).
- The ioplex circuit is also wrong, during a redesign aimed to improve it, I broke it completely, but it is fixed now (and works properly on breadboard!)

**5. What’s my greatest win in the project?**  
That I get to work on interesting stuff like this, and learn from my oversights. v3.2 is on its way, so stay tuned!

Sneak peek v3.2:

 ![image](https://community.aisler.net/uploads/default/original/1X/9ecef8c618e17eec4df78840ab12e3b907b57909.png)

**6. What’s my most favorite feature AISLER?**  
My absolute favourite is that I don’t have to mess with gerber file generation, and can simply upload my KiCAD PCB, it’s just way more convenient.
