Skip to content

Supported Hardware

Where to Buy Components

Note: These are not the only possible places to buy components. These are just some general starting points.

Sources

Adafruit - Sell many custom microcontroller boards and sensor / motor controller breakout boards. Also sell Raspberry Pi computers and various components such as motors.

SparkFun - Similar to Adafruit, sell many custom sensor / motor controller boards. Sell Arduinos and custom microcontroller boards as well as Raspberry Pi computers, motors, and various other components.

Digikey - Sell various electronic chips and components. Also stock most / all Adafruit parts (and usually allow back ordering).

Mouser - Sell various electronic chips and components. Also stock many Adafruit parts (and usually allow back ordering).

Amazon - Good source for "common" parts being used. Sometimes motors and some sensor boards can be found. Mostly good for "generic" type parts and common parts.

Banggood - Stocks many items to be purchased online. Similar to Amazon, but slow shipping from China. Sometimes cheaper prices than Amazon and sometimes slightly different availability.

DFRobot - Provide many robot kits and components. The kits often include electronics that are not easily usable with the ArPiRobot framework, but the robot chases can be useful. Additionally, some sensors and motors are useful.

Robotshop - Stock many components, including many DFRobot motors with cheaper shipping.

Arduino Store - This is sometimes the only place to easily find some Arduino boards.

Note: In many cases, the components listed below are examples of a type of product. The linked items are intended to serve as examples and are not endorsements of a specific item / specific items.

Mechanical Components

Base / Frame / Chassis

Sometimes, kits are used for the robot's base / frame / chassis, however this is also frequently custom built. Some kits are linked here. This is not a complete list of kits. Amazon is a good place to look for chassis kits. DFRobot also has several custom kits available.

Kits
Chassis Kit Description Link(s)
Generic 2WD Acrylic This is a simple chassis cut out of acrylic. It is semi-decent quality (for acrylic), however acrylic will crack over time. Additionally, the space for electrical components is relatively small. This is decent for a low cost, simple build with relatively few sensors, but won't scale well to more complex robots. Often comes as a kit including motors, wheels, a AA battery pack, and mounting hardware. Amazon Source 1
Amazon Source 2
Amazon Source 3
Generic 4WD Acrylic This is a simple chassis cut out of acrylic. It is semi-decent quality (for acrylic), however acrylic will crack over time. the two layers allow a little extra space for electrical components compared to the 2WD kit linked above, however space is still limited. Often comes as a kit including motors, wheels, a battery pack, and mounting hardware. However, usually comes with a 4x AA battery pack, which is barely sufficient for a 4WD robot. 5 AA batteries are highly recommended instead. There are also variations that include mecanum wheels. Amazon Source 1
Amazon Source 2
Amazon Source 3
Amazon Source 4
Banggood Source 1
Banggood Source 2
DFRobot 4WD (Pirate) Good quality Aluminum robot chassis including 4 motors. Motors included are a 1:120 gear ratio as opposed to the more common 1:48 gear ratio. Provides ample space for electrical components, but not much space for more complex mechanical systems. DFRobot Shop

Motors and Wheels

The list below includes commonly used motors. Any motor should be usable, provided it is usable with the motor driver and power source used. The power source will need to be of a sufficient voltage and the motor controller (motor driver) will need to be able to supply enough current for the motor.

