-
Notifications
You must be signed in to change notification settings - Fork 6
Electronics ‐ Boards, Arduino, and Connectors
This page describes the process for hand-building a servo control board based on the Arduino Nano RP2040 Connect Board. When completed, the board nicely fits inside the forearm of the DexHand and has enough plugs and PWM channels for all 18 servos in the DexHand.
Here are the components used in assembling the board and where you can obtain them:
Component Name | Source |
---|---|
Arduino Nano RP2040 Connect | Available from Arduino.cc |
6cm x 4cm Universal Protoboard | Available from Adafruit |
Female 0.1in Pitch Headers | Available from Adafruit |
Male 0.1in Pitch Headers | Available from Adafruit |
Connector Wiring | Any small wire should do the trick Consider a slightly heavier gauge for the power wires (20 gauge as a ballpark) |
The basic gist of what we're trying to do is pretty straight forward. Each servo has 3 pins - +5v, GND, and Signal (PWM control to set the angle). We use our protoboard to create a 5V rail and a GND rail, and then link each of the GPIO pins from the micro to the Signal Wire of the servo.
The protoboard we selected is just large enough to fit all of this with the Arduino Nano RP2040 Connect board in one tight package. Once mounted inside the arm, you can plug your servo leads in and have everything connected in a tidy way.
The image above shows what the board looks like when it's finished, and shows how the servo plugs in to the board. It's pretty straight forward and easy to build. Full details follow below.
Take the male headers provided with the Arduino Nano and use them as a template to cut matching female headers.
Fit everything together temporarily and align to the breadboard. You'll end up with 3 vertical holes on one side, and 4 on the other if you use the specified breadboard. This is ok - just how it works out.
Then flip the board over and solder the pins down on the bottom of the breadboard
This is the finished step.

The goal of this step is to solder on rows of male headers for our servos to plug onto as pictured below. The servo wiring is YELLOW = PWM Signal, RED = +5V, BLACK = Ground.

Start by cutting 6 rows of male headers to length to match the pins of the Arduino Nano. You may find it helpful to hold them in place using some spare female header strips to keep things lined up, and to hold them in place when you flip the board over to solder.
Solder the headers into place, bridging the top pin of each header to the corresponding pin on the female headers from the previous step. This bridges the pins from the Arduino with the top row of header pins. These pins will be used to control the servos with PWM.

This is optional, but we chose to pull out the pins from the GND and VIN pins on the Arduino from the points where it might be easy to accidentally short out the board when plugging and unplugging things.
To do this, pull the +5V pins (middle row) from the headers with GND pins on the Arduino, and pull the GND pin (bottom row) from the VIN pin row.

Following that, solder all of the remaining individual pins down, and then use solder to bridge the rows to form the rails.
The Arduino Nano has GND pins on either side of the board, so we connect those to our rails to create our GND. These pins can be identified by the white block silkscreen on the top of the Arduino board. Solder jumper wires between the corresponding pins and the GND rail (lower rail) on each side of the board.
To keep things simple, we run a +5V power wire (using white and red in this photo) to each of the +5V rails on the board (middle row of pins). GND can be connected to either rail as they are bridged via the Arduino board pins.

Using the continuity tone function on your Digital Multimeter, check connection between all the Arduino Pins and the top row of servo pins, the +5V rail, and the GND rail. Also check for any shorts.

If you're using the IOT Design Shop modified forearm STL file, there will be a set of integrated standoffs for mounting the board in your DexHand.
