OSH: Schematics

Arduino Robot is open-source hardware! You can build your own board using the following files:

EAGLE FILES IN .ZIP

Power

The Arduino Robot can be powered via the USB connection or with 4 AA batteries. The power source is selected automatically. The battery holder holds 4 rechargeable NiMh AA batteries.

NB : Do not use non-rechargeable batteries with the robot

For safety purposes, the motors are disabled when the robot is powered from the USB connection. The robot has an on-board battery charger that requires 9V external power coming from an AC-to-DC adapter (wall-wart). The adapter can be connected by plugging a 2.1mm center-positive plug into the Motor Board's power jack. The charger will not operate if powered by USB. The Control Board is powered by the power supply on the Motor Board.

Memory

The ATmega32u4 has 32 KB (with 4 KB used for the bootloader). It also has 2.5 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library). The Control Board has an extra 512 Kbit EEPROM that can be accessed via I2C. There is an external SD card reader attached to the GTFT screen that can be accessed by the Control Board's processor for additional storage.

Input and Output

The Robot comes with a series of pre-soldered connectors. There are a number of additional spots for you to install additional parts if needed. All the connectors are labelled on the boards and mapped to named ports through the Robot library allowing access to standard Arduino functions. Each pin can provide or receive a maximum of 40mA at 5V. Some pins have specialized functions :

Control Board TK0 to TK7: these pins are multiplexed to a single analog pin on theControl Board's microprocessor. They can be used as analog inputs for sensors like distance sensors, analog ultrasound sensors, or mechanical switches to detect collisions.

Control Board TKD0 to TKD5: these are digital I/O pins directly connected to the processor, addressed using Robot.digitalRead() and Robot.digitalWrite) functions. Pins TKD0 to TKD3 can also be used as analog inputs with Robot.analogRead() Note: if you have one of the first generation robots, you will see that the TKD* pins are named TDK* on the Robot's silkscreen. TKD* is the proper name for them and is how we address them on the software.

Motor Board TK1 to TK4: these pins are named in software as B_TK1 to B_TK4, they can be digital or analog input pins, and support Robot.digitalRead(), Robot.digitalWrite) andRobot.analogRead().

Serial Communication: The boards communicate with each other using the processors' serial port. A 10-pin connector connects both boards carries the serial communication, as well as power and additional information like the battery's current charge.

Control Board SPI: SPI is used to control the GTFT and SD card. If you want to flash the processor using an external programmer, you need to disconnect the screen first.

Control Board LEDs: the Control Board has three on-board LEDs. One indicates the board is powered (PWR). The other two indicate communication over the USB port (LED1/RX and TX).LED1 is also accessible via software.

Both boards have I2C connectors available: 3 on the Control Board and 1 on the Motor Board.

Control Board Pin Mapping ARDUINO LEONARDO ARDUINO ROBOT CONTROL ATMEGA 32U4 FUNCTION REGISTER D0 RX PD2 RX RXD1/INT2 D1 TX PD3 TX TXD1/INT3 D2 SDA PD1 SDA SDA/INT1 D3# SCL PD0 PWM8 /SCL OC0B / SCL/INT0 D4 MUX_IN A6 PD4 ADC8 D5# BUZZ PC6 ??? OC3A /# OC4A D6# MUXA/TKD4 A7 PD7 FastPWM # OC4D/ADC10 D7 RST_LCD PE6 INT6/AIN0 D8 CARD_CS A8 PB4 ADC11/PCINT4 D9# LCD_CS A9 PB5 PWM16 OC1A /# OC4B/ADC12 / PCINT5 D10# DC_LCD A10 PB6 PWM16 OC1B / 0c4B/ADC13 / PCINT6 D11# MUXB PB7 PWM8 /16 0C0A/OC1C /# RTS/PCINT7 D12 MUXC/TKD5 A11 PD6 T1/# OC4D/ADC9 D13# MUXD PC7 PWM10 CLK0/OC4A A0 KEY D18 PF7 ADC7 A1 TKD0 D19 PF6 ADC6 A2 TKD1 D20 PF5 ADC5 A3 TKD2 D21 PF4 ADC4 A4 TKD3 D22 PF1 ADC1 A5 POT D23 PF0 ADC0 MISO MISO D14 PB3 MISO, PCINT3 SCK SCK D15 PB1 SCK, PCINT1 MOSI MOSI D16 PB2 MOSI, PCINT2 SS RX_LED D17 PB0 RXLED, SS/PCINT0 TXLED TX_LED PD5 HWB PE2 HWB