Skip to the content
PCBKitNew board
2 layers169.9 × 190.9 mmSingle board, the printed circuit board in 3D

An affordable and easy to manufacture DSKY replica

Size
169.9 × 190.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
116
Nets
93
Pads
491
Tracks, vias
1,150, 268
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
11 Feb 2024
Updated
4 Nov 2026

Overview

Single board is an open-source printed circuit board by Apollo-Replica, from the Apollo-Replica/DSKY repository on GitHub. It is a 2-layer board of 169.9 × 190.9 mm with 116 parts on 93 nets, routed with 1,150 tracks and 268 vias.

It is built around the ATMEGA328P-AU, CH340C and SK6812MINI-E, with the MBR0520LT1G among its other parts. Its parts include 41 capacitors, 35 diodes, 19 switches, 14 resistors and 5 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

4

README

Readme.md

DSKY Replica

This project is still a work-in-progress

This projects aims to create an affordable and easy to manufacture, yet as realistic as possible replica of the DSKY used in the Apollo program to interface with the Apollo Guidance Computer (AGC).

Quick start

Do you want a DSKY but can't build one? Buy one here

Need Help? Join our Discord here

Do you just want to have a DSKY display in your web browser?

  • Make sure you have NodeJS > 18
  • Run start.bat and answer the prompts

Do you want to build the whole DSKY replica?

  • Get the parts: see the bill of materials.
  • Print the .3mf/.stl meshes found in the '3D Models' folder.
    • The recommended display is the 960x544 AMOLED MIPI display, connected to the Orange Pi via HDMI through an adapter board.
    • A legacy 40-Pin 5" 800x480 LCD variant also exists but is no longer recommended; new builds should use the AMOLED.
  • Order the PCB:
    • The board is designed to be ordered fully assembled from JLCPCB. The fabrication files (gerbers, BOM, pick-and-place positions) are in the Boards/Single_board/production folder.
  • Calibrate and flash the firmware:
    • Install PlatformIO into VSCode
    • Open this repository's root folder in VSCode — PlatformIO will pick up platformio.ini at the root
    • Once per board, with a USBasp on the ICSP header (J2), burn the bootloader: pio run -e bare_usb_bootloader -t bootloader. From then on everything goes over the board's USB-C. Never use the Arduino IDE's "Burn bootloader" with a Nano/Uno selected: it sets crystal fuses and the board has no crystal.
    • Each ATmega328P has a slightly different internal oscillator. Calibrate it once; the value is kept in the chip's EEPROM, so the firmware is the same for every board:
      1. Upload the OSCCAL sweep: pio run -e bare_usb_calibration -t upload
      2. Run python firmware/tools/osccal_reader.py --write: it reads the sweep, picks the best value and stores it in EEPROM
      3. Upload the firmware: pio run -e bare_usb -t upload
  • Set up the Orange Pi:
    • See the Orange Pi setup guide.
    • Pre-built .img files have been shared around the community, but they are not recommended as they may be out of date.
  • Make sure you have NodeJS > 18
  • Run start.bat on your PC to launch the web display

Already have a DSKY and want the latest software?

  • Updates are installed from the DSKY itself: open the menu (press NOUN three times) and go to SETTINGS → UPDATE. See Documentation/updates.md.

Repository contents:

  • Documentation: Useful information to better understand how the different pieces of the puzzle talk to each other. Includes the bill of materials, the Orange Pi setup guide, the OTA update system, how to deploy code to a device over the network, and how to develop on a physical DSKY with hot reload.
  • 2D Models: SVG files for alarm labels and backlights.
  • 3D Models:
    • 0.4 Nozzle: All printable meshes (enclosure, display housing, keyboard plate, mounts, etc.) designed for a standard 0.4mm nozzle.
    • Keys (0.2 Nozzle + AMS).3mf: Multi-color key models for a 0.2mm nozzle with AMS.
  • Firmware: PlatformIO project containing the firmware for the bare ATmega328P on the PCB. Includes OSCCAL calibration tooling.
  • Programs:
    • next-dsky: Full-stack Next.js application that serves as the main DSKY UI and backend. Handles serial communication with the PCB, WebSocket connections to AGC simulators, display rendering, and configuration. * Requirements: NodeJS >18
      • Running: npm install then npm start (or use start.bat from the repo root)
    • DSKY-Bridge: Submodule (nhadrian/DSKY-Bridge) — bridge utility for the DSKY.
    • nassp-cloud: Node.js service that monitors NASSP (orbiter simulator) telemetry via WebSocket and manages automatic restarts.
    • click-generator: Python program that procedurally generates relay clicking audio sequences to emulate the DSKY's relay boxes.
  • Boards
    • Single_board: Unified KiCad PCB project containing the keyboard matrix, alarm lights, serial interface, and backlight driver. The production folder contains ready-to-order JLCPCB fabrication files.

License

This project is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

