build details

Show: section status errors & todos local changes recent changes last change in-page changes feedback controls

Assembly - Duckiebot DB21M

Modified 2021-03-23 by tanij

Duckiebot DB21M parts (get a DB21M). If you are unsure what version of Duckiebot you have, check this overview of all existing Duckiebot configurations.

A micro SD card with the Duckiebot image on it. The procedure to flash the SD card is explained here.

3 hours of assembly time.

An assembled Duckiebot in configuration DB21M.

Foreword

Modified 2021-03-23 by tanij

These instructions are your friend. Follow them carefully, especially if it’s the first time you assemble a DB21M. Small variations might cause big effects (e.g., don’t flip your cables!).

Video tutorial

Modified 2021-04-04 by tanij

The video is at https://vimeo.com/528621827.

DB21M: What's in the box and assembly.

Overview

Modified 2021-03-23 by tanij

A Duckiebox contains the following components:

Overview of all parts in your Duckiebox

The assembly process is divided in 9 parts. They must be completed in the following order:

The FAQ section at the bottom of this page provides resolutions to common symptoms.

Preliminary Steps

Modified 2021-01-08 by duckietown

Unboxing

Modified 2021-03-23 by tanij

Unbox all of your components and lay them out on a flat surface. Ensure that you have well lit, uncluttered space to work on.

“The Duckiebox hides but does not steal”. Your Duckiebot chassis is under the white protection foam. To get to the chassis, pull out the white foam from the box after removing everything. Mind that the upper part of the inside foam has several side pockets in addition to a main compartment where components are located.

Although not necessary, a small (M2.5) wrench might ease some of the next passages.

Plastic cover

Modified 2021-03-23 by tanij

Peel the plastic cover from all the chassis parts on both sides.

Screws, Nuts and Stand-offs

Modified 2021-03-23 by tanij

Each type of screw, nut and stand-off is labeled with an index. You will find corresponding labels on the pictures at each step. Using the right parts at each step will prevent undesirable effects (e.g., nylon screws prevent electrical shorts).

Overview of interlocking parts

Drive Train

Modified 2021-03-12 by duckietown

Step 0 - Charge battery via HUT

Modified 2021-03-22 by Andrea F. Daniele

  • Connect the battery and the HUT board as shown and make sure a green LED on the HUT is lit.
  • Wait 30 minutes and then push the button on the battery.
  • Check that the state of charge LEDs on the battery start blinking.
  • Leave this setup until the battery is fully charged. This may take up to 5 hours.

In the following steps (1 to 12) you will build the base plate assembly.

Step 1

Modified 2021-03-22 by Andrea F. Daniele

Take the base plate (number 02 on the bottom side) and insert two metal M3 nuts (N3) as shown.

It might appear tricky at first to make the nuts fit. Once on the inset, gently rotate each nut until it falls in place (note the final orientation of the screw in the picture).

Occasionally manufacturing tolerances (on the nut and the laser cut chassis) might prevent a flush fit. Trying a different nut or changing the insert direction might solve the problem.

Step 2

Modified 2021-03-22 by Andrea F. Daniele

Check the hole pattern in the middle of the plate to make sure you are holding it the right orientation, then insert two of the motor plates in the base plate.

Step 3

Modified 2021-03-22 by Andrea F. Daniele

Connect one of the 6-pin motor cable to the blue motor.

It might be easier if you place the base plate on a flat surface so hold the motor plates. Use one hand to hold the nut, and the other to drive the screwdriver.

Step 4

Modified 2021-03-22 by Andrea F. Daniele

Place the motor between the two plates and tighten it with two M3x30 screws (B5) and two metal M3 nuts (N3). Tighten the screws enough so that the final assembly does not wobble. Don’t use excessive force to avoid getting hurt (or braking something).

Pre-bend the cable before carefully passing it through the cable management inset on the chassis. Don’t use force to avoid braking the inset.

Step 5

Modified 2021-03-22 by Andrea F. Daniele

Connect the second 6-pin motor cable to the second motor.

Step 6

Modified 2021-03-22 by Andrea F. Daniele

Insert the other two motor plates into the base plate, similarly to step 2.

Step 7

Modified 2021-03-22 by Andrea F. Daniele

Tighten the second motor with two M3x30 metal screws (B5) and two metal M3 nuts (N3) and place the cable, similarly to steps 3 and 4.

Step 8

Modified 2021-03-22 by Andrea F. Daniele

