Board in design · founding reservations open

NOBD-ZERO

The most over-engineered fightstick PCB ever designed.

Four chips into one. One controller.

A flagship fightstick PCB on a single chip: dual-core RISC-V, open firmware, native retro consoles, up to 16 kHz USB target with USB 3.0 headroom, designed to outspec the category. It also fixes a real bug. The classics ran in sync with their hardware, frame by frame. On modern hardware they fall out of sync: fast polling and the game’s once-per-frame read split your two-button intent across a frame boundary, dropping an input. A tunable sync window puts both back on the same frame.

The Founding 100 lock $150 · $199 after

The Founding 100 lock $150 · retail $199 · no payment now · non-binding

16 kHz
USB-HS · target
~40 kHz
LAN mode · target ↗
One chip
Dual-core RISC-V
Native
Retro
loading model…

drag to rotate · NOBD-ZERO pre-prototype

Proof, in motion

Watch the drop. Then watch it land.

Same stick, same two-button input. With sync off, the second press is dropped and the move never comes out. Turn sync on and both land. This is the open NOBD fix running live, not a render.

the second button vanishes
both register, every time

Captured on a real fightstick · Marvel vs Capcom 2 · tap to enlarge

Why we built it

You pressed two buttons. A jab came out.

That is a real, measurable bug. On the classics, run on modern hardware, 1000 Hz polling can split two near-simultaneous presses across a frame boundary, so one input drops and the move you meant never comes. We found it, measured it, and removed it with a tunable sync window.

The only variable left is you.

The finger gap

No human presses two buttons at the same instant.

In our testing, two fingers land 2 to 8 ms apart. That gap is human, not sloppiness. A 1000 Hz stick reports it one millisecond at a time, so a 3 ms split goes out as three reports with only the first button down, before your hand has finished the press.

Why it matters

Think of a camera that snaps one photo per frame. If your two presses land on either side of the shutter, the photo only catches the first one.

Measure your own gap

One game frame · 16.67 ms · one read, by design

first 6 ms ↓
…rest of the frame

Your whole input should land inside one frame. On synced hardware, it did.

Zoom in · USB reports at 1000 Hz · 1 ms each

↓ intent starts (LP)
↓ HP lands · complete
LP
1 ms
LP
2 ms
LP
3 ms
LP+HP
4 ms
LP+HP
5 ms
LP+HP
6 ms
3 polls = half your intent
now both register

If the frame's one read lands in those first 3 ms, the game sees LP only and your move dies. The original hardware read you once per frame, so your whole input had a full 16 ms to land together. Sub-ms polling reports your intent before it has finished forming.

It's the classics

A decades-old game, running on hardware it was never built for.

These games were built for arcade boards and consoles, where everything moved to one clock. The screen refreshed at 60 Hz, the game ran at 60 frames a second, and the controller was read once per frame, all locked into the same beat. That is why old consoles felt so consistent. Your two buttons, a few milliseconds apart, got swept into the same read and came out together. It just worked. You never had to think about it.

Then the games left that hardware. On a modern PC, emulator, or Fightcade, your stick and the game no longer share one clock, and your inputs take a longer, looser path before the game looks. Those same two buttons can land on opposite sides of a frame, and the game, still reading once per frame like it always has, sees only the first. You get one button instead of the move you meant. Newer fighters quietly added forgiveness in software, but these classics are frozen in time and can't be patched. The only place left to put the sync back is the controller.

This is a retro, Fightcade, and emulation problem. Modern fighters added leniency; we don't claim they drop your inputs.

Who built this

I'm not a firmware engineer. I'm a cloud support engineer, two decades in IT and infrastructure, and a competitor who came back to Marvel vs Capcom 2 after 15 years.

Truth is, I walked away from this game years ago, not long after it got ported around. It never felt the same to me. The timing was off in a way I couldn't put my finger on, so I did what everybody does. I blamed myself and stopped playing.

