{"id":21145834,"url":"https://github.com/rayps/wifi-keyboard","last_synced_at":"2025-07-25T21:37:13.294Z","repository":{"id":69307985,"uuid":"408056812","full_name":"RayPS/WiFi-Keyboard","owner":"RayPS","description":"A remote control usb keyboard http server device based on ESP8266 \u0026 CH9328","archived":false,"fork":false,"pushed_at":"2021-09-19T07:02:37.000Z","size":1957,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T02:01:48.460Z","etag":null,"topics":["ch9328","esp8266","keyboard","pcb","usb-hid"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RayPS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-19T07:02:32.000Z","updated_at":"2024-03-09T11:32:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"3022e482-7260-4d98-88e9-132c0480c802","html_url":"https://github.com/RayPS/WiFi-Keyboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayPS%2FWiFi-Keyboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayPS%2FWiFi-Keyboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayPS%2FWiFi-Keyboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayPS%2FWiFi-Keyboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RayPS","download_url":"https://codeload.github.com/RayPS/WiFi-Keyboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248700039,"owners_count":21147754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ch9328","esp8266","keyboard","pcb","usb-hid"],"created_at":"2024-11-20T08:44:06.892Z","updated_at":"2025-04-13T10:35:50.375Z","avatar_url":"https://github.com/RayPS.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WiFi-Keyboard\nA remote control usb keyboard http server device based on ESP8266 \u0026 CH9328\n\n![](PCB/photo.jpg)\n\n## Schematics\n\n![](Schematics/schematic.png)\n\n## PCB\n\n![](PCB/pcb_screenshot.png)\n\n\n## Development\n(An UART adapter with `DTR` \u0026 `RTS` port is required)\n1. Open this project in PlatformIO\n2. Connect the device to your computer using an UART adapter\n3. Build and upload to the device\n\n#### Connections\n| UART Adapter | This Device |\n| - | - |\n| 3V3 | 3V3 |\n| GND | GND |\n| RX | TX |\n| TX | RX |\n| RTS | RST |\n| DTR | IO0 |\n\n## Usage\n1. Plug the device to the host machine\n2. Connect to the device WiFi named `Keyboard`, a config portal should appear\n3. Choose to connect the same WiFi as your client machine network\n4. Open [http://keyboard.local/](http://keyboard.local/) \n\n#### Use as HTTP API\n```bash\ncurl -X \"POST\" \"http://keyboard.local/\" \\\n     -H 'Content-Type: application/json; charset=utf-8' \\\n     -d $'{\"input\": \"HelloWorld\"}'\n```\nor\n\n`POST http://keyboard.local/?input=helloworld`\n\n\n#### Notes\nAt the current stage of development, only printable characters are supported.\n\nTo support other keys I will need to make something like DuckyScript Parser.\n\nBut that's beyond the purpose of this project, the goal of this project is for game consoles such as Nintendo Switch/Playstation/Xbox etc.\n\n## LED status\n| LED | Status |\n| - | - |\n| Blinking | No network is connected |\n| Light | Successfully connected to a network and MDNS is initialized |\n| Dark after blink | Successfully connected to a network but MDNS failed |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayps%2Fwifi-keyboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frayps%2Fwifi-keyboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayps%2Fwifi-keyboard/lists"}