Systemsite/content/hardware.md

FRANK Core 2 Proto

Minimum board for FRANK Linux: the dual-die bring-up board documented at frank.rh1.tech/hardware/frank-core2-proto (opens in a new tab).

Prototype. Clearest illustration of the dual-RP2350 topology — not the everyday machine. For a usable daily driver, build Core 2U instead.

Specs #

PCB55.00 × 55.00 mm, 4 layers, 133 placements
MasterRP2350B QFN-80 — link, HDMI, USB HID host path, microSD, I²S
SlaveRP2350A QFN-60 — runs Linux (this project)
FlashW25Q128JVPIQ × 2 — 16 MB per die
PSRAMESP-PSRAM64H × 2 — 8 MB per die (system RAM on the slave)
ClockASE 12 MHz oscillator per die
VideoHDMI Type A (HSTX DVI on the master)
AudioTDA1387T + LM358 + 3.5 mm jack
StorageMicroSD slot (master only)
USBUSB-C × 2 — one per die (native USB, not a host hub)
PowerAMS1117-3.3 from 5 V USB-C; no power switch

What this board does not have #

Compared with Core 2U / FRANK Next:

  • No USB host Type-A ports — no MW7211A hub, no host multiplexer. Keyboard input needs Core 2U, a supported alternate path, or the test harness.
  • No WiFi on the PCB — networking in FRANK Linux uses an ESP-01 on the master's UART (external module).
  • No real-time clock
  • No slide power switch — live the moment USB-C is connected

Firmware must not expect USB host, WiFi, or an RTC on this revision.

How Linux maps onto the dies #

RP2350A "slave"                         RP2350B "master"
Linux, NOMMU, PMSAv8                    pico-sdk C, no Linux
core0: kernel + FDPIC user              core0: link, USB HID, microSD, I²S
core1: link service (SRAM)   <==96MB/s==>  core1: HSTX DVI + Protea terminal
8 MB PSRAM = system RAM                 8 MB PSRAM: /tmp over the link
16 MB flash: afboot + DTB + kernel      HDMI · USB-C · uSD
             + rootfs (XIP)
USB CDC = debug console

Linux writes bytes to a serial-like device; the master renders them. Since /dev/fb0, a 320×240 framebuffer shares the same HDMI path.

First flash (hardware side) #

  1. Hold BOOT on the slave (S3), connect its USB-C, release, load the UF2 / use picotool (or make slave-flash-usb from this repo).
  2. Flash the master I/O server the same way on the master's USB-C (S1).
  3. Connect HDMI; insert a microSD prepared by make install / install_card.py.
  4. Login as root on the HDMI console (or USB CDC).

Assembly cautions #

  • Both QFNs need hot air or a hot plate; solder SoCs, flash and PSRAM first.
  • The AMS1117 runs warm — do not skip its ground pour.
  • Side tactiles (BOOT/RESET pairs) sit on the board edge; tack one pad, align, then finish.
  • RN1/RN2 HDMI resistor arrays are easy to misplace — missing them kills video with no other symptom.

Full BOM, Gerbers, schematics: hardware page (opens in a new tab).