Motors
Motor Description Link(s)
TT Motor 1:48 Commonly available low cost motors with a plastic gearbox with a double-D output shaft. Most often, these have a 1:48 gear ratio and are constructed with plastic gears. These motors are generally listed as being 3V to 6V motors (but are often run up to 9V without issue). These motors are relatively low current, small, and not too powerful, however are sufficient for a small robot's drive system. Sometimes these motors come with wheels and / or wires pre-soldered to the motor leads. Other times, they do not. These also sometimes come in multi packs. Amazon Source 1
Amazon Source 2
Amazon Source 3
Amazon Source 4
Adafruit
Banggood Source 1
Banggood Source 2
Banggood Source 3
Robot Shop Source 1
Robot Shop Source 2
TT Motor 1:120 Similar to 1:48 version, but harder to find. All gearbox components are still plastic, so despite the higher gear ratio, these cannot withstand too much torque. These are often impossible to source from Amazon or Banggood sellers. Best option is to search "TT Motor 1:120" on ebay or Aliexpress. Links provided to a search not specific parts as sellers change often. Double check gear ratio before ordering. ebay
AliExpress
Angled TT Motor Similar to other TT Motors above, but output shaft is 90 degrees angle from motor input shaft. These are harder to find. These are also usually 1:120 gear ratio. Robot Shop
DFRobot
Various Pololu Plastic Gearmotors Similar in form factor and capabilities to the common "TT" motors, but have a different output shaft. Pololu
Various Pololu Metal Gearmotors May options including larger higher voltage / current motors capable of generating / withstanding higher torque. Output shafts vary. Pololu
TT Motor Bi-Metal Similar to TT Motor, but with some metal internal gears. 1:90 gear ratio. Note: these have no rear output shaft making encoders more difficult. Adafruit
TT Motor All-Metal Similar to TT Motor ,but all internal gears are metal. 1:90 gear ratio. Note: these have no rear output shaft making encoders more difficult. Adafruit
Wheels
Wheel Description Link(s)
Generic Yellow & Black TT Motor Wheel Commonly sold with motors or drive chassis kits. Hard to find without motors. Links provided only for wheels alone. On Amazon and Bangood motors will usually come with wheels. Searching "TT Motor Wheel" on AliExpress seems to be the best option to find the wheels without motors. AliExpress Source 1
AliExpress Source 2
AliExpress Source 3
AliExpress Source 4
AliExpress Source 5
Orange TT Motor Wheel Similar to generic wheel, but grippier rubber. Adafruit
Thin White TT Motor Wheel Thinner TT Motor wheel. Adafruit
Skinny TT Motor Wheel Even thinner TT Motor wheel. Adafruit
Various Pololu Wheels Various wheels that work with Pololu Motors Pololu
TT Motor Mecanum Wheels Mecanum wheels that work with TT Motors. Adafruit: 48mm Left
Adafruit: 48mm Right
Robot Shop: 48mm Set
Robot Shop: 60mm Set

Electrical Components

Main Computer

Typically, a Single Board Computer (SBC) is used as the robot's main computer. Often, Raspberry Pi boards are used as they are low cost and well supported. However, other SBCs are supported too (see lists below).

When selecting a SBC to use as the main computer consider not only the specs of the computer, but the following items as well - Size - Power requirements (current required and how power is connected) - Interface Options (USB ports, builtin wifi, types of headers) - Compatibility with Raspberry Pi Hats - Many SBCs have a 40-pin header matching the raspberry pi for hat compatibility (pin numbers may differ though). Some SBCs also have a 26-pin header which matches part of the raspberry pi pinout and can be used with some, but not all hats.

Note that a board with a WiFi adapter is required for full functionality. Most supported boards have builtin wifi adapters, however if they do not a USB wifi adapter will be needed.

Raspberry Pi Boards

There are thee main types of Raspberry Pi boards

  • Model B boards: "Full size" Raspberry Pis. Small, but larger than the other options.
  • Model A boards: Smaller boards (size of a Pi hat). Also generally slightly less powerful than same generation Model B board.
  • Zero series boards: Very small boards (about half the size of a Model A board). Generally significantly less powerful than similarly aged Model B / Model A boards.

The following boards are recommended for use with the ArPiRobot Framework

Board Number of Cores RAM 64-bit WiFi Power Supply Link
Raspberry Pi 4 Model B 4 1GB - 8GB Yes Yes 5V@2.4A Link
Raspberry Pi 3 Model A+ 4 512MB Yes Yes 5V@2.1A Link
Raspberry Pi 3 Model B 4 1GB Yes Yes 5V@2.4A Link
Raspberry Pi 3 Model B+ 4 1GB Yes Yes 5V@2.4A Link
Raspberry Pi Zero 2 W 4 512MB Yes Yes 5V@2.1A Link
Raspberry Pi Zero W 1 512MB No Yes 5V@1.5A Link

Note that the Raspberry Pi Zero W is a single core board. As such, it is only recommended for simple robots.

Orange Pi Boards

The following Orange Pi boards are supported. Other boards are not officially supported (and would require a custom OS image).