Connect one of the longest 4-pin cables to the white connector of the IMU (Inertial Measurement Unit) board.

Step 9

Modified 2021-03-22 by Andrea F. Daniele

Attach the IMU board to the base plate using two nylon M2.5x10 screws (B2) and two nylon M2.5 nuts (N2).

Step 10

Modified 2021-03-22 by Andrea F. Daniele

Flip the assembly and verify that the three cables are routed through their corresponding holes or slits (cable of the left motor through the left slit, cable of the right motor through the right slit).

Step 11

Modified 2021-03-22 by Andrea F. Daniele

Flip the assembly again and mount the two M3x25 stand-offs (S3) to the bottom plate. Use two metal M3x8 screws (B3).

Step 12

Modified 2021-03-22 by Andrea F. Daniele

Mount the omni-wheel to the stand-offs using two of the metal M3x8 screws (B3).

If you note the screws don’t go all the way, try flipping the stand-off.

Verify the assembly

Modified 2021-02-09 by tanij

Before proceeding, verify that no component is wiggling. The only things moving should be the cables and the sphere in the omni-wheel (and, yes, the motor axles). Proceed to gently tightening the screws of the offending parts, if necessary.

Congratulations, you just built the base plate Duckiebot assembly!

Battery Pack Installation

Modified 2021-03-22 by Andrea F. Daniele

The following steps (13 to 18) guide through the Duckibattery assembly:

Step 13

Modified 2021-03-22 by Andrea F. Daniele

Take the upper plate (01) and 8 metal M3 nuts (N3). Compare the hole in the green circles with the hole position on your plate and make sure they agree (if the number 01 is visible on top, you are good to go).

Step 14

Modified 2021-03-22 by Andrea F. Daniele

Insert 4 nylon M2.5x10 screws (B2) from the top and tighten them with 4 nylon M2.5 nuts (N2).

Step 15

Modified 2021-03-22 by Andrea F. Daniele

Take the two plates with numbers 04L and 04R and insert three metal M3 nuts (N3) into each of them.

Step 16

Modified 2021-03-22 by Andrea F. Daniele

Connect these two plates to the upper plate with a metal M3x8 screw (B3) each. Note the slightly different holes in the side plates to mount them in the right way!

Step 17

Modified 2021-03-22 by Andrea F. Daniele

Insert the battery between the two side plates. Make sure the Mack the duck is on the bottom. The USB ports of the battery are not the same. Flipping the battery at this stage will cause the Duckiebot not to power on.

Step 18

Modified 2021-03-22 by Andrea F. Daniele

Take the two small plates labeled 07 and lock the battery in place.

Computation Unit and Rear Assembly

Modified 2021-03-22 by Andrea F. Daniele

At this point, we are starting to see the final shape of the Duckiebot! The following steps (19 to 27) will help assemble the lower frame and mount the NVIDIA Jetson Nano board:

Step 19

Modified 2021-03-22 by Andrea F. Daniele

Take the lower half of the Duckiebot from steps 1 to 12 again and mount it directly to the assembly you have just created using 4 metal M3x8 (B3) screws. Make sure all the plates are locked in place correctly.

This is a tricky step and might require a few tries to get it right. Remember that the Roboticist is patient and welcomes challenges with joy and determination!

Step 20

Modified 2021-03-22 by Andrea F. Daniele

Check the routing path of the two motor cables again from step 10 and wire them through the holes in the upper plate.

Step 21

Modified 2021-03-22 by Andrea F. Daniele

Do a similar procedure for the cable of the IMU unit.

Step 22

Modified 2021-03-22 by Andrea F. Daniele

Take the two yellow driving wheels and push them to the motors using one distance disk (S4) between each of them.

Step 23

Modified 2021-03-22 by Andrea F. Daniele

  1. Insert the SD card to the slot on the NVIDIA Jetson Nano board. Make sure the metal pins of the SD card are facing the heat sink.

  2. Place the Jetson Nano on the 4 screws from step 14 but DO NOT tighten the Jetson with any nuts or stand-offs yet!

Step 24

Modified 2021-03-22 by Andrea F. Daniele

Take the side cover carrying the number 05L. Insert a nylon M2.5 nut (N2) and a metal M3 nut (N3) into the plate (note the engravings: N2 and N3 on the plate itself).

Then secure the plate to the frame using two metal M3x8 screws (B3).

You may need to lift the Jetson Nano a little to fit the side cover plate under the NVIDIA Jetson Nano board.

