Let's Make Robots!

How to make a Yellow Drum Machine

Now available as a kit!
YDM_code_with_instructions.zip21.15 KB
YDMhookup.pdf34.46 KB

Update: Solarbotics has made this kit, were you will get all the vital parts needed for this project, at the best total price available out there :)

Welcome, funky friend :)

I have tried to make this project so easy that you should have fun doing it, even if you have never made a robot before, and do not know anything about electronics or programming.

However, if you have never made a robot before, I strongly recommend, that you first do the Start Here project :)

Apart from this, the skills that are needed are:
    •    Soldering
    •    Gluing, cutting, wire stripping, general assembling

Background: This is my "original draft" for an article on Make Magazine. The publiced article was edited, which may have made it better in many ways. However, unfortunately some errors occurred in the editing, and I am of course terribly sorry for that. This is my original tutorial on how to make a Yellow Drum Machine, published here in agreement with the nice people over at Make.

My YDM has released a single on iTunes :D



The materials used for this project, is a blend of things you can find for free, standard electronics components, and some components that can be a little hard to find.

Flat wooden sticks

You can be very creative, and quickly make surprisingly strong robot bodywork out of flat sticks and hot glue, because they are so easy to work with.

The sticks can be drilled, cut, combined, shaped, and mounted in any angle, just how you want them, enabeling you to build any custom chassis and small robot body that you can imagine.

And you can often find them for free in shops that sell paint, in cheese cradles, ice creams and the like :)

Plenty of hot glue

The way I build, is I hold up components where I think they’ll look good. Then I cut a piece of wood, place that in the air between the component and the rest of the robot, and hot glue it all right there.
1 x Set of belt tracks and geared motors

You can buy pre-made robot tracks, including geared motors and chassis.

I like to buy individual parts, because as I will show you, it is fun to create designs that cannot be found in the shops, and it is really easy and fast to do.

Also, I like asymetry, and things to be a little out of angle. Specially when I am making a funky robot.

1 x Wheel axle

A belt track setup of the kind we are building here uses 2 geared motors to hold 2 wheels in back, and an axle to let 2 wheels in front drive freely.

The axle can be anything that will fit into the holes, and let the wheels drive freely.

I like to use old radio antennaes for this part, as it is always easy to find a piece with a fitting diameter that way.

Perhaps also get a few metal washers that will fit over the axle.

Here is a nice tip on how to cut brass tubes: letsmakerobots.com/node/9266

4 x Spring-mounted geared motors

These can only turn some 40 degrees to one side, and some 50 to the other. And when they are powered off, they jump back to where they started, because of the little spring.

They are also quite strong for their small size, and I use them to drive the 3 drum sticks, and to turn the robots head to the sides.

3 x Light weight drum sticks

Even though the little motors are quite strong, it is absolutely essential that you only use very, very light weight material for the 3 drum sticks.

Thin fiber glass rods can be used, as well as the thin hollow aluminium that one can find on many old TV antennaes.

You can not use something like the chrome-covered brass from an old radio antennae, like we did for the axle - it is too heavy.

1 x Brains in board

The microcontroller I am using for this project, is a PICAXE 28X1, in a 28pin project board (AXE 020). The board comes with both a Darlinton output buffer, and a place for one L293D motor driver.

If you do not have one already, you will also need an AXE027 download cable.

2 x L293D motor driver

A microcontroller can only turn power on or off. With a motor driver as this, you can turn motors either way. We need to be able to drive both wheels and the head of the robot in both directions.

1 x Long battery holder

While the AXE20 board for the microcontroller comes with a battery holder, the one I am using, is a little different in the design.

With it’s set of 2 by 2 batteries, it is long, and makes a nice little rear for the robot.

1 x Sampler board

It is simply a little board with a microphone, a speaker, and 2 buttons.

The intended use is to press the red button, and record a message of up to 20 seconds, and then play it back over and again, by pressing the white button.

As I will show you, it is very easy to hack, so that the microcontroller controls the record and playback of the device.

1 x Cool looking speaker

Speakers can be found in most old electronics. Find one that has a cool look to it, or combine a couple of old parts into a speaker in a case.

1 x Distance sensor

I am using SRF05 ultra sound distance sensors from Devantech, because they are extremely reliable, and give a completely rock stable reading, even at extremely close distances.

As a bonus, they look cute as eyes.

15 x Female-to-female jumper wires

Get some nice with colours to match your robot.

- And get a good piece of wire (without female jumpers in the ends), and just use that, when I am not specifically mentioning female headers on the wire.

4 x Snap off male header pins

To be soldered into the main board.

1 x bundle of heat shrink tubing

Get some nice colours, that match your design.

Cable ties

These comes in many fancy colours and sizes. Get a grab bag, or chose some that will look good in matching colours.
4 rechargable AA type batteries

