If you have a headless Linux server, a homelab, or even an old laptop repurposed as a NAS, you know the struggle. Every time you need to restart a Docker container, check a status, or run a backup script, you have to SSH into the machine.
What if you could build a dedicated, physical control panel using leftover parts from your workbench?
Meet Pico Commander. It's a $15 open-source macro pad built on the Raspberry Pi Pico. It requires zero drivers (acts as a standard USB HID Keyboard) and is configured entirely through a visual offline web editor. No need to write C++ or Python code just to add a new shortcut.
If you have a headless Linux server, a homelab, or even an old laptop repurposed as a NAS, you know the struggle. Every time you need to restart a Docker container, check a status, or run a backup script, you have to SSH into the machine. What if you could build a dedicated, physical control panel using leftover parts from your workbench? Meet Pico Commander. It's a $15 open-source macro pad built on the Raspberry Pi Pico. It requires zero drivers (acts as a standard USB HID Keyboard) and is configured entirely through a visual offline web editor. No need to write C++ or Python code just to add a new shortcut.
If you have a headless Linux server, a homelab, or even an old laptop repurposed as a NAS, you know the struggle. Every time you need to restart a Docker container, check a status, or run a backup script, you have to SSH into the machine. What if you could build a dedicated, physical control panel using leftover parts from your workbench? Meet Pico Commander. It's a $15 open-source macro pad built on the Raspberry Pi Pico. It requires zero drivers (acts as a standard USB HID Keyboard) and is configured entirely through a visual offline web editor. No need to write C++ or Python code just to add a new shortcut.
The "Killer Feature": Hardware Panic Triggers
Most macro pads just have buttons. Pico Commander supports Hall Effect sensors. You can hide a sensor inside your 3D printed case or under your desk. By swiping a magnet near it, you can trigger priority hardware-level scenarios—like locking the workstation, triggering a safe server shutdown, or wiping a specific directory—instantly, bypassing UI navigation.
Most macro pads just have buttons. Pico Commander supports Hall Effect sensors. You can hide a sensor inside your 3D printed case or under your desk. By swiping a magnet near it, you can trigger priority hardware-level scenarios—like locking the workstation, triggering a safe server shutdown, or wiping a specific directory—instantly, bypassing UI navigation.
Most macro pads just have buttons. Pico Commander supports Hall Effect sensors. You can hide a sensor inside your 3D printed case or under your desk. By swiping a magnet near it, you can trigger priority hardware-level scenarios—like locking the workstation, triggering a safe server shutdown, or wiping a specific directory—instantly, bypassing UI navigation.
Building Automation Pipelines (The Offline Web Editor)
While you can always edit the config.json manually if you prefer a raw text environment, Pico Commander includes a dedicated, offline HTML configuration tool (editor.html). This tool is designed to make building complex automation pipelines effortless, without requiring any external software installation.
Instead of just assigning a single key combination to a button, you can string together multi-step command sequences. For example, a single encoder click can execute a pipeline that:
Types a specific shell command (e.g., docker-compose down)
Types a specific shell command (e.g., docker-compose down)
- Types a specific shell command (e.g., docker-compose down)
Presses Enter
Presses Enter
- Presses Enter
Initiates a Wait action for 2000 milliseconds (giving the host machine time to process)
Initiates a Wait action for 2000 milliseconds (giving the host machine time to process)
- Initiates a Wait action for 2000 milliseconds (giving the host machine time to process)
Types the next command (docker-compose up -d)
Types the next command (docker-compose up -d)
- Types the next command (docker-compose up -d)
Presses Enter again
Presses Enter again
- Presses Enter again
This turns a simple macro pad into a powerful deployment and automation trigger. The web tool provides a visual interface to build these scenarios, nest them inside folders and submenus for organization, and configure hardware pins. Once your pipeline is ready, you simply save the generated JSON file and drop it onto the CIRCUITPY drive to instantly update the device.
🛠 Step-by-Step InstructionsStep 1: Flash CircuitPython
Before wiring, download the latest CircuitPython.uf2 file for the Raspberry Pi Pico. Hold the BOOTSEL button on your Pico, plug it via USB, and drag-and-drop the.uf2 file onto the RPI-RP2 drive. Once it reboots, your Pico will show up as a CIRCUITPY drive.
Before wiring, download the latest CircuitPython.uf2 file for the Raspberry Pi Pico. Hold the BOOTSEL button on your Pico, plug it via USB, and drag-and-drop the.uf2 file onto the RPI-RP2 drive. Once it reboots, your Pico will show up as a CIRCUITPY drive.
Before wiring, download the latest CircuitPython.uf2 file for the Raspberry Pi Pico. Hold the BOOTSEL button on your Pico, plug it via USB, and drag-and-drop the.uf2 file onto the RPI-RP2 drive. Once it reboots, your Pico will show up as a CIRCUITPY drive.
Step 2: Wiring It Up
The hardware setup is straightforward. Connect the components to the 3.3V power supply of the Pico. (Прикрепи сюда скриншот таблицы пинов из твоего GitHub README или нарисуй простую схему)
OLED: SDA -> GP4, SCL -> GP5
OLED: SDA -> GP4, SCL -> GP5
- OLED: SDA -> GP4, SCL -> GP5
Encoder: CLK -> GP6, DT -> GP7, SW -> GP8
Encoder: CLK -> GP6, DT -> GP7, SW -> GP8
- Encoder: CLK -> GP6, DT -> GP7, SW -> GP8
Hall Sensor: OUT -> GP15
Hall Sensor: OUT -> GP15
- Hall Sensor: OUT -> GP15
The hardware setup is straightforward. Connect the components to the 3.3V power supply of the Pico. (Прикрепи сюда скриншот таблицы пинов из твоего GitHub README или нарисуй простую схему) OLED: SDA -> GP4, SCL -> GP5 Encoder: CLK -> GP6, DT -> GP7, SW -> GP8 Hall Sensor: OUT -> GP15
The hardware setup is straightforward. Connect the components to the 3.3V power supply of the Pico. (Прикрепи сюда скриншот таблицы пинов из твоего GitHub README или нарисуй простую схему) OLED: SDA -> GP4, SCL -> GP5 Encoder: CLK -> GP6, DT -> GP7, SW -> GP8 Hall Sensor: OUT -> GP15
Step 3: Upload the Firmware
Clone the Pico Commander repository. Copy all the.py files, the config.json, and the lib/ folder (which contains the required Adafruit libraries for the OLED and HID emulation) directly to the root of your CIRCUITPY drive. The device will automatically reboot and initialize the screen.
Clone the Pico Commander repository. Copy all the.py files, the config.json, and the lib/ folder (which contains the required Adafruit libraries for the OLED and HID emulation) directly to the root of your CIRCUITPY drive. The device will automatically reboot and initialize the screen.
Clone the Pico Commander repository. Copy all the.py files, the config.json, and the lib/ folder (which contains the required Adafruit libraries for the OLED and HID emulation) directly to the root of your CIRCUITPY drive. The device will automatically reboot and initialize the screen.
Step 4: Configure via Web UI
Open the editor.html file included in the repository using any web browser. This is a fully offline, visual JSON editor. Load the default config.json, and you can start creating your own multi-level menus, defining complex keyboard combos, or adding text output scenarios (like docker-compose restart). Save the file, drop it back onto the Pico, and you are ready to go!
Open the editor.html file included in the repository using any web browser. This is a fully offline, visual JSON editor. Load the default config.json, and you can start creating your own multi-level menus, defining complex keyboard combos, or adding text output scenarios (like docker-compose restart). Save the file, drop it back onto the Pico, and you are ready to go!
Open the editor.html file included in the repository using any web browser. This is a fully offline, visual JSON editor. Load the default config.json, and you can start creating your own multi-level menus, defining complex keyboard combos, or adding text output scenarios (like docker-compose restart). Save the file, drop it back onto the Pico, and you are ready to go!
_____________________________________________________________















Comments