Board Number of Cores RAM 64-bit WiFi Power Supply Link
Orange Pi Lite 4 1GB No Yes 5V@2.1A Link
Orange Pi 3 LTS 4 2GB Yes Yes 5V@2.4A Link

Note that the Orange Pi Lite is compatible with Raspberry Pi hats (40-pin header). This header is however oriented "backwards" compared to a Raspberry Pi, meaning hats do not sit over the SBC, but hang off the SBC.

Note that the Orange Pi 3 LTS is compatible with some Raspberry Pi hats (26-pin header). Most I2C and SPI hats should work (including Adafruit Motor Hat), but check pinouts to be sure.

Computer Power Sources

Generally, it is easiest to have two power sources on the robot. This avoids scenarios where motors changing speed cause a voltage drop that reboots the computer. Often, the computer power source is a USB battery pack.

When selecting a power source, be aware that it needs to be able to supply a sufficient amount of current. The current requirement mostly depends on the main computer. In general, using a 2.4A power source is a safe option, however double check the tables in the previous section to see the recommended current rating for each supported board. It is ok to use a power source that has a higher current rating, but lower is not recommended.

Note that recommendations in the tables above are lower than manufacturer recommendations in many cases because the SBC will not be driving a display on the robot and often has fewer USB devices connected.

Finally, also make sure you have a way to connect power to your main computer. Most SBCs are powered either by a micro USB port or a USB C port. To use most of the battery packs linked below you will need a USB type A (rectangle type) to micro B or USB A to USB C cable. Most battery packs come with a USB A to micro B cable. A USB A to USB C cable will have to be purchased separately. Also, some SBCs can or must be powered by a DC barrel jack connector (eg Orange Pi Lite must be). In this case make sure to buy a USB A to barrel jack connector sized correctly for the board.

USB Battery Packs

Higher capacity battery packs will last longer on a single charge.

Battery Pack Capacity Output Current (max) Link(s)
Anker Astro E1 5200 mAh / 6700mAh 2.1A Amazon (5200mAh)
Amazon (6700mAh)
EnergyCell Compact 10000 mAh 2.4A Amazon
Miday Portable Charger 10000 mAh 2.4A Amazon
Miday Portable Charger 5000 mAh 2.4A Amazon
Other Options

Voltage regulators can be used to regulate power from the same source that powers motors (or another unregulated source). Most single board computers require a 5V supply capable of the currents indicated above. Keep this in mind when selecting a regulator. Also be aware of the regulator's input voltage requirements. Some example regulators are listed below

There are also other batteries designed for use with a raspberry pi. Some are listed below.

Supported Motor Drivers

Motor drivers are connected directly to the SBC. There are multiple types of motor drivers listed below.

PWM Motor Drivers

When used with the ArPiRobot Core Library, the PWM signals will be software generated. As such, it is recommended to use other motor drivers if you have many motors (more than 4-6) or if exact speeds are critical.

Motor Driver Number of Motors Motor Voltage Max Current per Motor Links
DRV8833 2 2.7V - 10.8V 1.2A Adafruit Breakout
Pololu Breakout
TB6612 2 4.5V - 13.5V 1.2A Adafruit Breakout
SparkFun Breakout
L298N 2 5V - 12V 2A Generic Module (Amazon 1)
Generic Module (Amazon 2)

Note: The L298N has a voltage drop of about 1V from input power to motor outputs at full speed. As such, it is generally better to use other drivers.

I2C Motor Drivers

These I2C motor drivers connect to the SBC via I2C and have onboard PWM generators (avoiding the software PWM problem).

Motor Driver Number of Motors Motor Voltage Max Current per Motor Links
Adafruit Motor Hat 4 4.5V - 13.5V 1.2A Adafruit
Adafruit Motor Bonnet 4 4.5V - 13.5V 1.2A Adafruit
Geekworm Motor Hat 4 4.5V - 13.5V 1.2A Amazon
Geekworm Site

Note: The Adafruit Hat and Bonnet are identical except for size / form factor. The Geekworm hat is built around the same chips as the Adafruit hat and is very similar.

Motor Power Sources

