[canbrd] CAN I/O board

Project link: 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.

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:

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.