Skip to content

A Raspberry Pi Pico based stenography keyboard

Notifications You must be signed in to change notification settings

JolonB/Pico-Steno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pico-Steno

An open-source Raspberry Pi Pico stenography keyboard.

I promise I'll write more here soon.

Gerber files can be found here. I have had these files manufactured and the keyboard works fine. I'll add some photos of the keyboard at some stage.

The bill of materials can be found here.

pcb front

pcb back

Setup

Installing CircuitPython

You will need to install CircuitPython to run this code. Follow the instructions here to do this.

Installing Requirements

To begin, you need to have circup installed so you can add libraries to your Pico. Start by installing the dependencies:

sudo apt install -y git python3 python3-pip

And then install circup:

pip3 install --upgrade pip
pip3 install circup

You can update circup by running:

pip3 install --upgrade circup

Now, you can simply install the packages by plugging in your Pico which is running CircuitPython and running:

cd src/
circup install -r requirements.txt

Uploading Firmware

When the keyboard is connected over USB, a file explorer will be opened. Copy the .py files from (but not including) the src/ directory into the Pico's filesystem.

By modifying the i2c_conf.py file, you can add functions to the extra keys (X0–X6).

Questions

Why doesn't this use a keyboard matrix?

Good question.

  1. The RPi Pico has enough GPIO pins to dedicate one to each key on a stenography keyboard. Basically, I just though that was neat, so decided to do it that way. I then decided I wanted optional extra keys, so added the IO extender.
  2. This allows me to implement n-key rollover without needing any diodes; not that they are particularly expensive.

Why is the circuit so messy?

Because I'm not using a keyboard matrix! I had to wire each key directly to a GPIO pin on the Pico. I didn't both trying to optimise the connections to minimise crossovers, so this is what you get. But hey, this is open source; if it annoys you, feel free to fork it!

I can't detect my board

pip3 install adafruit-board-toolkit
python3 -c "import adafruit_board_toolkit.circuitpython_serial; print(adafruit_board_toolkit.circuitpython_serial.data_comports()[0].device)"

If you get IndexError: tuple index out of range, then no data port was detected. Check that you have all the correct drivers installed and that the keyboard is connected properly.

About

A Raspberry Pi Pico based stenography keyboard

Topics

Resources

Stars

Watchers

Forks

Languages