P24’s PCB

I developed a custom control board for Firefly.

Firefly’s main control PCB

The board was developed in KiCAD. This was new to me, but I found it pretty easy to get the hang of. I found this video tutorial to be particularly useful.

KiCAD makes a cool 3D model of the PCB:

This is the design view of the board in KiCAD:

I uploaded my design to JLCPCB in China. A week or so later, this turned up in the post:

I was delighted with the board; although there are errors on it (which are my fault), I think it looks really professional. I’m not taking the credit for that; KiCAD and JLCPCB are a great combination.

The circuit has the following features:

  • The main controller is a Teensy 4.1 Arduino compatible. It is mounted so that it’s USB port is exposed towards the back of the vehicle; this will make it possible to re-program it in-situ.
  • There is a JST socket which will connect to the Pi’s header. It connects the UART on the Pi to a UART in the Teensy. There are two further GPIO connections, one to indicate that the Pi is running, one to request that the Pi closes down. Power for the Pi is also provided by the connection. In operation, the Teensy combines all the robot functions which the Pi accesses via a serial protocol.
  • A LiPo protection circuit. If the LiPo voltage goes too low then this circuit can close the Pi down, then chop the power to the whole robot. The circuit expects to be connected to a 3S LiPo (which was chosen to match the AX-12 servos used).
  • Four independent 11A motor controllers for the robot drive wheels. The motors have encoders fitted, and this circuit will maintain PID control for each. This system can also be used to calibrate distances travelled.
  • An IMU (Intertial Measurement Unit). The robot uses this to understand it’s orientation in the World. It is mainly used to calibrate turns.
  • A serial connection (using the SBUS protocol) to a radio control receiver.
  • An ”implement” connector. Implements are added to the robot for some of the games. This connector presents a 3v3 serial connection and power supplies for the implements.
  • A pair of AX-12 servo bus connectors. These servos provide more torque and more control options than regular radio control servos. They are accessed via a proprietary serial protocol which the Teensy can provide via an interface on the board. The base robot uses a pair of AX-12 servos to lift the front bulldozer blade, and further servos were used for the Eco-Disaster barrel lift.
  • An 3v3 serial interface to a further board that is mounted in the ”chin” of the robot. This board interfaces to three ToF (Time of Flight) sensors.
  • A 3v3 serial and power interface to the robot’s decorative lid. The lid has lights and Doofus Tracy has a head turn servo.
  • A start button and a stop button interface.
  • A status LED connection.