
Mega
1vers1on/Mega
A microcontroller based on the RP2350B with a dedicated dac and adc, plus wifi and bluetooth.

A diagnostic cartridge for MSX computers. Very much a work in progress. This is at proof-of-concept stage. It boots, it reads the bus, it tells you things, but it's a long way from a finished product.
Msxdoc proto is an open-source printed circuit board by tarinaroope, from the tarinaroope/msx-pulse repository on GitHub, published under the MIT licence. It is a 2-layer board of 99.9 × 127.5 mm with 71 parts on 133 nets, routed with 1,043 tracks and 199 vias.
It is built around the RP2350B, SN74LVC245APW and AP2112K-3.3, with the K2-1102AQ-C4CW-01, AOTA-B201610S3R3-101-T and BAT54C among its other parts. Its parts include 24 resistors, 23 capacitors, 6 ICs, 5 diodes and 4 connectors. It belongs with the RP2350 boards of this library.
A diagnostic cartridge for MSX computers. Very much a work in progress. This is at proof-of-concept stage. It boots, it reads the bus, it tells you things, but it's a long way from a finished product. I'm building it partly because I wanted an "is this MSX dead, and if so why" tool, and partly to learn, so expect rough edges.
Plug it into the cartridge slot and it sits there passively. It doesn't drive the bus, so it's safe to leave in while the MSX powers up on its own. While it watches, it reports on a small OLED:
It can also pulse /RESET and follow the early boot sequence to see how far the machine gets. There's a USB serial log too if you want the detail on a host.
That's already enough to tell, say, a dead clock apart from dead RAM without pulling the machine apart. I'm still working out the full list of faults it can sensibly diagnose and a lot of that will come from pointing it at actually-broken machines and seeing what shows up.
The next goal is to have the cartridge serve a diagnostic ROM to the MSX and act as the boot ROM itself and run Z80 test code on the machine's own CPU, the way the Dead Test cart does. The firmware already has the groundwork for this (it can emulate a ROM on the bus), but turning that into a proper guided test sequence is the next chunk of work. The passive monitoring above is the part that somewhat works.
Fair warning: I'm a software person, not a hardware engineer, and this board is one of
the first things I've designed. It's a quick first cut to get something I could test
firmware against, and it shows. There's a KiCad project in hardware/
(schematics, PCB, gerbers) and a parts list in docs/BOM.csv — read
them as "what I actually had made", not "the right way to do this".
The brain is a bare RP2354B (the QFN-80 part, 48 GPIO, 2 MB internal flash) wired onto the cartridge edge connector and powered from the slot. The current board puts 74LVC245 level shifters on just about every bus line. Having lived with it, I think that's overkill... the address and control inputs could most likely get by with plain series resistors and no shifters. The data lines are the exception: those are bidirectional and actually get driven, so keeping real level shifting there still makes sense, mostly for protection.
Things I'd like to change in the next board revision:
You'll need the Arm GNU toolchain (arm-none-eabi), the Raspberry Pi Pico SDK, and
sjasmplus for the Z80 side.
export PICO_SDK_PATH=/path/to/pico-sdk
cmake -S . -B build -DPICO_TOOLCHAIN_PATH=/path/to/arm-none-eabi/bin
cmake --build build -jOut comes:
build/src/firmware/msxdoc.uf2 — the firmwarebuild/diag.rom — the Z80 test ROM, assembled and baked into the firmware for you (not served)Hold BOOTSEL, plug into USB, and drop the .uf2 onto the drive that appears. Or, with
picotool:
picotool load -x build/src/firmware/msxdoc.uf2Or via swd.
src/rom/ Z80 test ROM (sjasmplus)
src/firmware/ RP2354B firmware (pico-sdk, C + PIO)
hardware/ KiCad schematics, PCB, gerbers
docs/ bill of materialsMIT — see LICENSE.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 100nF | Capacitor_SMD:C_0402_1005Metric | C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C21, C23 |
| 5 | 1kR | Resistor_SMD:R_0603_1608Metric | R9, R15, R18, R19, R21 |
| 4 | 10kR | Resistor_SMD:R_0603_1608Metric | R10, R11, R13, R16 |
| 4 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C18, C19, C20, C22 |
| 4 | K2-1102AQ-C4CW-01 | LCSC:SW-TH_K2-1102AQ-C4CW-01 | SW1, SW2, SW3, SW4 |
| 4 | SN74LVC245APW | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U3, U4, U5, U6 |
| 3 | BZX84Cxx | Package_TO_SOT_SMD:SOT-23 | D2, D3, D4 |
| 2 | 100nf | Capacitor_SMD:C_0603_1608Metric | C3, C6 |
| 2 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | 15pf | Capacitor_SMD:C_0603_1608Metric | C4, C5 |
| 2 | 27R | Resistor_SMD:R_0603_1608Metric | R20, R22 |
| 2 | 330R | Resistor_SMD:R_0603_1608Metric | R4, R23 |
| 2 | 33R | Resistor_SMD:R_0603_1608Metric | R14, R24 |
| 2 | 4.7kR | Resistor_SMD:R_0603_1608Metric | R5, R6 |
| 2 | 5.1kR | Resistor_SMD:R_0603_1608Metric | R7, R8 |
| 1 | 10uf | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 12MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 1uF | Capacitor_SMD:C_0402_1005Metric | C24 |
| 1 | 1uf | Capacitor_SMD:C_0603_1608Metric | C1 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | 3.3u | LCSC:IND-SMD_L2.0-W1.6_AOTA-B201610S3R3-101-T | L1 |
| 1 | 33 | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 33kR | Resistor_SMD:R_0603_1608Metric | R12 |
| 1 | 82kR | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U1 |
| 1 | BAT54C | Package_TO_SOT_SMD:SOT-23 | D1 |
| 1 | Conn_01x03_Pin | Connector_PinHeader_1.27mm:PinHeader_1x03_P1.27mm_Vertical_SMD_Pin1Right | J4 |
| 1 | Conn_01x50 | OwnLib:MSX-EDGE | J1 |
| 1 | GT-USB-7010ASV | LCSC:USB-C-SMD_G-SWITCH_GT-USB-7010ASV | J3 |
| 1 | HS96L03W2C03 | LCSC:OLED-TH_L27.8-W27.2-P2.54_C9900033791 | J2 |
| 1 | LED | LED_SMD:LED_0603_1608Metric | LED1 |
| 1 | RP2350B | RP235x:QFN-80-1EP_10x10mm_P0.4mm_EP3.4x3.4mm_ThermalVias | U2 |
The 69 most common of 71 parts.
It measures 99.9 × 127.5 mm and has 2 copper layers, 1.6 mm thick.
71 parts, built around the RP2350B, SN74LVC245APW, AP2112K-3.3 and K2-1102AQ-C4CW-01. 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.
From the tarinaroope/msx-pulse repository on GitHub, at the commit this page was made from: the board is hardware/msxdoc_proto.kicad_pcb and its schematic hardware/adc_power_rails.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

1vers1on/Mega
A microcontroller based on the RP2350B with a dedicated dac and adc, plus wifi and bluetooth.





chinawrj/FarmMesh-Node
Developing an integrated hardware and software solution for farm-wide Mesh networking: RP2350B/ESP32-C5 nodes, firmware, network protocols, and Wi-Fi/BLE sensor access.

coco-chameleon/chameleon-hardware
TRS-80 Color Computer cartridge emulator
