PUB! Programmable USB Button
PUB! is a Programmable USB Button on which you can program a sequence of keystrokes. When you press the button those keystrokes are “replayed” over a USB connection.
The button (which is really a rotary encoder with a built-in push button switch) is programmed using an innovative and slightly quirky interface that does not require any custom software to be installed on your computer. All you need is a text editor like Notepad (for Windows) or gedit (for Linux).
- One-button design (a rotary encoder with a built in switch).
- Programmed by using an ordinary text editor as a display (for example, gedit on Linux, or Notepad on Windows).
- Up to 127 keystrokes can be recorded and played back.
- Support for conditional logic. For example, Compare to value, Jump on zero, etc.
- Support for 256 x 8-bit “registers” to record state.
- Support for basic arithmetic. Add, subtract, etc.
- Can send USB System Control codes (Power off, sleep, wake) to your PC
- Can send USB Consumer Device functions (e.g. Mute, Play, Pause, Stop, etc.)
- Requires NO drivers (or custom software) for Windows/Linux etc
The possibilities are fairly broad including:
- Using a Bluetooth module to detect proximity of the button owner’s mobile phone so that the USB button is only enabled when its owner is near.
- Addition of an external EEPROM for extra keystroke capacity.
- The one-button user interface will be improved to make it easier to use.
Step 1: Parts
You will need the following parts:
Qty Value Package Parts Description 3 100nF 0805 C1, C2, C3 Ceramic capacitor SMT 1 4.7uF SMC_A C4 Tantalum capacitor SMT 1 470 1206 R1 Resistor SMT 1 ACTIVITY 1206 D1 LED (any color) SMT 1 EC12E_SW SW1 ALPS rotary Encoder EC12E series with switch 1 MIKROPROG JP1 5x1 Pin header (right angle) 1 PIC18F25K50 SOIC IC1 PIC 18F25K50 microcontroller SMT 1 PICKIT JP2 6x1 Pin header (right angle) 1 USB-MINIB-5PIN JP3 Mini-USB Type B socket SMT
For more detail: PUB! Programmable USB Button