
Indicator driver
virtualagc/agc_hardware
Schematics and board layouts for an Apollo Guidance Computer replica

A Gura themed Custom Keyboard
A60 is an open-source printed circuit board by setsooner, from the setsooner/same60xt repository on GitHub. It is a 2-layer board of 332.5 × 94.4 mm with 176 parts on 114 nets, routed with 5,692 tracks and 49 vias.
Its parts include 72 diodes, 10 capacitors, 7 switches, 2 ICs and 1 resistor. It belongs with the keyboards and input boards and the STM32 boards of this library.
A Gura-themed custom 60% XT keyboard.
The same60xt is a custom 60% XT mechanical keyboard designed themed after my favourite shark-girl idol. The project was originally developed and manufactured as a community group buy in 2024, with all production units manufactured and delivered successfully.
This repository contains the design files used for that production run, including the PCB, case, and firmware source files.

The files in this repository are the same designs used during the 2025 production run. They have been manufactured and assembled successfully.
However, while these files have been tested, manufacturing anything from this repository is done entirely at your own risk.
No warranty is provided regarding functionality, compatibility, manufacturability, or fitness for any particular purpose.
Commercial use of these files, or derivative works based on them, is not permitted under the CC BY-NC 4.0 license.
If you have substantially modified the design and wish to sell a derivative commercially, you may contact me to request a separate commercial license. I will ask for no cut of the revenue or profit (if any), only that I get to verify the design has met my standards for being sufficiently transformative.
Like any project, this board reflects the knowledge and experience I had while designing it.
If I were designing the keyboard today, there are a number of things I would approach differently, mainly decoupling myself from the TGR inspirations on the top mount, and switching to an implementation more akin to the 2.0Add/Spyder.
Unless otherwise stated, the contents of this repository are licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).
You are free to study, modify, and manufacture the project for personal, non-commercial use, provided appropriate attribution is given. Commercial use requires prior permission.
See the LICENSE file for the full license text.
This project would not have been possible without the contributions of many of in the keyboard community and outside it.
Special thanks to:
| Qty | Value | Footprint | References |
|---|---|---|---|
| 72 | D | Diode_SMD:D_SOD-123 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +56 |
| 8 | , , , , , , , | ||
| 5 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C5, C6, C7, C8 |
| 3 | 1u | Capacitor_SMD:C_0402_1005Metric | C2, C3, C10 |
| 2 | 2.25 | PCM_marbastlib-mx:STAB_MX_2.25u | S2, S5 |
| 2 | F1 | PCM_marbastlib-mx:SW_MX_1u | MX1, MX18 |
| 2 | F2 | PCM_marbastlib-mx:SW_MX_1u | MX19, MX34 |
| 2 | F3 | PCM_marbastlib-mx:SW_MX_1u | MX35, MX49 |
| 2 | F4 | PCM_marbastlib-mx:SW_MX_1u | MX50, MX65 |
| 2 | F5 | PCM_marbastlib-mx:SW_MX_1u | MX69, MX74 |
| 2 | alt | PCM_marbastlib-mx:SW_MX_1u | MX67, MX71 |
| 2 | ctrl | PCM_marbastlib-mx:SW_MX_1.5u | MX66, MX70 |
| 2 | meta | PCM_marbastlib-mx:SW_MX_1.5u | MX68, MX72 |
| 1 | ' | PCM_marbastlib-mx:SW_MX_1u | MX47 |
| 1 | , | PCM_marbastlib-mx:SW_MX_1u | MX59 |
| 1 | - | PCM_marbastlib-mx:SW_MX_1u | MX13 |
| 1 | . | PCM_marbastlib-mx:SW_MX_1u | MX60 |
| 1 | / | PCM_marbastlib-mx:SW_MX_1u | MX61 |
| 1 | 0 | PCM_marbastlib-mx:SW_MX_1u | MX12 |
| 1 | 1 | PCM_marbastlib-mx:SW_MX_1u | MX3 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 10n | Capacitor_SMD:C_0402_1005Metric | C9 |
| 1 | 2 | PCM_marbastlib-mx:SW_MX_1u | MX4 |
| 1 | 2.75 | PCM_marbastlib-mx:STAB_MX_2.75u | S3 |
| 1 | 2u | PCM_marbastlib-mx:STAB_MX_2u | S1 |
| 1 | 3 | PCM_marbastlib-mx:SW_MX_1u | MX5 |
| 1 | 4 | PCM_marbastlib-mx:SW_MX_1u | MX6 |
| 1 | 4.7u | Capacitor_SMD:C_0402_1005Metric | C4 |
| 1 | 5 | PCM_marbastlib-mx:SW_MX_1u | MX7 |
| 1 | 6 | PCM_marbastlib-mx:SW_MX_1u | MX8 |
| 1 | 7 | PCM_marbastlib-mx:SW_MX_1u | MX9 |
| 1 | 7u | PCM_marbastlib-mx:STAB_MX_7u | S4 |
| 1 | 7u | PCM_marbastlib-mx:SW_MX_1u | MX73 |
| 1 | 8 | PCM_marbastlib-mx:SW_MX_1u | MX10 |
| 1 | 9 | PCM_marbastlib-mx:SW_MX_1u | MX11 |
| 1 | ; | PCM_marbastlib-mx:SW_MX_1u | MX46 |
| 1 | = | PCM_marbastlib-mx:SW_MX_1u | MX14 |
| 1 | BOOT | Button_Switch_SMD:SW_SPST_TL3342 | SW2 |
| 1 | Big Bksp | PCM_marbastlib-mx:SW_MX_1u | MX16 |
| 1 | Bksp | PCM_marbastlib-mx:SW_MX_1u | MX15 |
| 1 | Del | PCM_marbastlib-mx:SW_MX_1u | MX17 |
| 1 | Enter | PCM_marbastlib-mx:SW_MX_1u | MX48 |
| 1 | Esc | PCM_marbastlib-mx:SW_MX_1u | MX2 |
| 1 | JST SH 4p | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J1 |
| 1 | RST | Button_Switch_SMD:SW_SPST_TL3342 | SW1 |
| 1 | STM32F072CBTx | Package_QFP:LQFP-48_7x7mm_P0.5mm | U1 |
| 1 | Shift | PCM_marbastlib-mx:SW_MX_1u | MX51 |
| 1 | Tab | PCM_marbastlib-mx:SW_MX_1.5u | MX20 |
| 1 | XC6206PxxxMR | Package_TO_SOT_SMD:SOT-23-3 | U2 |
| 1 | [ | PCM_marbastlib-mx:SW_MX_1u | MX31 |
| 1 | \ | PCM_marbastlib-mx:SW_MX_1.5u | MX33 |
| 1 | ] | PCM_marbastlib-mx:SW_MX_1u | MX32 |
| 1 | a | PCM_marbastlib-mx:SW_MX_1u | MX37 |
| 1 | b | PCM_marbastlib-mx:SW_MX_1u | MX56 |
| 1 | c | PCM_marbastlib-mx:SW_MX_1u | MX54 |
| 1 | caps | PCM_marbastlib-mx:SW_MX_1.75u_STP_1.25 | MX36 |
| 1 | caps 2 | PCM_marbastlib-mx:SW_MX_1.75u | MX75 |
| 1 | d | PCM_marbastlib-mx:SW_MX_1u | MX39 |
| 1 | e | PCM_marbastlib-mx:SW_MX_1u | MX23 |
| 1 | f | PCM_marbastlib-mx:SW_MX_1u | MX40 |
| 1 | g | PCM_marbastlib-mx:SW_MX_1u | MX41 |
| 1 | h | PCM_marbastlib-mx:SW_MX_1u | MX42 |
| 1 | i | PCM_marbastlib-mx:SW_MX_1u | MX28 |
| 1 | j | PCM_marbastlib-mx:SW_MX_1u | MX43 |
| 1 | k | PCM_marbastlib-mx:SW_MX_1u | MX44 |
| 1 | l | PCM_marbastlib-mx:SW_MX_1u | MX45 |
| 1 | m | PCM_marbastlib-mx:SW_MX_1u | MX58 |
| 1 | n | PCM_marbastlib-mx:SW_MX_1u | MX57 |
| 1 | o | PCM_marbastlib-mx:SW_MX_1u | MX29 |
| 1 | p | PCM_marbastlib-mx:SW_MX_1u | MX30 |
| 1 | q | PCM_marbastlib-mx:SW_MX_1u | MX21 |
| 1 | r | PCM_marbastlib-mx:SW_MX_1u | MX24 |
| 1 | regular shift | PCM_marbastlib-mx:SW_MX_1u | MX63 |
| 1 | s | PCM_marbastlib-mx:SW_MX_1u | MX38 |
| 1 | split shift 1.75u | PCM_marbastlib-mx:SW_MX_1.75u | MX64 |
| 1 | split shift 1u | PCM_marbastlib-mx:SW_MX_1u | MX62 |
| 1 | t4 | PCM_marbastlib-mx:SW_MX_1u | MX25 |
| 1 | u | PCM_marbastlib-mx:SW_MX_1u | MX27 |
| 1 | v | PCM_marbastlib-mx:SW_MX_1u | MX55 |
| 1 | w | PCM_marbastlib-mx:SW_MX_1u | MX22 |
The 173 most common of 176 parts.
It measures 332.5 × 94.4 mm and has 2 copper layers, 1.6 mm thick.
176 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.
From the setsooner/same60xt repository on GitHub, at the commit this page was made from: the board is pcb files/a60.kicad_pcb and its schematic pcb files/a60.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask setsooner before reusing the design.

virtualagc/agc_hardware
Schematics and board layouts for an Apollo Guidance Computer replica


DreaM117er/Prime52
a split keyboard equipped with joy-con joystick, rotray encoder ec-11 and mouse wheel.

sandman21vs/SandKrux
Placa de desenvolvimento baseada no chip K210, com entradas para touch, câmera e LCD grande, criada especificamente para rodar o firmware Krux.

Acmex2564/Z31-DigiDash
Reverse Engineering of the 300zx (Z31) Digital Cluster & Design of replacement PCBs


OpenA3XX/opena3xx-panel-design
OpenA3XX: Panels, 3D Printed Components & Reference Archive

DAlexis/caustic-lasertag-system
Caustic project is a full-featured indoor and outdoor lasertag system