navigationGo.pngQuick Navigation
allprojects32.pngAll projects
hardware32.pngHardware
links32.pngLinks

favoriteStar32.pngTop projects
Alan numitron clock
Clapclap 2313/1386
SNES Pi Webserver
USB Volume/USB toys
Smokey amp
Laser cutter
WordClock
ardReveil v3
SNES Arcade cabinet
Game boy projects
cameleon
Home Presence Detector

github32.pngGitHub
AlanFromJapan

navigationMail.pngContact me

alanfjmail.png
3flags.pngWho's Alan?


Akizukidenshi
Elec-lab
Rand Nerd Tut
EEVblog
SpritesMods
AvrFreaks
Gameboy Dev
FLOZz' blog
Switch-science
Sparkfun
Suzusho
Datasheet Lib
Reddit Elec
Ermicro
Carnet du maker (fr)

Arduino and a YMZ294

Last update: Thu Jun 5 22:25:40 2025
kalshagar - Arduino and a YMZ294

Tadaaaaa ♪

ymz294.png
volume is low, you can see me in reflection ... I know ... hope you like it anyway.
See also how to generate tunes from MIDI files at MIDI, CSharp and Yamaha chips.

Documentation

Suggested wiring hint here under. The bold pins are the difference between the YMZ294 and the YMZ284. You can wire it otherwise, but if you wire like that my samples will work directly :
"Left side"
"Right side"
  • /WR : Arduino pin 10
  • /CS : Arduino pin 11
  • A0 : Arduino pin 12
  • VDD : %205v
  • SO : SOund output, to the HP or amp
  • GND : ground
  • M : to the oscillator
  • 4/8 : High is 4MHz, Low is 8 MHz. Mine is connected to Vcc (4Mhz crystal)
  • /IC : can leave floating or connect to VCC
  • D0 : Arduino pin 2
  • D1 : Arduino pin 3
  • ...
  • ...
  • ...
  • ...
  • ...
  • D7 : Arduino pin 9
  • /TEST : floating or VCC

Things to know

  • Beware of short-circuits : the oscillator I got had its case connected to the ground, and one Vcc wire too long was short-circuiting because touching it.
  • You need 11 pins to drive it : 8 for data bus, 3 for control (WR, CS, A0)
  • Port TEST should be left un-connected
  • Port IC (reset) can also be left unconnected (it seems at least)

Note about the oscillator

Since many people asked me, you must use here an oscillator, and not a crystal. Reason is that you must feed your chip with a square signal on just one pin, so no crystal here (unlike what you would have next to your Atmel MCU). Anything that makes a square signal will do the trick, but must be in range 1MHz to 8Mhz.
squaresignal.png

Documentation

Datasheets

NONE on the net, not even on Yamaha website.
So, by reading the japanese documentation provided by Akizuki, I got it is the same as a YMZ284 (YMZ294 has 2 extra pins, one for test mode and the other one for choosing the crystal frequency 4/8 MHz). Wiring is the same as YMZ284 therefore.
And to me it looks like also its friend the YM2149. So I put these documentations here :

Websites and tutorials

Looks like everything is in japanese...

Midi music


Code

  • My "library", just a .h file with all you need to pilot it, and a sample program on my GitHub.
    • Wire it and you get Final Fantasy IV music !
  • Other inspirations and precious help : YMZ294_Test.pde Directly taken from the link here above , no change at all and worked just fine.
See also how to generate tunes from MIDI files at MIDI, CSharp and Yamaha chips.

14355_196076518789_704343789_3042335_1672547_n.jpg

Shopping

All content on this site is shared under the MIT licence (do what u want, don't sue me, hat tip appreciated)
electrogeek.tokyo ~ Formerly known as Kalshagar.wikispaces.com and electrogeek.cc (AlanFromJapan [2009 - 2025])