The "easiest" power source for motors is a AA battery pack. At least 4AA batteries are recommended for two TT motors and 5 AA batteries for 4 TT motors. When using TT motors, more than 6AA batteries is not recommended (or 8 if using rechargeable). Other motors may require different voltages / current draw and may need different types or numbers of batteries.

Note: Make sure the voltage of the power source you are using is acceptable for the motor driver you are using.

AA Battery Packs

Note: these are just holders for the batteries. Batteries are not included. If using rechargeable AA's it is recommended to use one or two more batteries than the minimum recommended above (rechargeable are 1.2V per not 1.5V per).

Item Link(s)
4x AA Holder Amazon 1
Amazon 2
Amazon 3
Adafruit 1
Adafruit 2
5x AA Holder Amazon 1
Amazon 2
Adafruit
6x AA Holder Amazon 1
Amazon 2
Adafruit
8x AA Holder Amazon 1
Amazon 2
Amazon 3
Adafruit

Other types of batteries can also be used. Typically, NiMH batteries are the best option (from a safety standpoint), but LiPo batteries are usable too (however more caution must be used with them).

Other Batteries

Supported Sensor Coprocessors

Officially supported sensor coprocessors must run the ArPiRobot Arduino Firmware. The following boards are officially supported by the firmware. However, other boards will likely work, but would require firmware modifications.

Supported Boards

Notes on Arduino Compatible Boards:

  • Official Arduino boards are open source hardware, meaning they can be easily copied. Thus, many "clones" of official boards exist on the market (often same board name with a different brand name). Clones are generally fine, however may cut corners to reduce cost. Additionally, there are some counterfeit boards which try to pass themselves off as official Arduino boards. These should be avoided (buy from reputable seller / site; if buying from Amazon, check the seller).
  • Many non-Arduino brand boards are compatible with Arduino software. Some of these are officially supported on the list below
  • Additionally, some non-Arduino brand boards are compatible with other boards (eg some boards are "Arduino Uno Compatible"). If a board is compatible with a supported model, it should work too.
  • Also, some boards come with headers soldered, others come with loose headers (that can be soldered), and some do not come with headers. Be aware of this when buying a board. There are also sometimes variants with headers pre-soldered (Adafruit and SparkFun often sell soldered header versions that may not be linked here).

Officially supported list:

Note: This list should be considered incomplete. This list includes board that have been tested / are known to work, but many other "compatible" boards should also work. For example, other boards that are "Arduino Uno Compatible" will work. Also, other clones should be compatible.

Board Description Link(s)
Arduino Nano Low power board with a small size. Same chip as Arduino Uno. Arduino Store
Amazon
Arduino Uno Low power board, commonly included in kits. Arduino Store
SparkFun
Amazon
Arduino Nano Every Slightly more powerful than original Nano; similar size and pinout. Arduino Store
SparkFun
Amazon
Teensy 3.1 / 3.2 Small, but powerful chip. Capable of handling more sensors. PJRC Store
Adafruit
SparkFun
Raspberry Pi Pico Low cost, small, and powerful. Capable of handling many sensors. Raspberry Pi Site
Adafruit
SparkFun
Feather S2 ESP32 based board with feather form factor. Small and powerful processor. Note: wireless features are not used. Adafruit
Unexpected Maker Shop
Adafruit Metro 328 Arduino Uno compatible board of a similar size to Arduino Uno. Adafruit
Adafruit Metro Mini 328 Arduino Uno compatible board of a similar size to Arduino Nano. Adafruit

Supported Sensors

Most sensors are only supported using an sensor coprocessor. This is either due the how the sensors connect or requirements regarding timing when working with the sensors. However, there are a few sensors that are supported connected directly to the main computer.

