YM2149F MIDI Synth 2.1b+
MIDI IN YM2149F Complete

Fully Hackable YM2149F Synth
8 MIDI Channels IN
16 MIDI Channels THRU
OLED Display of incoming MIDI
Channel Select / Mute /Store buttons
Remembers mutes after power off
Powered by USB C
3 voice polyphonic
Switch for Mono or Stereo cables
Code for you to tweak in the Arduino IDE
Program as an UNO
Ability to play 4bit samples
Onboard CH340E USB to TTL
5 pin MIDI 180° din socket IN
3.5mm TRS MIDI type A IN
3.5mm TRS MIDI type A OUT / THRU
Compatible with all MIDI hardware & DAWs
Web page udated 08:04:00 27/02/2023


This project makes a midi synthesiser from a few easy to get hold of parts.
The audio output is clean and perfect level for putting straight into a mixer or FX unit.

The software was placed in the public domain by the author, Yukimizake in 2012.
Since then some nice features have been added by dansfing.uk and the code has been refactored to compile in the latest IDE.
All the information you need to make the YM2149F MIDI Synth is here for free!

You can also buy PCBs and fully Assembled units if you don't fancy shopping for the parts.

Previous release v2.1a and notes on soldering and assembly can be found here v2.1a

I'm no expert in programming so you may find there are ways of making this project even better.
Currently the value knob on the panel alters the level of current cannel.
The buttons on the panel now operate as expected

The DC power input has been removed on this version to reduce the cost

Latest as of 27th Feb 2023
It now works using the MIDI.h library.
MIDI THRU / OUT Socket now works. Socket on PCB v2.1b+
Sample playback now works on MIDI channel 10 and starts at note C3
The button de-bounce is fixed.
The value knob now djusts the volume of the current channel.
Full compliment of sketches to Download added that work on this PCB version.
All sketches backwards compatible to original code by Yukimizake (all hail!)
If you purchased before 11th Feb 2023 - Upload this new script
It offers better timing when things get busy.
It uses less resources.
Easier to add your own code.
Lots of help on MIDI Library

  v2.1b 19th Feb 2023
Latest stable release

These Scripts all work without modification.
  Button Screen Knob Test  8th Feb 2023
  LED Blinks with MIDI IN  8th Feb 2023
Requires MIDI library from FortySevenEffects
  Original Code by Yukimizake  2012
This has been refactored to compile in 2021
  YM2149F with MIDI.h Library  2023
This uses the MIDI.h library instead of the original implementation. It is a basic example that works over eight MIDI channels. No sample playback yet.
  YM2149F MIDI.h OLED Buttons  19/02/23
This uses the MIDI.h library and brings the screen and buttons to the code. Sample playback on 10
This version will be pre-installed on purchases.
  Space Trash Video Game Video
Upload as an Arduino UNO board
Arduino IDE
 Libraries / Dependencies
U8g2: Library for monochrome displays, version 2

The Arduino library U8g2 can be installed from the library manager of the Arduino IDE. U8g2 also includes U8x8 library.

More Info
Should be installed by default in the Arduino IDE
This allows the storage of the MUTE states in non-volatie RAM.

Can be installed in the Arduino IDE's Library Manager
This allows easy callbacks for incoming MIDI.
Leaveing the Main Loop clearer.
 PCB Files
Fritzing PCB File
Editable PCB Files by dansfing.uk

Latest 2.1b+ Dual Board
MAIN v2.1b+ fzz
PANEL v2.1b fzz

Older Boards
21/10/22 v2.1a fzz
01/05/22 v2.1 fzz

Production Gerber Files
Upload .zip files to a PCB Manufacturer

Main PCB v2.1b+

Panel PCB v2.1b

Laser Cutting Files
Upload files to LaserLab in Bristol
Laser Cutting Files for panels

Panels For v2.1b+ PCB
Desktop Format
On their website you can choose the type of acrylic.
I use 3mm tinted or clear. Copy paste from the SVG to suite your needs.

YM2149F Arduino CH340E YM2149F Arduino CH340E YM2149F with panel
You can also buy it here

YM2149F MIDI Synth v2.1b

£73.00 +p&p

Assembled & Programmed

Buy now
Parts YM2149F MIDI v2.1b

Print List
1 x

1 x
Tone Generator

1 x
Clock Divider

1 x
Opto Isolator

1 x
8Mhz TTL Oscillator
DIP 14

1 x
16Mhz Crystal

1 x
Signal Diode

1 x
3mm LED
Activity on D13

1 x
1uF Electrolytic Capacitor

4 x
100nF Polyester Capacitor
box style or ceramic

1 x
4.7nF Polyester Capacitor
box style or ceramic

2 x
22pF ceramic Capacitors

2 x
470 Ohm Resistors

1 x
220 Ohm Resistor

1 x
1K Ohm Resistor

2 x
10K Ohm Resistor

1 x
100K Ohm Resistor

1 x
5 pin din socket

2 x
3.5mm Stereo jack socket

1 x
6x6x4.3mm tactile botton
For reset

4 x
6x6x12mm tactile botton
For reset

2 x
2.54 Switch SPST

1 x
CH340E USBC to TTL Module