It is important that you use rechargables, as these provides approximately 1.2V each. Using something like standard alkaline batteries might fry your robot.

2 component glue

Not to be confused with “Zap-a-gap” or similar “contact glue”, as we need glue with a body for support, not something that only holds two parts where they touch each other.

Double sided adhesive tape

Either the foamy type (shown) or thin type will do fine.

It is nice to mount things with temporarely, while checking that everything is OK, before securing the part with hot glue.

Parts you will find around

I like to decorate my robots with little things and bits I find around; A cool little ring, pin, hat etc.

You will need
    •    Soldering equipment.
    •    Cutting tools.
    •    A lighter or a heatgun.
    •    A screwdriver.
    •    A hot glue gun.
    •    A computer running Windows, OSX, or Linux.



Step 1 - Assemble tracks and motors

Belt tracks usually comes in individual pieces. Assemble the 2 belt tracks, solder 4 approximately 10 centimeters wires to the 2 geared motors, and put wheels on them.

Place it all in front of you, as shown on the picture, to get a good idea of the overall size of the robot.

Step 2 - Create the basic chassis

Cut 4 pieces of flat wood; 2 longer, 2 shorter, and glue them together as shown.

The length should be so that the wooden square sticks a little out in front and back of the belt tracks. The dimensions of mine is 13.5 CM times 5.5 CM.

It does not matter if there is a wider or smaller gap in the middle of the plate that you create, or if you use more sticks. You can even use a single large flat piece, if you have a drill to make holes for wires in the board.

Step 3 - Mount tracks and motors on chassis

If you have some double sided adhesive tape, it can come in handy here. Simply use it to mount the motors, and later reinforce them with hot glue.

Hot glue one thing at a time. Hold it, till it is cooled down completely, and then secure it with more glue. Let that cool down and harden before you mount the next part.


Mount the 2 motors, so that

    •    The belt tracks do not touch the chassis
    •    The belt tracks run paralel along the sides of the chassis
    •    The belt tracks are not sticking out behind or in front of the chassis
    •    The motors has as much flat surface to the wood as possible


Prepare your front axle with what ever means you have. I used a metal screw, stuck into a blob of hot glue.

I placed a couple of washers to hold the 2 front wheels in same distance from each other as the rear wheels, while enabeling the front wheels to turn freely, without touching the chassis. Use what ever parts at hand, to enable a mount of the axle, so the wheels can turn freely.

You should try to get the belt tracks quite tight, as they always end up loser than planned. So press the axle away from the motors when you are mounting it.

You can’t buy that kind of chassis in the shops :)

Step 4 - Mount the battery holder

A single line of hot glue should hold it well.

Step 5 - Mount the speaker that came with the sampler board

First, test how your sampler board works: Insert batteries into the attached holder, and play about with recording your voice and play it back.

Solder off the original wires from the sampler board, and solder on 2 wires with female headers.

Mount the speaker underneath the robot as shown, with the wires sticking up to the top side.

Step 6 - mount the “face”

6.A - Solder wires on the SRF05

Solder 4 times approximately 10 centimeter thin / easy bendable wires to the SRF05, see the picture. Make sure to solder in the right holes of the print, as shown.

6.B - Mount the SRF05 to the neck motor

Take one of the 4 little spring-mounted geared motors, and the SRF05. Mix a blob of 2 component glue, and mount with the aid of an improvised holder like shown on the picture.

Make sure the SRF05 can turn freely without touching the little pin that sticks up, and that the SRF05 is right angled on the motor.

6.C - Mount the head on the chassis

If you are new to using a hot glue gun, make sure first to practice on something else first. You can also read some tips here.

When you are about to mount a component on the robot, you can cut one or more pieces of wood, and hot glue it on to support that component. It is often a good idea to wait with extra supporting pieces till later, when you know the spot is right.

You will have to use as much supporting wood and hot glue as needed. But try and make the mount take up as little space as possible. You can always reinforce it later.

Mount the head on the front of the robot, with these guidelines:

    •    The head should be vertical (or leaning only a tiny bit forward, not as much as the tilted chassis)
    •    The SRF05’s “eyes” should end up a couple of milimeters behind the front edge of the chassis.

When done, you can try and turn the head to each side. You may notice that it can look more to one side than the other.
If this is the case, place a little piece of wood or stick that will stop it to move more to one side than the other. It should be looking right ahead when not touched, and be able to look just as much to the left as to the right.
This does not need to be extremely accurate.

Step 7 - Mount the drumsticks

The finished robot will have 3 drumsticks in total. I refer to them as:

    •    Bass Drum: The little “tail” on the rear of the robot.
    •    Snare Drum: The right (from robots perspective) front stick.
    •    Hi Hat: The left (from robots perspective) front stick.
It does not matter if you should mix up Hi Hat and Snare Drum. Basically they are just 2 front drum sticks.
The sticks should be mounted on the motors, and the motors should be mounted on the chassis.
The order in which I do this is
    •    Mount long sticks on motors
    •    Mount motors on robot
    •    Cut the length of the sticks while mounted (because then I know the length needed)
    •    Balance and decorate the sticks

7.A - Mounting drum sticks on motors
Each stick is directly mounted on 3 of the little spring-mounted geared motors. These can turn more to one side than the other.
When estimating lengths of the sticks, observe which way you turn the motors, and make sure that you are mounting the motors in the same direction as you used when working out the appropriate lenght of the stick.

First pre-mount the sticks, to make gluing easier. The pre-mounting can be done with a small piece of wire, hot glue, or by drilling a hole in the stick, to fit the little pin on the geared motors. Then mix some 2 component glue, and mount it.

7.B - Mount the motors on the chassis

Mount them where you think they’ll look good; 2 in front, one in back.

Make sure to thoroughly test that the sticks can move uninterupted, also when the head and other sticks are moving.

No, I am not sponsored by a hot glue company ;)

7.C - Find the right lenght of the drum sticks

The length of the Bass Drum should be, so that just when touching the ground, the stick is in an approximatetely “8 ‘o'clock” angle.
The length of the 2 front sticks should be so that they can reach to drum on things a couple of centimeters in front of the robots chassis, when facing a wall.
A rule of thumb is that shorter sticks are better performing - but look less cool, so you will have to find a balance.

7.D - Weight balancing and decorating the sticks

After cutting the right lenghts, the sticks can be ajusted in weight, and be decorated.
The weight should be so that the motors can easily move the sticks, but if you are using something like fiber glass, or at the short Bass Drum, you may want to add something like a bolt or screw at the end, to make sure the sticks hitting is audible.
You can wait with the fine tuning till when you come to running the test program for the sticks.

Step 8 - Mount the remaing electronics

The 3 remaing larger parts are
    •    The main board (AXE020)
    •    The sampler board
    •    The cool looking speaker
Around on the bodywork that holds these parts, you can decorate with the remaining, parts one by one, after you solder wires on them (Step 10).

First mount a couple of sticks to hold and seperate the 2 boards.

Note that the little jack slot on the main board needs to be easily accessible on the finished robot.
You can cut off the battery clip from the sampler board (cut them close to the bettery clip).

You are now done with my instructions for the design of the body. With these boards in place, you can see how long wires to the connecting parts should be.

From now on, I will leave you to mount each part that you solder with wires in the next steps. So after soldering a part, you can mount it.

It is up to your personal design where to mount what. Remember that you can place anything anywhere: Just cut a piece of wood, and hot glue it on.
This is also the time where you can be creative with extra little parts that you find around. I found a little shiny round piece of plastic, that I think will work well to hold my microphone.
Just be aware, that you may have to acces wires plugged into the main board later.

Step 9 - Prepare the main board (AXE020)

    •    The board may come with some red plasctic on the back, that just needs to be pieled off.
    •    Place one L293D into the board, where there is an empty slot. Note that the chip has a marking in one end, that should match the marking on the board. You will have to bend the pins on the L293D before it will fit into the slot. This is done easily by pressing it down against a table.
    •    Snap off, and solder 2 times 2 male header pins into the holes marked A and B on the board
    •    Temporary mount, or place the board where it should be, because from now on, you will have to adjust lengths of wires according to this.

Step 10 - Solder wires

Below are pictures of some components, with names to wires and pins.
See the attached file (top of this page: YDMHookup.pdf) for information on what should be connected to what.

Converting “normal wires” to “wires with female headers in the ends”:

When ever possible, you should use female headers that will fit onto the main board. Most of the times, you will have to cut a female-to-female-header wire in 2, and use the ends to extend existing wires.

You may have to replace wires later - keep that in mind.

This is how I recommend you to solder 2 wires together:

    •    Remove a small piece of insulation on both ends to be connected
    •    Cut off a piece of heat shrink tubing, and slide it over one end
    •    Twist the 2 ends of bare wire
    •    Solder the twisted wires together
    •    Slide over the heat shrink tubing, and heat it up, with a litghter or similar, till it shrinks around the soldered part.

The SRF05

You may already have soldered 4 wires to this (or you should do so noe ;) This is how I reference to these wires.

The spare L293D

You simply solder wires on to the pins. You can bend them outwards first, to make access easier.


The main board

When a wire is indicated to be connected to either V or G, each time you can just pick any of these points marked as being V or G on the main board.

O0-O7,  MA-MB, I0-I7:
The main board

What to connect to what

Please see the atached file: YDMHookup.pdf