Coprocessor Sensors
Sensor Description Parts (Links)
Single Channel Encoders Used to determine how far something (such as a motor) has rotated or how fast it is rotating. Single channel encoders have only one signal channel and are capable only of determining distance or speed, but not the direction of rotation. Often constructed using a photo interrupter and a slotted disk. TT Motor Disk - Adafruit
Photo Interrupter (No breakout)
Breakout Board - Amazon 1
Breakout Board - Amazon 2
Breakout Board - Amazon 3
Breakout Board - Amazon 4
Quadrature Encoders Used to determine how far something (such as a motor) has rotated or how fast it is rotating. Quadrature encoders have two signal channels and are capable of distinguishing direction of rotation. Sometimes these are magnetic and sometimes these are optical (two photo interrupters with a slotted disk and precise positioning). TT Motor w/ Builtin Encoder - DFRobot
TT Motor (L) w/ Builtin Encoder - DFRobot
TT Motor w/ Builtin Encoder - RobotShop
TT Motor (L) w/ Builtin Encoder - RobotShop
Custom Quadrature Encoder for TT Motor
Analog Voltage Monitors Measure a voltage on a sensor coprocessor's analog input pins. A voltage divider can be used to measure larger voltages. Voltage divider modules also exist and can be used instead of loose resistors. Voltage Divider Module - Amazon 1
Voltage Divider Module - Amazon 2
Voltage Divider Module - Amazon 3
Voltage Divider Module - Amazon 4
4-Pin Ultrasonic Sensors Use sound to measure the distance to an object the sensor is facing. This version has 4 pins including a "trigger" and "echo" pin. Standard HC-SR04
5V/3V Compatible Device
HC-SR04 Amazon 1
IR Reflection Detector Often used to detect dark lines on a light surface (line follower robots). Measure IR light reflected off a surface. Longer Range Module - Amazon 1
Longer Range Module - Amazon 2
Shorter Range Module - Amazon 1
Shorter Range Module - Amazon 2
L3GD20H + LSM303 IMU 9DOF sensor (3 axis gyroscope + 3 axis accelerometer + 3 axis magnetometer). Intended to be used with Adafruit's old 9DOF IMU board Adafruit
FXOS8700 + FXAS21002 IMU 9DOF sensor (3 axis gyroscope + 3 axis accelerometer + 3 axis magnetometer). Intended to be used with Adafruit's NXP 9DOF IMU board Adafruit
MPU-6050 IMU 6DOF sensor (3 axis gyroscope + 3 axis accelerometer). This is a common low cost IMU chip. Adafruit Breakout Board
Cable for Adafruit Board
Sparkfun Breakout Board
Main Computer Sensors
Sensor Description Parts (Links)
INA260 Voltage + Current Sensor Voltage and current sensor capable of interfacing directly with the main computer (good for robots without a sensor coprocessor). Also provides higher accuracy readings than are typically possible with an Analog Voltage Monitor on a sensor coprocessor. Adafruit

Tools & Miscellaneous

