Skip to the content
2 layers41 × 35 mmLKP Core, the printed circuit board in 3D

🍌🎹 Capacitive touch slider controller for rhythm games.

Size
41 × 35 mm
Copper layers
2
Thickness
1.6 mm
Parts
34
Nets
93
Pads
217
Tracks, vias
399, 51
Pours
193
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
17 Aug 2019
Updated
9 Jul 2023

Overview

LKP Core is an open-source printed circuit board by Project-Alpaca, from the Project-Alpaca/LKP repository on GitHub. It is a 2-layer board of 41 × 35 mm with 34 parts on 93 nets, routed with 399 tracks and 51 vias.

It is built around the CY8C4246AZI-M445 and MBR0520L. Its parts include 12 capacitors, 6 connectors, 4 resistors, 2 diodes and 1 IC. It belongs with the sensors and measurement boards of this library.

Main components

2

README

README.md
lkp-logo

LKP

レンくんピアノ (Len-kun Piano)

Capacitive touch slider controller for rhythm games.

LKP

Contents

pcb/LKP-Core

Microcontroller board for use with LKP electrode boards. Supports up to 32 channel of self capacitance input. Includes a WS281x LED driver channel with protection resistor. Supports I2C or UART as communication methods.

For sample firmware for use with LKP-Core, see LKP-FW.

Pin mapping

I/O port:

#Description
1GND
2INT
3SCL/RX
4SDA/TX

WS281x LED connector:

#Description
1GND
2LED

SWD connector:

#Description
1VTARG
2GND
3RESET
4SWCLK
5SWDIO

pcb/LKP-Core-EasyAccess

IMPORTANT: WS281x LED driver will not work on this variant. See errata. This variant is only included for documentation purposes and will no longer receive updates.

A variant of LKP-Core that originally focused on improved accessibility for arcade controller DIY hobbyists with only basic (through hole) soldering skills. All parts used in this variant (once the chip shortage situations improve) are available for use with JLCPCB Assembly service, thus enables the possibility of ordering fully assembled and working boards straight from JLCPCB. Even without the assembly service working at the moment, the chip used in this variant can be purchased from LCSC in low quantity for a lot less money compare to the original chip on Digi-key, so it also acts as a budget option without sacrificing performance in significant ways.

pcb/LKP-Diva-Electrode-Tile

Electrode board for Project DIVA Future Tone slider controller. Works as a 2-tile setup. Both tiles use the same design, with right tile being a 180 degree rotated version of the left tile.

pcb/LKP-Chu-Electrode-Tile

Electrode board for Chunithm slider controller. Works the same as its LKP-Diva counterpart.

pcb/LKP-IF-QC

I2C quick connect (compatible with SparkFun Qwiic® and Adafruit STEMMA® QT) interface for LKP-Core. Goes up to 1MHz for I2C connections and up to 24MHz for UART connections. Converts between 5V logic used by LKP-Core and 3.3V logic used by Qwiic®/STEMMA® QT.

It is also possible to use it to convert UART signal for main microcontroller running between 1.65V and 3.6V. To set it up:

  1. Break out the signals on any one of the Qwiic®/STEMMA® QT port on LKP-IF-QC using a Qwiic®/STEMMA® QT breakout board.
  2. Connect the 3.3V pin to microcontroller's I/O voltage reference (must be between 1.65V and 3.6V).
  3. Connect SDA (blue wire, UART TX) to RX and SCL (yellow wire, UART RX) to TX.
  4. The other Qwiic®/STEMMA® QT port should be left unconnected.

Note that although the low side of the level shifter can take any voltage between 1.65V and 3.6V, 3.3V must be used in order to maintain compatibility with other Qwiic®/STEMMA® QT-compatible systems.

BOM

