Welcome to the DuinoBots Build Guide!

All the information you need to construct your DuinoBot can be found here. The Parts List and Assembly Guides on this page are for the current build version. Once official revisions have been made, information on legacy build versions will be made available.

The  build guide is meant to be completed in sequential order. Before you begin your build, it’s recommended you check out the parts list to ensure you have all the necessary components and printed parts.

Refer to the Circuit Diagram as a reference when soldering together the proto board.

Hardware and Components

This is the list of fasteners and external components

ComponentCategorySymbolQuantityTODO: Link
M4x10mm Socket Head Cap ScrewFastenersCS411
M4 Hex NutFastenersH44
M3x10mm Socket Head Cap ScrewFastenersCS31
M3x4mm Grub ScrewFastenersGS34
M2x6mm Flat Head ScrewFastenersFH22
M2x5mm Pan Head ScrewFastenersPH24
Neodymium magnets 1Case HardwareNM18
Neodymium magnets 2Case HardwareNM22
3/8” Ball caster kitCase HardwareBC1
AAAx4 Battery HolderElectrical ComponentsABH1
6mm x 6mm x 5mm Tactile SwitchElectrical ComponentsTS3
Sliding Power SwitchElectrical ComponentsPS1
500mAh LiPo BatteryElectrical ComponentsLPB1
Micro Metal Gearmotor 75:1Electrical ComponentsGM2
Servo MotorElectrical ComponentsSM1
Male Header Test LeadsCables/WiringMTL5
Female Header Test LeadsCables/WiringFTL5
RGB LEDElectrical ComponentsLED1
330 ResistorElectrical ComponentsR3303
10k ResistorElectrical ComponentsR10K2
Wheel TreadsMisc.WT2

Printed Parts

This is the list of 3D-printed parts required to assemble the base. This list does not include any of the armor kits. Those files can be found at TODO

PartCategorySymbolQuantityLink TODO: thingiverse link
BasePrinted PartsBS1
BaseTopPrinted PartsBT1
MotorFrameMountPrinted PartsFM2
ServoBracketPrinted PartsSB1
HitSwitchRockerArmPrinted PartsRA1
CasterRaiserPrinted PartsCR1
BatteryHolderArmPrinted PartsBH1
HammerArmPrinted PartsHA1
MotorMountPrinted PartsMM2
MotorMountTopPrinted PartsMT2
WheelPrinted PartsWH2

Board Stack

This is the list of boards and stack specific components (like headers). Other stacks are in the works.

Adafruit Stack

Adafruit Feather M0 Bluefruit LEABB1 Adafruit DC Motor Featherwing BoardAMB1 Adafruit Featherwing Proto BoardAPB1 Feather Stacking Headers PackFST1 Female Header Pack FFT1

1. Solder Headers Onto Boards

Required Components:

  • All Adafruit Boards and headers (ABB, AMB, APB, FST, FFT). The proto board comes with a set of male headers that will also be used.
  1. Solder headers onto respective boards
  2. Female headers (FFT) onto BlueFruit board (ABB)
  3. Stacking female headers (FST) onto Motor Driver board (AMB)
  4. Male headers (included with board) onto protoboard (APB), soldered onto underside

2. LED Assembly

Required Components:

  • RGB LED (LED) – (x1)
  • 330Ω Resistor (R330) – (x3)
  1. Insert the pins of the LED and leads of the three 330Ω resistors as shown. The GND pin of the LED is second from the left in the picture.
  2. Solder the four LED pins to the proto board as shown. Gently bend the LED backwards until the pins are parallel to the board. Ensure that there is no contact between the ground pin and any of the other pins.
  3. Bend the other half of the resistor leads into the proto board as shown.
  4. Solder the resistor points onto the board, and clip the excess resistor leads on the back of the board.

3. Hit Sensor Resistors

