Skip to the content
2 layers100 × 100 mmRLab Keyboard, the printed circuit board in 3D

A simple project to build and learn electronics and embedded design

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
78
Nets
81
Pads
350
Tracks, vias
181, 2
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
14 Oct 2024
Updated
2 Oct 2024

Overview

RLab Keyboard is an open-source printed circuit board by emtee40, from the emtee40/project-athena repository on GitHub. It is a 2-layer board of 100 × 100 mm with 78 parts on 81 nets, routed with 181 tracks and 2 vias.

It is built around the 74LVC1G17Z, LM386 and MPR121QR2, with the LP5907MFX-3.3 and PCM5102PW among its other parts. Its parts include 27 capacitors, 21 connectors, 14 resistors, 5 ICs and 3 diodes. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

5

README

README.md

Project Athena

A simple project to build and learn electronics and embedded design

Project Athena 3D

Objectives:

  • Develop individual and shared electronic design skills
  • Learn PCB design and build techniques with Kicad and external PCB manufacturers
  • Improve surface mount and through hole soldering skills
  • Familiarise with rLab electronics tools, equipment, and knowledge
  • Make a fun device

Design Specification

Derived from the previous 555 Synth Punk build project

  • design should be Microprocessor based rather than 555
  • It should have a keyboard. This could be buttons, stylophone, touch sensor, or other. Probably single octave.
  • Cost components and board under £10
  • Improved Audio output using proper amplifier IC and board mounted speaker, possibly I2S codec
  • A couple of knobs and buttons to change sound settings
  • USB powered
  • Audio output jack
  • Mixture of surface mount and through hole components
  • LCD display integral
  • Expansion connector to add new personalised features
  • C++ or Python programming.

Design Approach

The design is built of modules which can be independently sourced, designed and prototyped before integration into a complete design.

Proposed Modules

The following modules are proposed to be in the design, being available and at reasonable cost:

Raspberry Pi Pico Processor Module

Pi Pico Image

The Raspberry Pi Pico module is based on the RP2040 microprocessor. The module includes flash memory, power supply, crystal clock and a USB interface. It is an easy way to to integrate this processor without detail PCB layout and at attractive cost. The Pi Pico Module have different variants which are pin compatible. They offer different USB Connectors(Micro-B, USB-C), Wireless and bluetooth integrated, and a higher performance version in the RP2350. Pi Pico Data sheet

The RP2040 is an ARM Cortex M0+ 32 bit processor which operates at 133MHz and includes a wide range of integrated peripherals. RP2040 Data sheet

High quality software support for the RP2040 and Pi Pico Modules is available in C/C++ (C SDK, and Arduino Pi Pico), and Python(Micropython, and CircuitPython)

Capacitive touch Music Keyboard

MPR121 Proto A number of different keyboard switch types were considered including push butttons, stylophone type stylus and capacitive touch. The later was chosen for simplicity and the capability to play chords with multiple notes simultaneously.

A few different alternatives for the capacitive touch keyboard layout and interface were tested. The keyboard was prototyped with copper tape covered in kapton tape to simulate the PCB pads and solder mask in the final PCB. The Pi Pico does support direct connection of GPIO pins to interface capacitive touch switches using the CircuitPython touchio library, However it uses a lot of GPIO pins for a 12 key keyboard. It was decided to us a specialised Capacitive touch chip with and I2C interface MPR121. This chip is very small and will present a good challenge in construction, however it is available already mounted on low cost modules for prototyping. The chip supports up to 4 different I2C addresses allowing additional octave to be added.

PWM Audio Output

The Pi Pico supports PWM output to a GPIO pin for audio tone output. The resulting output is rather noisy as described in section 3.4.1 of the RP2040 hardware interface manual. It was choseb to implement the low noise 3.3V audio supply, the buffer, and the filter circuit.

I2S Audio Codec

