Repository navigation
EN Hardware
Menu path: Hardware · Boards: all · Requires: — (Speed Test's PSRAM/SD rows need that hardware present)
The Hardware menu is the diagnostics-and-tuning corner of the OSD. It does not change the emulated machine — it inspects the physical board (chip, flash, PSRAM, SD card, connected USB/PS-2 input devices), summarises the current emulator configuration, runs performance benchmarks, and lets you overclock the RP2040/RP2350.
Most rows just open a read-only info dialog. The two submenus with > — Speed Test
and Overclock — do real work; Overclock changes are persisted to NVS and applied
after a reboot.
The actual GPIO assignments referenced by Board Info are documented in Boards & pinout. Joystick / gamepad / keyboard mapping lives under Options → Other and the joystick config dialogs, not here — Hardware only reports the current input setup (in Emulator Info / HID devices).
Hardware
├── Chip Info MCU model, cores, CPU/VREG, RAM, flash + PSRAM IDs, temperature
├── Board Info SD card, audio, RAM page map, GPIO pin assignments, build info
├── Memory Info FLASH / SRAM / PSRAM occupancy + per-feature memory budget
├── Emulator Info current machine / video / sound / input / storage configuration
├── HID devices live view of USB / XInput / NES gamepads (auto-refresh ~1 s)
├── Speed Test ▸
│ ├── CPU MIPS integer-op throughput
│ ├── SRAM R/W on-chip SRAM read/write MB/s
│ ├── PSRAM SPI and/or QSPI ("butter") PSRAM read/write MB/s
│ ├── SD Card SD read/write MB/s
│ ├── USB Drive USB flash stick read/write MB/s
│ └── All tests run every benchmark in sequence
└── Overclock (!) ▸ ⚠ shows a "Board may not boot!" warning on entry
├── CPU Freq ▸ 252 / 378 MHz (+ 504 MHz on RP2350)
├── VReg Voltage ▸ 1.15 … 1.80 V (RP2350 only)
├── Flash Freq ▸ 33 / 66 / 84 / 100 / 133 / 166 MHz
└── PSRAM Freq ▸ 66 / 84 / 100 / 133 / 166 MHz
* marks the active value in each Overclock submenu. The VReg Voltage row exists on
RP2350 only (#if !PICO_RP2040); on RP2040 the Overclock submenu has just CPU / Flash
/ PSRAM Freq.
A live read-out of the MCU and memory chips:
| Field | Notes |
|---|---|
| Chip model |
RP2350A / RP2350B (variant auto-detected) or RP2040
|
| Chip cores | always 2 |
| CPU frequency | current clk_sys in MHz (reflects your Overclock setting) |
| VREG voltage | current core regulator voltage (RP2350 only) |
| Chip RAM / Free RAM | total SRAM (520 KB RP2350 / 264 KB RP2040) and free heap |
| Flash size / JEDEC ID | flash capacity + raw JEDEC manufacturer/device bytes |
| PSRAM size / MF ID / KGD / EID / Free | SPI PSRAM info, if a chip is present (not on MURM2) |
| +PSRAM on GPxx | onboard QSPI "butter" PSRAM (size + free), if present |
| Temperature | on-chip temperature-sensor reading in °C |
The physical board and its wiring:
-
SD Card — free/total MB, filesystem (FAT12/16/32/exFAT), cluster size, volume
label + serial, card type (SDv1/SDv2/SDHC-SDXC/MMCv3), and the card's CID product
name + serial. Shows
not mountedif no card. -
Audio — active driver:
HDMI,AY-3-8910, ori2s/PWM(with the detected I²S link code, andautoif auto-selected). -
VGA/HDMI detect — the detected display-link byte (boards with
VGA_HDMI). -
16K RAM pages — the page map: SRAM (
s) + butter (b) + SPI PSRAM (p) + SD swap (v) pages that make up the emulated RAM. - GPIO pins — the actual pin numbers for keyboard, VGA/HDMI base, PWM L/R, beeper, I²S / PCM5122, AY-595 latch, SD SPI, PSRAM, butter PSRAM, MIDI TX, WAV-load, NESPAD and LED — exactly as compiled for this board.
- Build info — build name, build date/time, git branch and commit.
The GPIO numbers here are the canonical, board-specific map — cross-reference with Boards & pinout.
A live map of where the memory went — useful when a feature refuses to enable because the SRAM budget is exhausted:
-
SRAM — usable total, static
bss+data, heap used/total, heap free, and the largest contiguous allocatable block. - FLASH — total size, firmware footprint, and the flash Buffer pool (e.g. the GM.DLS wavetable bank partition), if in use.
- Butter (QSPI) / SPI PSRAM — chip size, how much serves as emulated Z80 RAM pages, and the Buffer arena used/total on each chip.
- SD swap pool — used/total, when pages spill to the SD card.
- Enabled features (SRAM) (RP2350) — the per-feature SRAM cost of everything currently enabled through the subsystem budget manager (Gigascreen, General Sound, DivMMC, ZiFi, …) with a TOTAL row.
- PSRAM by feature (RP2350) — the same breakdown for the big PSRAM consumers (GM.DLS bank, GS sample RAM, Gigascreen previous-frame buffer, DivMMC banks).
A one-screen summary of the current emulator configuration (everything else you set in Options/Storage/Audio). Read-only — it does not change anything.
| Group | Reports |
|---|---|
| Machine | Architecture, ROM set, Issue 2 on/off, ALU timing (Early/Late) |
| Video | Output (VGA/HDMI) + video mode, scanlines, render (Standard/Snow), palette, and (RP2350) Gigascreen, ULA+, Timex video |
| Sound | AY-3-8912 (+ stereo ABC/ACB/Mono), TurboSound (NedoPC/old-TC/Both), Covox (#FB/#DD), SounDrive, and (RP2350) SAA1099, MIDI (mode/synth preset); audio driver |
| Input | Joystick type (Cursor/Kempston #xx/Sinclair/Fuller #7F/Custom/None), TAB-as-fire |
| Storage | (RP2350) esxDOS mode + hd0/hd1 images, IDE/HDD scheme + images; TR-DOS state + drives A–D; MB-02+ + drives; DMA mode; tape file; flash-load on/off |
Note: several groups (Gigascreen, ULA+, Timex, SAA1099, MIDI, esxDOS, IDE/HDD, MB-02+, DMA) are RP2350 only and are omitted on RP2040.
A live, auto-refreshing (~1 s) list of connected input devices — useful for checking that a USB keyboard or gamepad is recognised and which buttons it reports:
- USB HID keyboards / gamepads (including the special-cased Sony DS4 / DualSense and XInput pads).
- XInput controllers (e.g. Xbox 360 / Logitech F710 in XInput mode).
- On boards with
USE_NESPAD: a live NES1/NES2 button-state line plus the decodedjoy1/joy2D-pad + face/Start/Select bits.
Press Enter or Esc to close. ↑ ↓ / PgUp / PgDn scroll if the list is long.
If nothing is attached it shows "No HID/XInput devices."
Self-contained micro-benchmarks — no media or SD images needed (except the SD row, which needs a mounted card, and the PSRAM rows, which need PSRAM present). Each test runs for a fixed time window and reports a rate; results are shown in a dialog.
| Test | Measures | Method |
|---|---|---|
| CPU MIPS | integer throughput (million ops/s) | tight LCG mul+add loop over a 0.5 s window |
| SRAM R/W | on-chip SRAM read & write (MB/s) | 32-bit aligned write then read over a scratch buffer |
| PSRAM | SPI PSRAM and/or QSPI "butter" PSRAM read & write (MB/s) | burst psram_*_range (SPI) / memory-mapped (QSPI); only the chips present are tested |
| SD Card | SD read & write (MB/s) | timed block I/O on a mounted card |
| USB Drive | USB flash stick read & write (MB/s) | timed block I/O on an enumerated stick (RP2350 USB-host builds; expect ~0.9 / 0.75 MB/s) |
| All tests | all of the above, in sequence | — |
In USB-as-root mode (booted with no SD card) the SD row reports No card rather than silently benchmarking the stick — use the USB Drive row for that.
Use it to compare the effect of Overclock settings (e.g. MIPS / PSRAM bandwidth at 252 vs 378 vs 504 MHz, or different Flash/PSRAM frequencies).
⚠️ Entering this submenu shows "Dangerous! Board may not boot!" Pushing frequencies or voltage too far can make the board fail to start. Each change asks for a reboot confirmation — and if it won't boot, you may need to reflash to recover defaults.
Each option opens a list with the current value marked *. Selecting a new value
stores it to NVS and prompts Apply + reboot (declining reverts the change). Values are
applied on the next boot, not live.
| Option | Values | Default | Boards | Notes |
|---|---|---|---|---|
| CPU Freq | 252 / 378 MHz (+ 504 MHz RP2350) | 378 MHz (252 on ZERO / ZERO2) | all (504 = RP2350 only) | core/system clock; if a chosen clock can't be set the firmware falls back to 252 MHz |
| VReg Voltage | 1.15 / 1.20 / 1.25 / 1.30 / 1.35 / 1.40 / 1.50 / 1.60 / 1.65 / 1.70 / 1.80 V | 1.60 V | RP2350 only | core regulator voltage — usually has to be raised to reach higher CPU clocks |
| Flash Freq | 33 / 66 / 84 / 100 / 133 / 166 MHz | 66 MHz | all | XIP flash interface clock |
| PSRAM Freq | 66 / 84 / 100 / 133 / 166 MHz | 166 MHz | all | PSRAM interface clock |
⚠️ Known stability issue. High CPU frequency (504 / 252 MHz) combined with HDMI audio + Gigascreen can hang during the PLL switch (the audio-timer ISR races the clock change). Change frequency deliberately, one step at a time, and verify with Speed Test. See the developer notes (CLAUDE.md→ CPU Frequency Switching).
The full GPIO map for every board (the same pins Board Info reports) is in Boards & pinout.
Speed Test is self-contained — no images required. Compare MIPS / SRAM / PSRAM / SD rates across different Overclock values; use Chip Info to confirm the CPU clock and VREG voltage actually changed after a reboot.
- RP2040 datasheet: https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf
- RP2350 datasheet: https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf
- Developer notes (overclock / freq-switch caveats): CLAUDE.md
Меню (RU)
Сквозные темы
Для разработчиков