1.1. Included components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. What you will need . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3. Supported operating systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Contacting Pololu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. Balboa 32U4 in detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1. Microcontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2. User interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3. Motors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4. Quadrature encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5. Inertial sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.6. Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.7. Expansion headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.8. Raspberry Pi interface and level shifters . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.9. Pin assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.10. Adding electronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.11. AVR timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.12. Bumper cage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.13. Stability Conversion Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.14. Schematics and dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4. Assembling the Balboa 32U4 kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5. Programming the Balboa 32U4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1. Installing Windows drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2. Programming using the Arduino IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.3. Programming using avr-gcc and AVRDUDE . . . . . . . . . . . . . . . . . . . . . . . 74
6. Balboa 32U4 Arduino library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7. How to make a Balboa balance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.1. Sensor measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.2. An example balancing algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8. The Balboa 32U4 USB interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9. The A-Star 32U4 Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10. Reviving an unresponsive Balboa 32U4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.1. Reviving using the Arduino IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.2. Reviving using AVRDUDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Pololu Balboa 32U4 Balancing Robot User’s Guide
© 2001–2019 Pololu Corporation
Page 2 of 97