Years later I fired it up again on PC, and the dashes kept dying. My first thought was, great, I'm getting old. But come on. Anyone can dash. I am not THAT old. Is it me? I kept asking that until the troubleshooter in me took over. Two decades in IT and infrastructure teach you one thing better than anything else: how to chase a problem. Gather the evidence, isolate the symptom, follow the leads until the picture is clear. And the picture here looked exactly like a desync between two clocks. The stick and the game were out of step, and fast polling was exposing the gap. It was not me. That is where the research began.

So I used everything I had: decades of troubleshooting instinct, modern AI tools, and an obsession that wouldn't quit. I open-sourced the fix, showed every line, and set out to build the most over-engineered competitive PCB anyone has tried to ship, so you never have to take my word for any of it.

For the perfectionist. For the grinder. The only variable left is you. Your training finally pays off.

NOBD · cloud support engineer, competitor

The Arsenal

Every edge we could engineer, in one board.

One chip does the work of four. Up to 16 kHz USB with USB 3.0 headroom. Native retro consoles. Ethernet built into the silicon. Every input mode, Hall triggers, firmware you can read and fork. No shipping product combines them, and the open board everyone else uses is capped at 1000 Hz by its own silicon. We build in public, and every claim here is checkable.

Specs below are targets. Pre-prototype hardware.

Target

Up to 16 kHz USB · USB 3.0 on board

8 kHz standard, 16 kHz with the NOBD companion: every input reported in 0.0625 ms, 16x the 1000 Hz standard. And the chip carries a full USB 3.0 SuperSpeed engine on die, headroom no fightstick has ever shipped.

Integrated USB High-Speed (480 Mbps) does 8 kHz out of the box; the companion lifts it to 16 kHz, same board, no driver install. The CH32H417 also has a native USB 3.0 SuperSpeed controller (5 Gbps) on the die, so the polling ceiling is silicon headroom, not a bolt-on. Every RP2040-based open board tops out at 1000 Hz because USB Full-Speed cannot go faster. USB 3.0 throughput is WCH’s own figure, not ours; we measure before we claim.
Engineered

One chip · dual-core RISC-V

The last board needed four chips. This one needs one. A single WCH CH32H417 with two RISC-V cores does the work of a whole board: one core keeps your inputs clean, dedicated hardware engines handle every poll, so timing never gets blocked by USB or network work.

A 400 MHz main core plus a 160 MHz co-processor, replacing the V1 stack of RP2040 + STM32F723 + USB hub + external Ethernet chip. Scan, remap, SOCD and turbo run on the co-processor; the per-poll transaction is a dedicated hardware engine (the PIOC for retro, the USB SIE for USB), so the CPU is never in the per-poll path. Fewer chips means a simpler board, lower cost, and fewer things to fail.
Engineered

No CPU in the hot path

Speed you can feel is really consistency. The button-to-console transaction runs on dedicated silicon with a pre-computed response, not a software loop, so your timing does not drift when the chip gets busy. Same input, same path, every frame. Low jitter is the whole point.

The rule the whole design follows: keep the CPU out of the per-poll hot path. In the shipping firmware today, the Dreamcast Maple responder is fully interrupt-driven with a pre-computed lookup table, so a controller read is answered in 1 to 2 µs with zero main-loop work. On the Zero board the PIOC runs the whole protocol autonomously while the CPU stays asleep, event-driven, waking only when your input changes. Deterministic timing is an architecture choice, not a knob you turn.
Target

Ethernet on-chip · LAN mode

The first fightstick PCB built around a real network stack, and now it lives inside the chip itself, no separate network IC. A companion app presents your stick as a virtual controller fed over Ethernet, bypassing USB polling entirely. Not faster on average. Deterministic. Your input reaches the game the moment it changes, the same way every time. Have a spare Ethernet port on your PC? Direct connect is supported too, no crossover cable required.

Target: your input hits the game in ~25 µs. A standard 1000 Hz stick takes ~1,000 µs, so your press can reach the game nearly a full millisecond sooner, the equivalent of about 40,000 Hz polling. Ethernet on the die removes the ~12 µs SPI hop the old external network chip added, so the floor gets lower still.* (*Theoretical, pre-prototype, not yet measured. Real numbers go to inputlag.science before we claim them.)