Other Electrical Components
Item Purpose Link(s)
LEDs Indicators to user. Connect to main computer's GPIO pins. LEDs require a current limiting resistor. Adafruit 5mm
Amazon 5mm - 1
Amazon 5mm - 2
SparkFun 5mm Builtin Resistor
Micro SD Card Storage for main computer OS. Generally A1 or A2 rated cards are faster when running an OS from the card. SanDisk Ultra (A1) - Amazon
SanDisk Extreme (A2)
Samsung Evo Select (A1 / A2)
USB Cables Connect devices (power to main computer, sensor coprocessor to main computer, etc) A to Mini B (6 in)
A to Micro B (6 in)
A to Mini B (3 ft)
A to Micro B (3 ft)
A to C (6 in)
A to C (3 ft)
Orange Pi Lite Power Cable Connect USB battery pack power to Orange Pi Lite via DC barrel jack port. Orange Pi Site
Amazon - 1
Amazon - 2
Amazon - 3
USB OTG Adapter Used to connect a USB device to a micro-B OTG host port (eg on Pi Zero). Adafruit (No Cable)
Adafruit (Cable)
Amazon - 1
Amazon 2
Adafruit (Micro B to Micro B)
Barrel Jack Connectors Used to attach barrel jack connectors to jumper wires. Useful for motor battery power input. Adafruit (Female)
Amazon (Multipack) - 1
Amazon (Multipack) - 2
Jumper Wires Premade wires with "DuPont" headers. Useful for connecting sensors. Often come in packs includeing male / male wires, female / female wires, and male / female wires. Amazon - 1
Amazon -2
Adafruit
Wire 28AWG Useful for making custom "DuPont" jumper wires. Will need the headers, pins, and crimper (see following entries). Also useful to connect low current motors (eg TT motor). Amazon - 1
Amazon - 2
"DuPont" Kit Includes pins and housings for "DuPont" connectors. Some kits come with a crimper and some wire too. Housings and pins can also be purchased separately. Amazon - 1
Amazon - 2
"Dupont" Crimper Used to crimp "DuPont" pins to wires. Amazon - 1
Amazon - 2
Amazon - 3
Male .1 inch Header Pins Soldered onto many boards to connect wires or breadboard. Often come with boards, but not always. Adafruit
Amazon - 1
Amazon - 2
Logic Level Shifter Used to adjust signals between voltage levels. Necessary to connect some sensors to some boards (eg 5V sensors to 3.3V boards). Note that not all shifters support logic level frequencies (PWM, I2C, SPI, UART, etc) and may only work for lower frequency GPIOs. Parts linked here are bidirectional level shifters. Adafruit - 1
Adafruit - 2
Amazon - 1
Amazon - 2
Switches Often used to switch motor battery on and off. Adafruit - 1
Adafruit - 2
Adafruit - 3
Mini Breadboard Used to connect electronics without soldering. Very small size. Adafruit
Amazon - 1
Amazon - 2
Half Size Breadboard Used to connect electronics without soldering. Half of standard size. Adafruit
Amazon - 1
Amazon - 2
Full Size Breadboard Used to connect electronics without soldering. Standard size. Adafruit
Amazon - 1
Amazon - 2
USB / UART Converter Useful to connect to main computer by UART (debugging, fixing things, etc). Not usually necessary, but useful to have at times. Often sold as a "Console Cable", having a blue USB connector housing. DO NOT BUY THIS TYPE OF CABLE FROM AMAZON. THE PL2303 ONES SOLD THERE GENERALLY DO NOT WORK IN RECENT YEARS! Adafruit is the only source that still has a functional version (different chip). The adapters linked here do work and are 3.3V devices (suitable for use with Raspberry Pi boards). Adafruit
Amazon - 1
Amazon - 2
SparkFun
Tools and Assembly Components
Item Purpose Link(s)
Hook and Loop Tape Commonly wrongly referred to as "Velcro". Useful for attaching electronics to the robot. WARNING: Do not apply this direclty to PCBs. Some adhesives are conductive, corrosive, or may become so over time. As such, a layer of electrical tape should be between any PCB and adhesive on hook and loop tape. Amazon -1
Amazon - 2
Twist Ties Useful for cable management. Plastic ones hold up better than paper ones. Amazon - 1
Amazon - 2
Zip Ties Useful for cable management or attaching components. Amazon - 1
Amazon - 2
Hot Glue + Glue Gun Hot glue is useful for attaching components. It is also not conductive or corrosive so it can be placed directly on PCBs. Amazon - 1
Amazon - 2
Amazon - 3
Super Glue Useful for attaching parts when hot glue is not strong enough. Comes in gel and liquid forms. The gel is easier to use, but often more expensive. Amazon (Gel) - 1
Amazon (Liquid) - 1
Amazon (Gel) - 2
Amazon (Liquid) - 2
Electrical Tape Useful for cable management and anything where adhesives need to contact electronics. Amazon - 1
Amazon - 2
Ruler Useful for measuring for placements. Not for precision measurements. Amazon - 1
Amazon - 2
Small Screwdriver Kit Useful for working with small screws found in screw terminals and other parts. Amazon - 1
Amazon - 2
Amazon - 3
Solder Iron Used to attach electronics, install headers on PCBs, etc. Sometimes come in kits. Solder is also required. Note: Some of the kits linked here are cheap. They should work for simple jobs, but won't work as well as a slightly more expensive option. Also note that these cheaper kits often include lead solder. Lead solder is easier to work with than leadless (and requires lower temperatures), but it is lead. Amazon (Cheap Kit) - 1
Amazon (Cheap Kit) - 2
Adafruit - Iron
Adafruit - Lead Solder
Adafruit - Leadless Solder
Multimeter Useful for debugging electrical problems. Also just a useful tool to have around. Amazon - 1
Amazon - 2
Amazon - 3
Wire Stripper Used to remove insulation from wires. Amazon - 1
Amazon - 2
Amazon - 3