Files
webkeyboard/README.md
T
2025-05-28 19:53:03 -04:00

58 lines
2.6 KiB
Markdown

# Picokeyboard
## About
This project turns a Raspberry Pi Pico W into a web-based USB HID keyboard
device. Users can access a webpage served over HTTP to enter keyboard input
onto the host device of the Raspberry Pi Pico W. Input keys can be entered
through a keyboard on the client device or by pressing on the keys on the
graphical interface served on the webpage.
![Web interface for Picokeyboard](web-ui.jpg)
## Setup
Flash the [webkeyboard.uf2](build/webkeyboard.uf2) file onto
the Raspberry Pi Pico W and connect the Raspberry Pi Pico W with a micro USB
cable to the host computer or other device.
On initial boot, the Raspberry Pi Pico W will enter Access Point mode with
SSID "picokb" and password "password". Connect to this network with another
device and open a browser window to [http://picokb](http://picokb).
Go to the "Configure W-Fi" page and enter the SSID and password to the
network that you would like the Raspberry Pi Pico W to connect. Optionally,
also enter a hostname for the device and static IP information. Hit the "Save"
button to save the network information to device flash.
Browse back to the main UI page at [http://picokb](http://picokb) and press
"Reboot". The device should automatically connect to the network with the
saved information. You can then connect to the device using a web browser
at the device's assigned IP or hostname by accessing http://IP_ADDRESS or
http://HOSTNAME
If the fails to connect to the saved Wi-Fi network, it will once again enter
Access Point mode, and you can connect to the device directly to modify the
network information.
Alternatively, you can use the device directly in Access Point mode by
accessing the device at [http://picokb](http://picokb). The program is
set to reboot automatically to try to reconnect to the nextwork after 10
minutes of inactivity if no keyboard input is received during that time.
## Licensing
This software is distributed under the [GNU General Public License version
3](LICENSE), with the exception of the libraries in the following section.
## Attributions
The project uses code from the following sources:
- [MicroPython Project](https://github.com/micropython/micropython) for
[dhcpserver.c/h](dhcpserver.c) distributed under the MIT license
- [Raspberry Pi Pico SDK Examples](https://github.com/raspberrypi/pico-examples)
for a modified version of [pico_w/wifi/lwipopts_examples_common.h](lwipopts.h)
distributed under the BSD-3-Clause license
- [TinyUSB](https://github.com/hathach/tinyusb) for the base version of
[tusb_config.h](tusb_config.h) distributed under the MIT license