59 lines
2.6 KiB
Markdown
59 lines
2.6 KiB
Markdown
# Web Keyboard
|
|
|
|
## 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.
|
|
|
|

|
|
|
|
## 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://192.168.0.1.
|
|
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://192.168.0.1 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 (http://picokb is no hostname is set).
|
|
|
|
If the Pico W 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://192.168.0.1. 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.
|
|
|
|
## Credits
|
|
|
|
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 template versions of
|
|
[hid.c](hid.c), [tusb_config.h](tusb_config.h), and
|
|
[usb_descriptors.c/h](usb_descriptors.c) distributed under the MIT license
|