I’m not sure how many people are following Build Your Music, but I have a question I want to pose to the community. For the song data storage, should I use Winbond SPI Flash or an SD Card with Data Logger Shield in my final design? The robotic xylophone is currently made using Winbond SPI Flash as the data storage. I originally chose this option because it was cheaper than a Data Logger Shield and SD card, and I felt that 1 MB of memory was more than sufficient for this type of data. However, I have since realized some drawbacks with going this route:
- Many of the on-line retailers that used to sell the Winbond SPI Flash in the DIP8 form factor no longer carry this part. Neither Adafruit nor AliExpress, (both places that I have bought this from before) is selling this part any more. In fact, when I do a Google search now, the only place I can find still selling this part is E-bay.
- Using the SPI Flash as I have been doing requires Windows-based software to decompile MIDI files, and then load the data into the Flash memory in a format that will be read by the Arduino and used to play the xylophone. This isn’t that big of a deal when I am just using the software for myself. However, when I think of going the next step, of making the software available so that others can put music on their own robotic xylophone, I realize that I am going to have to put a lot more work into the software, debugging it, making it more usable, etc., before I could be confident that others could use it trouble-free.
At the same time, there are some advantages to using an SD Card:
- I have found an Arduino library MD_MidiFile which can read a MIDI file from an SD card and generate MIDI events “on-the-fly”. That means that I could copy a MIDI file directly to the SD card, and have the Arduino play it on the xylophone. Then there would be no need for this separate custom-developed Windows-based software.
- The amount of Arduino code I would need to write, document, and publish would be significantly less if I used an SD Card with the MD_MidiFile library.
- The SD Card seems to be much more commonly used in other Arduino DIY projects.
- I can find a Data Logger shield on AliExpress for only $2, and an SD card on Amazon for $6-$10. This compares with about $2 for the Winbond SPI Flash chip, and around $1 for the Solderless Breadboard, resistors, and capacitor. So, the cost adder is really only about $5-$10, which is probably worth it, when considering how much less custom code would need to be developed and maintained.
My question to the community is this: Should I continue along my current path, and spend a lot of time debugging, commenting, and documenting the software needed to make the xylophone work with Winbond SPI Flash? Or should I switch the design to use an SD Card, make the necessary changes to the parts list and assembly instructions, and then document and publish a much simpler Arduino code?
Please share your thoughts with me in the comments or via the Contact form.