Skip to the content
2 layers247.1 × 121.4 mmChoctopus44, the printed circuit board in 3D

Choctopus44 is a custom low profile keyboard

Size
247.1 × 121.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
113
Nets
71
Pads
773
Tracks, vias
1,144, 103
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
21 Jul 2021
Updated
2 Oct 2023

Overview

Choctopus44 is an open-source printed circuit board by SlightHeadache, from the SlightHeadache/choctopus44 repository on GitHub. It is a 2-layer board of 247.1 × 121.4 mm with 113 parts on 71 nets, routed with 1,144 tracks and 103 vias.

It is built around the 1N4148W. Its parts include 45 diodes, 45 switches, 4 resistors, 2 capacitors and 1 IC. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) and nRF52 and nRF5x boards of this library.

Main components

1

README

README.md

Choctopus44

Current version: 2.0

Choctopus44 is low profile, Choc spaced, optionally hotswappaple 44-key column staggered keyboard with a rotary encoder. It is loosely based on gtips's REVIUNG project, specifically REVIUNG41, but has deviated from it significantly during its development.

choctopus44

Known issues with v2

While all the main issues of the original Choctopus44 prototypes were addressed during the development of v2, some new minor arose during it's development.

  • Switch plate does not accommodate all encoders properly. Certain non-Alps THD encoders, and SMD encoders may require filing the plate's encoder cut out to be a little bigger. See encoder documentation.
  • Flaky Bluetooth behaviour in certain edge cases while using Nice!Nano, seems like certain devices don't like Nice!Nano's/ZMK's Bluetooth handling
  • During fabrication with tented vias the battery circuit vias can easily remain exposed, at least with JLCPCB. By my understanding this is caused by the solder mask liquid seeping into the via's hole. This doesn't seem to affect other vias as only the battery vias are slightly larger than usual. This should be avoidable by using plugged vias instead, but as that increases the cost of manufacturing I'm going to create a hotfix version in the future that shrinks those vias to the standard size to alleviate the issue.

TODO

  • Add documentation for v2's plate and bottom foams

Parts list

Main components

PartCountOptionalNotes
PCB1
Diode [1N4148 SMD or THD]45
Kailh Choc sockets44x
Tactile switch TL3342 or compatible1Stem height of 1.54mm used in tested builds
Slide switch PCM12 or compatible1xOnly useful if a wireless microcontroller is used in conjunction with a battery
EC11 encoder or compatible1xSee detailed encoder documentation; Can also be replaced with a Choc or an MX switch
ProMicro/Nice!Nano or compatible1
MCU socket (or header rows)1 (2)x
Kailh Choc key switch44 (45)
3.7 Volt battery1xOnly useful if a wireless microcontroller is used
100 nF capacitors (axial or 1206 SMD)2xUsed in the optional encoder filter circuit
10 kOhm resistors (axial or 1206 SMD)4xNot adviced! Can be used in the encoder filter circuit, but can cause issues at least with Nice!Nanos

Case hardware

PartCountOptionalNotes
Top plate [PCB]1
Bottom plate [PCB]1
M2 stand off 5mm9
M2 screw 3mm15 (18)18 needed if MCU cover is not used
Rubber bump ons~11Depending on your bump ons you might need to use more, or get away with using fewer

Example extra case hardware if using MCU cover

Note: The length of the required MCU cover stand-offs is highly dependant on the used battery and its orientation (assuming one is used at all), and the used MCU socket. With the listed screws and stand offs, a 5mm thick battery can fit between the MCU and the MCU cover without much issue as long as the the MCU socket is slim enough.

PartCountOptionalNotes
M2 stand off 10mm3
M2 screw 10mm3Used for the bottom plate stand offs; 3mm screws used on the MCU cover

Misc hardware

PartCountOptionalNotes
Choc spacing compatible keycaps (e.g. MBK)44 (45)

Firmware

Please note! Should you utilize a pre-existing QMK/Vial/ZMK set up, you may need to do additional steps not defined here before you can succesfully build the firmware. Whether or not that's required is highly dependant on the version and the state of your pre-existing set up!

