Piantor Keyboard
Last updated
Last updated
The Piantor Keyboard is a 42-key or 36-key wired, diodeless, non-flippable, low profile choc v1 (hybrid hotswap and non-hotswap/soldered-in), aggressive column staggered, programmable ergonomic mechanical split keyboard powered by Pi Pico or other compatible RP2040 boards. It is based on the Cantor Keyboard. The name "Piantor" is the portmanteau of "Pico" and "Cantor".
The development of this project is sponsored by PCBWay (affiliate link).
GitHub Repo: https://github.com/beekeeb/piantor
PCBWay Project Left Side, Right Side
Vial Firmware Github Repo https://github.com/beekeeb/vial-qmk-piantor
The Vial software can be downloaded at https://get.vial.today/
You probably do not need this. But here's the uf2 file for clearing the flash for Raspberry Pi Pico.
A low-cost, easy-to-source, powerful microcontroller with dual Arm Cortex-M0+ @ 133MHz, 264kB on-chip SRAM and 2MB (up to 16MB, depending on the breakout board) off-chip external flash memory. You can enable a lot of features and layers. Never worry about the firmware size limit.
Tested boards include Raspberry Pi Pico and WeAct RP2040. Other boards such as WaveShare RP2040-Plus, EnvOpenPico, Pimoroni Pico LiPo, should work, but they are not yet tested. YD-RP2040 is not recommended because it isn't possible to add an external VBUS_SENSE circuit easily.
Although the WeAct RP2040 (as of Nov 3, 2022) is not pin-to-pin compatible with the original Raspberry Pi Pico, the pins used by Piantor are chosen carefully. So, both breakout boards can be used.
For Raspberry Pi Pico, you can solder it using castellated holes with minimal height. But it uses a micro USB connector.
For WeAct RP2040, you need to use pin headers or sockets, with an increased height. It uses a USB Type-C connector.
For Raspberry Pi Pico, there is a VBUS_SENSE circuit connected to GP24.
For WeAct RP2040, there isn't a built in VBUS_SENSE circuit.
There is an optional VBUS_SENSE circuilt on Piantor, connecting to the WeAct RP2040 GP29. GP24 isn't used because the GP24 is located at the 3V3(OUT) of the Raspberry Pi Pico.
When USB_VBUS_PIN is not defined, SPLIT_USB_DETECT is the default for ChibiOS-based boards. (Thanks to @sigprof on Discord for clarifying this).
Both Raspberry Pi Pico and WeAct RP2040 can be used with the default mode with SPLIT_USB_DETECT. But, there are downsides when using SPLIT_USB_DETECT.
To disable SPLIT_USB_DETECT, for Raspberry Pi Pico we can use the built in circuit by adding `#define USB_VBUS_PIN GP24` at the QMK config.h. The resistors on Piantor are not required to be soldered.
For WeAct RP2040, we can use the external circuit by adding the two resistors, and add `#define USB_VBUS_PIN GP29` at the QMK config.h.
The layout is based on the Cantor Keyboard. It features ergonomic strong column staggering for short pinkies.
For reversible/flippable, it costs lower to order a pair of PCBs. But, it's easy to use the incorrect orientation or holes. On the other hand, Piantor uses the standard way. There are fewer ways to make mistakes in the non-flippable design. The solder pads for choc hotswap sockets are also bigger than that in the flippable boards. Thus, it's more suitable for beginners or first time keyboard builders.
Diodes are one of the common challenges for beginners, because they are small and directional. Piantor uses direct pins, and does not require diodes. When there are no diodes, the keyboard is easier to build and is less likely to break.
When you are unsure which switches to use, hotswap sockets are great. On the other hand, soldered-in switches are less wobbly. You can build the hotswap version, and change it to a soldered-in version. The board supports both hotswap sockets, and soldered-in switches.
Piantor supports both 42-key to 36-key layout. You can easily convert the PCB from a 42-key to 36-key layout. The pinky column can be removed without specialized tools. You will need a new case though.
Don’t connect or disconnect the TRRS cable when the keyboard is powered. Always disconnect the USB cable first.
When you connect the controller to the computer, a USB mass storage drive should appear. It is in the UF2 mode for flashing. If you do not see a mass storage device, or if it is not an empty board, make sure the Raspberry Pi Pico is not connected to the computer. Press and hold the BOOTSEL button, while you connect it to the computer using a micro USB cable.
You can drag and drop to copy the firmware file to the drive.
Optionally, you can test the board by shorting some of the GPIOs to trigger key presses.
If you prefer building your own firmware and flash it with command line, you can use one of the following commands to build and flash the Vial firmware.
Clone and setup the Vial repo from http://github.com/beekeeb/vial-qmk-piantor
For Rasyberry Pi Pico,
For WeAct RP2040 with an a VBUS_SENSE circuit (R1, R2),
For WeAct RP2040 without an a VBUS_SENSE circuit (R1, R2),
Disconnect the Pico from the computer.
Unlike other keyboards, the components of the breakout board should be facing up.
Solder the castellated holes, or use pin headers if the board does not have castellated holes.
The resistors are required for the breakout boards without a built in VBUS_SENSE circuit.
For Raspberry Pi Pico, R1 and R2 are not required.
For WeAct RP2040, it's recommended to solder the R1 and R2 on both sides. Use 5.6kΩ for R1, and 10kΩ for R2 respectively.
After soldering the microcontroller, TRRS jack and resistors (if required), even without hotswap sockets or key switches, you can connect both halves with a TRRS cable, and connect the left side to the computer. To trigger key presses, you can short the holes that will be used for the key switches. The matrix tester in Vial is a helpful tool.
After you have tested the key presses, you can either solder the hot swap sockets (as a hotwap version), or the key switches (as a soldered-in, non-hotswap version).
This shows a Piantor with hotswap sockets, WeAct RP2040, with a VBUS_SENSE circuit.
The default keymap is very basic. You should learn how to configure a keymap to fully utilize this programmable keyboard.