Big Orange Button (BOB for short) is a customisable single-key USB keyboard
To build this project you need access to a 3d printer. The model folder contains 3 parts.
- Pimoroni Tiny 2040 (x1)
- Keyboard switch (x1)
- M3x12 screw (x2)
- Connection wire
The 3d models can be downloaded from my Printables here.
- Populate the slot of the bob_middle printed part with an MX-type keyboard switch.
- Solder the microcontroller to the switch one wire should be connected to the PD7 pin of the microcontroller and the other one to the GND pin, make sure that wires are soldered to the top side of your Tiny.
- Insert the microcontroller into its slot in the bob_bottom printed part.
- Secure the microcontroller with the bob_middle printed model.
- Screw together the bob_bottom and bob_middle parts with the m3 screws.
- Put on the 3d printed bob_plain_button on the key switch' tip.
- Optionally, you can stick some rubber feet on the bottom side of the device.
The software is written in CircuitPython 7.3.1 and uses the HID module of CircuitPython Library Bundle.
- Download the CircuitPython UF2 from the official website here.
- Push and hold the BOOTSEL button and plug your Tiny 20240 into the USB port of your computer. Release the BOOTSEL button after your microcontroller is connected.
- It will mount as a Mass Storage Device called RPI-RP2.
- Drag and drop the CircuitPython UF2 file onto the RPI-RP2 volume.
- Download the library bundle for the CircuitPython version you installed 7.x by default from here
- Unzip the bundle; Copy
adafruit_hid
from thelib
folder to<CIRCUITPY DRIVE>/lib/
- Download the software
cd ~
git clone https://github.com/dr-mod/bob.git
cp bob/src/*.py <CIRCUITPY DRIVE>
To configure action modify key_mapping.py
At the moment there are 3 types of commands supported:
- STRING - a sequence of characters printed when a button is pressed e.g. "Hello, world!"
- KEY - a single key or combination of keys e.g. A or Ctrl + C. List of supported keycodes.
- CONTROL_CODE - a control commands e.g. increase brightness, List of supported control codes.
(STRING, "sudo shutdown now \n"),
This project has uses a modified version of my other project pico-mpad you can find more configuration examples and information there.
If you would like to support what I do and keep me caffeinated, you can do it here: