STM32 Keyboard
HKUST Elec3300 project
Features
- 6*14 key matrix
- Programmable 6*14 RGB matrix
- On-board OLED display(SSD1306)
- Volume control by Rotary encoder
- Fingerprint sensor
- Programmable Macro
- Sleep Mode(low power mode)
- Connection:
- Bluetooth
- USB
- Power:
- USB power supply
- Battery(with USB charging)
Environment
Download all of these before continuing:
- arm-none-eabi-gcc for compiling (make sure you use the lastest version)
- OpenOCD for flashing and debugging
- CMake for the build system
- Ninja or some kind of Make
- Ninja is faster and easier to install on windows
- Mac/Linux can just use inbuilt Make easily
Package Manager: Use Brew on Mac
brew install --cask gcc-arm-embedded
brew install ninja
brew install cmake
brew install open-ocd
Package Manager: Use Anaconda
https://anaconda.org/ While Anaconda is usually for handling Python packages you can find many. You may need this anyway
conda install -c conda-forge cmake ninja
conda install -c litex-hub openocd # max/linux
conda install -c m-labs openocd # windows/linux
conda install -c dhgoldberg gcc-arm-none-eabi
Package Manager: Use Chocolatey on Windows
choco install gcc-arm-embedded
choco install openocd
choco install ninja
choco install cmake
Building and Flashing:
In the command palette
- type
build
and findCMake: Build
, remember the keyboard shortcut shown on the right for future use - use
CMake: Build Target
and chooseflash
- use
CMake: Set Build Target
to choose the default build target- this would make
CMake: Build
run that target - the default default build target is
all
which just compiles
- this would make
PCB
TODO
Progress record and future plan
https://github.com/Harrisonust/STM32Keyboard/projects/1