You are free to build one for yourself, modify the design, and share your changes — as long as you credit the original, do not use it commercially, and release your derivatives under the same license. Commercial sale of this device or its derivatives is not permitted without prior written consent from the copyright holder.

Parts

116
QtyValueFootprintReferences
39100nFProject Libraries:0805 100nFC2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24 +23
34SK6812MINIProject Libraries:SK6812-MINI-ED1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +18
65.1kResistor_SMD:R_0603_1608MetricR2, R3, R9, R10, R44, R45
510kResistor_SMD:R_1206_3216MetricR4, R5, R6, R7, R8
3USB_C_Receptacle_USB2.0_16PProject Libraries:USB-C-TH_918-468K2029E50001J3, J4, J5
21kResistor_SMD:R_0603_1608MetricR46, R47
24.7uFProject Libraries:0805 4.7uFC1, C5
1+Project Libraries:Kailh_socket_MXSW1
1-Project Libraries:Kailh_socket_MXSW6
10Project Libraries:Kailh_socket_MXSW4
11Project Libraries:Kailh_socket_MXSW8
12Project Libraries:Kailh_socket_MXSW11
13Project Libraries:Kailh_socket_MXSW15
14Project Libraries:Kailh_socket_MXSW7
1470Resistor_SMD:R_0603_1608MetricR1
15Project Libraries:Kailh_socket_MXSW10
16Project Libraries:Kailh_socket_MXSW14
17Project Libraries:Kailh_socket_MXSW5
18Project Libraries:Kailh_socket_MXSW9
19Project Libraries:Kailh_socket_MXSW12
1ATmega328P-APackage_QFP:TQFP-32_7x7mm_P0.8mmU2
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU3
1CLRProject Libraries:Kailh_socket_MXSW16
1ENTRProject Libraries:Kailh_socket_MXSW17
1ICSPConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical_SMDJ2
1KEYRELProject Libraries:Kailh_socket_MXSW19
1MBR0520LT1GDiode_SMD:D_SOD-123D35
1NOUNProject Libraries:Kailh_socket_MXSW3
1POWERTerminalBlock:TerminalBlock_bornier-2_P5.08mmJ1
1PROProject Libraries:Kailh_socket_MXSW13
1RSETProject Libraries:Kailh_socket_MXSW18
1VERBProject Libraries:Kailh_socket_MXSW2

Questions

How big is the Single board PCB?

It measures 169.9 × 190.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Single board use?

116 parts, built around the ATMEGA328P-AU, CH340C, SK6812MINI-E and MBR0520LT1G. 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 Single board KiCad files?

From the Apollo-Replica/DSKY repository on GitHub, at the commit this page was made from: the board is Boards/Single_board/Single_board.kicad_pcb and its schematic Boards/Single_board/328p.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Single board design in my own project?

Its repository states no licence, so its author keeps all rights: ask Apollo-Replica before reusing the design.

Similar boards

  • 2 layers75 × 66 mmProtoino01, the printed circuit board in 3D

    Protoino01

    hwreverse/PCBDesignLectures

    PCB Design course projects

    56 parts7BSD-3-Clause
  • 2 layers150 × 150 mmBoardGame, the printed circuit board in 3D

    BoardGame

    jkordek1/Man-Don-t-Get-Angry-Board-game

    "Man don't get mad" - electronic board game

    218 parts5
  • 2 layers68.9 × 23 mmRPM, the printed circuit board in 3D

    RPM

    midasgossye/RPM-counter

    Open-source DIY RPM counter using IR reflectance

    64 parts3
  • 2 layers110 × 100 mmJbc miniregler, the printed circuit board in 3D

    Jbc miniregler

    KarlZeilhofer/htl-loetregler-mini

    Einfacher Regler für JBC Lötspitzen der Serie T210, T245 und T470, Weller RT-Spitzen und TS100-Spitzen sollten auch funktionieren.

    180 parts2MIT
  • 2 layers80 × 29.5 mmMini sumo 328P, the printed circuit board in 3D

    Mini sumo 328P

    Alejojoa/MiniSumo-Gally

    Robot Mini Sumo Amateur

    43 parts1
  • 2 layers98.4 × 99.5 mmArduino usb c, the printed circuit board in 3D

    Arduino usb c

    wszeto9/2_679_PCB

    PCB Project for 2.679 which is then used in my 2.007 Competition Robot

    161 parts1
  • 4 layers62 × 60.8 mmPcbcax, the printed circuit board in 3D

    Pcbcax

    7bwiiza/Robot-creation

    Uni project of a 3D model of a 5dof robot using Solidedge and motor control using KiCAD and MATLAB

    58 parts
  • 2 layers90 × 60 mmCC Load, the printed circuit board in 3D

    CC Load

    AleksaHeler/Programmable-DC-Load

    Flexible programmable DC constant current/power load using Arduin Nano & custom PCB

    105 partsMIT