General Instrument’s AY-3-8910 is a chip associated with video game music and is popular with arcade games and pinball machines. The chip tunes produced by this IC are iconic and are reminiscent of a great era for electronics. [Deater] has done an amazing job at creating a harmony between the old and new with his Raspberry Pi AY-3-8910 project.
[Deater] already showed us an earlier version of the project on a breadboard however after having made some PCBs and an enclosure the result is even more impressive. The system consists of not one but two AY-3-8910 for stereo sound that feed a MAX98306 breakout for amplification. A Raspberry Pi 2 sends six channels worth of data via 74HC595 shift registers driven by SPI. There is a surplus of displays ranging from a matrix to bar graph and even 14-segment displays. The entire PCB is recognized as a hat courtesy an EEPROM which sits alongside a DS1307 RTC breakout board. The enclosure is simple but very effective at showing the internals as well as the PCB art.
The software that [Deater] provides, extends the functionality of the project beyond the chiptunes player. There is a program to use the devices as an alarm clock, CPU meter, electronic organ and even a playable version of Tetris as seen in the demo video below. The blog post is very informative and shows progress in a chronological fashion with pictures of the design at various stages of development. [Deater] provides a full set of instructions as well as the schematic along with code posted on GitHub.
If you have a soft spot for the Arduino you may want to check out the 8-bit version of a chip tune player and if you are craving some old hardware peripheral information, do check out the computer curiosities from the Iron Curtain period.
17 thoughts on “Multifunction Raspberry Pi Chiptune Player”
You don’t need two chips for stereo. The AY-3-8910 actually has *three* independent channels – it’s not “three simultaneous notes” mixed internally, each channel has it’s own output pin. So you can do stereo with just one chip, you just need to mix the output signals appropriately. You use two chips so you can get six channels :)
That’s what I thought. I have some of them here for a “one day” project. Perhaps he is going to break out in polyphonics. Not sure if I have the AY-3-8910’s or the AY-3-8912’s … much the same anyway. I also have a SPO256 80’s speach chip as well for much the same reason. Perhaps I can make a chip-tunes disco max headroom lol
I have one AY-3-8910 per channel because that’s what the Apple II “Mockingboard” does, and I originally planned this device to help test out music for that platform. It’s also nice to have more than 3 channels, if for example you are converting Amiga Mod files over.
I should probably have put some breakouts on the circuit board in case you only wanted to populate one AY-3-8910 and have the channels split across stereo. I think it’s just a matter of having a few extra resistors to balance out the split channel.
Please try to better proofread your articles. This one has a considerable number of basic grammatical and basic sentence errors. While it is still readable, it detracts from the overall experience.
“and is became popular”
“The entire PCB is recognized as a hat courtesy an EEPROM”
Basic comma use (too many and too few). Run on sentences.
I recently forgot why I stopped coming here almost two years ago, so I’ve been coming back the past few days to check things out. I saw a few cool posts– homegrown transistors, nostalgia galore with 8-bit music, and of course the familiar black background.
But then…. Milo, thanks for reminding me why I left.
Why would you respond this way to a polite comment suggesting that better proof-reading would enhance the experience of visiting this site? It seems that those hanging out here will still fight to the death for their own (and others’) mediocrity. Seriously, have some pride in what you do.
Clearly I haven’t been missing much, and I will now resume not generating ad-clicks here.
Be nice or GTFO.
I do try to proofread my comments. Which does not appear to be the case with yours unfortunately as there are three basic issues present in just two sentences.
Run on sentence.
Didn’t capitalize I.
I generally appreciate the articles as well. The only point I am trying to raise here is that articles with multiple, easy to proofread albeit basic spelling or grammatical mistakes detracts from the quality of the site and makes the articles harder to follow. When basic spelling or grammatical errors are present, it also makes the content appear to be less researched and professional. That’s all.
Thanks. Got ’em.
And deleted the remaining comments that didn’t go anywhere good.
Ehh, trolls will be trolls. Can’t please everyone, not worth the effort.
I’ve got a brand new AY-3-8912 I acquired in 1982 (!) laying around somewhere but now I can’t find it anymore. So many projects, so little time…
Check your sock drawer, or the dryer….
You can still buy them on ebay quite cheaply. Unlike the C64 sound chip (SID) which almost always has blown filter circuits, with the AY-3-891x your chances of getting one that actually work is very good.
I bought one or 2 from ebay and then discovered that my retro Amstrad CPC-6128 uses the same chip. I might slap one together with an ATmega328 to make a chip-tuino.
What’s with the awkward PCB layout? Those IC’s are at like 20 degree angles and it seems to be waayy bigger than it needs to be. Plus the board has that weird convex angle for some reason? I get that it was a project for fun, and people aren’t always neat with layout, but this looks like it actually took more effort to do it this way. Any input?
I thought it would look interesting to have the AY chips in a “V” shape. No real other reason for it. It wasn’t much extra trouble, most of the pain in laying out the PCB was trying to get all of the lines out of the Raspberry Pi header in an orderly fashion.
The weird edge on the sound board was mostly an attempt to get a little extra airflow in the case as I wasn’t sure how hot things would get.
The board could be a bit more compact, but it was sort of dictated by the LED board size. If I were doing things again I would use the AY-3-8912 variant of the chip which is much smaller, as I don’t use the IO ports at all.
I like the “V-twin” chip layout. Great project.
I hope one day I too can be motivated enough to actually finish something I’m working on ;)
The AY-3-8910 was quite a workhorse chip back in the 8-bit arcade days. The two 8-bit ports were useful for the game inputs or various outputs. It’s been ages, but as I recall, the sound was a bit better if the three outputs were run through ~1k resistors before tied together.
I’m very curious as to if (and how!) the YM interrupt-FX (SID, buzzer etc.) are implemented…
Please be kind and respectful to help make the comments section excellent. (Comment Policy)