Skip to the content
2 layers111.8 × 88.9 mmModule board, the printed circuit board in 3D

(Unfinished) Hardware YM2151 VGM Player using RP2040

Size
111.8 × 88.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
77
Pads
306
Tracks, vias
296, 48
Pours
6
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
25 Sep 2022
Updated
15 May 2026

Overview

Module board is an open-source printed circuit board by anthonydotmoe, from the anthonydotmoe/vgmplayer repository on GitHub. It is a 2-layer board of 111.8 × 88.9 mm with 28 parts on 77 nets, routed with 296 tracks and 48 vias.

It is built around the NJM4556AM. Its parts include 10 connectors, 8 capacitors, 7 ICs and 2 resistors. It belongs with the RP2040 boards of this library.

Main components

1

README

README.md

RP2040 → YM2151 VGM Player

"It's a work in progress"

Backstory

2018 This project started out using an ATMEGA328P and Arduino, but I found that it was hard to write fast enough code to play songs at full speed. I then found the STM32 series of microcontrollers; It was promising, but I really didn't like the SDK or the HAL that was provided for these parts. After a few years, the Raspberry Pi Foundation released the Raspberry Pi Pico. I bought the board during its pre-order stage simply because it's a $5 microcontroller. This new board, with their own RP2040 chip, has one key feature that I didn't know at the time will make this project viable for me. The Programmable I/O (PIO).

2022 I finally got to looking at the datasheet for this board during DEFCON 2022, where they used the RP2040 for their interactive badge. The PIO section caught my eye, but I didn't look into it until a month later.

When I read the examples they had for driving WS2812 LED strips, I realized what I could do with this extra power. I could easily get data to the chip on time, every time; and have plenty of time for drawing a UI to a screen, fetching data from an SD card over SPI, and in the future, emulating other sound chips for game systems with AD/PCM and other chips.

Hardware

YM2151 Pico Dev Board

I made this development board for the project.

GPIO 0-7 are connected to D0-D7 on the YM2151. GPIO 8-10 are connected to the A0, WR, and CS pins. I'm using SPI to connect to the SD card, and an LTC6903 programmable clock generator making the main clock for the YM2151.

The supporting circuitry for the YM2151 was ripped from the same place I got the chip from, a Yamaha CX5 Music Computer.

Software

To be documented... and written

Thank You

Special thanks to:

Parts

28
QtyValueFootprintReferences
4100nFCapacitor_THT:C_Axial_L3.8mm_D2.6mm_P7.50mm_HorizontalC1, C2, C7, C8
23300pFCapacitor_THT:C_Axial_L3.8mm_D2.6mm_P7.50mm_HorizontalC3, C4
2CCapacitor_THT:C_Axial_L3.8mm_D2.6mm_P7.50mm_HorizontalC5, C6
2Conn_01x08_FemaleConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ8, J9
2Conn_01x10_FemaleConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ4, J5
2Conn_01x12_FemaleConnector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_VerticalJ6, J7
2Conn_01x20_FemaleConnector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_VerticalJ1, J3
2NJM4556APackage_SIP:SIP-9_22.3x3mm_P2.54mmU6, U7
1100Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR2
11kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1
1220Ω at 100MHzFerrite_THT:LairdTech_28C0236-0JW-10FB1
1AudioJack4YM Libraries:AudioJack4J10
1FT232H_BreakoutYM Libraries:Adafruit_FT232H_BreakoutU3
1LTC6903Package_DIP:DIP-8_W7.62mm_SocketU2
1Micro_SD_Card_BreakoutYM Libraries:Adafruit_Micro-SD_Card_BreakoutJ2
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU1
1YM2151Package_DIP:DIP-24_W15.24mm_SocketU4
1YM3012Package_DIP:DIP-16_W7.62mm_SocketU5

More from anthonydotmoe/vgmplayer

1
  • 2 layersGb board, the printed circuit board in 3D

    Gb board

    anthonydotmoe/vgmplayer

    (Unfinished) Hardware YM2151 VGM Player using RP2040

    37 parts4

Similar boards

  • 2 layers180 × 110 mmISD1700 sampler main board, the printed circuit board in 3D

    ISD1700 sampler main board

    hiro-akihabara/OpnBeat

    OpnBeat is open source Lo-fi sampler project

    180 parts67GPL-3.0
  • 2 layers100 × 50 mmRc2014-ym2151, the printed circuit board in 3D

    Rc2014-ym2151

    electrified/rc2014-ym2151

    Yamaha's DX21, DX27 and DX100 synthesisers used a derivative IC which is very similar.

    33 parts9
  • 4 layers165.3 × 123.7 mmRX8-7(WithoutOpAmps), the printed circuit board in 3D

    RX8-7(WithoutOpAmps)

    bradport02/RX8-Infotainment_System

    An infotainment system for the Mazda RX-8 that integrates seamlessly with the climate control unit.

    392 parts
  • 2 layers100 × 100 mmTiva board, the printed circuit board in 3D

    Tiva board

    pfrapp/reflow-oven

    DIY reflow oven for SMD soldering

    28 partsGPL-3.0
  • 4 layers203.2 × 88.9 mmStationConsole, the printed circuit board in 3D

    StationConsole

    SmittyHalibut/station-console

    A station console, to connect an operator, logger, and radio together.

    134 parts
  • 4 layers160.1 × 134 mmMeetingHub-4-v1, the printed circuit board in 3D

    MeetingHub-4-v1

    facarvalho/MeetingHub-4

    Analog audio hub for 4 laptops — monitor all four at once (per-source + master volume), speak on one at a time with a physical mic selector, use one ordinary TRRS headset, install nothing on any laptop.

    74 parts

Questions

How big is the Module board PCB?

It measures 111.8 × 88.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Module board use?

28 parts, built around the NJM4556AM. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Module board KiCad files?

From the anthonydotmoe/vgmplayer repository on GitHub, at the commit this page was made from: the board is hardware/module_board/module_board.kicad_pcb and its schematic hardware/gb_board/gb_board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Module board design in my own project?

Its repository states no licence, so its author keeps all rights: ask anthonydotmoe before reusing the design.