Skip to the content
PCBKitNew board
2 layersFastConverter, the printed circuit board in 3D

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.md

What 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.

heroimage

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

  1. Build hardware via laser cutting / screwing, soldering
  2. Flash software from software folder.
  3. 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

ElectronicsCostLink
Arduino pro micro 5v 16mhz$3.00link
Female Nes port$2.60 x 2link
Cabling (Ethernet)$0.00
Micro usb cable$1.00link
EnclosureCostLink
Laser cut plywood$3.0Todo: upload files as 1.5mm and 3mm
Screws$2.0Todo
Standoffs$2.0Todo
Microusb port$1.5link

Parts

3
QtyValueFootprintReferences
290DegreePortport:NEScontrollerportU1, U2
1ProMicropromicro:ProMicroU3

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 mmBlinky, the printed circuit board in 3D

    Blinky

    earthtojake/text-to-cad

    Design physical products with AI

    3 parts26kMIT
  • 2 layers51.9 × 16 mmPassive2-rpi non standard adapter, the printed circuit board in 3D

    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 mmSensor, the printed circuit board in 3D

    Sensor

    scottbez1/splitflap

    DIY split-flap display

    3 parts4.2k
  • 2 layersSub, the printed circuit board in 3D

    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 mmDual stomp, the printed circuit board in 3D

    Dual stomp

    torvalds/GuitarPedal

    Linus learns analog circuits

    3 parts2.5kGPL-2.0
  • 2 layers124.5 × 33.7 mm172319-1 connector, the printed circuit board in 3D

    172319-1 connector

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    3 parts1.2k
  • 2 layers10.5 × 83 mmProgrammingAdapter, the printed circuit board in 3D

    ProgrammingAdapter

    stuartpittaway/diyBMSv4

    Version 4 of the diyBMS

    3 parts1.1k
  • 2 layers21.2 × 51.3 mmPico reset, the printed circuit board in 3D

    Pico reset

    hackclub/sprig

    🍃 Learn to code by making games in a JavaScript web-based game editor.

    3 parts1.1kMIT