Required Components:

  • 10k Resistor (R10K) – (x2)
  1. Position the two resistors into the proto board as shown. One end of each resistor should connect to the GND rail of the board. Snake the other ends of the resistors through to the underside of the board.
  2. Bend the resistor leads along the underside of the board as shown and back up through the inner jumpers to pins 6 and 12.
  3. Solder all four connection points and trim excess resistor leads.

4. Reset Switch

Required Components:

  • 6mm x 6mm x 5mm Tactile Switch (TS) – (x1)
  • Wire
  1. Clip the ends off of one side of the tactile switch and position it on the proto board. One pin of the switch should tie into the RST pin on the board. NOTE!! Be sure that the orientation of the switch is correct before while performing this step! When looking at the switch where the pins are sticking out on the left and right, the top two pins and bottom two pins are common on the switch.
  2. Solder the two pins of the switch.
  3. On the underside of the board, solder a short jumper wire from the unconnected pin of the switch to the GND rail of the board. When pressed, the switch will connect the RST pin of the microcontroller to GND and reset the chip. Double-tapping the reset button quickly will put the microcontroller in bootloader mode, which will allow you to upload code to it.

5. Servo Connector

Required Components:

  • Servo Connector from step TODO – (x1)
  • Wire
  1. Strip the ends of the servo connector and solder to the proto board. The control pin of the connector connects to Pin 5 on the proto board, and the V+ and GND connectors go to any isolated pads.
  2. Cut a length of red wire ~60mm and strip both ends. One end of this wire will tie into the battery power and motor board power terminal, so strip a longer portion of wire from one end. Solder the other end to the servo connector wire.
  3. On the underside of the board, solder a GND junction wire from the servo connector to the GND rail on the board.

6. Hit Sensor Cables

Required Components:

  • Female Header Test Leads (FTL) – (x3)
  1. Prepare the female header test leads by cutting the wire down to ~80mm length and stripping the ends.
  2. Solder the two hit sensor leads at the point where the resistor leads switch to the back side of the board.
  3. Solder the last lead onto the 3.3V power rail on the proto board.

7. Completed Assembly

You have a completed stack! Hooray!


Make sure all connections on the board look solid and no bridges exist. You’re now ready to start building your DuinoBot base!

1. AAA Battery Holder

Required Components:

  • Base (BS) – (x1)
  • AAAx4 Battery Holder (ABH) – (x1)
  • M2x6mm Flat Head Screw (FH2) – (x2)
  1. Secure battery holder to base using the two flathead screws as shown. The wires of the battery case should be towards the front of the case (the side with the three additional holes).

2. Power Switch

Required Components:

  • Sliding Power Switch (PS) – (x1)
  • Super Glue
  • Wire
  1. Glue the power switch onto the right side of the frame.
  2. Cut the red wire of the battery holder to length, apply heat shrink, and solder onto the middle pin of the power switch.
  3. Cut a length of wire ~75-80mm in length and strip both ends. Strip a longer section off one end as this will tie into the motor board screw terminal. Solder the other end of the wire onto the front-most pin of the switch and apply heat shrink.

3. Caster Assembly

Required Components:

  • 3/8” Ball caster kit (BC) – (x1)
  • CasterRaiser (CR) – (x1)
  • M3x10mm Socket Head Cap Screw (CS3) – (x1)
  1. Assemble caster onto the printed caster spacer using the included hardware.
  2. Align the completed caster and spacer assembly underneath the front of the case and affix using the M3 screw.

4. Attach Motor Frames

Required Components:

  • MotorFrameMount (FM) – (x2)
  • M4 Hex Nut (H4) – (x4)
  • M4x10mm Socket Head Cap Screw (CS4) – (x4)
  1. Insert the hex nuts into the cutouts on the inside walls of the base.
  2. Screw each motor frame in using two M4 screws as shown. The rectangular tab on each of the frames should be on the underside of the base (see the last picture).

5. Mount Board

