Category Archives: Arduino

Hand-picked Arduino Sound Projects

When playing audio on an Arduino there are several projects you come across. The ease of use or writing your own tunes might be challenging with those projects if you have never made one complete tune on a chiptracker or at least you are able to compose your own songs the analog way with pen and paper. But anyways the demos are just awesomely cool.

An Arduino can do more then just beepin’ ‘n buzzin’ one note after each other. I have found some really cool projects that are able to elict real chiptune jewels from this little MCU.

Bassdll Library

Drew wrote a library to use several piezo buzzers to play tunes with the Arduino. Sadly the notes are all hardcoded and you really need to know what you are doing. Unfortunately this is not my playstyle as a professing copy&paster. A converter from midi to bassdll library converter would be really cool and could push this lib to new heights. Imagine chiptune with a nicely packaged Arduino Chiptune Box. And if we’re on it there are pins left for the ESP8266.

Music start at 3:10

Drew’s blog post


The Hardware Chiptune Project

Not specifically an Arduino is used here but the hardware an Arduino is made out of. So simply uploading the sketch and attaching a buzzer works out. Linus, while on it, also wrote a small chiptracker. Because, why not? Check out the video from 2007 (!) and don’t complain about the video compression. It was 2007. Like 100 years ago where bandwidth was a tale of the future. Even in the scandinavian countries.  Oh yeah I nearly forgot, the sketch is available in C but also in ASM if this easy peasy noobish C only raises a weary smile in your face.

Check out his page

Spherebot Russian Roulette

This post should evolve into a complete Spherebot summary of firmware and software available to date and is therefore WIP. If you have THAT solution feel free to drop me a message.

I have printed one of these Spherebot thingies lately. Printing went nice with my new grey PLA filament. The parts really look great despite some top solid infill tweaks to be done.

After assembling the bot I ran into several issues which I want to summarize in this post and possible give a solution to each specific problem. While searching the internetz I stumbled about alot of broken links, build logs, hardworking developers and a lot of solution tipps and tricks. Now I want to collect all these information, links, firmwares, tools and what have you and pack them into one post.

1) Uploading the sketch

Make sure your Arduino IDE installation is clean. Having multiple installations across your system can fuck up confuse the compile as it is not psychic to guess which library on your system is the one you want it to use. So best pratice would be to completely uninstall all Arduino IDEs and also search your system for left over library directories.

NOTE: Despite Windows 10 improved a little bit on system search it still sucks ass. Big time. Best 3rd party tool to go is Everything.

2) Firmware

2.1) Available firmwares

I have tried several firmwares. For now I am stuck with thunderbug1’s Spherebot firmware. Once uploaded and connected you get command and connection acknowledges as well as all the basic G-Code commands. Latest update is from April 2015.

Other firmwares haven’t been updated for years.

NOTE: Eggbot firmware does not work with Arduino as it is coded for some PIC32 MCU. Sure, why should you go with the most common MCU like the Arduino that probably sits in every electronic hobbyist’s household by the dozen and choose instead a PIC32 as the base of your product.

This is an overview of all to me known Spherebot firmwares:

Developer Name Last Update Comment Links
thunderbug1 April 2015 Most mature firmware; Arduino + common stepper drivers like A4988/DVR8825 etc. github
zaggo July 2011 Prehistoric; Does not compile with latest Arduino IDE; Beta Arduino IDE 0022 should do the trick. Possibly, perhaps, maybe…sort of. github
cocktailyogi Eggduino June 2015 Trying to shed some light into the Babylon of firmwares and the absent of user -friendlyness, this firmware tries to take on the Eggbot approach which can be controlled directly from within Inkscape making these half-baked gcode senders obsolete. Definitly worth a try!! Firmware: github

 2.2) Firmware configuration

  • Thunderbug1’s firmware offers a nice extra config.h file in which you need to modify the pins to match your layout. Other firmwares will have them in their main sketch so make sure no matter which firmware you use to set the pins correct.
  • As for the steps of your stepper motors you are good to go with the default settings most of the time. These should be 200 steps for most motors nowadays.
  • Configuring the servo arm is a trail and error process. Just try which MIN and MAX values work out for your bot.

3) G-Code sender software

The thing that should get the stuff from computer monitor to the real world egg/sphere

Developer Name Last Update Comment Link
thunderbug1 Spherebot UI April 2014; v2.0 baudrate hardcoded; sources available; github (same as above)
jinschoi July 2015 A ruby script to send gcode to a Spherebot;
strips blank lines and comments from the gcode file.
githubeasy Ruby installer: link
Pleasant3D SpherebotSender (PC/Mac) April 2012 PC version requires Java 6 installed.
Mac version often stops randomly with an error after 1-150 lines of g-code
Straend SpherebotGUI April 2014 A take on improving thunderbug1’s spherebot UI; baudrate hardcoded; NOT TESTED YET github

 4) Misc tools and projects

Developer Name Comment Link
bertramt Cheap Spherebot Take on implementing cheap 28BYJ-48 steppers and ULN2003 based drivers;
For now only modified STLs to hold the steppers are released; No firmware until yet but still very interesting.

5) Messing around

For now I have only managed to get thundebug1’s firmware running and accepting and executing g-code commands. But only on my Mac. Once I plugged the machine into the USB port of my PC none of the above mentioned g-code sending tools worked anymore. Serial monitor in the Arduino IDE showed the “Spherebot 2.1” string but it refused to accept commands.