Conrad the Camel plays Foo Fighters

This Egyptian toy camel dances like a demon but his music annoys - so let's give him some Foo Fighters to headbang to instead.

Similar projects worth following
Goal: Make Conrad the Camel dance to the Foo Fighters' song: The Pretender.
Using an ESP8266, Arduino UI, ESP8266Audio playing an Audacity created wav file stored on chip on SPIFFS, powered with a 3.6V LIPO via WeMos Battery Shield, and connected to Conrad's foot switch, motor and speaker.

This project took about 9 months intermittently, with many hours of experimentation, steps forward and steps back.  The progress was roughtly:

1. Unpick his seams, take out his parts and reverse engineer his workings.

As you'd expect from a toy from the developing world, he's pretty basic.  He's made from:

  • a plastic frame across his front down to the battery holders in both front feet! 
  • a voice/motor box which actually drives itself backward and forwards using a cam against the frame.
  • a spring in his neck driven by the voice box/motor movement, and which gives him his charming mad headbanging motion
  • a switch in his right foot to turn him on
  • a tiny circuit board in the box with inputs from batteries and switch and outputs to motor and speaker.  The microprocessor which contains the sound sample is directly soldered to the board and covered with a blob of glue so no chance of hacking that!  The board has one transistor driving the motor, and seems to drive the speaker directly.

After lots of seemingly hopeless experimentation I decided to disconnect his switch, speaker and the base of his motor transistor and drive these from a WeMos ESP8266.  I added a transistor to drive the speaker, and a potentiometer to control volume.  The fantastic ESP8266Audio library which I eventually stumbled onto does all the hard work, and drives acceptable audio via the RX pin (which unfortunately needs to be disconnected to reprogramme the ESP8266 via USB) - I later added a speaker/amp shield to drive a bigger speaker, giving much improved sound quality.  The motor is triggered by being driven low by D2 through a resistor into the original transistor. The trigger switch is connected to D1 pin with a pull-down resistor.  For some reason the 3x1.5V batteries in Conrad weren't strong enough to drive the ESP8266 even via a battery shield, so I added a 3.6V LiPo battery grounded with Conrad's ground.  Code is here:  conrad-foo.ino.

Let me say here that I've previously used TinyCAD for circuit design and VeeCAD for stripboard layout. They were OK, but there's a bit to much effort to link the two (manually setting the type of each component).  I tried EagleCAD which was HORRENDOUS!  (I know they've kept it's 'legacy' interface for previous users but it's completely non-intuitive and painful).  For this project I tried Fritzing for the stripboard layout and it's a complete joy for drawing simple circuits like this:

My poor soldering skills (do I need to upgrade my 10 year old 30W soldering iron to something better powered?) led to this:

And there's only one place to fit it inside Conrad...!

Poor Conrad, but now he can dance to Foo Fighters like a pro!

View project log

Enjoy this project?



Mike Szczys wrote 05/06/2019 at 19:29 point

This one's borderline too much awesome ;-)

Good eye picking the plush dancer as the target of this hack. Its shocking how little hardware it takes these days to pull one like this off! Do you have any plans to make the motion reactive to what audio is playing?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates