It is time for another update, seeing as it's better to update you guys with things you can see versus me just droning on about coding issues.
First off, I did have to solve a few coding issues with my Windows program that handles the data communicated to it from the Arduino. For some reason Upgrading to Windows 10 AND Visual Studio 2015 the code that I was using for serial (aka USB) communication wasn't working. I spent several days trying to find out different ways to do usb/serial communication until I stumbled upon a slightly modified version of what I was using. All said and done, USB communication between the Arduino and the Windows program is fixed.
With that fixed I received a few timely packages in the mail. One is an MP3 module with an amplifier in it that 'should' let me hook up a speaker, insert a micro SD card with mp3s on it, then hit the play button and get a song pumping out out of the speaker. Sadly this didn't seem to be the case, and without any form of datasheet for this MP3 module I didn't really have much to go on for troubleshooting or debugging the issue.
Putting that aside I went to the other item I received in the mail, an LM386 audio amplifier circuit that is pre-built on a PCB board. Hooking that up to the output of the Arduinos DAC (Digital to Analog Converter) I went and tried to use the Simple Audio Player sample program that Arduino includes in its library to see if I could get it to work. Well for some reason it wouldn't, I was getting no sound out of the DAC0 through the amp to the speaker. I was able to find another person's library/program that converts an audio wav file into a c++ header file that a program reads and spits out over the DAC to at least see if I was using the wrong wav file format. After a little fiddling around I was receiving audio out of my speaker. I tried to convert my Sega audio sample to this header file, but sadly the audio quality was rather poor. Instead I was determined to get the Simple Audio Player program to work, and now I knew my circuit worked.
I converted the audio file I had to the specific wav file details that are required, fiddled with the pot to control the gain/volume and voila, audio! I am still trying to figure out how to remove the static that the speaker plays when there is no audio file to play, this is because the DAC is putting out a non zero value which the amplifier circuit amplifiers resulting in the noise/static.
I also was able to make it so that I can digitally control when the LCD screen will be on. Originally I had hoped to use a transistor, but because of the supply voltage I required vs the voltage that the Due Digital Output pin could provide it wasn't matching/lining up. As I don't have any 'standard' buffer circuits, but I have several logic gate chips instead.Being creative I determined if I hooked up TWO NOT gates one after the other I would get the same output as I would an input. As the NOT gates act like buffers and their output values are that of what the chip itself is powered by (5V), me supplying it a 3.3V high would just trigger the the gate high and give me the 5V I need for the LCD backlight screen.
What is shown in the video attached is the Arduino being powered on, with the LCD screen turned off. On a command terminal I feed it the value I have 'preset' in both my programs that will let the Arduino know that the computer has turned on, thus enabling the LCD screen to show the eventual Sega logo animation (right now it's just the RHR Logo) and play the Sega wav sound at the same time. Enjoy!
No pictures for this update, but I just received my Serial straight through extension cables as the Sega to USB adapter I ordered by Mayflower isn't spaced correctly to fit into the Sega Genesis' controller slots. This is odd as it means the multi-tap won't work on it either, maybe that is by design.
It took some troubleshooting, along with going through 3 different controllers and my old Sega to USB adapter I still have from the Mark I to get the Mayflower adapter to properly recognize the Sega Genesis Controllers. Once that was a success, I checked to see if the serial straight through extension cables were straight throughs (bought them from eBay), the controller still works in Windows!