LKP-Core

  • C1, C4, C6, C10: Generic 1uF 0603 X5R ceramic capacitor. (I used CC0603KRX5R8BB105)
  • C2, C3, C5, C8, C11: Generic 100nF 0603 ceramic capacitor. (I used CL10B104KA8NNNC)
  • C7: GRM2195C1H103JA01D.
  • C9: GCM1885C1H222JA16D.
  • C12: Generic 10uF EIA-3216-18 tantalum capacitor.
  • D1: Generic SOD-123 Schottky diode (MBR0520L).
  • D2: Generic 0805 LED (yellow color).
  • FB1: Generic 0603 ferrite bead (330ohm@100MHz).
  • J1, J2: Straight female .1" header 2x9.
  • J3: JST PH 2 positions.
  • J4: Straight male .1" header 1x4 (can be angled if not using LKP-IF-*).
  • J5: Straight male .1" header 1x5 (can be angled if not using LKP-IF-*).
  • J6: Angled male .1" header 1x2.
  • R1: Generic 1kohm 5% 0603 resistor.
  • R2: Generic 470ohm 5% 0603 resistor.
  • R3, R4: Generic 560ohm 5% 0603 resistor.
  • RN*: Generic 560ohm 5% 0402x4 convex resistor array (I used 4D02WGJ0561TCE).
  • U1: CY8C4246AZI-M445 (or CY8C4247AZI-M485, Needs minor firmware modifications).

LKP-Diva-Electrode-Tile and LKP-Chu-Electrode-Tile

  • J1: Straight male .1" SMD header 2x9 (without bumps at the bottom).
    • This can be hard to find. For small scale DIY manufacturing try searching "pin header double smd" on aliexpress.

LKP-IF-QC

  • C1, C2: Generic 100nF 0603 ceramic capacitor. (I used CL10B104KA8NNNC).
  • D1: Generic SOD-123 Schottky diode (MBR0520L).
  • J1, J2: JST SH SM04B.
  • J3: Straight female (10.5mm stacking or regular) .1" header 1x5.
  • J4: Straight female (10.5mm stacking or regular) .1" header 1x4.
  • J5: Straight or angled male .1" header header 1x2 (Optional if using stacking headers for J3-4).
  • U1: TCA9406DCTR.

Powering

By default LKP expects 5V power. Using lower supply voltage down to 1.8V is possible by modifying the power specs in LKP-FW and adding a level shifter module to the WS281x driver pin (labeled as LED on board). Reference voltage for I/O can be approximated by tapping into the VTARG pin on the SWD port.

Known issues / Erratas

  • (LKP-Core v1.0) The reverse voltage protection diode (D1) does not protect C12. Proceed with caution when connecting the power to make sure the polarity is correct.
  • (LKP-Core v1.1) When used with LKP-Assy, connector J4, J5 and J6 may collide with the bottom of LKP-Assy. A workaround would be soldering all the specified connectors on the back side of the PCB instead. Also, when using LKP-IF-Qwiic, J4 and J5 must be soldered on the back side.
  • (LKP-Core-EasyAccess v1.2-E) Due to an oversight when choosing chips for this board, it lacks the necessary hardware features for the WS281x driver pin to function (i.e. UDB). A software workaround might be possible (with e.g. SPI DMA like FastLED Arduino library) but it might not be cost effective to develop it further.

Special thanks

  • @pol8139's controller build guide for pointing me to PSoC as a potential solution and demonstrating the possibility of using a single PSoC 4 to drive the entire slider.
  • @azhao12345 for providing the idea of modular and tiled electrode design.
  • ryun and @somewhatlurker for their reverse-engineering effort on 837-15275/15330 protocol and firmware, which form the basis of LKP-Serial and sega-slider.md.
  • MarkH_61 for StripLightLib, which saved me quite a bit of headache of figuring out how to use UDB/datapath to drive huge array of NeoPixels without starving the CPU.

Parts

