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
Buy
PCB's
Buy
Kit
Buy
Built

       


Overview
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!

I no longer build these for sale.

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




 Code
Download
VIEW
  v2.1b 19th Feb 2023
Latest stable release

These Scripts all work without modification.
Download
  Button Screen Knob Test  8th Feb 2023
Download
  LED Blinks with MIDI IN  8th Feb 2023
Requires MIDI library from FortySevenEffects
Download
  Original Code by Yukimizake  2012
This has been refactored to compile in 2021
Download
  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.
Download
  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.
Download
  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
EEPROM.h
Should be installed by default in the Arduino IDE
This allows the storage of the MUTE states in non-volatie RAM.

MIDI.h
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
DOWNLOAD
MAIN v2.1b+ fzz
DOWNLOAD
PANEL v2.1b fzz

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

Production Gerber Files
Upload .zip files to a PCB Manufacturer

Main PCB v2.1b+
DOWNLOAD

Panel PCB v2.1b
DOWNLOAD




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

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.

 PHOTOS
YM2149F Arduino CH340E YM2149F Arduino CH340E YM2149F with panel
TypeA MIDI
CH340E
Parts YM2149F MIDI v2.1b

Print List
1 x
ATmega328-PU
Microprocessor

1 x
YM2149F
Tone Generator

1 x
74LS93N
Clock Divider

1 x
6N138
Opto Isolator

1 x
8Mhz TTL Oscillator
DIP 14

1 x
16Mhz Crystal

1 x
1N414
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