Stampy Usage Guide
The Stampy is a controller board meant to assist with the construction of a handwired keyboard. Instead of using some other daughterboard like the Pro Micro, Elite-C, etc., Stampy gets soldered directly to 3 switches, meaning that no extra space below the controller is needed.
Features
RP2040 Microcontroller
Compatible with both Cherry MX style switches.
26 I/O pins available for your rows and columns, or other IO functions such as LEDs and RGB strips
3 pins are preset for columns, and 1 pin is preset for a row
Can cover well over 100 switches
USB Type-C connector
QMK-compatible
Versions
Rev. 1 Prototype #1
Black PCB
16Mbit (2MB) of flash memory
No VBUS detection circuit
Has access to GPIO9 (production version loses this pin due to it being used for VBUS detection)
Lack breakout pin for RST (Reset)
Rev. 1 Prototype #2
Purple PCB marked with
X3
on top-side of PCB without Elephant logo8Mbit (1MB) of flash memory
Has VBUS detection pin on GPIO9
3.3V breakout pad is not connected to anything
Rev. 1 Production
Purple PCB marked with
X3
on top-side of PCB with Elephant logo16Mbit (2MB) of flash memory
Has VBUS detection pin on GPIO9
Pinouts and Assignments
Stampy has the following GPIO pins available: 0-8, 10, 11, 14-28.
4 of the pins are connected to the 3 switch locations in the following way:
Row 0 - GPIO14 (All 3 switches are connected to Row 0)
Column 0 - GPIO11 (Left switch)
Column 1 - GPIO10 (Center switch)
Column 2 - GPIO15 (Right switch)
The reset button is connected to RST and 3.3V (not GND)
GPIO9 is used for VBUS detection, so if you are using QMK, make sure you add the following line to your keyboard's config.h
:
The rest of the pins (0-8, 16-28) can be used in whatever manner you'd like, such as additional rows/columns or devices like OLED screens and pointing devices.
Flash Mode
To enter flash mode:
Short the two pins
RST
and3.3V
or hold reset button for at least one second before release.Alternatively, if QMK has been loaded, double tap the reset button.
The soft reset
QK_BOOT
in QMK works as usual.
Audio
In QMK, RP2040 requires extra configuration for audio:
In the HAL configuration
halconf.h
, enable the use of PWM:#define HAL_USE_PWM TRUE
.In the MCU configuration
mcuconf.h
, enable the use of corresponding PWM peripherial#define RP_PWM_USE_PWM<peripheral_number> TRUE
.In the firmware configuration
config.h
enableAUDIO_PIN
,AUDIO_PWM_DRIVER
, andAUDIO_PWM_CHANNEL
accordingly.
Do consult the RP2040 datasheet to enable the correct peripheral and channel for the chosen pin.
For example, if the pin GPIO7 (which uses PWM3 B
) is chosen to be used to connect a piezoeletric buzzer, then these are the configurations:
The Adafruit's Macropad is an example of working audio for RP2040.
Switches
Due to the tight spacing of components, if you are using 5-pin switches, you will need to clip both of the plastic pins for the Center switch and the left plastic pin for the Right switch.
Last updated