Pre-built binaries TBA

  • QMK: https://github.com/SlightHeadache/qmk_firmware : branch choctopus_project
    • If you want to utilize your existing QMK set up, navigate to it and run the following bash command to fetch and switch to the WIP branch. If you are using git via PowerShell or Windows CMD, remember to switch the &&s to semicolons. Remember to switch to your preferred local branch if you wish to meddle with other keyboards.
      sh
      git remote add choctopus_project git@github.com:SlightHeadache/qmk_firmware.git && git fetch choctopus_project && git checkout --track -b choctopus_project choctopus_project/choctopus_project
  • Vial: https://github.com/SlightHeadache/vial-qmk : branch choctopus44-vial
    • If you want to utilize your existing Vial set up, navigate to it and run the following bash command to fetch and switch to the WIP branch. If you are using git via PowerShell or Windows CMD, remember to switch the &&s to semicolons. Remember to switch to your preferred local branch if you wish to meddle with other keyboards.
      sh
      git remote add choctopus44-vial git@github.com:SlightHeadache/vial-qmk.git && git fetch choctopus44-vial && git checkout --track -b choctopus44-vial choctopus44-vial/choctopus44-vial
  • ZMK: https://github.com/SlightHeadache/zmk : branch choctopus44
    • For an easy online build using GitHub actions, fork https://github.com/SlightHeadache/zmk-config and enable Actions from Settings -> Actions -> Allow all actions. Then clone your fork. The keymap file can be found from path config/boards/shields/choctopus44/choctopus44.keymap in the cloned repo. The firmware should now build automagically when you push your keymap changes to GitHub. The built firmware can be found from under the GitHub Actions run's summary (e.g. https://github.com/SlightHeadache/zmk-config/actions/runs/6002979887), not under either of the build steps.
    • If you want to utilize your existing ZMK set up, navigate to it and run the following bash command to fetch and switch to the WIP branch. If you are using git via PowerShell or Windows CMD, remember to switch the &&s to semicolons. Remember to switch to your preferred local branch if you wish to meddle with other keyboards.
      sh
      git remote add choctopus44 git@github.com:SlightHeadache/zmk.git && git fetch choctopus44 && git checkout --track -b choctopus44 choctopus44/choctopus44

Build guide

See build guide.

Parts

113
QtyValueFootprintReferences
451N4148WKeebio-Parts:Diode-Hybrid-BackD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +29
44SW_PUSHkeyswitches:Kailh_socket_PG1350_optionalSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +28
5H6_reviung-kbd:HOLEH6, H6, H6, H6, H6
4Rcustom-electronics:1206_hybridR1, R2, R3, R4
2Ccustom-electronics:1206_hybridC1, C2
2H8_reviung-kbd:HOLEH8, H8
2SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP1, JP2
1Battery_CellConnector_PinHeader_2.00mm:PinHeader_1x02_P2.00mm_VerticalBT1
1H1_reviung-kbd:HOLEH1
1H11_reviung-kbd:HOLEH11
1LOGOkeyboard stuff:routa-logo-new-4-11mmG***
1LOGOkeyboard stuff:lonkerot-6-155mmG***
1ProMicro/Nice!NanoKeebio-Parts:ArduinoProMicroU1
1Rotary_Encoder_Switchcustom-encoders:EC11_THD_SMD_Choc_MXSW45
1SW_DPSTButton_Switch_SMD:SW_SPDT_PCM12SW_PWR1
1SW_PUSHButton_Switch_SMD:SW_SPST_TL3342RESET1

More from SlightHeadache/choctopus44

1
  • 2 layers244.2 × 112 mmChoctopus44, the printed circuit board in 3D

    Choctopus44

    SlightHeadache/choctopus44

    Choctopus44 is a custom low profile keyboard

    110 parts99

Similar boards

  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 2 layers208.8 × 396.9 mmFerris, the printed circuit board in 3D

    Ferris

    pierrechevalier83/ferris

    A low profile split keyboard designed to satisfy one single use case elegantly

    145 parts1.3k
  • 2 layers285.5 × 95 mmReviung46 ver1 1, the printed circuit board in 3D

    Reviung46 ver1 1

    gtips/reviung

    The REVIUNG41 is 41-key column staggered keyboard.

    119 parts517MIT
  • 4 layers95.6 × 73.6 mmMathpad, the printed circuit board in 3D

    Mathpad

    Summa-Cogni/Mathpad

    A mathematical keypad for students and professionals

    93 parts243
  • 2 layers141.5 × 83 mmRolio, the printed circuit board in 3D

    Rolio

    MickiusMousius/Rolio46Keyboard

    A split wireless keyboard based on the Corne and Sofle

    110 parts236MIT
  • 6 layers160 × 100 mmAdrmu6layer, the printed circuit board in 3D

    Adrmu6layer

    marcoreps/ADRmu

    ADR1000 10V standard

    240 parts149
  • 2 layers99.1 × 90.7 mmBgkeeb, the printed circuit board in 3D

    Bgkeeb

    sadekbaroudi/bgkeeb

    This is a reversible 100mm x 100mm pcb with support for mx or choc switches (no hotswap), per key led, rotary encoders, and exposes the SDA/SCL/GND/VCC lines in the form of the pimoroni trackball pins (meaning you can…

    108 parts108
  • 2 layers229.8 × 102.6 mmBw2, the printed circuit board in 3D

    Bw2

    hazels-garage/bad-wings

    Bad Wings

    107 parts107CC-BY-SA-4.0

Questions

How big is the Choctopus44 PCB?

It measures 247.1 × 121.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Choctopus44 use?

113 parts, built around the 1N4148W. 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 Choctopus44 KiCad files?

From the SlightHeadache/choctopus44 repository on GitHub, at the commit this page was made from: the board is kicad/ver2.0/pcb/choctopus44.kicad_pcb and its schematic kicad/old/ver1.0/pcb/choctopus44.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Choctopus44 design in my own project?

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