Step 25

Modified 2021-03-22 by Andrea F. Daniele

Place 4 of the (S5) spacers on the nylon screws holding the NVIDIA Jetson Nano board.

Step 26

Modified 2021-03-22 by Andrea F. Daniele

Tighten the NVIDIA Jetson Nano board with the 6 brass stand-offs (S2). Put two stand-offs on each of the front screws but only one each on the back.

Step 27

Modified 2021-03-22 by Andrea F. Daniele

Take the side cover carrying the number 05R. Insert a nylon M2.5 nut (N2) and a metal M3 nut (N3) into the plate, similarly to step 24 (note the engraving: N2 and N3 on the plate itself). Then screw the plate to the frame using two metal M3x8 screws (B3).

Cable Management

Modified 2021-01-08 by duckietown

Step 28

Modified 2021-03-22 by Andrea F. Daniele

Take the USB cable that has three connectors. Connect the Duckiebattery and the NVIDIA Jetson Nano board with the USB-A ports as shown in the picture below.

The micro USB connector must not be connected at that stage!

Step 29

Modified 2021-03-22 by Andrea F. Daniele

Take the angled micro USB to micro USB cable and plug the angled connector to the middle port on the Duckiebattery. Wire the cable through the chassis as shown in the picture below. The micro USB end must be unplugged at that stage!

An experienced Roboticist at this point would mark the free end of this cable (e.g., with a sticker or some tape), to make it distinguishable from the other free roaming cable with a micro USB connector, so to make it very improbable to mix the two up and prevent future headaches!

Step 30

Modified 2021-03-22 by Andrea F. Daniele

Now take the last USB cable, with a micro USB plug on one side and an angled USB-A plug on the other side. Connect the USB-A end to the last (right) port on the Duckiebattery. Again, wire the cable through the chassis as shown and leave the micro USB connector free on the other side.

Step 31

Modified 2021-03-22 by Andrea F. Daniele

Connect the Wi-Fi dongle to the upper USB-A port on the NVIDIA Jetson Nano board.

Step 32

Modified 2021-03-22 by Andrea F. Daniele

Take the back bumper board and connect the 4-pin cable of medium length to the white plug on the board.

Step 33

Modified 2021-03-22 by Andrea F. Daniele

Wire the cable attached to the back bumper through the same hole in the upper plate as the motor cable of the left driving motor.

Step 34

Modified 2021-03-22 by Andrea F. Daniele

When attaching the back bumper board to the chassis, make sure the pins of the lower and upper plate all fit well. Tighten the board with three metal screws (B3).

Step 35

Modified 2021-03-22 by Andrea F. Daniele

Take the plate carrying the number 06 and press two nylon M2.5 nuts (N2) into the corresponding slits.

Step 36

Modified 2021-03-22 by Andrea F. Daniele

Mount the plate number 06 to the back of the chassis using two metal M3x8 screws (B3).

the 06 is not symmetric and the orientation matters. If the number 06 is pointing towards the Duckiebot, we are good to go!

Step 37

Modified 2021-03-22 by Andrea F. Daniele

Take the fan and mount it on top of the heat sink of the NVIDIA Jetson Nano board using 4 metal M3x12 screws (B4). Make sure the cable of the fan is pointing to the back right side (it might be necessary to use a little force on these screws, as the thread has to cut it’s way through the heat sink the first time).

You don’t need to tighten the screws completely but the fan must sit tight.

Step 38

Modified 2021-03-23 by tanij

Take the PCB with the Duckietown logo on it (we’ll call it the HUT from now on. A DB21M is equipped with a HUT v3.1).

Plug in the fan cable to the two pins as shown (note the orientation of the black and red cables!).

Step 39

Modified 2021-03-22 by Andrea F. Daniele

Gently press the pin connector of the HUT on the pins on the NVIDIA Jetson Nano board. Make sure both motor cables are routed through the slit in the HUT board.

Step 40

Modified 2021-03-22 by Andrea F. Daniele

Connect the HUT to the plate in the back using two nylon M2.5x10 screws (B2). Make sure the end of the 4-pin cable connected to the back bumper board is pointing to the right hand side.

Step 41

Modified 2021-03-22 by Andrea F. Daniele

Connect the 4-pin cable of the back bumper board to the white connector in the back right corner of the HUT.

Step 42

Modified 2021-03-22 by Andrea F. Daniele