34
QtyValueFootprintReferences
8560Resistor_SMD:R_Array_Convex_4x0402RN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8
51uFCapacitor_SMD:C_0603_1608MetricC2, C3, C5, C8, C11
40.1uFCapacitor_SMD:C_0603_1608MetricC1, C4, C6, C10
2560Resistor_SMD:R_0603_1608MetricR3, R4
110nF C0GCapacitor_SMD:C_0805_2012MetricC7
110uFCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-AC12
11kResistor_SMD:R_0603_1608MetricR1
12.2nF C0GCapacitor_SMD:C_0603_1608MetricC9
1330Ohm@100MHzInductor_SMD:L_0603_1608MetricFB1
1470Resistor_SMD:R_0603_1608MetricR2
1CY8C4246AZI-M445Package_QFP:TQFP-64_10x10mm_P0.5mmU1
1IOConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4
1Intercon LConnector_PinSocket_2.54mm:PinSocket_2x09_P2.54mm_VerticalJ1
1Intercon RConnector_PinSocket_2.54mm:PinSocket_2x09_P2.54mm_VerticalJ2
1MBR0520LDiode_SMD:D_SOD-123D1
1Power JST PHConnector_JST:JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_HorizontalJ3
1SWDConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ5
1WS281xConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1YellowLED_SMD:LED_0805_2012MetricD2

More from Project-Alpaca/LKP

3
  • 2 layers216 × 90 mmLKP Chu Electrode Tile, the printed circuit board in 3D

    LKP Chu Electrode Tile

    Project-Alpaca/LKP

    🍌🎹 Capacitive touch slider controller for rhythm games.

    20 parts21
  • 2 layers258 × 40 mmLKP Diva Electrode Tile, the printed circuit board in 3D

    LKP Diva Electrode Tile

    Project-Alpaca/LKP

    🍌🎹 Capacitive touch slider controller for rhythm games.

    19 parts21
  • 2 layers41 × 36 mmLKP IF QC, the printed circuit board in 3D

    LKP IF QC

    Project-Alpaca/LKP

    🍌🎹 Capacitive touch slider controller for rhythm games.

    9 parts21

Similar boards

  • 4 layers80 × 49 mmPowermeter, the printed circuit board in 3D

    Powermeter

    andypfau/rf_powermeter

    RF powermeter with USB-interface

    162 parts15MIT
  • 2 layers64 × 100 mmTWIST tester, the printed circuit board in 3D

    TWIST tester

    batterylabunipi/TWIST

    TWIST is an open framework for Li-ion cell characterization based on Python and Raspberry Pi

    77 parts5
  • 2 layers85 × 54.5 mmMaithoga lcd board 480x320 R61529, the printed circuit board in 3D

    Maithoga lcd board 480x320 R61529

    voloviq/maithoga_lcd_board_480x320_R61529

    PCB Board for Maithoga display with resolution 480x320 based on chip R61529 compatible with ILI9481.

    22 parts3
  • 2 layers43.6 × 43.6 mmEsp32 dron, the printed circuit board in 3D

    Esp32 dron

    Sagaz0501/esp32-drone

    PCB ESP32 quadcopter: KiCad hardware + Madgwick IMU firmware + WiFi web UI

    75 parts1MIT
  • 2 layers58.4 × 83.2 mmMiniFeedMaster, the printed circuit board in 3D

    MiniFeedMaster

    SG-O/MiniFeedMaster

    Mainboard for automated SMT Feeder system

    141 parts1CC-BY-4.0
  • 4 layers90.8 × 47 mmPickit, the printed circuit board in 3D

    Pickit

    ananevego/ProjectFreeCad

    Конвертер библиотечных footprint-файлов KiCad .kicadmod в самостоятельные библиотеки FreePCB2 .fpl. Написан на Python 3.10+, внешние зависимости не нужны.

    122 parts
  • 2 layers124 × 63 mmSudTempControl, the printed circuit board in 3D

    SudTempControl

    radioburst/SudTempControl_PCB

    PCB for SudControl and TempControl2

    64 partsGPL-3.0

Questions

How big is the LKP Core PCB?

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

What parts does the LKP Core use?

34 parts, built around the CY8C4246AZI-M445 and MBR0520L. 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 LKP Core KiCad files?

From the Project-Alpaca/LKP repository on GitHub, at the commit this page was made from: the board is pcb/LKP-Core/LKP-Core.kicad_pcb and its schematic pcb/LKP-Chu-Electrode-Tile/LKP-Chu-Electrode-Tile.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the LKP Core design in my own project?

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