Required Components:

  • 500mAh LiPo Battery (LPB) – (x1)
  • Adafruit Feather M0 Bluefruit LE (ABB) – (x1)
  • M2x5mm Pan Head Screw (PH2) – (x4)
  1. Insert the LiPo battery into the recess of the case so that it is sitting on the back of the battery holder as shown. Note the orientation and position of the wire. The wire should be at the front of the case and loop around to the right of the post where board will be mounted.
  2. Secure the Adafruit board to the base via the four screws.

6. Motor Assembly

Required Components:

  • Micro Metal Gearmotor 75:1 (GM) – (x2)
  • MotorMount (MM) – (x2)
  • MotorMountTop (MT) – (x2)
  • M3x4mm Grub Screw (GS3) – (x2)
  • Wire
  1. Cut two lengths each of red and black wire ~60-65mm in length and strip both ends. Solder onto the back solder tabs of the motors. Note the imprinted (+) on the back of the motor, solder the red wire to this tab.
  2. Insert the motors into the motor mount boxes (MM) while sliding the leads through the hole in the back of the mount, then place the motor mount top piece (MT) on top of the motor. It should sit flush with the top of the motor mount box.
  3. Slide the assembled motors into the frames (FM) while guiding the motor leads through the hexagonal hole in the side of the frame. This step may require some light sanding to the get the box to slide into the frame.
  4. Secure the motors to the frames using the two grub screws and the holes in the bottom of each frame (FM).

7. Wire Connections

Required Components:

  • Adafruit DC Motor Featherwing Board (AMB) – (x1)
  • Adafruit Featherwing Proto Board (Assembled) (APB) – (x1)
  1. Twist the battery power lead from the power switch (PS) and the lead connected to the servo power on the proto board together.
  2. Screw the motor leads into the screw terminals in the back of the motor driver board. Looking at the top of the board with the case facing down, the leads should be connected as (LM+) (LM-) (RM+) (RM-), with LM = Left Motor, RM = Right Motor.
  3. Screw the negative lead from the battery holder (ABH) and the tied-together power leads from the battery and servo into the side terminal of the motor driver board.

8. Wheel Assembly

Required Components:

  • Adafruit DC Motor Featherwing Board (AMB) – (x1)
  • Wheel (WH)- (x2)
  • Wheel Treads (WT) – (x2)
  • M3x4mm Grub Screw (GS3) – (x2)
  1. Secure the wheel to the motor shaft using the grub screw and a 1.5mm allen key (just about any 3mm bolt will do if you don’t have a grub screw).
  2. Ensure there is a small gap between the wheel and the frame to prevent any interference.
  3. Stop and admire. We’ve got ourselves something that looks like a robot now!

9. Hit Sensor Assembly

Required Components:

  • ServoBracket (SB) – (x1)
  • HitSwitchRockerArm (RA) – (x1)
  • Male Header Test Leads (MTL) – (x1)
  • 6mm x 6mm x 5mm Tactile Switch (TS) – (x2)

Note: Some find it easier to solder the leads without putting the switches onto the bracket first.

  1. Fit the tactile switches into the recesses of the bracket.
  2. Cut the three leads to ~80mm length and strip the cut ends. On one of the three leads, strip 8-9mm of sheathing off. This will be the power lead. Solder the power lead to the middle-most switch pins as shown, using the excess stripped wire as a bridge. Solder the remaining two leads to the outside pins.
  3. Slide the HitSwitchRockerArm into the bracket and test the fit. The arm should depress the switch and release easily on each side. If one switch or the other is permanently depressed, try lightly sanding the recesses in the rocker arm.

10. Servo Bracket Assembly

Required Components:

  • Servo Motor (SM) – (x1)
  • M4x10mm Socket Head Cap Screw (CS4) – (x4)
  • Servo Bracket Assembly
  1. Secure the servo to the bracket using the screws. The shaft of the servo should closest to the straight leg of the bracket.
  2. Make sure that the leads for the switches are tucked into the holder as shown. This prevents the wires from interfering with the movement of the head of the armor kit.

