Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KC-Remote-Keyboard

This project emulates a KC85/3 and KC85/4 keyboard using an ESP32-S3. The ESP32 runs an access point, serves a web UI, and outputs keyboard pulses using the RMT peripheral. Protocol specifics are currently marked as TBD in the documentation until measured or verified.

Features

  • ESP32-S3 access point mode
  • Web UI with text input and on-screen keyboard
  • WebSocket for realtime key events
  • RMT-based pulse generation
  • Test mode (no hardware output)
  • Debug logging via Serial

Project Structure

Requirements

  • ESP32-S3 development board
  • Arduino framework for ESP32
  • Exact versions used by PlatformIO:
    • Platform: espressif32@6.6.0
    • Board: esp32-s3-devkitc-1
    • Libraries:
      • ESP Async WebServer@3.1.0
      • AsyncTCP@1.1.1

Build and Flash (Arduino IDE)

  1. Install the ESP32 board package in Arduino IDE.
  2. Install the libraries:
    • ESPAsyncWebServer
    • AsyncTCP
  3. Open the project folder in Arduino IDE.
  4. Select your ESP32-S3 board and COM port.
  5. Build and upload.

Build and Flash (PlatformIO)

  1. Install PlatformIO.
  2. Use the provided platformio.ini.
  3. Build and upload with:
platformio run
platformio run --target upload
  1. Upload the web UI to SPIFFS:
platformio run --target uploadfs

SPIFFS Upload (Web UI)

The web UI is stored in SPIFFS under data/index.html. Use your toolchain's data upload step:

  • Arduino IDE: use the ESP32 SPIFFS upload tool.
  • PlatformIO: run the data upload target (platformio run --target uploadfs).

Getting Started (Quick)

  1. Flash firmware and SPIFFS:
platformio run --target upload
platformio run --target uploadfs
  1. Connect to the WiFi AP KC-Remote-Keyboard.
  2. Open the device IP address shown in the serial monitor.
  3. Use the web UI to send key presses.

Usage

  1. Power the ESP32-S3.
  2. Connect to the WiFi AP KC-Remote-Keyboard.
  3. Open the device IP address in a browser.
  4. Send key presses from the UI.

Default AP password: kc85remote

Security note: change the AP password in src/main.cpp before deploying or using in shared environments.

Protocol Status

All protocol timing and keycode values are placeholders until verified. See docs/protocol.md and docs/timing.md to update the constants and key mapping after measurement.

Safety Notes

Do not connect ESP32-S3 GPIOs directly to the KC keyboard port. Use an open-collector interface or optocoupler as described in docs/hardware.md.

About

Using ESP32 to remotely send key pressed to the KC85

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages