Support » Pololu 3pi Robot User’s Guide »
9. Pin Assignment Tables
![]() |
General features of the Pololu 3pi robot, top view. |
|---|
![]() |
Labeled bottom view of the Pololu 3pi robot. |
|---|
![]() |
Specific features of the Pololu 3pi robot, top view. |
|---|
Pin Assignment Table Sorted by Function
| Function | ATmegaxx8 Pin | Arduino Pin |
|---|---|---|
| free digital I/Os (x3) (remove PC5 jumper to free digital pin 19) | PD0, PD1, PC5 | digital pins 0, 1, 19 |
| free analog inputs (if you remove jumpers, x3) | PC5, ADC6, ADC7 | analog inputs 5 – 7 |
| motor 1 (left motor) control (A and B) | PD5 and PD6 | digital pins 5 and 6 |
| motor 2 (right motor) control (A and B) | PD3 and PB3 | digital pins 3 and 11 |
| QTR-RC reflectance sensors (left to right, x5) | PC0 – PC4 | digital pins 14 – 18 |
| red (left) user LED | PD1 | digital pin 1 |
| green (right) user LED | PD7 | digital pin 7 |
| user pushbuttons (left to right, x3) | PB1, PB4, and PB5 | digital inputs 9, 12, and 13 |
| buzzer | PB2 | digital pin 10 |
| LCD control (RS, R/W, E) | PD2, PB0, and PD4 | digital pins 2, 8, and 4 |
| LCD data (4-bit: DB4 – DB7) | PB1, PB4, PB5, and PD7 | digital pins 9, 12, 13, and 7 |
| reflectance sensor IR LED control (drive low to turn IR LEDs off) | PC5 (through jumper) | digital pin 19 |
| user trimmer potentiometer | ADC7 (through jumper) | analog input 7 |
| 2/3rds of battery voltage | ADC6 (through jumper) | analog input 6 |
| ICSP programming lines (x3) | PB3, PB4, PB5 | digital pins 11, 12, and 13 |
| reset pushbutton | PC6 | reset |
| UART (RX and TX) | PD0 and PD1 | digital pins 0 and 1 |
| I2C/TWI | inaccessable to user | |
| SPI | inaccessable to user | |
Pin Assignment Table Sorted by Pin
| ATmegaxx8 Pin | 3pi Function | Notes/Alternate Functions |
|---|---|---|
| PD0 | free digital I/O | USART input pin (RXD) |
| PD1 | free digital I/O | connected to red user LED (high turns LED on) USART output pin (TXD) |
| PD2 | LCD control line RS | external interrupt 0 (INT0) |
| PD3 | M2 control line | Timer2 PWM output B (OC2B) |
| PD4 | LCD control line E | USART external clock input/output (XCK) Timer0 external counter (T0) |
| PD5 | M1 control line | Timer0 PWM output B (OC0B) |
| PD6 | M1 control line | Timer0 PWM output A (OC0A) |
| PD7 | LCD data line DB7 | connected to green user LED (high turns LED on) |
| PB0 | LCD control line R/W | Timer1 input capture (ICP1) divided system clock output (CLK0) |
| PB1 | LCD data line DB4 | user pushbutton (pressing pulls pin low) Timer1 PWM output A (OC1A) |
| PB2 | buzzer | Timer1 PWM output B (OC1B) |
| PB3 | M2 control line | Timer2 PWM output A (OC2A) ISP programming line |
| PB4 | LCD data line DB5 | user pushbutton (pressing pulls pin low) Caution: also an ISP programming line |
| PB5 | LCD data line DB6 | user pushbutton (pressing pulls pin low) Caution: also an ISP programming line |
| PC0 | QTR-RC reflectance sensor | (drive high for 10 us, then wait for line input to go low) sensor labeled PC0 (leftmost sensor) |
| PC1 | QTR-RC reflectance sensor | (drive high for 10 us, then wait for line input to go low) sensor labeled PC1 |
| PC2 | QTR-RC reflectance sensor | (drive high for 10 us, then wait for line input to go low) sensor labeled PC2 (center sensor) |
| PC3 | QTR-RC reflectance sensor | (drive high for 10 us, then wait for line input to go low) sensor labeled PC3 |
| PC4 | QTR-RC reflectance sensor | (drive high for 10 us, then wait for line input to go low) sensor labeled PC4 (rightmost sensor) |
| PC5 | analog input and digital I/O | jumpered to sensors’ IR LEDs (driving low turns off emitters) ADC input channel 5 (ADC5) |
| ADC6 | dedicated analog input | jumpered to 2/3rds of battery voltage ADC input channel 6 (ADC6) |
| ADC7 | dedicated analog input | jumpered to user trimmer potentiometer ADC input channel 7 (ADC7) |
| reset | reset pushbutton | internally pulled high; active low digital I/O disabled by default |