11. Frame Top Assembly

Required Components:

  • Neodymium magnets 1 (NM1) – (x8)
  • BaseTop (BT) – (x1)
  • M4x10mm Socket Head Cap Screw – (x2)
  • Base Assembly
  • Servo and Bracket Assembly
  • Super Glue
  1. Super glue the eight magnets into the recesses of the base and top. Make sure that the orientation of all the magnets is correct!
  2. Secure the servo and bracket assembly to the frame top using the two M4 screws. The servo wire should point toward the front of the frame and be tucked behind the wall of the bracket.

12. Servo Arm Assembly

Required Components:

  • HammerArm (HA) – (x1)
  • Servo Horn and Screws (actual servo not needed)
  1. Place the servo horn on top of the arm and use two servo screws to fasten the two together.
  2. Clip the excess length of the screw from the back of the arm.
  3. Place the arm onto the servo shaft as shown. In the picture, the servo is rotated all the way counter-clockwise. Positioning is important! The swinging action of the hammer is in the clockwise direction.

13. Completed Base

  1. Connect the servo, hit switch power, and hit switch signal cables. Tuck the servo connector in front of the board and the hit sensor leads into the side.
  2. Your base is complete! The last step is to add armor! The weapon of each kit is secured to the hammer arm via an M4 screw.
  3. Give yourself a high five! You’ve got yourself a DuinoBot! From here, it’s on to uploading code to your bot.

1. Arduino IDE Setup

  1. First, ensure that you have the Arduino IDE properly set up and are able to upload code to your board. Instructions on installing the Arduino IDE and the proper board drivers can be found on their website here:

Use these guides to make sure you can upload at least the ‘Blink’ sketch to your board to debug any issues with uploading to it.

2. Install Libraries

  1. The DuinoBots sketch requires two additional libraries to run:
    • A library for BLE communication – Adafruit BlueFruitLE nrf51
    • A library for the motor driver board – Adafruit Motor Shield V2 Library
  2. To install the libraries, navigate to the Library Manager under ‘Sketch’ > ‘Include Library’ > ‘Manage Libraries…’ and search for the above two names in italics and install both libraries.

3. Download DuinoBots Code

  1. Go to www.todo.github.com and download the zipped version of the DuinoBots Arduino Code.
  2. Save the zipped folder under Computer > Documents > Arduino.
  3. Right click on the zipped folder, click ‘Extract Here’ from the menu, and rename the new ‘BattleBot-Arduino-Master’ folder to ‘battleBot’. The name of the folder and the .ino file inside must match exactly, including casing.

TODO: Change github picture and link

4. Upload Code

  1. Plug your DuinoBot into your computer via the Micro-USB port in the back. Double tap the reset switch to put the board in bootloader mode.
  2. In the Arduino IDE, open battleBot.ino and upload the sketch to your bot. If the upload was successful, the LED should start blinking blue.
  3. Congrats! You’re bot is just an armor set away from being ready for battle! The next step from here is to pair your DuinBot to your phone.

1. Download the App

  1. todo

2. Run Setup Wizard

Before you try to pair your device via the wizard, hit the reset and wait 30 seconds. You should only have to run this procedure once until you want to connect to a different device.

  1. Go to the BLE Setup Wizard Page and hit the ‘Start Wizard’ button
  2. Select your device from the list. The device name is ‘Adafruit Bluefruit LE’ by default
  3. The wizard will send a test message and you should see the LED on the back of your bot flash white temporarily, followed by a success popup on the phone. If the wizard fails, you can try manually entering the device settings in the Settings page of the app.

Select ‘Yes’ from the success modal to save the UUID of your bots BLE module. After saving the settings, the app will automatically try to connect to the saved device when starting a new battle. You can rerun the wizard at any time to connect to a different device and save those settings as the default.