In addition to the PWM a I2S audio DAC is included for higher quality stereo output. The PCM5102 DAC analog part is also powered from the low noise 3.3V supply

Audio Amplifier and Loudspeaker

Audio proto

Low cost audio power amplifiers with 1W output power baaed on the LM386 are available. LM386 module

The LM386 IC can operate with few external components with a gain of 20 which is suitable for our application.LM386 Data sheet

The loudspeaker is proposed to be board mounted.30mm Loudspeaker

Audio Output to an external amplifier is provided via a 3.5mm stereo jack.

1.3 inch IPs Colour LCD Display

LCD Image

A colour LCD display was chosen for the device. Limited space allows for a 240 by 240 pixel 1.3 inch IPS display. The module is based on the ST7789 display IC and is supported by both Micropython and CircuitPython grahics libraries.

Buttons and Potentiometers.

To interact with the device and display, two potentiometers and two push buttons are included.

General Purpose Inputs and Outputs.

The board provides spare GPIO connections and power supplies on 2.54mm female headers for external experimental devices. The I2c Bus is also brought out to a connector to daisy chain octaves or add other I2C devices.

Estimated Costs

Derived from Kicad BOM. All including VAT and shipping.

  • PCB, 2 layer 100mm * 100mm JLCPCB £0.75
  • Pi Pico 2040 module with micro USB £1.75
  • 1.3in LCD Display 240 * 240 pixel £1.75
  • Integrated circuits £1.25
  • Connectors £0.75
  • Buttons, Potentiometers £0.50
  • Resistors, capacitors £0.75
Total:

PCB Files

Software

Parts

78
QtyValueFootprintReferences
12100nCapacitor_SMD:C_0603_1608MetricC3, C4, C6, C9, C10, C12, C13, C14, C15, C18, C22, C26
72u2Capacitor_SMD:C_0603_1608MetricC7, C8, C16, C17, C19, C20, C27
7Conn_01x01_PinrLab_Keyboard:White_KeyJ1, J2, J3, J4, J5, J6, J7
5Conn_01x01_PinrLab_Keyboard:Black_key_fillJ9, J10, J11, J12, J13
3100RResistor_SMD:R_0603_1608MetricR7, R8, R9
31uCapacitor_SMD:C_0603_1608MetricC1, C2, C5
3DDiode_SMD:D_SOD-323D1, D2, D3
3NFResistor_SMD:R_0603_1608MetricR1, R2, R3
21kResistor_SMD:R_0603_1608MetricR10, R11
22n2Capacitor_SMD:C_0603_1608MetricC24, C25
2470RResistor_SMD:R_0603_1608MetricR12, R13
2R_Network04Resistor_SMD:R_Array_Concave_4x0402RN1, RN2
10RResistor_SMD:R_0603_1608MetricR4
110RResistor_SMD:R_0603_1608MetricR14
1220RResistor_SMD:R_0603_1608MetricR6
1220uCapacitor_SMD:C_1206_3216MetricC23
147nCapacitor_SMD:C_0603_1608MetricC21
147uCapacitor_SMD:C_0805_2012MetricC11
174LVC1G17Package_TO_SOT_SMD:SOT-353_SC-70-5U3
175kResistor_SMD:R_0603_1608MetricR5
1AudioJack3_SwitchrLab_Keyboard:Jack_3.5mm_PJ342_HorizontalJ18
1Conn_01x04Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_HorizontalJ20
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_HorizontalJ21
1Conn_01x04Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ19
1Conn_01x05Connector_FFC-FPC:TE_0-1734839-5_1x05-1MP_P0.5mm_HorizontalJ8
1Conn_01x07rLab_Keyboard:240LCDJ14
1Conn_01x13Connector_PinHeader_2.54mm:PinHeader_1x11_P2.54mm_HorizontalJ15
1Conn_01x13Connector_PinSocket_2.54mm:PinSocket_1x11_P2.54mm_HorizontalJ16
1Conn_01x13Connector_PinSocket_2.54mm:PinSocket_1x11_P2.54mm_VerticalJ17
1LM386Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU5
1LP5907MFX-3.3Package_TO_SOT_SMD:SOT-23-5U1
1Logo_Open_Hardware_SmallSymbol:OSHW-Logo_11.4x12mm_SilkScreenSYM1
1MPR121QR2rLab_Keyboard:UQFN-20_3x3mm_P0.4mmU2
1PCM5102Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU4
1RaspberryPi_PicorLab_Keyboard:RPi_Pico_SMD_THA1
1RotaryEncoder_Switch_MPrLab_Keyboard:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW1
1SW_MEC_5GButton_Switch_THT:SW_PUSH_6mm_H5mmSW2
1SpeakerrLab_Keyboard:30mm_SpeakerLS1
1~rLab_Keyboard:Thumb_stickThumbStick1