The CH32H417 integrates the Ethernet MAC and 10/100 PHY, so the board only needs a magjack, no W5500 or external PHY. That deletes the ~12 µs SPI bottleneck the V1 design had. Inputs go out event-driven, only when something changes, straight to a small PC app that hands them to the game as a normal controller. A gigabit path over RGMII to an external PHY is on the roadmap for the higher tier. Everything here is a target on pre-prototype hardware, and we measure it in public before we claim a number.
Engineered

Native retro · Brook-cable ready

Dreamcast is native over Maple Bus, no adapter and no dongle, and it is running in the open NOBD firmware today. On the Zero board it runs on the chip’s PIOC, a built-in protocol engine, so the retro bus takes zero main-CPU. The retro jack uses the standard Brook retro-cable pinout, so the Brook adapter cables you already own plug right in. More classics roll out in firmware.

The CH32H417’s PIOC (Programmable Protocol I/O Controller) is a small co-processor that runs whole I/O protocols autonomously, the same role the RP2040 PIO played in V1. It drives the two Maple Bus lines with no third-party converter. Porting Maple to the PIOC is the make-or-break engineering test for the single-chip design, and it is in progress. The RJ45 retro jack implements the standard Brook retro-cable pinout, and the 20-pin header matches the Brook UFB, so existing cables and harnesses are plug-and-play. VMU saves included; more protocols (Joybus for N64/GameCube, and others) arrive in firmware.
Engineered

Every input mode, however you play

One board, every system: output modes for Xbox, PlayStation 4, Switch, PS3, the Original Xbox, and PC DirectInput, with per-game profiles you switch on the fly. Optional Hall-effect switches let you set the actuation point in software.

USB output modes cover XInput, PS4, Nintendo Switch, PS3 (DualShock 3), Original Xbox (XID / Duke), and HID / DirectInput, all configurable from the browser with no app install. Per-button analog Hall sensing supports a tunable actuation threshold; the most latency-critical button can trip in silicon via the chip’s comparator and DAC, the rest are software-thresholded. Console auth (PS5 / PS4) still rides a licensed dongle over the on-chip USB host.
Target

On-chip crypto · saves & replays

The chip has real hardware encryption built in. On the roadmap: encrypted VMU saves and encrypted tournament replays, done in silicon, not bolted on in software.

The CH32H417 integrates an ECDC crypto block (AES-128/192/256, SM4) and a hardware RNG. We use it to encrypt our own data, VMU saves and, planned, matchmaking and replays. It encrypts; it does not sign, and it is not console authentication (that still needs a licensed dongle). Roadmap feature, called out honestly.
Engineered

Open firmware + Brook 20-pin

Runs the fully open NOBD firmware. Read every line, fork it, and drop it into your existing stick via the standard Brook 20-pin.

Firmware is open source and flashes onto GP2040-CE hardware today. The NOBD Zero board hardware is not open-sourced yet (planned).
Engineered

Two modes · Sync & Raw

Sync mode groups your presses so they land together, on a window you can tune (5 ms by default), trading a sliver of speed for rock-solid consistency. Raw mode runs full speed at minimum latency. Fast when you want it, synced when you need it.

Sync opens a grouping window on the first press (default 5 ms, fully configurable) and commits the held inputs together; releases stay instant. Raw passes inputs straight through with no grouping.
How far past the wall

Faster, drawn to scale.

Bar = speed vs 1000 Hz wall

NOBD-ZERO · LAN ModeTarget0.025 ms
40×

Our target. Over Ethernet, event-driven.

NOBD-ZERO · USB-HS + companionTarget0.0625 ms
16×

Our target with the NOBD companion. 16 kHz, same board.

NOBD-ZERO · USB-HSTarget0.125 ms

Our target out of the box. 8 kHz over USB High-Speed.

Brook UFBMeasured1.0 ms

The fastest fightstick ever measured. Right on the wall.

GP2040-CE open boards1000 Hz cap~1 ms

