Skip to content

A simple 12-key programmable keypad using an ESP32-S2 for a CyberDeck project.

License

Notifications You must be signed in to change notification settings

Pooky-s/CyberDeck-KeyPad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CyberDeck KeyPad

A simple 12-key programmable keypad using an ESP32-S2 for a CyberDeck project.

Disclaimer ⚠️

This project is my first one, also I'm an absolute beginner in pcb design. The project may have some flaws, bugs, errors... It's still under development and is subject to changes. If you have any suggestions, feel free to share them, it will help me learn !

Summary

Requirements

To build your own Keypad you will need :

  • some diodes (one for each key)
  • Switches (here CherryMX switches without diodes nor LEDs)
  • Rotary encoders
  • ESP32-S2 board (here ESP32-S2-DevKitM-1)
  • a micro-USB female port
  • a PCB or some wires.

Deployment Instructions

If you already have a working development environment :

  • Install the Arduino core for ESP32 (arduino-esp32 -> sources) under <arduino_installation_dir>/hardware/espressif/esp32
  • Copy/paste the EspTinyUSB library (EspTinyUSB, ESPAsyncWebServer and AsyncTCP -> sources) under <arduino_installation_dir>/libraries
  • Install libraries needed from the library manager (FastLED, Keypad -> sources)
  • Compile and upload the .ino file located at ./src/<name>.ino
  • You will also need to fix 2-3 things on EspTinyUSB and arduino-esp32, I made forks of those projects with fixes applied.

If you don't have a proper development environment, or need more informations go to ./docs/INSTALLATION.md (-> to be added)

Known issues

  • When pressed at the same time, keys on collumn 1 and 4 on the same row causes key on collumn 1 to loop. It happens only when serial usb isn't connected. This happen apparently because collumn 1 is connected to GPIO0. Connecting this coolumn to another GPIO pin with the correct setup on the firmware seem to fix this.

TODO

  • Software
    • Add initilisation with US, UK or FR layout
    • Add function to convert website input to values as HID_KEY_... format
    • Add function to convert keys read from storage to human readable values
    • Add multikey macro creation
    • Optimize website
    • Optimize code
    • Add comments
  • Hardware
    • Make a testing unit using PCB
      • Change encoder switch pins from 45/46 to 41/42 (done in files, to be built)
    • Add LEDs ?
  • Documentation
    • Add step-by-step installation guide
    • Add software description
    • Add pictures of test and final units
    • Add BOM

Images

Schematic Scheme with encoder. Schematic Scheme without encoder. Image Testing unit.

Other pics coming soon...

Sources

Projects and Libraries used :

Tutos, demos and other projects that inspired the CyberDeck Keypad.

About

A simple 12-key programmable keypad using an ESP32-S2 for a CyberDeck project.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages