Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
8 views112 pages

V2 Assembly Instructions

The document provides detailed instructions for setting up and assembling a Raspberry Pi-based project, including components like a display, camera module, audio HAT, and battery monitor. It covers the necessary steps for hardware connections, software configurations, and troubleshooting tips. Additionally, it includes assembly instructions for the robot's mechanical parts, ensuring proper alignment and functionality.

Uploaded by

Josue D. Arango
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views112 pages

V2 Assembly Instructions

The document provides detailed instructions for setting up and assembling a Raspberry Pi-based project, including components like a display, camera module, audio HAT, and battery monitor. It covers the necessary steps for hardware connections, software configurations, and troubleshooting tips. Additionally, it includes assembly instructions for the robot's mechanical parts, ensuring proper alignment and functionality.

Uploaded by

Josue D. Arango
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 112

Tars V2 – Assembly

Setup Core Components:


NOTE: Whenever adding/removing components to the Raspberry Pi, make sure
that it is shutdown AND unplugged to avoid damaging components.
Setup Raspberry Pi:
If you are working with a new Raspberry Pi and are new to the hardware, please
see these setup instructions: https://www.youtube.com/watch?
v=ZH6vfvRstfM&t=599s

From this point onwards, you should have a working Pi with Pi OS imaged onto the
machine.

Setup Active Cooler:


First install the active cooler on the raspberry pi with the instructions:
https://www.youtube.com/watch?v=uRvfN6HL6Tw&t=109s

You can ignore everything past 3:10.

Setup Display:

Connect the Hardware


 Use the provided DSI ribbon cable.
 Plug one end into the DSI0 port on the Raspberry Pi 5 (next to the Ethernet port).
o See this if you don’t know how to use DSI/CSI Connectors (IGNORE PAST
0:48)
 Plug the other end into the display.
 Ensure the ribbon is fully inserted facing the correct direction and the connectors are
firmly latched (tug the cable to test).

Reimage the MicroSD Card with Raspberry Pi OS (Bookworm)


 If you’ve already imaged your MicroSD Card please go to the next step.
 Download and install Raspberry Pi Imager on your personal machine.
 Insert your microSD card into your PC using a SD Card Reader.
 In Raspberry Pi Imager:
o Click “Choose OS” → select “Raspberry Pi OS (64-bit)” (Bookworm).
o Click “Choose Storage” → select your SD card.
o Click the gear icon (bottom-right) to open “Advanced Settings.”
 Enable SSH.
 Set Wi-Fi SSID/password (if not using Ethernet).
 Set hostname (e.g., tars.local).
 Create user (e.g., alex) with a password.
 Optionally skip the setup wizard.
o Click Save → then Write to flash the card.
⚠️If Windows shows a popup saying "You need to format the disk" — cancel it. That’s
normal.

⚙️3. Modify the config.txt File for DSI Display


 After flashing is complete, open the boot partition on your SD card (should show up
as a drive in File Explorer).
 Open the file: config.txt.
 Scroll to the bottom and add the following lines:

dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-waveshare-panel,7_0_inchC,dsi0
NOTE: You may already have the “dtoverlay=vc4-kms-v3d” line in your config.txt. In that
case, you DO NOT need to add it again.
 Save the file.
 Right-click the SD card and choose Eject.

Boot the Raspberry Pi


 Insert the microSD card into your Pi.
 Power on the Pi using the USB-C power supply.
 The screen should turn on within 30–90 seconds:
o The green LED will flicker during boot.
o The fan may kick in once the system is initialized.
o The display should eventually show the desktop or login screen.
 Touch input should work out of the box.

You can also change the orientation of the display.

Troubleshooting Tips
 If the screen stays black:
o Recheck your ribbon cable connection (both ends).
o Make sure you edited the correct DSI overlay in config.txt.
o Try waiting ~2–3 minutes for the Pi to fully boot.
 If the boot still fails:
o You can pull out the SD card, plug it back into your PC, and fix the config.txt. No
need to reflash unless you corrupted the OS.
Original Instructions

Setup Camera Module:


Stack the modules and plug the ribbon cable for the screen and camera.

 First power off the Pi 5 before connecting components.


 Connect the camera and pi with the ribbon cable according to the diagram below.
 Remember to do a tug test on the connections.

INCLUDEPICTURE
"https://docs.arducam.com/Raspberry-Pi-Camera/Low-Light/picture/Arducam_quick_start_guide_ov64
a40_picture_new_2.png" \* MERGEFORMATINET

 Verify Camera:
o Turn on the Raspberry Pi.
o In a terminal, list the detected cameras using:
 libcamera-hello --list-cameras

 Should see the OV5647 Camera connected.


o Test the camera using:
 libcamera-hello -t 0
 Ctrl+C once you are done.
o If you are having errors, check the ribbon cable face direction and connection.

Setup Hailo Module: (OPTIONAL)


If you are using a Hailo module, add the extra long headers and stack the hailo module on top
and connect the ribbon cable to the raspberry pi. You need to install the hailo libraries first.
sudo apt install hailo-all

Setup Audio HAT Module:

1. Power Off and Connect the Audio HAT


 Shut down your Raspberry Pi:
bash
sudo poweroff
 Wait for the Pi to fully power down. Unplug the Pi.
 Install the Audio HAT on top of the Hailo Module if you’ve chosen to install it.
 Otherwise use the Extra Tall Female Stackable Headers 2x20 and align the
pins with the Raspberry Pi pins.
 Now, align the Audio HAT with the header pins on top of that.

o
o Connect the speaker that comes in the box for testing (we will be
switching this out with our actual speakers later).
 Once connected, plug and power on the Raspberry Pi.

2. Check Kernel Version (Minimum Required: 6.12.2)


 Run:
bash
uname -r
 Example output:
6.12.25+rpt-rpi-2712
 If your version is below 6.12.2, run:
bash
sudo apt update
sudo apt full-upgrade
sudo reboot

3. Enable I²C and I²S Interfaces


 Open the configuration file for editing:
