MegaGRRL is a project to make a portable device capable of playing back VGM files targeting the sound chips used in the Sega Mega Drive/Genesis and Master System. It uses the original chips and has a playback engine focused on accuracy and supporting as many features of the VGM file format as possible, all controlled by an ESP32 running FreeRTOS using the ESP-IDF framework.
Currently, the VGM playback core is functional and working well. I'm using a third-party library for some debug output on the LCD, but I've written a new driver that uses DMA, pending writing some UI drawing routines. The hardware is essentially complete, and prototype PCBs have been designed, ordered, and assembled. A design for a 3D-printed enclosure is also underway.
The new PCBs showed up! And I immediately found a mistake on one ;_; but it's pretty minor and if it actually affects anything I can fix it with a bodge wire. So far I got the front panel board assembled (don't have a pic on hand, sorry) and the main one about half done, waiting for some more parts to arrive.
I've been working on the revision 2 PCB and it is now fully routed, and will be done once I fix a few issues and do the silkscreen graphics.
Also planning to use a PCB for the front panel, with some through-board LEDs to indicate channel status, SD card access, etc. I still have a few more things to sort out with that, but expect at least a screenshot soon. As stated before, EAGLE board files will be available for both once I've tested the new design.
In the meantime I also did some more testing with using the ESP to generate clocks for the sound chips, and everything works fine. So, officially (I think!), say goodbye to the expensive and hard-to-solder LTCs!
While I'm talking about things being hard to solder, I want to note that a major design consideration with this project was making it relatively easy to assemble with simple soldering tools. A lot of space could be saved by using finer pitch IC packages, smaller passives, etc, but I stuck with SOs and 0805s because they're pretty doable on a simple pencil iron. I want this project to be accessible to as many people as possible, which would normally necessitate DIP packages for everything, but then it wouldn't fit in your hand, so I think this is a good compromise.
Anyway, that's all for now. I plan to order a first batch of PCBs at the end of this week, and I'm excited to test them out when they arrive.
I wanted to post a quick update to this. The project is still ongoing despite my silence here! I am currently working on a revision 2 PCB that simplifies things and removes several parts from the BOM, to hopefully make it cheaper and easier to assemble. There were also a few electronic issues with the first PCB, which is why I haven't posted the schematic or board files yet -- I don't want anyone to make the same mistakes I did!
In the meantime, I got LittlevGL talking to the LCD, and VGM playback is basically perfect at this point. I've also been slowly putting more code into the git repository, but my focus right now is getting this next board revision finished. Once that's done and tested, I can work on getting a UI written.
Here's a video from last night, testing the use of the ESP32 for clock generation rather than separate LTC6904 chips. This is just hacked onto my current prototype board to validate my design before I order PCBs. I hope to have the new design fabbed and tested by the end of this month.
Uploaded two more videos again. This time, using two tracks that make heavy use of the DAC stream control subset of the VGM specification. Enjoy! Links to the artists are in the video descriptions, so go check them out if you like FM synth metal stuff~