Skip to the content
PCBKitNew board
2 layers100 × 35 mmPush n turn-31, the printed circuit board in 3D

Push-n-Turn 31 is a USB MIDI controller with 3 keyboard switches (RedDragon low profile), a rotary encoder and 3/4 RGB leds (WS8212).

Size
100 × 35 mm
Copper layers
2
Thickness
1.6 mm
Parts
21
Nets
25
Pads
101
Tracks, vias
245, 17
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Feb 2025
Updated
14 May 2025

Overview

Push n turn-31 is an open-source printed circuit board by concept-code-design, from the concept-code-design/push-n-turn-midi31 repository on GitHub. It is a 2-layer board of 100 × 35 mm with 21 parts on 25 nets, routed with 245 tracks and 17 vias.

It is built around the CH552G. Its parts include 4 capacitors, 4 diodes, 4 switches, 3 resistors and 1 IC. It belongs with the 8051 (CH55x, STC, AT89) boards of this library.

Main components

1

README

README.md

Push-n-Turn 31

Push-n-Turn 31 is a USB MIDI controller with 3 keyboard switches (RedDragon low profile), a rotary encoder and 3/4 RGB leds (WS8212).

The device sports a USB type-C connector and requires no device drivers on Mac or PC.

The keys can be configured (via MIDI messages, or the configurator) to produce notes, CC codes (momentary or toggle mode). The encoder produces 0..127 on a configurable CC channel. The encoder button produces 127/0 on a CC channel of choice. Each switch has an RGB led that shows the state of the switch. The device uses a modified midi library for CH55x devices made by mi:muz

Configuring the keys

Configuration of the keys can be done by sending midi codes to the device. You can use python midiutil for this (https://github.com/sourcebox/midiutil).

start prog ./midiutil.py -d 1 -w 186 102 42

end prog ./midiutil.py -d 1 -w 186 102 43

module type ./midiutil.py -d 1 -w 186 102 44 returns: (10, 103, INSTRUMENT_TYPE);

firmware version ./midiutil.py -d 1 -w 186 102 45 returns (10, 104, FW_VERSION) 10 for version 1.0

show configuration ./midiutil.py -d 1 -w 186 102 46 returns the config of each of the 6 buttons, the rotary knob and rotary encoder

show stepsize ./midiutil.py -d 1 -w 186 102 47 returns (10, 105, encStepSize)

show MIDI channel ./midiutil.py -d 1 -w 186 102 48 returns (10, 106, MIDIChannel)

reboot in firmware update mode ./midiutil.py -d 1 -w 186 102 49

programming keys ./midiutil.py -d 1 -w 186 102 42 ./midiutil.py -d 1 -w 186 11 60 ./midiutil.py -d 1 -w 186 22 30 ./midiutil.py -d 1 -w 186 33 9 ./midiutil.py -d 1 -w 186 24 15 ./midiutil.py -d 1 -w 186 5 24 ./midiutil.py -d 1 -w 186 102 43

Links & References

License

OpenSourceLicense

Concept & Code invests time and resources providing this open source design, please support them and open-source hardware by purchasing products from Etsy or Tindie!

Designed by Ronald Leenes.

Firmware released under an GNU AGPL v3.0 license. See the LICENSE file for more information.

Hardware released under an CERN Open Hardware Licence v1.2. See the LICENSE_HARDWARE file for more information.

February 2025

Parts

21
QtyValueFootprintReferences
4100nCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4
4WS2812B-3528LED_SMD:LED_WS2812B-Mini_PLCC4_3.5x2.8mmD1, D2, D3, D4
25k1Resistor_SMD:R_0805_2012MetricR1, R2
110kResistor_SMD:R_0805_2012MetricR3
1CH552GPackage_SO:SOP-16_4.4x10.4mm_P1.27mmU1
1KiCad-Logo2_5mm_SilkScreenSymbol:KiCad-Logo2_5mm_SilkScreenKICAD
1OSHW-Logo2_7.3x6mm_SilkScreenSymbol:OSHW-Logo2_7.3x6mm_SilkScreenREFOH
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC12E-Switch_Vertical_H20mmSW4
1TestPointTestPoint:TestPoint_Pad_2.5x2.5mmTP2
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1key1Button_Switch_Keyboard:SW_RedDragon5.5m_Ali_1.00uSW1
1key2Button_Switch_Keyboard:SW_RedDragon5.5m_Ali_1.00uSW2
1key3Button_Switch_Keyboard:SW_RedDragon5.5m_Ali_1.00uSW3
1~TestPoint:TestPoint_Pad_2.5x2.5mmTP1

Questions

How big is the Push n turn-31 PCB?

It measures 100 × 35 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Push n turn-31 use?

21 parts, built around the CH552G. 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 Push n turn-31 KiCad files?

From the concept-code-design/push-n-turn-midi31 repository on GitHub, at the commit this page was made from: the board is hardware/KiCad/push-n-turn-31.kicad_pcb and its schematic hardware/KiCad/push-n-turn-31.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Push n turn-31 design in my own project?

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

Similar boards

  • 2 layers30.4 × 12.7 mmDaplink CH552P, the printed circuit board in 3D

    Daplink CH552P

    abgelehnt/Tiny-DAPLink

    小巧的使用CH552实现的DAPLink

    21 parts41GPL-3.0
  • 2 layers40.6 × 27.9 mmCH552, the printed circuit board in 3D

    CH552

    nicola-strappazzon/CH552

    Basic projects with CH552G

    23 parts37LGPL-2.1
  • 2 layers40 × 40 mmBottom, the printed circuit board in 3D

    Bottom

    Noteolvides/CubeTouch

    CubeTouch Docs

    35 parts14MIT
  • 2 layers38.6 × 15.7 mmLIPS V3.2, the printed circuit board in 3D

    LIPS V3.2

    milar111/L.I.P.S.

    OpenSource Affordable SipAndPuff device: Linear Interface for Paralysis Support

    21 parts13
  • 2 layers28.4 × 15.9 mmCH552-devkit, the printed circuit board in 3D

    CH552-devkit

    hexeguitar/CH552-devkit

    CH552 dev board with HW reboot into bootloader

    25 parts6MIT
  • 2 layers51 × 44 mmCh552g devbrd, the printed circuit board in 3D

    Ch552g devbrd

    eddyem/ch55x

    Some usefull things for working with ch55x chips

    19 parts5GPL-3.0
  • 2 layers105.9 × 83.1 mmBSidesDFW 2019, the printed circuit board in 3D

    BSidesDFW 2019

    gowenrw/BSidesDFW_2019_Badge

    This is where all the files for the BSidesDFW 2019 Badge will be stored. This includes code and art and cab and fab files. All the things.

    30 parts5MIT
  • 2 layers43.2 × 24.9 mmPip, the printed circuit board in 3D

    Pip

    jnthas/pinch

    Password storage for nerds

    37 parts5MIT