bash
sudo nano /boot/config.txt
 Find and uncomment (or add if missing) the following lines:
txt
dtparam=i2c_arm=on
dtparam=i2s=on
 Save and exit (Ctrl + O, Enter, then Ctrl + X), then reboot the system:
4. Clone the Driver Repo
 Open a terminal and run:
bash
git clone https://github.com/ubopod/WM8960-Audio-HAT.git
cd WM8960-Audio-HAT

5. Install the Driver


 Run the installer script:
bash
sudo ./install.sh
 You may see an error like:

This is expected — continue.

6. Reboot the Pi
bash
sudo reboot

7. Verify Driver Installation


 After rebooting, run:
bash
sudo dkms status
 You should see:
wm8960-soundcard/1.0, 6.x.x, aarch64: installed

8. Test Audio Output (Speaker or Headphones)


bash
aplay -l
 Look for:
card x: wm8960soundcard [...]
 To play a sound:
bash
speaker-test -D hw:#,0 -c2 -t wav
 Where # is the card index (i.e. 2)

9. Test Microphone (Audio Input)


 Record 5 seconds of audio:
bash
arecord -D plughw:2,0 -f cd -t wav -d 5 test.wav
 Play it back:
bash
aplay test.wav

 Note down the card index. It will be useful later.


Original Instructions

Setup Speakers:
 We won’t be using the speakers that come out of the box with the Audio
HAT since they are too big.
1. Turn off and unplug the Raspberry Pi.

2. On the PH2.0-N speakers, cut off the JST connector end on each speaker
wire with a wire/flush cutter.

3. Strip the ends of the wires (~5 mm) with your wire stripper.

o Use 24/22 STRD Gauge to strip.

1.

o Twist the copper stranded wire end to prevent fraying.

4. Use a small flathead screwdriver (i.e. 5/64”) to open the screw termin-
als on the HAT.

5. Insert the:

o Left speaker’s wires into LP and LN.

o Right speaker’s wires into RP and RN.

1. Red (power) wire goes to XP (for positive).

2. Black (ground) wire goes to XN (for negative).

6. Tighten the screws to secure the wires.


o
5. Check if Driver Loaded and Audio HAT Detected
Run:
bash
CopyEdit
aplay -l
You should see something like:
card #: wm8960soundcard [...]
If the card index is different than it was before, this is normal. This is because
when you detach and reattach devices on your HAT, it can change the order the it
get loaded by your raspberry pi. However, we still want it to show up as the ori-
ginal index since that is the one where your audio drivers are pointing to.

📌 6. Lock the WM8960 to a Specific Card Index (Optional but Recommended)


If you want the Audio HAT to always show up as card #, do:
bash
sudo nano /etc/modprobe.d/alsa-base.conf
Add this to the bottom:
bash
options snd_soc_wm8960 index=#
Save and exit, then:
bash
sudo reboot

🔊 7. Test Playback
bash

Or play a test file:


bash
aplay -D hw:#,0 /usr/share/sounds/alsa/Front_Center.wav
If you hear audio through your screw-terminal speakers, it’s working! 🎉

Setup Battery Monitor:

if you are using a ina260 to monitor the battery power, use the 3d printed supports to secure it
Add Heat Inserts:
- You will be using the M2.5 Heat Inserts to add screwable holes into your components.
- Make sure each heat insert is sitting flush to the part and the ones where the lid of the
case screw need to be sitting below the lid parts.
- Each heat insert needs to be straight with the hole it is inserted into.

Drive Train:
Chassis:
Legs:
Both legs have the same holes, the left leg will have more holes for the buck converter than
the right one.

The above casing is leg hull is outdated. Please add 2 heat inserts here as well:
Supports:
- INA260 Support:

o
Parts Modification:

Axel Rods:
Cut the 4mm axel rods to these dimensions.
LDX-227:

Cut the protruding plastic part on one of the LDX-227 servo if you are using them.
 You can use a flush cutter or knife to cut through the plastic bit by bit.
PCA9685:
If the pins on your PCA9685 (servo controller) are bent, use some pliers to carefully make
them straight.
Assembly
A. Install the Suspension:

1. Insert Bearings into Spring Drivers


o Press-fit the ball bearings into the central circular recesses on the left
and right spring driver parts. Ensure they sit flush and rotate
smoothly.
o
2. Slide Strut Mounts onto Axles
o Take the two 66mm axles and slide one strut mount onto each axle.
o With threaded rods, you should be able to spin the strut mounts into
place.
 It might take some effort. You may need to clamp the axles and
screw the strut mounts in.
1. An easy way to do this is to move to Step 3 and once an
axle is tightly inside a spring driver, you can start
screwing the strut mount to the center.
3. Attach Axles to Spring Drivers
o Firmly press both axles into their designated holes on the spring
drivers. This should lock the axles into the outer edges of the
assembly, spanning across the middle section.
o You may need to force the axles into the holes.
 If you have trouble pushing the rods all the way in, you can
1. A. Use bambu studio hole compensation and add 0.1 mm
to the hole diameter.

1.
2. B. use a soldering iron and lightly circle around the hole to
soften it before inserting the rod fully through.
1. Less recommended.
o Tug and pull both spring drivers apart to confirm that the axles are
tightly in place.
o
4. Mount Suspension Mounts onto Bearings
o Align and slide each suspension mount over the bearings that were
installed in Step 1. The bearing should slot into the suspension mount,
allowing it to rotate relative to the spring driver.

o
5. Secure Suspension to Upper Case with Springs
o Position the full assembly so the suspension mounts can be bolted
to the upper case frame.
o
o The easiest way to screw this piece on with the springs is to first
insert only the spring closest to the upper-case wall in between the
strut mount on the upper case’s protruding insert.
o Screw the suspension to the top case by holding it together and use 8
M2.5x8mm screws for the 8 screw holes on the suspension mount.
Don’t tighten the screws all the way in just yet.

o Once you have all the screws in, push down the strut mount that
already has a spring to provide room to insert the last spring.


