I recently put together a Midiori MIDI card for my X68000, and the process was a little bit complicated, so I thought I’d write down a quick summary if someone else is interested in doing so as well.
Making the bare PCB
This one was straight forward, nothing special here.
- Clone the Github repo
- Open midori.pro in latest Kicad, go the the board file and Plot the Gerbers (and drill files). I got some warnings about it updating files due to them being created in an older version, but looks like that didn’t matter much.
- Zip up and send to board fab of your choice. I used JLCPCB.
I decided to be cheap and not use gold fingers or tapered edges.

Sourcing parts (BOM)
The non-passives are:
- J2: GRPB052VWQS-RC
- J4: MD-50SM
- U1: MC74LCX07DR2G
- U2: AT25SF081B-SSHB-T
- U3: TLV73312PDBVR
- U4 – U9: 6x SN74LVC8T245DWR
- U10: ICE40HX1K-VQ100
- U11: TLV73333PDBVR
- X1: CB3LV-5I-16M000000
For passives, I already had these at home, but should be easy to find.
- C1 – C2: 4.7uF ceramic capacitors (0805)
- C3 – C23: 0.1uF ceramic capacitors (0805)
- R3: 10k ohm resistor (0805)
- R6, R9: 220 ohm resistor (0805)
Building the FPGA Bitstream
I didn’t see any bin file for the Bitstream, so I compiled my own with the provided files in the repo (gateware/) folder.
You can download it here if you do not want to build it yourself.
Otherwise the instructions follow. This was quite a few steps. I did this on Windows.
- Install Python 3 if you don’t have it
- Install Migen
- In a terminal: pip install migen
- Install yosys (OSS CAD suite)
- Repo has instructions. I grabbed it through OSS CAD suite from here
- Extract oss-cad-suite\
- Follow installation instructions
- From a terminal run: oss-cad-suite\start.bat
- Build:
- You should now be in a terminal with [OSS CAD SUITE] as prompt prefix.
- cd to the midori repo.
- Run: python3 gateware\midiori.py sim
- then if no errors: python3 gateware\midiori.py build
- This will generate a top.bin file in build/ . This is what you need to SPI flash to U2.
- Take this file and pad it at the end with 0xFF bytes (I used a hexeditor) until it is 1048576 (0x100000) bytes long, which the Flash expects.
Write FPGA bitstream to Flash
If you have a favorite SPI Flash setup to use… then do that. Write top.bin from above to the AT25SF081B.
I used a Tigard device together with a sketchy adapter I made from stuff I had at home, see pic below. You might wanna get something nicer.

Then on OSX, I installed “flashrom” through homebrew by running brew install flashrom.
Then to write the file to the FPGA, I connected things and ran
flashrom -p ft2232_spi:type=2232H,port=B,divisor=4 -w top.bin
Soldering
Not much to say here. The FPGA has tiny pitch, so be careful and use magnification. At least on the revision (2.2 2020) that I soldered, U2 is oriented the other direction than other IC’s, so check for that.

4 replies on “Notes from building a Midiori Midi card for X68000”
Thank you very much for the very informative notes on how to build the Midiori Midi card! I’m about to build one myself and it helped me a lot to understand the process of building the firmware!
I’m still lacking a bit of understanding on how to program the FPGA though. How is the bytestream written into the FPGA? Is the FPGA physically connected to AT25SF081B using another board or programmer? Why does the bytestream first need to be written to AT25SF081B and what’s it’s role afterwards on the Midiori board?
Thank you very much!
The AT25SF081B is soldered on the Midiori board and contains the bitstream of the FPGA.
Hi, I came across your blog and your detailed repair and modding posts are truly inspiring! This is Emily from PCBWay, a global PCB munufacturer. We’d love sponsor your project with free PCB prototyping. A brief review would be appreciated in return. Would you be open to it?
No, I have no interest in sponsors