More from emtee40/project-athena

1
  • 2 layers100 × 100 mmRLab Keyboard, the printed circuit board in 3D

    RLab Keyboard

    emtee40/project-athena

    A simple project to build and learn electronics and embedded design

    75 parts

Similar boards

  • 2 layers100 × 100 mmRLab Keyboard, the printed circuit board in 3D

    RLab Keyboard

    M0LTE/pi-transceiver

    An attempt to build a complete ham radio transceiver around a Raspberry Pi

    71 parts15
  • 2 layers92.4 × 70 mmLucaudioESP32 V2 1, the printed circuit board in 3D

    LucaudioESP32 V2 1

    lucococo/LucaudioESP32

    ESP32 based board running SqueezeliteESP32 for audio streaming

    104 parts
  • 4 layers72 × 51.1 mmEsp32s3-audio streamer, the printed circuit board in 3D

    Esp32s3-audio streamer

    wemaxon/esp32-audio-streamer

    Hardware design for a WiFi/Bluetooth audio streamer using the esp32 microcontroller and the PCM5102A DAC, intended to be used with squeezelite firmware.

    63 parts
  • 2 layersTinnitus, the printed circuit board in 3D

    Tinnitus

    aksh56511/tinnitus_masking_device

    10 parts
  • 2 layers55 × 100 mmScoutAM, the printed circuit board in 3D

    ScoutAM

    RADARC/Scout-Radio

    Si4732 and Raspberry Pi Pico Radio device for Scouts to build and use to gain badges

    92 parts6GPL-3.0
  • 4 layers74.5 × 70.3 mmNest mini v2-drop in pcb, the printed circuit board in 3D

    Nest mini v2-drop in pcb

    iMike78/nest-mini-drop-in-pcb

    Drop-in PCB replacement for the Google Nest Mini v2 with ESP32-S3, ESP32-P4 and optional ESP32-C6. Inspired by Onju Voice and Home Assistant Voice PE.

    229 parts628CERN-OHL-S-2.0
  • 2 layers232 × 134 mmType2 v2, the printed circuit board in 3D

    Type2 v2

    Alxdreee/TYPE-2

    Touch-capacitive polyphonic synthesizer powered by ESP32-S3

    18 parts68GPL-3.0
  • 2 layers191.9 × 127.7 mmEInkFrame, the printed circuit board in 3D

    EInkFrame

    seb-ma/eInkFrame

    A step by step guide to create a weather station (and more) in e-ink frame running with MagicMirror².

    24 parts26

Questions

How big is the RLab Keyboard PCB?

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

What parts does the RLab Keyboard use?

78 parts, built around the 74LVC1G17Z, LM386, MPR121QR2 and LP5907MFX-3.3. 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 RLab Keyboard KiCad files?

From the emtee40/project-athena repository on GitHub, at the commit this page was made from: the board is Kicad/RLab Keyboard/RLab Keyboard.kicad_pcb and its schematic Kicad/RLab Keyboard/KiCad-RP-Pico/Test/Test.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the RLab Keyboard design in my own project?

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