o Insert the last spring first in the strut mount, then once it is nicely
inserted slide the other end of the spring into the upper case’s
protruding spring insert.
o Before tightening everything, ensure the springs are seated correctly:
 They should sit between the strut mounts and the
suspension mounts, providing compression resistance.
1. Rotate the strut mounts so that it is angled directly facing
the protruding spring inserts on the case.
 When bolted, the springs should be slightly compressed for
functionality.
o Finish tightening all the screws.
B. Main Leg Mount + Suspension Linkage:

1. Slide the Main Leg Mount on Each Side of the Suspension


 You have two main leg mounts (red, large pieces) — one for each side of
the robot’s suspension structure.
 Slide each main leg mount over the left and right spring driver
assemblies, aligning the center circular hole of the leg mount with the
long, narrow slot on the spring drivers.

2. Insert the 100mm Axle Through the Center


 Insert the 100mm axle rod horizontally through the aligned holes/slots in:
o The main leg mount (left)
o The spring driver (left)
o The spring driver (right)
o The main leg mount (right)
The 100mm axle serves as a sliding pivot that enables vertical motion of the
leg within the suspension system.

4. Insert the 96mm Rod Through the Leg Mounts


 Identify the 96mm axle. This axle will tie together the bottom portion of
the leg mounts.
 Align and slide it horizontally through the secondary bottom holes of the
leg mounts.

3. Secure the Main Leg Mounts and Axle with Screws


 Add one M2.5x14mm screw to each main leg mount, screwing into the
ends of the 100mm axle.
o If you tug on the leg mounts and the axle rod is still sliding in and out,
you can use a longer screw, i.e. 16mm.
 These screws retain the axle, preventing it from sliding out during
movement.
 ⚠️Important:
o The axle must be tight enough to hold everything together securely.
o But the main leg mounts should still be able to rotate freely around
the axle with minimal play (looseness).
o Test the articulation by gently moving the leg mounts up and down.

5. Do Not Bolt the Suspension Mounts to the Upper Case Yet


 Leave the suspension mounts aligned with the 96mm rod unbolted to
the upper case for now.
 This allows for easier alignment and adjustment during the final fitting of
servos and motion testing.

C. PCA9685 Servo Driver:

1. Bolt the PCA9685 Support to the Upper Case


 The large orange/yellow piece is the PCA9685 Support.
o This support is designed to hold the PCA9685 servo driver board inside the
upper case.
 Position the support bracket so its mounting holes align with the 2 holes on the
inner wall of the upper case.

o
 Screw the 2 holes in securely using two M2.5x8mm screws. This forms the structural
base that holds the PCA9685.

2. Mount the PCA9685 Board to the Support


 The PCA9685 board sits flat against the orange/yellow support.
 Align the holes on the PCA9685 board with the screw holes on the support.
 Bolt the PCA9685 to the support using two M2.5x6mm screws, ensuring it's firmly
attached but not overtightened (to avoid cracking the PCB). You will not be screwing
them all the way down but just enough to keep the board in place.

3. Route the Servo Wires into the Wire Channel


 Connect your servo cables to the PCA9685 pin headers (black headers with
red/yellow/black).
 As you connect each servo wire, route the wires downward into the wire
management channel built into the support structure. This helps prevent tangling or
strain on the connectors.

4. Secure the Wires with the PCA9685 Cap


 The grey rectangular piece with a center hole is the PCA9685 Cap.
 Place this cap over the routed servo wires and the wire channel.
 Its purpose is to lock the wires in place so they don’t move or pull out during robot
operation.
 Align the cap’s hole with the mounting post below and screw it down firmly with a
M2.5x6mm screw.
D.Servo & Power Wiring:
Preparation Step:
 Label or color-code each servo cable and extension cable (e.g., with tape,
stickers) to match the PCA9685 pin number they’re connected to. This will help
identify them later during the servo calibration or wiring troubleshooting process.
Step-by-Step Instructions
Step 1: Connect the 3 Main Servos + 6 Extension Cables
 Before this step, it is recommended to unscrew the PCA9685 Cap so that we can use
the built-in slot to help organize the servo cables.
 Servos:
o Plug 3 LDX-227 servo wires into the PCA9685 channels 0, 1, and 2.
 Use the servo cables that come in the box with the LDX-227.
o You will see 3 wires on this cable. The white one corresponds to the PWM pin
on the channel (insert like the example below).


 Extension Cables:
o Plug 12” servo extension wires into PCA9685 channels 3–8.
 Use the male end of this wire and like in the previous example match the
white wire to the PWM pin of the channel.

Step 2: Route Left Leg Servo Cable


 The servo wire in Channel 0 should go through the PCA9685 slot but remain within the
main chassis.
 The servo wire plugged into Channel 1 (the left leg servo) should have its cable
routed through the same slot and then through the left hole in the upper case (the
main chassis body).
o NOTE: ALL LEFT AND RIGHT DIRECTIONS ARE BASED ON OUR
PERSPECTIVE LOOKING AT TARS, NOT TARS’ PERSPECTIVE

Step 3: Route Right Leg Servo Cable


 The servo wire plugged into Channel 2 (the right leg servo) should have its cable
routed through the right hole in the upper case.

Step 4: Route Extension Cables (Right Side)


 Extension cables connected to Channels 3, 4, 5 should be routed through the right
hole in the upper case.

Step 5: Route Extension Cables (Left Side)


 Extension cables connected to Channels 6, 7, 8 should be routed through the left
hole in the upper case.
 These will connect to components on the right side of the robot.

Step 6: Double-check Wiring


 Make sure that all wires (servos + extensions) that pass from the PCA9685 into
either leg:
o Go under the moving suspension assembly, not over it.
o This ensures that the suspension can freely compress and extend without
getting tangled or pulling on the cables.
⚠️Double-check that no cables are caught above the red suspension mounts or blocking the
movement of the arms or axles.

Step 7: Only Connect First 3 Servos Now


 Connect the 3 primary LDX-227 servos:
o Channel 0 – Main Legs (up/down movement)
 This one will be the servo you modified earlier to remove the plastic
protrusion.
o Channel 1 – Left Leg Rotation
o Channel 2 – Right Leg Rotation
 Do not connect servos for arms or hands yet (channels 3–8). Just run their extension
wires and secure them as shown.

Servo Channel Reference (Reminder)


Servo Channel Function
0 Main Legs – up/down
Servo Channel Function
1 Left Leg Rotation
2 Right Leg Rotation
3 Right Main Arm
4 Right Forearm
5 Right Hand
6 Left Main Arm
7 Left Forearm
8 Left Hand

Step 8: Cut and Prepare 2-Conductor Power Cables – 4 Lengths of 50 cm Each


 Cut four lengths of 50 cm from your 2-conductor parallel wire (18 AWG or similar).
o Each cable contains both a V+ (red) and GND (black) wire.

o
These cables will be used to:
 Supply power from the battery to each buck converter
 Deliver regulated power from each buck converter to a device (either the PCA9685
or the Raspberry Pi)
Prepare the cables by:
 Splitting each end and stripping ~5mm off using 18 AWG STRD on a wire stripper.
 Twist the bare stranded wires together to prevent fraying.


The 50 cm length is longer than needed to give you flexibility during routing and final
positioning.

Step 9: Route One Power Cable to the Left Leg (PCA9685 Power System)

 Take one of the 2-conductor cables.
 Feed it through the left hole in the upper case and into the left leg cavity.
 Wire #1 (visually in orange) responsibilities:
o Red wire: connects battery positive to IN+ of LM2596 buck converter
o Black wire: connects battery ground to IN– of LM2596 buck converter
 Take a second 2-conductor cable.
 Feed it through the same hole into the left leg.
 Wire #2 (visually in red) responsibilities:
o Red wire: connects OUT+ of LM2596 buck converter to V+ input of PCA9685
o Black wire: connects OUT– of LM2596 buck converter to GND of PCA9685
o NOTE: Please only connect the PCA9685 side of this wire for now. Leave the
OUT port of the LM2596 buck converter disconnected.

o PCA9685 Screw Terminal:


o Unscrew and disconnect the

Step 10: Route Power Cables to the Right Leg (Raspberry Pi Power System)

 Repeat the process for the right leg but with the DC 6A USB Voltage Regulator (buck
converter for the Pi) using the remaining two 2-conductor cables:
o Cable 3 (visually in orange):
 Red: Battery → Buck IN+
 Black: Battery GND → Buck IN–
o Cable 4 (visually in red):
 Red: Buck OUT+ → Raspberry Pi 5V via USB-C breakout
 Black: Buck OUT– → Raspberry Pi GND

o
o
 Feed both cables through the right hole in the upper case and into the right leg
cavity.

Step 12: Connect Battery Power Wires Together


 You now have two buck converters:
o Left leg: powering the PCA9685 servo controller
o Right leg: powering the Raspberry Pi
 Each converter has its own input wires (VIN+/–) coming from the battery.
 Instead of running two separate connections to the battery, you can:
o Combine both VIN+ (red) wires together → connect to battery +
o Combine both VIN– (black) wires together → connect to battery –
 First, for safety, make sure that the output terminal of the LM2596 Buck Converter is
disconnected.
 Take off the covers of the battery’s output (red and black) wires.
o
 Strip the wires a bit more (~2-3mm) using wire strippers at 16 AWG STRD.
 Plug the battery’s output wires into the lever wire nut that comes in the box with the
battery.
 Use a multimeter and plug in the probes to its corresponding terminals on the lever
wire nut to confirm that you are getting ~12V (it will be a little less due to the physics of
batteries).

o
o After confirming you can remove the probes from the multimeter.
 Find the corresponding VIN+/- wires from the 2 buck converters and twist them
together.
o
 Use the lever wire nut that comes with the battery and insert the battery’s power (red)
and ground (black) wires. Insert the combined VIN+/- (red/black) buck converter wires
into the other side of the lever wire nut matching the same color.

o
 You should see the buck converters light up now. This confirms the battery is
successfully providing power.
o

o
 When the LM2596 buck converter’s IN LED is on, you should see the
input voltage read around ~12V as expected.

o
 The Pi USB buck converter should also have an LED light up.
 Your LM2956 buck converter output voltage now needs to be adjusted:
o Use a small flat-head screwdriver.
o Press the right (OUT) button to switch the display to show the OUT voltage
instead.
o Turn the potentiometer screw (gold screw on the blue box at the top) on the
buck converter:
 Clockwise = increases voltage
 Counter-clockwise = decreases voltage
 We want to turn the screw counter-clockwise to a little more than 6 V.


o Use a multimeter to measure the output voltage on the OUT terminals

o Adjust carefully until the display reads a little more than ~6V
 Once this is done, unplug the battery’s output cables from the lever wire nut.
 Screw the LM2956 buck converter’s wires to the PCA9685 servo drivers on.

Step 12: Solder USB-C Breakout Board to the Buck Converter Output (for the Pi)
 You’ll be connecting a USB-C Male (NOT female) breakout board to the output
wires of the Pi buck converter located in the right leg.


 From the OUT+ and OUT– terminals on the buck converter:
o OUT+ (red wire) → V pad on the USB-C board.
o OUT– (usually black) → G pad on the USB-C board.
 🔧 Important tips:
o Double-check polarity: Reversing +/– can damage the Pi.
o Use heat shrink tubing or electrical tape to insulate solder joints.
o You can strip and tin the wires before soldering for a clean joint.
 Once connected, this USB-C breakout lets you power the Pi safely and cleanly via its
USB-C port without a full USB plug or adapter.
o Recommended: You can also add heat shrink tubing around the connection to
secure it and prevent accidental shorting of your power source.

 After soldering the wires into the breakout board, plug in the USB-C board into the
USB-C port of the Raspberry Pi.
 Plug the battery’s output cables back into the lever wire nut and boot up the Raspberry
Pi to test power delivery.
 You may get the following warning:

o
o You are free to ignore it as long as you make sure all your peripheral
components are successfully receiving enough power.
 After confirming successful power delivery, power off the Pi and unplug the battery’s
