uses 7-bit address 1101011, while the LIS3MDL uses 7-bit address 0011110. The ATmega32U4’s I²C
pins (2 and 3) operate at 5 V. If you are connecting a 3.3 V device, you can connect it to the 3.3 V side
of the bus instead (accessible through Raspberry Pi GPIO pins 2, for SDA, and 3, for SCL, even if a
Raspberry Pi is not connected). Separate level shifters might be necessary to interface with devices
that use other voltages.
If you do not want to use the inertial sensors on the I²C bus, you can cut the surface-mount jumpers
labeled “IMU SDA Jmp” and “IMU SCL Jmp”. (Note that this will remove Balboa’s ability to balance!)
This frees up pin 2 (PD1) and pin 3 (PD0) for limited use as digital inputs and outputs as long as a
Raspberry Pi is not attached to the control board. Note that the AVR’s I²C pins will remain connected
to the on-board I²C level shifters and will therefore still be pulled up to 5 V.
Power
The control board’s power nodes are accessible in several areas on the board. If you power additional
devices from VSW, then they will be powered whenever the control board’s power is in ON, and they
will receive whatever voltage the batteries are outputting. If you power them from VREG, they will get
5 V power whenever the batteries are installed and the power is on (but they cannot be powered from
USB). If you power them from a 5V pin, then they will receive 5V power whenever the control board’s
logic components are powered. If you power them from 3V3, they will receive 3.3V power whenever
the control board’s logic components are powered. For more information about these power nodes
and how much current they can provide, see
It is also possible to add your own power switch to control power to Balboa 32U4, as described in
.
Ground
You should make sure that all the grounds in your system are connected. The Balboa 32U4 control
board’s ground node can be accessed from pins labeled “GND”. It should be connected to the ground
node of every other circuit board or device you add to the robot.
3.11. AVR timers
The ATmega32U4 has 4 timers: Timer0, Timer1, Timer3, and Timer4. Each timer has a different set of
features, as documented in the datasheet.
• Timer0 is used by the Arduino environment for timing-related functions like
millis()
.
• Timer1 is used by the Balboa32U4 Arduino library for driving motors.
• Timer3 is
not
used by the Balboa32U4 Arduino library and can be freely used for your own
purposes.
• Timer4 is used by the Balboa32U4 Arduino library for controlling the buzzer.
Pololu Balboa 32U4 Balancing Robot User’s Guide
© 2001–2019 Pololu Corporation
3. Balboa 32U4 in detail
Page 36 of 97