Take one item at a time from this list, and connect that with the corrosponding part (written as Wire A & Wire B). For now, if an item has 2 wires, it does not matter which wire goes to A and which goes to B.

The “Tech notes” is only for your information, you do not need to understand them.

Connecting V1 and V2 on the L293D

Step 11 - Hack the sampler board

The sampler board has these pepherials, each connected with 2 wires:

    •    Battery clip (you just have 2 wires - black and red - as you already cut off the battery clip)
    •    Speaker (you just have 2 wires, as you already cut off the speaker)
    •    Microphone
    •    LED
    •    Record button
    •    Playback button

    -    And earlier you have already tested the board.
Mount female headers on the black and red wires that was connected to the battery clip. Plug the red onto V on the main board. Plug black onto G on the main board.

    •    Mount the cool looking speaker. I mounted mine on top of the robot. Solder the 2 wires from the sampler board to the speaker.
    •    Insert batteries in your robot. Your sampler board should now work as before, if you press the record / playback buttons.
    •    Cut the playback button wires close to the button. Now let one of them touch G on the main board. Does it play back? If yes, this is the wire we will need, and you can cut off the other close to the sampler board. If not, try the other.
    •    Note which was the playback, and do the same with the record button.
    •    Mount female headers on both wires, and connect Record to I2, and Playback to I3.
    •    Mount the LED somewhere nice on your robot.

Step 12 - You are done building

You should now have a nice little robot :)

If you have left things to be mounted better for later, just wait a little longer, till you have downloaded the test programs, and seen that everything works. When done, cable ties and hot glue will do wonders :)

It is time to give the robot its program.

Enter picaxe.co.uk to get help on how to upload programs to the PICAXE, driver to your AXE027 cable, and to download the free editor. (I would love to help you more on this, but they update with new instructions, drivers etc, so this has to be the place to learn how to upload programs)

When ready, see the top of this page for code and further instructions. (YDM_code_with_instructions.zip)

I'll see you in your PICAXE editor :D

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I think the problem is the code for the SRF05 is different than the code for the SR04? I've never worked with coding (other than HTML) so it's completely foreign to me. I messed around a bit and got the sensor to beep and got it to read (changed w6 to w1) but it wouldn't do both at the same time.

Ordered the other sensor but I would still like to figure this one out?

Thanx again.

Thank you for this great tutorial and fun project :)

Quick question, has anyone found a suitable alternative to the sound sampler sold at Solarbotics? It's still the same one that beeps (loudly) when starting/stopping recording. Thought I would check in here before I go shopping again.


Hello! A beginner here! I am working on a Fire fighting Robot and completed the navigation test, after that I went on to work on the fan (A motor with a propeller) that would put out the fire, but I couldn't get it to work; after a little research online, I understood that I required a darlington to make fan work, I did NOT use a Darlington as I "replaced" it with a 330 ohm resistor array to control a servo (which controls the movement of the neck). That's when I came across Yellow Drum Machine and I noticed how Frits used a L293D to control the Motor which acts as a neck! I decided to implement this Idea in my Robot but it doesn't seem to work. I used the same Test Code that was Attached. I am unable to figure out what I have NOT done correctly. Can someone please help me out? Thank you! :)

I think you first of all should try and search for L293D.

If this does not help you, please post a new forum topic about your challenge - and maybe link to this page - but your question does not really belong here, as I can understand it.


Alright, I'll do that!

Thanks. :)

BOY that sound sampler beep is annoying. It's a nice module otherwise, but I see how it's totally detrimental to this design!

I'm hunting down a replacement ASAP.

Also FYI, the control logic to it is inverted to what the code says. Signal LOW to activate recording / playback, so the code has to be tweaked in a few places.


Dave (now purchaser/R&D chief!)

Heyo, I bought a kit to make the Yellow Drummer Robot but all I want it to do is drum, it doesnt need to see or say anything or move, and it might be a dumb question but is it as simple as just not doing the other parts of the tutorial?

I was also wondering if someone had a detailed wiring diagram of this that I might be able to take a geeze at. 


Hi, just do not connect the motors for the tracks, and you should be able to figure out the rest from the code examples.

My son and I built this robot and we can't get the drumstisks to work.  Everything else works: the treads, the distance sensor, 'head' movement, both speakers, the recorder module, but the drumsticks do not move when we download the test programs for those.  We've checked several times that the motors are connected to the right pins on the picaxe (Pin O1 for the Snare Drum, for example) and ground (I soldered on a strip of male pins to the ground holes on the picaxe board).  No movement.  We connected the motors directly to the battery, and the motor works.

I wonder if the drumsticks need to be attached to the external motor control somehow?  Am I missing something somewhere that makes it clear?  

Thanks for any input, and if you have questions, please ask.