Connect the first 6-pin motor cable of the left motor to the connector placed on the edge of the HUT.

Step 43

Modified 2021-05-17 by rafaelfroehlich

Connect the second 6-pin motor cable of the right motor to the other connector.

If you swap the motor cables, you Duckiebot will probably drive backwards when it is supposed to drive forwards :)

Step 44

Modified 2021-03-22 by Andrea F. Daniele

Connect the 4-pin cable from the IMU to the corresponding plug shown in the picture.

Front Assembly

Modified 2021-03-22 by Andrea F. Daniele

The following steps 45 to 52 will guide you through the assembly of the camera unit as well as some more electronics and cables.

Step 45

Modified 2021-03-22 by Andrea F. Daniele

If not already done, open the plug of the camera and push one side of the camera cable in. The orientation of the cable should be such that the copper pins on the camera cable face the camera plate. Then close the plug completely. Make sure to take off the plastic cap from the lens.

Step 46

Modified 2021-03-22 by Andrea F. Daniele

Wire the camera cable through the 3D printed camera mount starting from the front. Then use 4 nylon M2x8 screws (B1) and 4 nylon M2 nuts (N1) on the other side to tighten the camera to the mount.

Step 47

Modified 2021-03-22 by Andrea F. Daniele

Mount the camera part to the front bumper board using only one metal M3x8 screw (B3) and one metal M3 nut (N3).

Step 48

Modified 2021-03-22 by Andrea F. Daniele

Mount the single nylon M3x5 stand-off (S1) with a metal M3x8 screw (B3) from the other side.

Step 49

Modified 2021-03-22 by Andrea F. Daniele

Take one of the longest 4-pin cables and connect it to the front bumper board as shown.

Step 50

Modified 2021-03-22 by Andrea F. Daniele

Wire the cable that you have just connected (step 49) through the upper plate and the connect it to the connector on the HUT, as shown below.

Step 51

Modified 2021-03-22 by Andrea F. Daniele

Take the last of the long 4-pin cables and connect it to the front bumper board, similarly to step 49.

Step 52

Modified 2021-03-22 by Andrea F. Daniele

Again, wire this cable through the upper plate and connect it to the HUT, similarly to step 50.

Step 53

Modified 2021-03-22 by Andrea F. Daniele

Mount the front bumper board to the upper and lower plate using three metal M3x8 screws (B3). Make sure they are locked in place correctly.

Step 54

Modified 2021-03-22 by Andrea F. Daniele

Open the camera slit on the NVIDIA Jetson Nano board by raising it on the sides (with care), and put in the other end of the camera cable.

The orientation of the cable should be such that the blue part of the cable faces the camera (i.e., facing towards the front end of the Duckiebot).

Step 55

Modified 2021-04-26 by rafaelfroehlich

Attach the small blue distance sensor to the stand-off on the front bumper and tighten it with a nylon M3 nut (N4).

Make sure to take off the small transparent cover from the sensor.

Step 56

Modified 2021-03-22 by Andrea F. Daniele

Take the shortest 4-pin cable and connect the bottom of the time of flight sensor to the front bumper, as shown below.

Top Plate Assembly

Modified 2021-03-22 by Andrea F. Daniele

The following steps 57 to 64 show the assembly of the top plate of the DB21M, containing a button and a screen.

Step 57

Modified 2021-03-22 by Andrea F. Daniele

Remove the nut from the button, if necessary, and wire the button cables through the hole on the top plate (marked as 03).

Mind the orientation; if the number is pointing downwards, we are good to go!

Once the button is pushed in completely, tighten it again with the flat nut.

Step 58

Modified 2021-03-22 by Andrea F. Daniele

Mount the screen to the plate in a way the pins of the screen are pointing towards the button. Use 4 nylon M2.5 screws (B2) and 4 nylon M2.5 nuts (N2) for this.

Step 59

Modified 2021-03-22 by Andrea F. Daniele

Have a look at the pin descriptions on the screen. Take the 4-pin cable with the long black connectors and connect the 4 loose ends to the screen.

Follow this pattern: GND-black, VCC-red, SCK-yellow, SDA-blue.

Step 60

Modified 2021-03-22 by Andrea F. Daniele

Connect the end of the cable from the button to the connector on the HUT, as below.

Step 61

Modified 2021-03-22 by Andrea F. Daniele

Connect the end of the cable from the screen to the 4 male pins on the HUT as shown. Check the colors of the cables so that the same goes to the same, i.e.: GND-black, 3.3V-red, SCL-yellow, SDA-blue.