The firmware we forked. Stuck at the 1000 Hz USB cap.

Hori Fighting Commander 4Measured8.0 ms
0.13×
DualShock 4 (wired)Measured10.3 ms
0.10×

A stock PS4 pad.

PS360+ (Xbox 360)Measured18.2 ms
0.05×
Madcatz TE (Soul Calibur V)Measured24.2 ms
0.04×

Slowest on the board.

Every grey bar is a real measurement from inputlag.science , drawn as speed relative to the 1000 Hz wall (1 ms = 1×). The fastest fightstick ever tested (Brook UFB) sits right on that wall, and the open RP2040 boards GP2040-CE runs on are capped there too. Our targets aim 8× past it on USB out of the box, 16× with the companion, and 40× on LAN.

* NOBD figures are design targets on pre-prototype hardware, not yet measured. GP2040 is the 1000 Hz USB cap, not an inputlag.science entry. We will submit ours before we claim a number.

No single product combines all of this. And we will submit our latency for independent testing, because in this scene you don't trust specs, you test them.

Studio render of the NOBD-ZERO fightstick controller PCB
NOBD-ZERO

The board we're building. Renders today, silicon next.

Isometric render of the NOBD-ZERO PCB
Top-down render of the NOBD-ZERO PCB showing all silkscreen labels
Low-angle render of the NOBD-ZERO PCB
Build-in-public roadmap
Now

NOBD software

The open-source fix, already running on GP2040-CE boards.

Zero

The board

The one-chip CH32H417 design: up to 16 kHz USB, USB 3.0, Ethernet on-chip. In design.

Next

LAN Mode + more

LAN Mode, gigabit tier, more retro consoles, encrypted netplay. Planned.

Don't take our word for it

Receipts, not trust.

The part competitors won't do. Every claim on this page is checkable, so don't believe us. Verify us.

  1. 01

    Read the fix

    One open-source function, the actual sync logic, in our public fork. Not a slide.

    src/gp2040.cpp
  2. 02

    Measure your own gap

    Don’t believe 2–8 ms? Measure yours with the open Finger Gap Tester.

    Finger Gap Tester
  3. 03

    Try it free on your PC

    Don’t believe any of it? NOBD Desktop drops the same sync window onto the Steam version of Marvel vs Capcom 2, in software, using the stick you already own. No NOBD board, no flashing, no money down. Feel the difference yourself. (MvC2 today; more games coming.)

    NOBD Desktop
  4. 04

    Independently measured

    A relay-rig test (not ours) found older and slower boards register simultaneous inputs more consistently. Outside evidence, not our marketing.

    Read Vodka’s test

You drilled the same input for years, never sure if the drop was you or the board. We removed the doubt. The sync window groups your inputs onto one frame, so what comes out is what you did. The only variable left is you. Own every result.

And the fix is one feature on the most over-engineered fightstick PCB anyone has tried to ship. Read the code. Measure your gap. Verify our latency yourself. We are not asking for your trust. We are handing you the receipts.

Remove the variable. The rest is on you.

Reserve yours

The Founding 100 lock $150 · retail $199 · no payment now

The lab is open

Build it with us.

NOBD is built in public, with the people who actually play these games. Jump into the Discord, ask questions, try the software, and help decide where this board goes next. This is your scene too.

Join the Discord

Talk to the bots

An MvC2 Oracle for frame data and matchup questions, plus a bot that drops your feature requests and bug reports straight into the backlog.

Shape the firmware

Ask for a feature, report a bug, and watch it get built. It's all open source. The community speaks; the firmware follows.

Try it, then talk

Run the free NOBD software on a setup you already own, feel the fix, then come tell us what you found. Not a hype channel. A workshop.

Founding reservations

Lock your price. Own every result.

The first 100 reservations lock the $150 founding price and a founding serial. Retail lands at $199. No payment now, nothing binding, and we tell you the final price before you ever owe a cent. Reservations are how we decide how many to build.

The Founding 100 lock $150 · $199 after

One email. We tell you the final price before you owe a cent. No spam, unsubscribe anytime.