Here he is folks! My BD-1 project is now complete! This adventure started in November 2019 and since that time I’ve learned a lot about robotics. Still very much a novice, but I now have the confidence to bring my R2 to life using the knowledge from this project.
If you missed out on the last episodes, you can check them out here:
Once again, a big shout out to Michael Baddeley for creating these files for us nerds to bring to life. Go and support him on his Patreon page at https://www.patreon.com/mrbaddeley.
Let’s dive in to the last two “build” pieces of this project. The base and the controller.
The Base
Parts Needed
- Board Mount
- Board Mount Cover
- Front Speaker
- Rear
- Speaker Plate
- Side A
- Side B
- Speaker Support
Tools & Materials Needed
The below are affiliate links, meaning I get a few penny’s every time you buy from them. Thanks for helping out!
- 2 Speakers (https://amzn.to/341XXE9)
- Speaker cable (https://amzn.to/2Q1DAyF)
- M4x10 Bolts (https://amzn.to/2SON4PI)
- M4 Nuts (https://amzn.to/2vunI15)
- Soldering Iron (https://amzn.to/3h3fU92)
Step 1
Building the base is pretty straightforward. I used M4 nuts and bolts to connect it all together.

The Speakers
Step 2
The speakers have a positive and a negative lead. When it comes to speaker wire it doesn’t really matter which cable connects to which lead, as long as they match on the other end.
If you look closely at the speaker wire though you’ll see one has a white stripe on it. I use this one as the power, and the other as the negative. It’s easier to remember.

Step 3
Take the speaker support and insert two M4 nuts into the slots.
Step 4
Pop the speakers through the holes.
Step 5
Sandwich the speakers between the Front Speaker holes and the Speaker Support.
Step 6
Take your Speaker Plate (I used the rebel one), and attach the whole thing together with M4x10 bolts (or whatever you have left at this point that fits).
The Controller
Parts Needed
- Center Ball
- Ball Post
- Ball Two
- Ball Three
- Main Top Plate
- Main Body
- Button Holder
- Button Core
- Button Screw
- Base
Tools & Materials Needed
Because it’s worth repeating – below are affiliate links, meaning I get a few penny’s every time you buy from them. Thanks for helping out!
- Wire Stripper
- Dupont Crimper & Connectors (https://amzn.to/3g6B3OS)
- Servo Cable (https://amzn.to/3g0Bcmk)
- Soldering Iron (https://amzn.to/3h3fU92)
- 4mm Brass Tube (https://amzn.to/2SSEGPf)
- 6 10K metal potentiometers (https://amzn.to/2PVN52t)
- 4 5mm microswitches (https://amzn.to/2CzVG88)
- M3x10 bolts (https://amzn.to/3iKo2vH)
- M3 nuts (https://amzn.to/2YFhvv0)
- M4 nuts (https://amzn.to/2vunI15)
- M4x5 bolts (https://amzn.to/3h1ozJl)
- M4x10 bolts (https://amzn.to/2SON4PI)
Step 7
Starting with the joystick, insert your pot into the hole, lining up the tab of the pot with the thoughtfully designed slot in the center ball and tighten down with the supplied bolt.
Step 8
Next, slide your servo cable through the channel in the Ball Post, making sure it exits out the side.

Step 9
Attach with two M3x10 bolts and M3 nuts.
Step 10
Wrap the cable with a tie to keep it all in place.
Step 11
Insert two 3 – 4mm pieces of brass tubing into the holes in the ball. I needed to widen the holes a bit here with a hand drill.
Step 12
Next take Ball Two noting the thicker ends. The side with a smaller hole gets a piece of brass tubing, while the larger hole will eventually pressure fit over a potentiometer.
Step 13
Next place Ball Two over the Center Ball, lining up the thin side holes with the brass holes in the Ball. Insert two M3x10 bolts , adding a little two part epoxy to hold them in place.
The Ball should now move freely.
Step 14
Take ball three, and insert a brass tube into the smaller of the two holes. The larger hole will be pressure fit over a pot.
Step 15
Take the top plate and fit the pots in place, tightening them up.
Step 16
Now it’s time to put it all together. Take Ball Three and slide it over the pot, and then use a M3x10 bolt to hold the other side in place.
Place the Center Ball assembly over that (making sure the arm straddles Ball Three), and pressure fit Ball Two over it’s pot.
The joystick is now complete!

Step 17
Moving on to the main controller insert the pots into their relevant holes. The power and ground will all be daisy chained together, with the signal cable being what runs to the brain. You’ll want a nice amount of length for the signal cable. I used about 12 inches for each.
Step 18
Similar to the pots, the micro switches use a ground and a signal. The ground being daisy chained while the signal heads to the brain.
Place the switch on the button holder, place the button core on top of that, gently place it in the hole, and then clamp it all down with the button screw. Make sure to test all the buttons as they can sometimes move around when layering them together.
There’s a wiring guide in the file package on Mr. Baddelley’s patreon page, just follow that and you’ll be a-okay!
Step 19
Tidy up the cables, with cable ties, and run them through the slot. Finally, attach the base.
At this point you may want to wrap your signal cables with cable wrap to keep them nice and neat looking.
The full controller is now done.
The Brain
Parts Needed
- Electronics Cover
- Electronics Base
Tools & Materials Needed
- Arduino Mega (https://amzn.to/2Y0SU2X)
- TPA3116D2 Dual Channel Amp 2x50W (https://amzn.to/30XARfZ)
- 10Amp UBEC (https://amzn.to/34fHHQn)
- DFPlayer Mini (https://amzn.to/2E3Bmw8)
- On/Off switch (https://amzn.to/2Fpp7ut)
- Circuit Breaker (https://amzn.to/3fVyDlz)
- Battery (I used 7.4V battery)
- Wire cutters/strippers
- Small Pliers
- Dupont Crimper and Connectors
- Soldering Iron
- Wire
From here on out I recommend you read the instructions as there are a lot of great wiring diagrams.
Mr. Baddelley also has a great video series on wiring up the brain and coding BD-1 through the Arduino IDE.
Here are the links to the videos:
Wrap-up
A few things I learned along the way.
Label your wires
Especially when you first start building BD-1 and you run the first set of wires up his legs, you’ll want to be sure to identify them at the top and bottom because when you get to plugging everything, you’re not going to want your SDA cable to be running into the SLC cable, or the 5v power running into the Voltage In header.
A voltage tester is a necessity
The voltage tester is helpful too when testing your UBEC. I blew out all my servos after tinkering with my UBEC and swapping the wires. I ended up sending 7.4 volts directly into the servos frying everything. If I had taken a second to check the voltage I would have saved myself time and money.
Watch the Baddelley videos on connecting everything
And then watch them again.
And then watch them again.
There’s a lot of good info in there that will help you troubleshoot but also learn a bit more about the sketch code.
Playing with the Sketch
There’s a lot of settings in the sketch to play with including the positioning of the servos, I tinkered a lot with those to accommodate my servo positioning, and my own level of comfort. Make sure you keep track of your changes though in case anything goes wrong.
DF Player Mini error
After uploading the V2 controller sketch, check the serial monitor in the Arduino IDE to make sure everything is functioning properly. I ran into an issue with my DFPlayer mini where I kept getting the error “check connection status/insert SD card”. I did everything I could think of including replacing the whole player. Come to find out it was the 1k resistor. I just shortened the leads on a new resistor a bit, because I read somewhere that helps, and attached that to the wire. That got everything working again.
Also the order of the sounds is played based on the created date, not by the file name, so move the happy files over first, then wait a few seconds, then move the angry sounds, and so on.
The UBEC
I had mine set to 5v and that caused things to not work so great, again, I wasn’t entirely sure how high I should go. The servos can actually take the 6 volts, so I went that route. As soon as I got to 6 volts the LED panel started working and everything was relatively smooth.
Things I can’t figure out
The rear LED panel. I’ve tried using the test included with the sketch package, I’ve also tried using the Andrew Donatelli sketch to no avail. The lights just stay a solid blue so not entirely sure what’s going on here. There was an issue with getting the Donatelli sketch to load onto the board, however, to fix that I needed to completely uninstall the Arduino IDE and reinstall it. After I did that the sketch loaded fine – I think I overwrote a library or something.
So, if you’ve figured out how to get the rear panel to work please let me know! I’m 99.9% certain that the issue is with something that I’ve done (or didn’t do), I just don’t know how to diagnose it!
Big shout outs to:
- Alex Barszap
- Trevor Zaharichuk
- Brian Olson
For trying to help me troubleshoot things! While we couldn’t figure it out, I appreciate the time you donated to the cause!
I hope you enjoyed this series! If you have any questions along the way with your build don’t hesitate to shoot me line on the socials:
Twitter and Instagram: @mbap77
Facebook: @madebyap
And don’t forget to hit up the Printed Droid Facebook group, there’s lots of very helpful folks on there.
Happy building,

Credits
Intro Music; Straight Through by Groove Bakery | https://groovebakery.com
Music promoted by https://www.free-stock-music.com
Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)
https://creativecommons.org/licenses/…
Clip from Pinky & The Brain 4: A New Hope, copyright Amblin Entertainment and Warner Brothers Animation