Step 62

Modified 2021-03-22 by Andrea F. Daniele

Gently place the cover plate on the chassis. Make sure the screws of the fan and the pins of the side plates are locked in place properly.

Step 63

Modified 2021-03-22 by Andrea F. Daniele

Tighten the cover part using two nylon M2.5x10 screws (B2).

Step 64

Modified 2021-03-22 by Andrea F. Daniele

Then, tighten the cover using two nylon M2.5 nuts (N2).

Power your Duckiebot

Modified 2021-03-22 by Andrea F. Daniele

In this step we will plug the various power cables to the HUT. One port will remain free. You can use this port to charge the Duckiebot.

Always plug and unplug USB cables from the HUT with care!

Step 65

Modified 2021-03-22 by Andrea F. Daniele

Take the black USB cable that you have connected in step 29 and connect it to the micro USB connector on the HUT as shown.

Step 66

Modified 2021-03-22 by Andrea F. Daniele

Similarly, connect the other USB cable (routed through the same hole) to the HUT.

Step 67

Modified 2021-03-22 by Andrea F. Daniele

Finally, connect the last cable to the HUT.

Step 68

Modified 2021-03-22 by Andrea F. Daniele

At that point, your Duckiebot is fully assembled! For charging, connect the charging cable to the last free micro USB connector on the HUT. To avoid putting additional stress on the connector, you can leave this cable plugged in and store it somewhere under the blue top lid.

Once your Duckiebot is fully charged, you can press the button of the battery on the side to power it up (do this ONLY if a flashed SD card has been inserted).

Additional Parts

Modified 2021-02-17 by duckietown

Step 69

Modified 2021-03-22 by Andrea F. Daniele

If you have an April tag take some glue and put it in between the two nylon screws on the top of you Duckiebot.

Step 70

Modified 2021-03-22 by Andrea F. Daniele

If you have a circle pattern put it on the back plate of your Duckiebot.


Check the outcome

Modified 2021-04-04 by tanij

Version 1.2.2 is the minimum requirement for enabling battery code updates. Make sure you have at least this version (>22 March 2021).

  • Make sure the SD card is inserted in Jetson Nano in the dedicated SD card slot under the main board. Do not plug it in the adapter and in a USB port. If you have already inserted a flashed SD card, you are allowed to push the magic button on the battery.

Troubleshooting

Modified 2021-05-17 by rafaelfroehlich

Camera cable needs to be twisted to make the pins on the cable matching those in the connector. Is this normal?

Yes this is normal. It might look a little nicer if you wire the camera cable around the metal stand-off next to the plug.

The Duckiebattery does not fit flush in the compartment.

Position it as it fits (at an angle). It will make the assembly a little trickier but everything will work out in the end.

I don’t have enough screws of a specific type.

Each package has enough screws of each type, plus spares of some. It might happen to inadvertently use one type instead of the correct one, which will result in shortages towards the final stages. Following the instructions carefully will prevent this from happening.

I can’t screw the omni-directional wheel right; the screws don’t fit all the way in the standoffs.

Sometimes manufacturing inefficiencies make the thread inside the standoff shorter than it should. This happens only occasionally and it is not the norm. The solution is to orient, in case of need, the shorter threaded stand-off side towards above, on the side of the chassis.

A piece broke while I was trying to assemble it!

Mistakes happen. Some damages will not influence the functionality of the robot, others will be fixable at home with some tools, others could be showstoppers. Please take a picture of the damage and send an email to hardware@duckietown.com.

The wheels tend to fall off the motors.

You may remove the distance disks you put in step 22. But make sure that the wheels are still not touching the screws of the motor mounts.

My Duckiebot is driving backwards when pressing the key for straight forward.

You have swapped the motor cables. Please check the steps 42 and 43 again and make sure you connected the cables the right way.

One of the black USB cables is too short to connect it to the HUT.

The customized cables may undergo some manufacturing tolerances. If it does not fit, there is a second way to connect the cables. However, some minor functionalities might differ in that configuration (e.g. the fan might continue working when shutting down the NVIDIA Jetson Nano).

I don’t understand what’s going on with the connections

This simplified block diagram of data and electrical connections of the DB21M might help:

`DB21M` block diagram of electrical and data connections.

I followed the instruction to the letter, but there is something off I can’t quite put my finger on.

You forgot to put a duckie on top of your Duckiebot!