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.
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.
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 http://www.linusakesson.net/hardware/chiptune.php
I got it working with Eggduino. Really cool firmware. Works like a charm. Just two little modifications in eggbot.py and in eggbot_scanwin32.py and you can control the spherebot/eggbot/eggduino directly from within Inkscape.
I described the changes to be made here. Also read the readme from the developer for the other change in eggbot.py.
These modifactions are only needed for Windows computers. Mac’s find the Eggduino without modification.
I still need to calibrate stuff and find out how to mount the egg but it works now. Also the pen arm could need some modifications so it is less jittery.
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.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:
Most mature firmware; Arduino + common stepper drivers like A4988/DVR8825 etc.
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!!
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
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.
Building a filament extruder to produce your own 3D printing filament has become quite easy today. You can choose from several complete kits with features like automated filament winders, length counters, force adjustment and online thickness measurement. There are a lot of commercial products out there ranging from 300$ to 2000$. I don’t want to say the Filabot is a bit expensive if you go for the deluxe premium edition in a ugly nice green metal casing but …yeah I do. Keep that number in your cerebral gyrus. Or you can build your own like I did for around 150€.
But no matter which way you choose to go, you will always end up with the question: ‘Where do I get the pellets now?’.