OHMC2020 Hardware instructions
- 1 Before You Begin
- 2 Parts Required
- 3 Dingo Cap soldering
- 4 Perception Module assembly
- 5 Chassis Preparation
- 6 Mount Perception Module On Chassis
- 7 SD Card and Pre-Flight Check
- 8 More Information
Before You Begin
There are several steps where it's possible to destroy the Raspberry Pi, the camera, or other expensive parts of the kit. Please don't rush! Read these instructions carefully, and check before making any soldered connections, attaching the camera, or attaching power.
WARNING: Do NOT connect or disconnect items such as the servo or speed controller while power is applied. During testing we accidentally destroyed several servos by doing this. Make sure everything is powered down before doing ANY work on the car.
WARNING: Please put your car "on blocks" (wheels off the ground) when testing for the first time or after major changes. The cars can run away very fast, which would be unfortunate! Only put your car on the ground when you have confidence in its operation.
There are 6 major items included in your kit:
- 1/16th scale RC car chassis, with a steering servo, a motor speed controller, and a NiMH battery.
- NiMH battery charger.
- Raspberry Pi 4 and Pi camera (packed together in camera box)
- Laser cut acrylic and plywood frame parts.
- Partly-assembled "Dingo Cap" PCB.
- A bag of small parts.
For reference, this is a complete kit with all the parts spread out. It looks like a lot, but we'll be tackling it in easy stages:
IMPORTANT NOTE FOR OHMC2020: UNFORTUNATELY THE BUTTONS AND CABLE TIES ARE NOT INCLUDED
The parts bag should contain:
- 1 x power pigtail (Tamiya connector with red and black leads)
- 3 x rubber bands (only 2 required)
- 4 x grey Lego pieces
- 1 x black 40-way header socket
- 1 x 128x64 pixel OLED screen (in plastic case)
- 1 x 10-DOF IMU module (purple PCB with 8-pin header)
- 4 x 12mm brass spacers
- 4 x 5mm brass stand-offs
- 4 x 6mm brass stand-offs
- 4 x 12mm M3 bolts
- 4 x M3 nuts
- 2 x M3 washers
- 2 x 4.5x4.5x7mm tact switches (NOT INCLUDED)
- 12 x 6mm countersunk M3 bolts
- 2 x laser-cut camera mounts (straight slot)
- 2 x laser-cut camera mounts (angled slot)
You will also be given a micro SD card and adapter separately, pre-loaded with Raspbian and the necessary software.
Dingo Cap soldering
Most of the parts have already been fitted to the Dingo Cap, so you only need to install a few parts. This should be a simple assembly job if you already have experience with soldering, but if this is your first time it may seem daunting. We'll have instructors ready to help you through it, so don't worry, you can do it!
Warning: the assembly sequence is CRITICAL, because there are modules and connectors on both sides of the PCB. If you get the order wrong, it may be impossible to complete the assembly. Make sure you follow these steps in order, and check each step before you proceed to the next.
Step 1: Buttons
IMPORTANT NOTE FOR OHMC2020: UNFORTUNATELY THE BUTTONS ARE NOT INCLUDED, PLEASE SKIP TO STEP 2
The kit includes 2 small buttons. These are commonly referred to as "tactile switches", or abbreviated to "tact switches".
Look carefully at the tact switches, and you will see that they have 2 pairs of pins that come out opposite ends of the body. This is to help you put the switch into the PCB the right way. Warning: if you find that you have to dramatically bend the pins to make them fit, you're probably putting them into the PCB the wrong way!
Insert the tact switches into the PCB in the spots labelled "SW1" and "SW2" near the bottom left corner. The pins should be coming out of the left and right sides of the switch as oriented in the photo below. If the pins are coming out of the top and bottom, you need to rotate it 90 degrees.
Make sure you're inserting the switches from the top of the PCB. There's nothing to physically stop you putting them in from the wrong side, so make sure the PCB is oriented as you see in the photo:
Push them flat against the PCB so they are straight, and use a blob of blu-tac to hold them in place:
Turn the PCB over, and solder the pins in place from the bottom. This is why you need the blu-tac!
Step 2: IMU Module
The IMU module is the small purple PCB with a row of holes on one edge. This module must be installed before the OLED, otherwise you won't be able to solder the connections.
Insert the 8-way pin header through the module from the bottom, which is the side without any parts. The pin header has long pins on one side, and short on the other. The short side goes through the module. Smoosh some blu-tac on to hold it in place:
The pin header can move around a bit, so make sure it's perpendicular to the module. It should stick straight through like this:
Turn the module over, and solder the pin header in place on the top of the board:
After soldering just one pin, check that the header is still perpendicular to the board. At this stage it's still possible to re-heat the joint and adjust the position if you need to. Once more pins have been soldered, it's much more difficult to fix any alignment problems.
Remove the blu-tac, and insert the IMU module onto the Dingo Cap PCB.
Warning: The module will fit on either side of the PCB, but it must go on the bottom as shown here. The correct location is just above the "linuxconfau" logo:
Use blu-tac to hold it straight, so that it is parallel with the Dingo Cap PCB:
Turn the PCB over, and solder the pins in place:
Use a pair of side-cutters to trim the extra length off the header pins.
Warning: Trimming header pins can be dangerous! If you just clip them off, they will shoot off at close to light speed and seek out the nearest eyeball. Make sure you cover the board with the palm of your hand when you cut the pin off. The photo below shows where to cut it, but there should be a hand covering the board:
Step 3: OLED Module
The OLED module is installed in a similar way to the IMU, except that it comes with the pin header already installed which saves you the first step.
Note: The holes in the Dingo Cap PCB are a very tight fit for the pin header. Be very careful pushing it onto the board, and work it on slowly while keeping it parallal to the PCB.
Do not attempt to push the module all the way down. The top right corner of the module will sit on top of a grey inductor, and the module must be pushed down until it is parallel with the Dingo Cap PCB. There will still be a gap between the black plastic spacer and the PCB. This is normal:
Turn everything over, and solder on the pins from below:
Step 4: Raspberry Pi Header
This is the trickiest part of the entire assembly process, but after soldering the previous joints you should be ready for this! Just take it slowly, and if it looks like anything is going wrong please ask for help immediately. It's easier to fix mistakes as you go, rather than fix them later.
Insert the 40-way Raspberry Pi header into the Dingo Cap PCB from below, and use blu-tac to hold it in place:
Check that you've inserted the header on the correct side of the PCB, which is the bottom. The purple IMU module should be on the same side.
Turn everything over, and you should see the top of the Dingo Cap PCB with the header pins sticking through.
You will need to solder all 40 of the pins to the Dingo Cap PCB, without getting a "bridge" of solder between any pins. This is made a little more difficult because the OLED module gets in the way of the inside row of pins.
Begin by soldering one pin at each end of the header, so that it's held firmly in place:
With just those pins soldered, check that the header is sitting flat against the PCB. You can adjust it now by re-heating the joints on the end, but you can't adjust it later.
Continue with soldering the rest of the pins. Because of the lack of clearance, it's best to do the inside row of pins first, and then do the outside row:
Step 5: Power pigtail
There are 3 pairs of large gold pads on the edge of the PCB. 2 pairs aren't used for the miniconf: they're for different applications, including replacing the supplied NiMH battery with a LiPo battery.
Apply solder to the pair of pads closest to the coloured pin headers. This is called "wetting" the joint, and it will make soldering the wires on much easier.
Don't worry about keeping the holes clear. We're not going to use them for inserting the wires, they'll just provide an electrical connection between the front and back of the PCB. It's fine for them to be filled with solder:
Hold the red lead of the pigtail against the solder pad closest to the coloured pin headers. Use the soldering iron to heat up the wire and the pad together, so the solder flows between them and makes a solid joint.
Warning: Because these joints are quite large, they will retain heat for a while and the solder will remain molten even after you remove the soldering iron. Make sure you hold everything very still for a few seconds after taking the iron away, otherwise you can burn yourself on the solder and mess up the joint.
The result should be the power pigtail connected parallel to the PCB:
Perception Module assembly
Take the Raspberry Pi out of the box, and insert the shorter (5mm) brass standoffs from the bottom. Be careful to use the 5mm standoffs: there are also 6mm standoffs in the kit, and they must be used in the right place. They look very similar so check them against each other to make sure you're using the short ones.
Screw the brass spacers on from the top of the Pi, and do them up tightly with your fingers:
Once all 4 corners are done the Pi should sit neatly on the standoffs:
Using your fingers, very carefully pull up the ends of the small grey clip on the camera connector until it "clicks" into the upper position. Do not pull the clip right off! It only moves a couple of millimeters:
Get the Pi camera out of its bag, and insert the ribbon cable through the slot in the Dingo Cap. Check the photo below for the correct orientation of all the parts. The silver contacts on the ribbon cable should be towards you in this picture, and there is a blue plastic layer on the other side of the cable:
Carefully insert the ribbon cable into the Pi camera connector so that the silver contacts are almost completely inside the connector. Then use your fingers to gently push the grey clip back down until it clicks, which will lock the cable in place:
Slide the Dingo Cap down the camera cable until it can be seated onto the Raspberry Pi. Push the Pi header into place, and then screw the 6mm brass standoffs in through the Dingo Cap. Do them up tightly with your fingers:
Gently fold the camera cable over itself so that it comes directly up from the top edge of the PCB, and then sit the laser-cut side plate onto the Dingo Cap. Use 4 x M3 6mm countersunk bolts to attach it to the brass standoffs:
Turn everything over, and attach the other side plate:
Now it's time to attach the camera. There are 2 sets of camera mounts included: straight, and angled.
To mount the Perception Module on the Dingo Car, we want to use the angled mounts. This tilts the camera down towards the track when the car is driving. Straight mounts are also supplied so you can use the Perception Module for other applications, with the camera pointing directly ahead of the module.
Put the straight mounts aside and keep them for future use:
The camera mounts go on the inside of the side plates, with the slot angled slightly forwards and the rounded corner towards the Raspberry Pi:
Use 2 x M3 6mm countersunk bolts to attach each camera mount. The bolt screws directly into the plastic, but be careful not to strip the plastic by over-tightening:
Guide the camera ribbon cable around the Perception Module, and slide the camera down into the mounts as shown. It will be a tight fit, and you may need to slightly spread the side plates.
The end result should look like this:
Use a Philips-head screwdriver to remove the 4 black screws holding the rear spoiler mount onto the chassis:
Fit the laser-cut plywood bracket labelled "REAR" onto the chassis, using the original screws to go through the bracket and into the spoiler mount. It doesn't need to be very tight:
Put the 2 x 10mm M3 bolts through the chassis at the front and the laser-cut plywood bracket labelled "FRONT". Use the 2 x M3 nuts to secure the bracket. Once again, it doesn't need to be very tight:
Use one of the Lego pieces to check which side of the clear acrylic base-plate is the best fit. Because of the angle of the laser, the base-plate has been tuned so that the holes on one side of the plate should be a very accurate fit for Lego. The other side is probably too large, so the Lego pieces won't clip into place firmly:
Once you have determined the correct side for attaching Lego, bolt the clear acrylic base-plate to the larger plywood base plate using 2 x M3 12mm bolts, washers, and nuts:
Slide the assembly down onto the chassis, while pushing the leads for the steering servo and the ESC (electronic speed controller) up through the slot on the right side of the car:
The car is now ready for mounting the Perception Module.
Mount Perception Module On Chassis
Attach the Lego pieces to the bottom of the Perception Module, leaving 2 holes at both the front and the back:
Place the Perception Module on top of the acrylic base plate, and push the Lego pieces down into the base plate:
The PWM output channels on the black/red/yellow connectors are numbered from 0 to 7, starting at the bottom and going up.
Channel 0 (the bottom row of pins) is for the ESC, or electronic speed controller.
Channel 1 (the second row of pins) is for the steering servo.
Trace back along the wires to find out which is which. Usually the steering servo cable is the longer one.
The small black connector for the steering servo may have a ridge down one edge that stops it being connected to the Dingo Cap, because it blocks against the acrylic case. Use a pair of side-cutters to trim it off.
Black is GND, red is 5V, and yellow is signal. Orient the servo connectors so the black (GND) wire goes to the black pin on the Perception Module.
SD Card and Pre-Flight Check
Insert the SD card into the Raspberry Pi. The socket is on the front of the Perception Module.
All the hardware is now complete. The battery should still be disconnected.
On the top of the chassis (under the base plate) is a small power switch. They're in different places on different cars, but mostly they are near the middle. It has small writing on it saying On and Off. Put it in the Off position.
Your Dingo Car is now ready to be started.
WARNING: There is no power control for the Raspberry Pi. The power switch controls the chassis (the steering servo and speed controller) but doesn't control the Pi. To control power to the Pi, you must connect and disconnect the battery. Don't leave the battery connected and leave the car, because the Pi will drain the battery all the way to dead flat if you're not paying attention.
The Donkey Car project is very well documented at www.donkeycar.com. We will step you through setup and training at the miniconf, but if you want to investigate further and learn more about it after the conference is over you can find a huge amount of information at the official Donkey Car site.