Page 5
356] [https://www.pololu.com/ instead. The information in this user’s guide generally applies to both versions, and product/3760] the name “3pi+ 32U4” covers both the original (LCD) and OLED versions except where specific differences are noted. Pololu3piPlus32U4 Arduino library generally allows code [https://www.pololu.com/docs/0J83/7]...
3pi will not work on the 3pi+ 32U4 without modification. 1.1. Configurations and included components The 3pi+ 32U4 OLED robot is available as a kit or fully assembled with three different motor options: 1. Overview Page 6 of 86...
Page 7
[https://www.pololu.com/product/4974] of your choice to [https://www.pololu.com/category/141/micro-metal-gearmotors-with-extended-motor-shafts] make a custom kit. The original (LCD) version of the 3pi+ 32U4 robot is also available in these three editions—Standard (assembled ), Turtle [https://www.pololu.com/product/3737] [https://www.pololu.com/product/3740] (assembled ), and Hyper [https://www.pololu.com/product/3738]...
• small 2 mm slotted screwdriver for adjusting the LCD contrast (original LCD version only) Kit assembly tools These additional items are needed or helpful for assembling the 3pi+ 32U4 robot kit: • soldering iron and solder (we recommend one with adjustable temperature control) •...
[https://www.pololu.com/product/2588] 1.3. Supported operating systems The 3pi+ 32U4 can be programmed using current versions of Microsoft Windows 11, Windows 10, Linux, and macOS. See our A-Star 32U4 bootloader page on GitHub [https://github.com/pololu/a-star/...
Page 17
3. Insert the four single battery contacts into the top of the chassis as shown. Adjust them until they are centered, straight, and match the height of the double battery contacts. 3. Assembling the 3pi+ 32U4 kit Page 17 of 86...
Page 18
A good way to do this is to set the wheel on a flat surface (like a table top) and press the motor shaft into the wheel until it contacts the surface. 3. Assembling the 3pi+ 32U4 kit Page 18 of 86...
Page 19
(see below). You might find it helpful to make a small bend at the tip of each lead to hook into the hole in the motor lead tab to hold it in place for soldering. 3. Assembling the 3pi+ 32U4 kit Page 19 of 86...
Page 20
One easy way to accomplish this is to press the motor onto the disc while the disc is sitting on a flat surface, pushing until the shaft makes contact with that surface. 3. Assembling the 3pi+ 32U4 kit Page 20 of 86...
Page 21
8. Place the motors into the channel in the middle of the chassis, aligning each gearbox with the grooves in the channel. The outer plate of the gearbox should be even with the edge of the chassis. 3. Assembling the 3pi+ 32U4 kit Page 21 of 86...
Page 23
10. Optional: This is a convenient time to add any other optional electronics or headers. 11. Place the control board on the chassis. The motor leads and single battery contacts should be inserted into the corresponding through holes. 3. Assembling the 3pi+ 32U4 kit Page 23 of 86...
Page 24
It is usually easier to place the nut into the recess first and hold it there with a finger or piece of tape while inserting the screw or standoff. 3. Assembling the 3pi+ 32U4 kit Page 24 of 86...
Page 27
16. Optional: We recommend cutting the supports for the flaps on the front of the bumper skirt, since the flaps need to be able to deflect for the bump sensors on the 3pi+ 32U4 to work. The easiest way to do this is with a pair of flush cutters, but you can also use diagonal cutters or a knife (which might leave behind bumps that you need to clean up with a file).
Page 29
(screen) side of the display. Tip: Solder a single pin first and ensure the header is flush before making any additional solder joints. If the header 3. Assembling the 3pi+ 32U4 kit Page 29 of 86...
Page 30
180° from its intended position. Incorrect positioning can damage the display or the control board, so please take care during this step to ensure that the display is plugged in properly. 3. Assembling the 3pi+ 32U4 kit Page 30 of 86...
Page 32
Be careful not to reverse any of the batteries, or else the 3pi+ 32U4 will not operate properly (although the control board will not be damaged).
B button, which will take you to the main menu. On the original (LCD) version of the 3pi+ 32U4, if you hear a beep but do not see anything on the LCD, you might need to adjust the contrast potentiometer on the control board near the top right corner of the LCD.
The control board’s ATmega32U4 comes preloaded with the Arduino-compatible A-Star 32U4 USB bootloader , which allows it to be easily programmed using the [https://www.pololu.com/docs/0J83/9] Arduino IDE. For more information about programming the 3pi+ 32U4, see Section 5. The 3pi+ 32U4 in detail Page 41 of 86...
5.2. User interface LEDs The 3pi+ 32U4 control board has seven indicator LEDs, three of which are user-controllable: • A yellow user LED is connected to Arduino digital pin 13, or PC7. You can drive this pin high in a user program to turn this LED on.
Page 43
Pushbuttons The 3pi+ 32U4 control board has five pushbuttons: a power button on the left, a reset button on the right, and three user pushbuttons located along the rear. The user pushbuttons, labeled A, B, and C, are on Arduino pin 14 (PB3), pin 30 (PD5), and pin 17 (PB0), respectively. Pressing one of these buttons pulls the associated I/O pin to ground through a resistor.
This behavior occurs more often with batteries that are drained than with freshly charged batteries, which means you might notice the performance of a 3pi+ 32U4 decreasing as its batteries start to run out. (For example, it might accelerate more slowly or even be unable to reach as high of a top speed.) It can also come into play with older or lower-quality batteries, which tend to have higher internal resistances that cause more significant voltage drops.
Page 47
Edition, channel B leads channel A when the motor is rotating in the forward direction; that is, B rises before A rises and B falls before A falls. (The waveforms in the diagram above would be produced by forward rotation.) 5. The 3pi+ 32U4 in detail Page 47 of 86...
Section 5.5. Line and bump sensors The 3pi+ 32U4 features five downward-facing line sensors and two forward-facing bump sensors. The five line sensors are on the underside of the board along the front edge and can help the 3pi+ distinguish between light and dark surfaces. Each reflectance sensor consists of a down-facing infrared (IR) emitter LED paired with a phototransistor that can detect reflected infrared light from the LED.
Page 49
These connections are made through traces connecting pairs of through-holes in the front expansion header of the 3pi+ 32U4 control board. A connection can be remapped by cutting the corresponding trace on the underside of the board and making a new connection between the sensor signal and another AVR pin of your choice.
Bottom view of the 3pi+ 32U4 Control Board, showing cuttable traces for remapping sensors. 5.6. Inertial sensors The 3pi+ 32U4 includes on-board inertial sensors that allow it to determine its own orientation by implementing an inertial measurement unit (IMU). The first chip, an ST...
[https://github.com/pololu/minimu-9-ahrs-arduino] Notes on the magnetometer Please note that the magnetometer on the 3pi+ 32U4 can be affected by magnetic fields from the 3pi+ itself. These include magnets in the motors and encoders, electrical currents through the board, and hard iron distortions from metal (probably mostly from the batteries). The magnetometer is positioned as far away from the motors as possible to avoid interference from them, but hard iron distortions can still influence the readings significantly, making it difficult to accurately determine the 3pi+’s absolute...
Page 53
ATmega32U4 to reset.) 5 V and 3.3 V regulators VSW also supplies power to a 5 V regulator, whose output is designated R5V. This output is not 5. The 3pi+ 32U4 in detail Page 53 of 86...
Page 54
(5V). Under typical conditions, roughly 0.7 A of current is available from the 5 V regulator. The 3pi+ 32U4 control board also contains a 3.3 V LDO that draws its power from the output of the logic power selection circuit. The output of the 3.3 V regulator is designated 3V3 and is used to supply the on-board inertial sensors and level shifters.
5.8. Expansion headers The 3pi+ 32U4 control board has several expansion headers (primarily in two areas toward the front of the board) that break out many of the general-purpose I/O lines from the ATmega32U4 microcontroller.
The table below lists the most important pin assignments for the ATmega32U4 on the 3pi+ 32U4. This table is helpful if you want to add your own electronics to the 3pi+ 32U4, write your own low-level code for interfacing with the hardware, or just want to understand better how the 3pi+ 32U4 works. Each row represents a physical pin on the ATmega32U4.
Page 59
LCD version: LCD data line DB5 Timer4 PWM output A (OC4A) Yellow LED 13, LED_BUILTIN Timer3 input capture pin (ICP3) LCD version: LCD data line DB6 Divided system clock output 5. The 3pi+ 32U4 in detail Page 59 of 86...
Page 60
Right encoder XORed input input (AIN0) External interrupt source (INT6) A5, 23 Right encoder input Analog input (ADC0) 3, SCL I²C clock for inertial sensors Timer0 PWM output B (OC0B) 5. The 3pi+ 32U4 in detail Page 60 of 86...
AREF Analog reference 5.10. Adding electronics This section gives tips for how the 3pi+ 32U4 can be expanded with additional electronics. Freeing up I/O pins If you want your additional electronics to send or receive information from the AVR, you will need to connect them to one or more of the AVR’s I/O pins.
Page 62
On the original (LCD) version of the 3pi+ 32U4, if you have removed the LCD and do not need to use button A, this frees up pin 14 (PB3). Pin 14 is capable of digital input and output. Removing the LCD also frees up the LCD contrast potentiometer for other purposes.
[https://www.pololu.com/file/0J1790/3pi- (584k pdf) (original LCD version) plus-32u4-control-board-schematic.pdf] Dimensions Basic dimension diagrams are available as PDFs for the 3pi+ 32U4 Control Board by itself as well as the assembled 3pi+ 32U4 robot: • 3pi+ 32U4 OLED Control Board dimension diagram [https://www.pololu.com/file/0J1825/3pi- 5.
Page 64
3pi+ 32U4 Robot front, top, and side views [https://www.pololu.com/file/0J1797/3pi- (471k zip) (original LCD version) plus-32u4-robot-dxf.zip] 3D models of the 3pi+ 32U4 Control Board and robot are also available in STEP format: • 3pi+ 32U4 OLED Control Board 3D model [https://www.pololu.com/file/0J1826/3pi-plus-32u4-oled- (30MB step) control-board.step]...
Service Pack 3, so we recommend Service Pack 3 over the hotfix. Before you connect your Pololu A-Star 32U4 (or another of our 32U4 family of boards) to a computer running Microsoft Windows, you should install its drivers: 1.
After installing the drivers and plugging in an A-Star, in the “Ports (COM & LPT)” category of the Device Manager, you should see a COM port for the A-Star’s running sketch named “Pololu A-Star 32U4”. You might see that the COM port is named “USB Serial Device” in the Device Manager instead of having a descriptive name.
Page 68
URL on a new line. Adding a Boards Manager index for Pololu boards in the Arduino IDE’s Preferences dialog. 4. Click the “OK” button to close the Preferences dialog.
Page 69
8. After the installation finishes, click the “Close” button to close the Boards Manager dialog. 9. In the Tools > Board menu, select the “Pololu A-Star 32U4” entry. If you do not see your device listed in the Board menu, try restarting the Arduino IDE.
On a Windows computer, you can see the virtual serial port by going to your computer’s Device Manager and expanding the “Ports (COM & LPT)” list. You should see a COM port labeled “Pololu A- Star 32U4”. In parentheses after the name, you will see the name of the port (e.g. “COM3” or “COM4”).
Page 77
Br@y Terminal PuTTY [https://www.pololu.com/docs/0J23] [https://sites.google.com/site/terminalbpp/] TeraTerm Kermit [https://www.chiark.greenend.org.uk/~sgtatham/putty/] [http://ttssh2.osdn.jp/] , and GNU Screen . Many [http://www.columbia.edu/kermit/ck80.html] [http://www.gnu.org/software/screen/] computer programming environments also support sending and receiving bytes from a serial port. 8. The 3pi+ 32U4 USB interface Page 77 of 86...
Page 82
1. Connect the device to your computer via USB. 2. In the “Tools” menu, open the “Board” sub-menu and check to see if the “Pololu A-Star 32U4 (bootloader port)” entry is visible. If this entry is visible, you can skip to step 6.
Page 83
Blink example that can be found under File > Examples > 01.Basics > Blink. After reviving your device, be sure to change the Board setting back to “Pololu A-Star 32U4” and select the right Port.
By following the instructions above, the malfunctioning program on the device will be erased and the device will stay in bootloader mode indefinitely. You can now load another program onto it using the Arduino IDE or AVRDUDE. 10. Reviving an unresponsive 3pi+ 32U4 Page 84 of 86...
[https://www.microchip.com/en-us/tools-resources/ develop/microchip-studio] • AVRDUDE [http://www.nongnu.org/avrdude/] • AVR Freaks [https://www.avrfreaks.net/] Datasheets for some of the components found on the 3pi+ 32U4 control board are available below: • ATmega32U4 documentation [https://www.microchip.com/en-us/product/ATmega32u4] • Texas Instruments DRV8838 motor driver datasheet [https://www.pololu.com/file/0J806/ (1k redirect) drv8838.pdf.redirect] •...
Need help?
Do you have a question about the 3pi+ 32U4 and is the answer not in the manual?
Questions and answers