How to make a numeric keyboard using XIAO RP2040
Source: InternetPublisher:消失的歌 Keywords: pcb keyboard Updated: 2024/06/07
This keyboard is more of an art project to me. And a chance to learn how things work. What is the underlying code and history! Arouse curiosity.
background
The medieval number system was invented by the Cistercians in Europe in the 13th century. The Cistercians were a Catholic religious order of monks and nuns. They used a secret number notation among each other. No one really knew about it until about 20 years ago, when an English Orientalist and historian, David A. King, wrote a book about it. It was used by various different groups for all kinds of medieval ciphers and secret number systems. It was a system that could only write every number from 0 to 9999. It couldn't write any other numbers, but was easily used for dates and page numbers in books.
Hardware Components
SeeedXIAO-RP2040
Custom PCB. Made by SeeedFusion
Keyboard switches (20 pcs)
USB-C to USB-A cable
Homemade keyboard case (birch plywood, screws)
Homemade keycaps (solid oak and birch plywood)
XIAORP2040 Features:
Small size 20x17.5 mm
USB-C
11 pins + power pin
reset button
Power button
RGB LED (user programmable)
Power LED (2 colors)
User LEDs
264KB SRAM and 2MB Flash
Dual-core ARM Cortex M0+ processor, 133MHz
3.3V!
Custom PCB
My design contains four columns and five rows of switches.
This is the first time I ordered a yellow PCB. I think it will be perfect for my wooden mechanical keycaps and housing.
The PCBs are made by SeeedFusion. I ordered five and had two assembled. I think they look nice. The pads are gold plated. Only one of the PCBs has some kind of color dripping off.
software
First, I planned to use PlatformIO with the Arduino framework, but PlatformIO doesn't support this board (XIAO-RP2040) yet. So I used the ArduinoIDE.
There are several programming options:
CircuitPython/MicroPython和Thonny
ArduinoIDE (install XIAORP2040 board)
Raspberry Pi Pico C/C++ SDK
PlatformIO with Arduino framework (not supported yet!)
design concept
The main components are the keycaps, and everything else is as minimal as possible:
- Data transmission modulator/demodulator composed of SST8803 and UM3758-108A
- Interface circuit composed of 8255A and single chip microcomputer
- Simple USB interface data acquisition system
- Interface circuit between CAN bus controller and single chip microcomputer
- How to use ESP8266 to make a mini fully functional clock
- How to make a BLE-enabled smart light bulb using STM32
- How to control fans using LM35 and ATTiny13
- Circuit diagram: 8051
- MAX232 connection method
- Interface circuit between digital measuring tool and 51 microcontroller
- Do you know the factors that affect the cost of PCB pattern making?
- PCB circuit board via hole plug hole overview
- Crystal oscillator PCB design considerations
- What is PCB dry film?
- Some summaries of PCB wiring
- Basic principles of thermal design in PCB layout
- Keyboard-display interface circuit
- Development system using ASCII code keyboard
- Priority encoder for keyboard encoding and decoding display
- ASCII keyboard encoding circuit