output cables again from the lever wire nut.

Step 13: Solder USB-C Breakout Board to the Buck Converter Output (for the Pi)
 Solder the A0 Jumper:
o On the INA260 board, locate the A0 solder jumper.
o Bridge the A0 pads using a small solder blob.


 This changes the INA260’s I2C address from its default (0x40) to 0x41,
preventing any conflict with the PCA9685 (which also uses 0x40 by
default).
 Install the INA260:
o Take the INA260 support bracket.
o Place it between the WM8960 Audio HAT and the Raspberry Pi’s USB-A
ports, as shown in the image.


o Use an M2.5 x 4mm screw to fasten the support bracket to the Raspberry Pi,
anchoring it between the Audio HAT and the USB-A ports.
o Align the INA260 power sensor board onto the support bracket.
o Fasten it using another M2.5 x 4mm screw, making sure it’s secure and seated
properly.

Step 14: Create and Route the I2C Wire Harness (Shared I2C Bus for Pi, INA260, and
PCA9685)

 It is recommended to properly color code your wires in this step.


 You’ll use 12 20cm female-to-male/female-to-female Dupont jumper wires with the
female end on the pins of the Pi (through the Audio HAT), INA260, and PCA9685.
 You will eventually need to distribute 4 I2C signals from the Raspberry Pi GPIO
header to both the INA260 and PCA9685, which means:
Signal Pi GPIO Pin Destination 1 Destination 2
3.3V (VCC) Pin 1 INA260 VCC PCA9685 VCC
GND Pin 9 INA260 GND PCA9685 GND
SDA (GPIO 2) Pin 3 INA260 SDA PCA9685 SDA
SCL (GPIO 3) Pin 5 INA260 SCL PCA9685 SCL

 Insert the female end of the dupont wires to the pins according to this circuit diagram:
o
o NOTE: THIS DIAGRAM HAS THE SCL AND SDA PINS SWITCHED ON THE
PI
 Make the wire harness:
o After confirming all the female ends are correctly inserted on the pins, cut the
jumper wires coming out of the audio HAT to approximately 10 cm long.
 Strip using 22 AWG STRD about ½ an inch.


o Cut the jumper wires coming out of the INA260 to approximately 6 cm long
 Strip using 22 AWG STRD about ½ an inch.


o Cut the jumper wires coming out of the PCA9685 to approximately 15 cm long
 Strip using 22 AWG STRD about ½ an inch.

o Begin splicing the wires together using the correct colors by twisting the bares
wires around each other, then twisting the wire themselves (you may have to
unplug the wire from the pins) tight.


 You should be able to tug on the wires without it getting loose.
o Solder the connections together.
o Using heat shrink wrap and a heat gun / lighter, shrink the insulation around the
exposed wire splice.

 Connect the battery’s wires back to the corresponding lever wire nut.W
 Boot up the Raspberry Pi and confirm everything is working as normal.

E. Middle Main Servo:

1. Power and Connection Setup:


 Connect the following components electrically:
o Raspberry Pi (powered via the USB-C breakout from your buck
converter)
o PCA9685 servo driver board
o INA260 power sensor (if you’re using it)

2. Run Servo Centering Program:


 On the Pi:
o Clone the TARS-AI library.
o Run Install.sh
 Make sure your virtual environment venv is activated before
running any python script or installing new packages.
o Run the Python script:
python3 V2_app-servotester.py
 When prompted, choose option 1:

1. Set all servos to preset position


 This will move all connected servos (channels 0–2 for now) into their center
(neutral) positions.

2. Physically Center and Mount the Middle Servo Horn (Channel 0 –


Main Leg Lift Servo):
 Take the middle servo horn that will mount onto Servo Channel 0 (your
main leg lift servo).
 It should be at a ~56.5 degree angle from the long edge of the middle
servo.
 Attach the middle servo horn to the middle servo:
o Use an M3x12mm flat tapered screw to secure the middle servo
horn to the middle servo.
o The servo’s shaft should be in its center position after executing the
previous script—don't manually rotate the servo shaft after running
the centering command.
o NOTE:
 If you have a servo horn that can fit in the printed servo horn
like the following:

 This comes either with your LDX-227 or MG996R servos.
 You can cut the protruding end with flush cutters/scissors:


 And attach and screw the servo horn onto the servo as such.
 Otherwise, you can use the middle servo horn variant STL
without this cutout to directly attach the printed horn onto the
servo shaft, though this will wear over time.
 Attach the pusher rod:
o Use a M2.5x8mm screw to secure the pusher rod to the hole in the
servo horn.
o The pusher rod should pivot and rotate freely.

o
 Attach the pusher rod, suspension mounts to the axel:
o Lift the leg mounts up as shown in the image to give room to attach
the pieces.
o
o Center the pusher rod in the middle with the middle servo rested
against the case like in the image.

o
 Verify servo horn angle:
o When you have the middle servo placed like above, the center of the
leg mounts should be centered on the 2 leg holes of the upper
chassis.
o
o Like this:

o
o If it doesn’t sit the in the center, please readjust the servo horn’s
angle on the servo and try again.

4. Install Vertical Servo Clip:



 Get the Vertical Servo Clip and slide the middle servo underneath it like
the image.


 Make sure to route the servo/power wiring inside the upper loop of the
Vertical Servo mount.
 Secure it with a M2.5x10mm screw that goes into the upper chassis.

5. Secure Suspension Mounts (Sus Mounts):


 Now screw both Sus Mounts to the upper chassis with five total
M2.5x10mm screws.
o Please verify that the two suspension mounts are screwed onto the
right orientation and side.
 This will secure the lower section of your internal frame.

6. Attach Lower Chassis:


 Screw the Lower Chassis to the Upper Chassis using 8 different
M2.5x10mm screws onto:
o The two Sus Mounts (5)
o

o
o The Vertical Servo Clip (1)
o
o And the 16-channel PWM PCA9685 support bracket (2)

o
o Ensure alignment and that all screw holes line up cleanly.
 Insert the right side power cables into the vertical servo clip holes.
