A software simulation of the Yamaha DX7 with a MIDI interface for the Raspberry Pi Pico
Slightly boring video of the picoX7 playing the Yamaha DX7 ROM cartrdige 1A patches...
Both Pico and native targets should build on MacOS or Linux.
For more information on the circuit above see the schematic and the hardware blog
Pin | Peripheral | Allocation |
---|---|---|
1 | UART-0 | Debug console out (UART) TX |
2 | UART-0 | Debug console in (UART) RX |
3 | GND | UART GND |
6 | UART-1 | MIDI IN |
29 | PIO | I2S DATA |
31 | PIO | MCLK (for I2S DAC chip) |
32 | PIO | I2S LR CLK |
34 | PIO | I2S DATA CLK |
Software builds for the following hardware targets...
NOTE: The LCD and LED displays are optional and will not block operation if not fitted
Name | Description | Source |
---|---|---|
Raspberry Pi Pico | DIP module hosting an RP2040 MCU and 2 MiB Flash | PiHut |
Waveshare Pico Audio | I2S DAC module that directly mounts under the Pico | PiHut |
MIDI controller | Music keyboard with actual MIDI out (not MIDI over USB) | Old Roland PC-200 works for me |
MIDI-in adapter | An optically isolated 5-pin DIN to UART interface | 3 resistors, a diode and an op-amp work well if the controller is battery powered ;-) |
Reset button | Reset the Pico and allow Flashing | Why not included on the Pico module ?!@# |
Raspberry Pi Debug probe | Not essential but very helpful | PiHut |
NOTE No particular affiliation with PiHut but they have a nice selection and good service
Incomplete but starting to work.
Done...
To do, (at least)...
Limitations...
See the software blog and hardware blog for more detailed progress updates.
This repo uses git sub-modules, so checkout using --recurse to clone all the dependent source...
git clone --recurse https://github.com/AnotherJohnH/picoX7.git
or
git clone --recurse ssh://git@github.com/AnotherJohnH/picoX7.git
Being developed on MacOS but should build fine on Linux too.
Indirect build of all supported targets (with cmake and ninja)...
make
Build directly using cmake...
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPLT_TARGET=rpipico -DCMAKE_TOOLCHAIN_FILE=Platform/MTL/rpipico/toolchain.cmake ..
make
Flashable image will be found under the build sub directory here...
.../Source/picoX7_WAVESHARE_GPIO_LCD.uf2
.../Source/picoX7_WAVESHARE_I2C_LCD.uf2
.../Source/picoX7_PIMORONI_VGA_DEMO.uf2
This project is licensed under the MIT License - see the LICENSE file for details