Robo Parts
A compilation of information about the parts the team uses over and over — what each one is good for, and where its datasheet, CAD model and Arduino library are. Worth reading before ordering anything.
Parts we use again and again
None of this is a rule — it is what the team has ended up with after a decade of building, and what it learned about each one along the way.
RS-550
The DC motor to rule them all. Cheap, powerful for its size, and in enough of the team's robots that there is usually a spare in a drawer.
RB-POL-368
Somewhat expensive small motors, but the encoder is built in — which is worth a great deal when you want closed-loop control and do not want to mount a separate encoder on the shaft.
CUI rotary encoder
Reasonably cheap and fairly accurate. Capacitive rather than optical, so it puts up with the dust and swarf of a workshop better than most. Comes in an incremental version and a multi-turn absolute one.
- CUI Devices — rotary encoders
- Digi-Key — AMT102-V (incremental)
- Digi-Key — AMT213G-V (multi-turn absolute)
Massmind AS5134
Cheap and high speed. Hall effect rather than capacitive, so it reads a magnet on the end of the shaft — which makes it a good fit where there is no room for anything bigger. The team wrote the Arduino library for it.
- Massmind ENC2 page
- Arduino library (ours)
- AS5134 datasheet (PDF)
Roboclaw 2x7A
Smallish but nice. Drives two motors, closes the loop on encoders itself, and is configured over USB with the vendor's own program rather than by guessing at DIP switches.
- User manual (PDF)
- BMStudio (USB config, .exe)
- Arduino library (.zip)
Vex Victor SPX
For largish motors, and it speaks CAN — so a robot with several of them needs two wires down the chain rather than a pair to every controller. Built for FRC, which is why the example code below exists at all.
BTS7960
Cheap but fairly powerful. The module you buy is a pair of half-bridges on a board with a heatsink, and it will pass far more current than the L298N. The team wrote the Arduino library and drew the circuit diagram below.
- Arduino library (ours)
- Datasheet (PDF)
- Pinout
- Circuit diagram (ours)
L298N
Cheap, low current, and everywhere. It drops well over a volt across itself and gets hot doing it, so it is the wrong answer for anything with real motors — but it is the right answer for a first robot, and it is what Super Robo Time uses.
- Arduino library (ours)
- Datasheet (PDF)
XBee-Pro 900
Magical communications device. A pair of them behaves like a serial cable between two robots, or between a robot and a laptop, over a range no Wi-Fi link on a field will match. Configure both ends with XCTU before expecting anything to work.
- Digi-Key — XBP9B-DMWT-002
- XCTU (configuration software)
Nothing under that one yet.
Chips and boards
The AVR chips the team programs with the Arduino toolchain, and the two boards it uses most. The bare chips are for when a project outgrows a development board and wants its own PCB.
ATmega328p
The one to reach for first when a project needs its own board. Everything written for an Uno runs on it unchanged, and it comes in a through-hole package you can solder by hand.
- Pinout
- SMD pinout
- Datasheet (PDF)
ATmega2560
Far more pins, more flash and more RAM than the 328p, for when a robot has run out of all three. Surface-mount only, so a board using it has to be assembled rather than hand-stuffed.
- SMD pinout
- Datasheet (PDF)
ATTiny84
A small chip for a small job — reading a sensor, driving some lights, sitting on a board where an Arduino would not fit. Twelve usable pins, and it programs from the Arduino IDE with ATTinyCore installed.
ATTiny85
The smallest of the lot: five usable pins in a package the size of a grain of rice. Worth knowing about for the jobs that genuinely are that small.
Arduino Uno
The default board. If a project does not have a reason to be something else, it is an Uno, and there are enough of them in the lab to prototype with.
Arduino Mega
The Uno's larger sibling: many more pins and four hardware serial ports, which is usually the actual reason a robot ends up with one.
Programming a bare ATTiny from the Arduino IDE needs the boards package: SpenceKonde/ATTinyCore.
Found something better?
This page is only as good as the last person who updated it. If you used a part that belongs on here, or found one on here that turned out to be a mistake, say so — that is how the list stays worth reading.