

FastConverter
Creating a lagless NES USB adapter
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 3
- Nets
- 24
- Pads
- 42
- Tracks, vias
- 37, 0
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 3 Nov 2018
- Updated
- 17 Oct 2023
Overview
FastConverter is an open-source printed circuit board by alex-ong, from the alex-ong/LaglessNESUSB repository on GitHub. It is a 2-layer board with 3 parts on 24 nets, routed with 37 tracks and 0 vias.
It belongs with the interfaces and adapters boards and the AVR (ATmega, ATtiny) boards of this library.
README
README.mdWhat is this?
This repository contains two main parts - a hardware folder which includes all the parts required to make a two player adapter enclosure, and a software folder, arduino code required to create a lagless adapter.

Why is this lagless?
The software leverages MHeironimus's Joystick2 library, which creates a 1000hz usb device. It is a simplified version of mcgurk's more universal adapter that polls as quickly as possible (10000hz+) Total input delay is <1000hz. Pressing two keys at almost the same time will report button presses 2-3 milliseconds apart, in the correct order. This is more accurate than lower usb polling combos, where pressing two buttons close together will wrap them as sent simultaneously.
Basic instructions
- Build hardware via laser cutting / screwing, soldering
- Flash software from software folder.
- Plug in, enjoy!
Future feature list
A single button will toggle between nodes, with two LEDs (one for mode, one for output). Modes could include
- Flashing an LED when key-down is detected. Use this in combination with a high speed camera to calculate input delay.
- Auto-fire of arrow keys at 30hz, after a short delay
- Adding delay to input to do A/B testing on users to detect minimum delay threshold.
Testing polling rate / minimum time between keymessages
You can use this tool to ensure that polling rate is 1ms. You can compare with other usb adapters, and your keyboard. The idea is to strum two keys as close together as possible, without being simultaneous. It will figure out the minimum time between key messages. Note that some keyboards are advertised as 1000hz, but wrap key events into 5ms polling rates. This means if you press two keys 1ms apart, they are reported in the same 5ms block with the same timestamp.
Bill of Materials
| Electronics | Cost | Link |
|---|---|---|
| Arduino pro micro 5v 16mhz | $3.00 | link |
| Female Nes port | $2.60 x 2 | link |
| Cabling (Ethernet) | $0.00 | |
| Micro usb cable | $1.00 | link |
| Enclosure | Cost | Link |
|---|---|---|
| Laser cut plywood | $3.0 | Todo: upload files as 1.5mm and 3mm |
| Screws | $2.0 | Todo |
| Standoffs | $2.0 | Todo |
| Microusb port | $1.5 | link |
Parts
3| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 90DegreePort | port:NEScontrollerport | U1, U2 |
| 1 | ProMicro | promicro:ProMicro | U3 |
Questions
What parts does the FastConverter use?
3 parts. 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.
Where can I download the FastConverter KiCad files?
From the alex-ong/LaglessNESUSB repository on GitHub, at the commit this page was made from: the board is Hardware/PCB/FastConverter/FastConverter.kicad_pcb and its schematic Hardware/PCB/FastConverter/FastConverter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the FastConverter design in my own project?
Its repository states no licence, so its author keeps all rights: ask alex-ong before reusing the design.
Similar boards
- 2 layers40 × 30 mm

- 2 layers51.9 × 16 mm

Passive2-rpi non standard adapter
hzeller/rpi-rgb-led-matrix
Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO
3 parts4.4kGPL-2.0 - 2 layers16.3 × 16.3 mm

- 2 layers

Sub
atopile/atopile
Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️
3 parts4kMIT - 2 layers85 × 30 mm

- 2 layers124.5 × 33.7 mm

- 2 layers10.5 × 83 mm

- 2 layers21.2 × 51.3 mm

Pico reset
hackclub/sprig
🍃 Learn to code by making games in a JavaScript web-based game editor.
3 parts1.1kMIT