I needed a servo tester so I built one with parts I had on hand. Might be rather difficult to build your own as I have no clue where I originally got the potentiometer.
Components required
Electric parts
- Arduino Nano clone (used “old bootloader” setting)
- Pin Headers for servo hookup
- XT60 Male Plug
- 0.96in 128x64 OLED screen module
- Momentary switches (2x, with lever arms)
- Potentiometer slider
- 4cm by 6cm prototyping blank PCB
- Various resistors for voltage divider and pull-down on buttons
- Wires and JST plugs (optional)
Non electric parts
- Filament. Two colors makes it look better
- M3x8 Socket head machine screws (2x)
- M2x5 Socket head machine screws (4x)
- M3x5 Grub/Set screw (1x)
- Hot Glue
- Labelmaker stickers
Assembly instructions
I'd call this a “moderate” difficulty project. You need to have some electronics chops.
- 3D print components (Case top, case bottom, buttons (2), slider knob). Will need supports, and removing them will be a bit of a pain.
- Assemble the electronics PCB
- Solder on switches, headers for screen, and pot.
- Solder on JST female plugs (I used one 5x for digital IO and one 2x for power)
- Connect it all. Make sure to use pulldown/pullup resistors on the switches and construct a voltage divider on the pot as necessary
- Create cables and wire up to Arduino to test
- Screw electronics PCB to top plate with M2 screws. Beware, fragile!
- Load software, power on, and fine-tune display window alignment. Secure with hot glue
- Add pin headers to bottom half and XT60 plug. Secure with hot glue / set screw
- Use wire, connect all ground and V+ pins on servo header, wire to + and - of XT60, and connect to Arduino Nano vin/ground
- Connect all servo signal pins to arduino D2 - D9
- Secure pin header with hot glue and install arduino (press fit)
- Assemble case. Secure with M3 screws.
- Enjoy!
Software
The software is somewhat limited because the Arduino Nano is weak AF. This code runs at the edge of what the microcontroller can do, particularly from a memory perspective.
Current features are…
- Control 8 servos!
- Toggle servos on and off
- Control servos
- Holds servo values while others are being adjusted
- Quickly see which servos are on on main menu
- Easily turn off one or all servos from main menu
- Safety: when jumping to an active servo, user must first “pickup” current servo location
- Power-Loss resistant: Servo on/off states and values saved in EEPROM
I was planning on implementing more features (see empty settings menu) but in the end, this is a tool, and the utility of these extra features was too small compared with the challenge of squeezing them into the very limited remaining software space.
Tags
The author marked this model as their own original creation.