o
 Wiring should look like:
o
No more vertical servo protector

F. Leg Servos:

⚠️Important: Before securing the horn, ensure the servo is in its center position if you
haven’t already by running the following:

python3 V2_app-servotester.py
a. Select the option 1. Set all servos to preset position.
b. If the servo moved during this step, re-run the script, let it center, and then install
the horn.

Step 1: Install the Printable Servo Horns onto the Leg Rotation Servos
 Locate the two leg rotation servos already mounted on either side of the main
chassis.
 For each servo:
o Grab a printable leg servo horn.
o Pre-emptively screw in two M2.5x8mm screws on the two sides of the horn so
that it protrudes out 1mm out the other side (this is important for aligning the
servo horn to the leg mount later).
o Screw in an M3x12mm screw into the center of the horn pointing the other
direction.


o Align the servo horn with the servo output shaft such that:
 The notch or marking on the horn is facing upward (this represents the
center position).
 The horn is aligned flush against the servo body.


 NOTE: Push in the servo horn into the servo shaft so that the brass
(gold) part of it is only 1.5 mm visible.
 If it isn’t tightly fit inside the servo horn, it will slip out!
 Screw in the M3x12mm screw into the servo shaft.
o Use two protruding M2.5x8mm screws to help align the servo horn with the
leg mount.
 Fasten the servo horn onto the leg mount with those screws.

📝 Note:
 These steps are symmetrical:
o You’ll repeat the exact same process on the left and right leg assemblies.
o Just mirror the orientation when switching sides.

These next steps for the legs and arm are the same for each side, just mirrored.
G.Arm Servos:

RESET (Servo Initialization)


1. Connect the Remaining 6 Servos to the Extension Cables:
o Use the extension wires routed earlier from the PCA9685 (channels 3–
8) and attach to their respective servos.
 Make sure to connect the servo cables with the servo extension
cables as such:

o Confirm the servos to their respective channels as follows:
 Channel 3: Right Leg Main Arm – MG996R
 Channel 4: Right Leg Forearm – MG90S
 Channel 5: Right Leg Hand – MG90S
 Channel 6: Left Leg Main Arm – MG996R
 Channel 7: Left Leg Forearm – MG90S
 Channel 8: Left Leg Hand – MG90S
2. Run the Centering Script:
o Power on the Pi again and execute:
 python3 V2_app-servotester.py
o Choose option 1. Set all servos to preset position.
o This centers all servos.
⚠️Do not manually rotate the horns afterward. If needed, re-run this
command.
3. (Optional) Disconnect Servos:
o If you need to continue assembling without wires in the way, you may
unplug the servos.
o Be sure to label each cable so you can reattach them to the correct
extension later.

Step 1: Install MG90S Servo into the Right Main Arm Case:
o
1. Ex. From Right Leg
o Let’s begin setting things up on the right leg first!
o Slide the servo for the forearm (not the hand servo!) into the servo
socket inside the arm casing. You will likely have to disconnect and
reconnect the servo from the servo extension wire to route the wires
properly.
o
o Secure it using the small self-tapping screws that come with the
MG90S.

Step 2: Route the Servo Wire Through the Arm Case:


o Feed the wire through the lower internal routing hole of the arm
casing.

o
o Then pull it out from the top hole of the lower leg casing. This
ensures it routes cleanly and avoids internal obstructions.
o

Step 3: Connect the Main Arm to the Connector Hinge:

o
o Insert the connector hinge to the main arm case as in the image
above.
1. There is a flat and a rounded side to this hinge. The flat side sits
on the arm case while the rounded side sits on the lower leg.
o Use a short length of filament as a hinge pin.
o Insert the filament through the small hinge hole that links the main
arm to the connector part.
1. The hinge holes are designed to have a diameter of 2.00mm,
more than enough for the 1.75mm diameter of most standard
filaments.
2. However, 3D printers tend to print holes smaller than designed
depending on the printer settings/model. If your filament cannot
fit through the holes, you can:
1. Use the Bambu Studio hole compensation and add 0.1
mm to the hole diameter incrementally until it fits.

1.
2. Otherwise, try using M2.6 self-tapping screws and then
M2.5 regular screws to open the hole until the filament
can fit all the way through in and out smoothly.

3.

o
o Trim the filament flush with both sides so it doesn't interfere with
arm motion.
o

Step 4: Install MG90S into the Forearm Case:


o Just like the main arm, secure the forearm servo using the self-tapping
screws that come with the servos.

1.
o Again, feed the wire through the same routing path used earlier.
1.

Step 5: Secure and close the buck converter compartment


 If on the right leg, take the right leg buck converter bracket and use it to
secure the USB buck converter in place with a M2.5x6mm screw. Make sure
the power wiring looks like the image below.

o
o You will have to slide the board under the left notch for the bracket to
fit.
 Take the part labeled “lower leg lid”.
 Align and bolt it down with four M2.5x8mm screws to the open section of
the leg where the buck converter is installed.

Step 6: Insert Magnet into Finger2


 Locate the Finger 2 part of the robotic hand.
 Insert a small cylindrical 8x3mm magnet into the provided cavity
(usually near the tip).
 Once the magnet is in place, plug the cavity using the finger plug to
hold the magnet securely.
o You might have trouble inserting the magnet flat in the cavity. In that
case, use another magnet on the outside of the finger 2 component
and use the attracting polarity to help align it in the cavity.
Simultaneously, push the magnet in with the plug.

o
o If it is still not enough you can use a clamp to force the plug in.

Step 7: Add Magnet to Lower Leg


 Locate the corresponding magnet cavity inside the lower leg component.
o
 Insert another magnet here but ensure the polarity is opposite to the
one in Finger2:
o They should attract each other.
o This provides a gentle magnetic closing force for the hand.
o If you are having trouble inserting it, you can use a soldering iron to
heat up the magnet and push the magnet into the cavity.

Step 8: Attach Finger1 and Finger2 Using Rods


 Take Finger1 and Finger2 and align their slots.

 Let’s take a look at the two rods:

