/ QUADRUPED

Quadruped Control Board V2.0

Ever since I started working on my quadruped, I knew that I wanted to make a ‘motherboard’ pcb for it. Version 1, a two layer board, came equiped with some great features:

  • LC709203F battery guage sensor (Coulomb Counter)
  • LSM6DSOX interial measurement unit
  • Controlled by a teensy 4.1
  • LoRa radio - 900Mhz
  • 6 Breakout GPIO, includign an I2C bus and associated power/ground lines
  • Automatic power shutoff (a relay)

There were some problems, however:

  • Motor port header pins 1mm too small 😭
  • Internal timer conflict between the pwm servo library and the radio library resulted in communication + motor failtures
  • Underspeced relay, which eventually broke... three times.
  • Seperate 1-cell lipo required for 5V boost power, so two batteries required in total 🤮
  • Didn't use all pins on teensy 4.1, which was a waste

Caieras

I now introduce the new control board, which I’ve affectionately named Caieras. It includes better everything:

  • LSM303AGR accelerometer + magnetometer (I'm only using magnetometer)
  • LSM6DSOX gyroscope + accelerometer (the same one)
  • Controlled by a teensy 4.0 to save space
  • On/off button
  • samd21 coprocessor for running sensorfusion algorithms
  • nrf24Lo1 for simplicity and to save space (it is almost 2x smaller than the previous LoRa)
  • 15 teensy and 9 coprocessor breakout GPIO, including an two I2C buses and associated power/ground lines
  • 2 StemmaQT/quicc connectors for easy sensor additions
  • Dual power shutoff relays each rated for 10A
  • One battery required; LT8653S dual-channel step-down regulator handles convertion from 7V to 3.3V and 5V
  • Support for an addition of adafruit's BNO055 breakout. This chip would be integrated into the pcb, but they were out of stock everywhere
  • BME280 thermometer, barometer, and humidity sensor (for fun)
  • New decoupling capacitors for greater motor voltage stability
  • plated mounting holes
More specs:
  • 147 vias
  • 357 pads
  • 809 Track Segments
  • 353 Nodes

Pictures:

Front:

caieras_front

Back:

caieras_back

In comparison, V1…

caieras_back

Many of the improvements I’ve made are meant to fix the failures on version 1. First, I’ve implemented a new radio whose library doesn’t result in a timer collision and messes stuff up. Previously, when using the LoRa radio, the motors would become jittery. I’ve also added a magnetometer to the board this time for accurate sensor fusion. Previously, I didn’t know that a magnetometer was required for accurate inertial measurement (smh) which resulted in inaccurate measurements… which is bad. While I originally wanted to use the BNO055/BNO080, they were out of stock, so made a compromise and added a place to install the breakout board and stemmaqt interface ports on the board. I also added the new power regulator chip to save board space, as well as to avoid having to use more than one battery, which was very annoying for version 1. The new relays are meant to withstand the motor currents and not break this time. maybe the best improvement is that of a coprocessor, however, which will simplify/speed up the sensor fusion. On version 1, walking gaits were difficult to manage due to the clock cycles used simply to read sensor values and to calculate the PID controller (plus the inverse kinematics engine on top of that). With the samd21 running at 48Mhz, this process should be sped up a bit. Finally, I fixed the dumb stuff like the poorly sized header holes and the sharp corners. Overall, I’m very excited for the new board!