o
o The blue rod in the image is the Finger2 Rod
 NOTE: When aligning, make sure that the small protruding bits
of both rods around their holes are all facing the same direction.
o Do not mistake the Finger 1 and 2 rods to be identical/symmetrical,
they are not.

o
 Finger 1 (NOT in blue in the above) should have a larger
protrusion at where the two rods align with their holes.
o These rods act as rotational pivots for finger articulation.
 Using self-tapping screws, connect the rods with Finger 1 and 2 (with the
appropriate facing and orientation mentioned above) using M2x8mm self-
tapping screws.
o
o Do not screw them all the way in. The rods should still be able to
rotate freely.

o
o If you have used the correct finger rods with the correct facing, they
should line up nicely together one on top of the other like the
following:
o

Step 9: Mount Fingers Into Forearm Case


 Insert the assembled Finger1 + Finger2 unit into the forearm case.
 Align the finger assembly with the designated side holes on the case.

o
o Make sure to insert the finger rods into the appropriate slot in the
forearm case!
 Insert 3D printer filament into the holes:
o These act as axles/pins.
o
 Again if it doesn’t fit properly, use M2.6 self-tapping screws ->
M2.5 regular screws to open up the hole.
 If the rounded edges of the hinge are rough, you can use a
soldering iron to rub it smooth.
o Cut the filament so that it sits flush on both sides, providing secure
yet rotatable support for the finger mechanism.

Step 10: Link the Arm to the Lower Leg


 Align the main arm case part with the pivot hole in the lower leg.
 Insert a length of 1.75 mm filament through the aligned hole.
1.
 Cut it flush.

1.
 This filament should freely allow the arm to rotate but not fall out or protrude
excessively.

Step 11: Install the MG996R Servo into the Lower Leg
 Position the MG996R servo inside the rectangular cutout of the lower leg, as shown
in the image.
1.

2.
3. Ex. From Right Leg

 Pay attention to the orientation:


1. The shaft should up like in the image, closer to the front side of the leg.
2. The servo wires and buck converter wires must be routed to the same side
underneath the servo (away from any mechanical interference).
 Use four M2.5x8mm screws to secure the servo to the mounting holes.
1.

Step 12: Re-Center the Servos if They Rotated


 If you accidentally moved or rotated any servos while assembling:
o Run the V2_app-servotester.py script.
o Choose the “Set all servos to preset position” option.
o This will re-align all servos to their default angles, ensuring everything stays
in sync with the design.

Step 13: Connect Arm Shaft to Connecting Arm


 Take the Arm Shaft and align it with the blue Connecting Arm shown in the image.

1.
 Screw them both together at their most extended point with a M2.6x12mm screw.
1.
2. Don’t screw too tightly as it should be able to rotate freely to the following
position.

3.
 Screw the arm shaft to the main arm case using a M2.6x12mm screw in the position of
the image below with the arm opened up.
1.
2. This arm should be able to swivel counterclockwise freely from this position.
 Use the built-in notch to connect the main arm with the forearm case together.

1.
2. They should be able to rotate freely as well.
 Ensure your arms are in an enclosed position:
1.
 Bolt the connecting arm with the MG996R servo using an M3x8mm screw.

1.
2. If you accidentally turn the servo shaft on the servo motor, please unscrew and
reset the position with the V2-servo-tester script again.

Step 14: Secure the Internal Shaft and Close the Assembly

 Before doing anything in this step, ensure that the hands/claws of TARS are fully
closed!
 Connect the Finger 1 and 2 rods to the mg90s finger servo using the forearm servo
horn component as shown.
1. Use an M2.6x12mm self-tapping screw to screw in the forearm servo horn and
the Finger 1 and 2 rods together.
2. Use the small regular (not self-tapping) screw that came with the servo to
fasten the servo horn to the motor shaft.

3.
 Retrieve a one-sided servo horn that comes with the servo and lay it in the forearm lid
to confirm that it fits.
1.
 Using another one of the small regular screws that come with the servo, screw the
one-sided servo horn onto the servo straight vertically.

1.
2. You do not need to screw it in tight just yet, we will do that in the next step.
 Place the forearm lid onto the forearm case and make sure the servo horn fits into the
slot on the case.
1.
2. Screw in the servo horn tightly.

3.
4. Screw in the forearm lid with three M2.5x6mm screws
 Screw in the main arm lid with three more M2.5x6mm screws
1.

Step 15: Repeat Steps 1-14 with the Left Leg

 Repeat the same steps but with the left leg and everything mirrored.
 On Step 5, the buck converter you will be securing is the adjustable one.
1. You will notice that the holes of the lower leg may not match your buck
converter. This is normal.
2. This buck converter can come in all shapes and sizes, so align the holes and
pick out whichever holes you will need to screw in.
 You do not need to screw in all of them.
3. If you would like to use M3 screws, go ahead and screw them in as is.
4. If you would like to use M2.5 screws, you can add your M2.5 heat inserts to the
screw holes of interest and then screw them in.


5. Even one screw is enough.

 On Step 13, screw the arm shaft and the connecting arm in this position:

1.

H.Final Assembly

Step 1: Bolt the Speakers to the Hull Lid


 Identify the Hull Lid.
 Take the two small 3W speakers and align their mounting holes with those on the Hull
Lid.
 Use M2.5x6mm screws to secure the speakers in place.
o
o This is the right leg hull lid. Please make sure to orient your speaker where the
wire goes straight down like in the image.

Step 2: Feed the Speaker Wires Into the Upper Case


 Gather both speaker wires and guide them:
o Through the same hole used for other electronics cables (power, I2C, servos),
typically in the top wall of the upper case.
o Route them with the other wires toward the Raspberry Pi and Audio HAT.

Step 3: Attach the Power Switch to the Access Panel


 Power switch fits into the rectangular slot in the access panel frame (as shown in the
image).

o
 Press-fit the switch until secure; it should snap or sit firmly.
 Then:
o Take a short length of 1.75 mm filament.
o Insert it through the hinge holes of the access panel door and frame to act as
a hinge pin.

o Trim flush on both ends so it sits neatly without sticking out.

Step 4: Insert Magnets in the Access Panel


 You’ll need 2 small magnets.
 Insert one magnet into the frame and the other into the door, in their designated slots.
 Ensure that polarities are opposite so they attract when the door is closed.
o You can test this by bringing them near before final insertion.

Step 5: Mount the Hull to the Servo Assemblies


 For each leg, grab the hull hub and screw in two M2.5x12mm screws into it.

o
o Don’t screw in all the way.
 From the rear end of the servo, slide the hull hub into place around each leg’s servo
horn:
o
 You are now attaching the main side Hull pieces (arms of TARS) to the already-
mounted LDX-227 servos.
o Slide in the hull from underneath and make sure to take care of the wiring.

o
o This step is tricky because of cable routing:
 18 AWG power wires should run through the center channel
underneath the servo body.
 Thinner signal wires (servo, I2C, etc.) wrap around the sides of the
servo.
o Use a screwdriver to help you route the wires around.
 The servo clip is a part that holds the servo securely in place from the outside of the
Hull.
o After you've inserted the Hull around the LDX-227 servo and routed all wires:
o Make sure no wires are pinched between the Hull and servo body.
o Once confirmed, place the servo clip over the servo tab area and bolt it with
M2.5x8mm screws.

o
o You may realize that the holes don’t align. Shuffle the hull underneath the servo
to properly align it.
 Screw in the hull hub onto the hull with the existing screws:

Step 6: Attach the Hull Lid and Connect the Lower Leg
 Place the Hull Lid on the Hull and screw it in place using M2.5x6mm screws.
o
 Slide in and snap the lid of the lower leg in place:

o
 Then, connect the lower leg (the limb assembly) to the Hull with two M2.5x10mm
screws:
o

Step 7: Finalize the Wiring Using the Switch and the INA260


o NOTE: The SDA, SCL pins are flipped on the Pi.
 Refer to the wiring diagram.
 At this point, verify:
o Speaker wires are routed to the Audio HAT.
 Make sure the right and left speakers go to the appropriate right and left
channels of the Audio HAT.
o All 9 servo channels are connected to the correct extension wires (Channels 0–
8 on the PCA9685).
o Power wires (from the buck converters) are connected to or can reach:
 PCA9685 (6V)
 Raspberry Pi (5V via USB-C breakout)
o I2C connections between the Pi, INA260, and PCA9685 are wired correctly.
 Connect the circuit to the switch:

o
o For the power terminal (power coming out from the battery):


 Disconnect the battery power cable from the lever wire nut.
 Strip ½ inch from battery power cable, twist the end.
 Add a large heat shrink and a smaller one.
 Curl around power switch terminal.
 Solder on the connection.
 Shrink the larger one around the terminal.
 Shrink the smaller one around the larger one that is shrunk to keep it in
place.
o For the Load terminal to the INA260:

 Cut a new 12cm long 18 AWG power wire
 Repeat the same steps to connect to the Load terminal of the switch.
o You can test out if the switch works with a multimeter and by flipping on and off
the switch to see if the voltage changes.
o You can also now slide the door component underneath the other wires as in the
image.


 Screw it in with two M2.5x4mm screws
 Connect the INA260:
o
o Strip 0.5 mm off the power cable coming out of the switch and twist the ends.
o Feed it into the Vin+ screw terminal of the INA260.
o Cut a new 8 cm long 18 AWG power wire.
o Strip 0.5 mm off both the ends and twist them.
o Feed one end to the Vin- screw terminal of the INA260, and the other to the
original lever wire nut power terminal.
 Through this connection setup, the INA260 can measure the current draw
of the battery and thus your battery level.

Step 8: Secure the Raspberry Pi



 Use three M2.5 x 5mm screws to mount the Pi onto the bottom of the upper chassis.
o The Pi should sit level and not be under any stress or twisting from uneven
screw lengths.
 Confirm that your USB-C port is accessible.

Step 9: Mount the Display and Camera



 Secure the screen to the upper lid using the screen clips and M2.5x5mm screws.
o ⚠️Do not overtighten the screws. Just enough to hold the screen snugly.
o Some screens come with protective covers over their screw holes —
remove these covers first.


 Then, attach the camera module using two M2x5mm self-tapping screws.
o Make sure it's centered and stable to avoid shaky image feed.

Step 10: Secure the Battery


 Use 2 short Velcro straps joined together (or 1 long one) to secure the battery to
the lower lid.
 Thread the charging cable through the designated hole in the access panel door.

o
o You can screw it in through the hole to secure it.
 Connect the USB-C power cable to the Pi
o

Step 11: Final Closure


 Close and secure both the lower and upper lid.

o
 Lower Lid
o Use M2.5x10mm screws.
o ⚠️Be gentle! Carefully align before pressing down to avoid bending GPIO
pins or damaging the Audio HAT.
 Upper Lid
o This can be screwed on once the lower lid is secured.
 Bottom Lid
o Secure last, after all internal wiring and components are in place.
 Double-check for any pinched wires or misaligned components before fully tightening
all screws.
Attach the Lower Chassis and Foot Pad
 Finally, bolt down the lower chassis base part (the flat panel that sits below the robot)
together with the chassis foot pad, which helps TARS stand evenly.

o
 Use four M2.5x6mm screws to secure the parts to the bottom of the robot’s main
frame.
 Make sure there’s no wobble or overhang, and everything is flush and sturdy.
 Using eight M2.5x6mm screws, screw the left and right footpads to the left and right
legs as well.
o

Step 12: Rotate the Display

If your screen is not displaying the correct orientation (common in this build), fix it through the
Raspberry Pi’s graphical config:
1. Open:
Raspberry Pi Menu → Preferences → Screen Configuration
2. In the menu bar:
Screens → DSI-1 (or DSI-0 depending on your screen) → Orientation → Right
3. Apply the change and reboot if prompted. This rotates the screen 90° clockwise,
making the image appear upright in your TARS configuration.

You might also like