All Projects → ah- → Anne Key

ah- / Anne Key

Licence: apache-2.0
Firmware for Anne Pro Keyboard written in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Anne Key

Keyberon
A rust crate to create a pure rust keyboard firmware.
Stars: ✭ 355 (-29.84%)
Mutual labels:  keyboard, firmware, embedded
Ergodox Layout
algernon's ErgoDox EZ layout
Stars: ✭ 135 (-73.32%)
Mutual labels:  keyboard, firmware
Easyavr
Easy AVR USB Keyboard Firmware and Keymapper
Stars: ✭ 479 (-5.34%)
Mutual labels:  keyboard, firmware
Awesome Embedded And Iot Security
A curated list of awesome embedded and IoT security resources.
Stars: ✭ 500 (-1.19%)
Mutual labels:  firmware, embedded
Iot Pt
A Virtual environment for Pentesting IoT Devices
Stars: ✭ 218 (-56.92%)
Mutual labels:  firmware, embedded
Whitefox Keyboard Macos Configuration
⌨ A macOS compatible configuration for Matt3o's Whitefox keyboard.
Stars: ✭ 53 (-89.53%)
Mutual labels:  keyboard, firmware
prk firmware
A keyboard firmware platform in PicoRuby
Stars: ✭ 337 (-33.4%)
Mutual labels:  keyboard, firmware
Opensk
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
Stars: ✭ 2,114 (+317.79%)
Mutual labels:  firmware, embedded
Sub-IoT-Stack
Sub-IoT: Open Source Stack for Dash7 Alliance Protocol
Stars: ✭ 123 (-75.69%)
Mutual labels:  embedded, firmware
OpenWare
Firmware for OWL devices
Stars: ✭ 23 (-95.45%)
Mutual labels:  embedded, firmware
drone-cortexm
ARM® Cortex®-M platform crate for Drone, an Embedded Operating System.
Stars: ✭ 31 (-93.87%)
Mutual labels:  embedded, firmware
Platform Espressif8266
Espressif 8266: development platform for PlatformIO
Stars: ✭ 206 (-59.29%)
Mutual labels:  firmware, embedded
Interrupt
A community for embedded software makers.
Stars: ✭ 178 (-64.82%)
Mutual labels:  firmware, embedded
Kmk firmware
Clackety Keyboards Powered by Python
Stars: ✭ 132 (-73.91%)
Mutual labels:  keyboard, firmware
U Bmc
Open-source firmware for your baseboard management controller (BMC)
Stars: ✭ 166 (-67.19%)
Mutual labels:  firmware, embedded
Qmkbuilder
Online GUI for QMK Firmware
Stars: ✭ 254 (-49.8%)
Mutual labels:  keyboard, firmware
Esp8266 Firmware
DeviceHive esp8266 firmware. Control hardware via clouds with DeviceHive!
Stars: ✭ 154 (-69.57%)
Mutual labels:  firmware, embedded
Exein
Exein core for Linux based firmware
Stars: ✭ 158 (-68.77%)
Mutual labels:  firmware, embedded
IOsonata
IOsonata multi-platform multi-architecture power & performance optimized software library for fast and easy IoT MCU firmware development. Object Oriented design, no board package to define, just pure plug & play any boards
Stars: ✭ 40 (-92.09%)
Mutual labels:  embedded, firmware
STM32Keyboard
No description or website provided.
Stars: ✭ 15 (-97.04%)
Mutual labels:  keyboard, embedded

Firmware for Anne Pro Keyboard written in Rust

Travis Build Status

This is an alternative firmware for the Anne Pro Keyboard, with the goal of being more stable than the original firmware and adding extra features.

For the Anne Pro 2 (with USB-C connector), please follow and help with the OpenAnnePro project (including flashing, bootloader, and more in the future). The developers also hang out in the Anne Pro Dev discord.

Status

This project is still under heavy development and probably not quite ready yet to serve as your only keyboard.

Working today:

  • Basic keyboard functionality
  • Bluetooth (as a keyboard)
  • LED control (switching on/off, changing themes)
  • USB charging
  • Drop in replacement as a simple firmware update
  • Partial bluetooth communication with the Anne Pro App (tested with Anne Pro Mac App)

Not yet implemented:

  • USB hangs on connect/disconnect
  • USB sends keys concurrently with BT (to toggle USB, use the 5 key in BT layer)
  • Media controls / special keys
  • Uploading custom lighting settings
  • Uploading custom keymaps
  • Power Management
  • BT setup mode with LEDs etc.

Community

We hang out in the Anne Pro Dev discord. Please observe the Rust Code of Conduct within our community.

Flashing

You can find the latest build on the Releases page. Download anne-key.dfu. If LEDs aren't working with latest build, you can try build 209 , or the following procedure: reboot into DFU mode by holding down Fn+Space+Esc, then exit with Esc.

Then you can either follow the obins firmware update steps (click Update manual) or use dfu-util.

dfu-util

First you'll need to install dfu-util.

To flash your Anne Pro connect via USB, then hold down the Esc button, press the little reset switch on the back and finally release Esc.

Now your keyboard is in DfuSe mode. It should show up in dfu-util:

$ dfu-util -l
dfu-util 0.9

...

Found DFU: [0483:df11] ver=0200, devnum=23, cfg=1, intf=0, path="20-2", alt=2, name="@BluetoothFlash  /0x1c000000/14*256 a,192*256 g", serial="057C37553731"
Found DFU: [0483:df11] ver=0200, devnum=23, cfg=1, intf=0, path="20-2", alt=1, name="@Internal Flash  /0x0c000000/64*256 a,192*256 g", serial="057C37553731"
Found DFU: [0483:df11] ver=0200, devnum=23, cfg=1, intf=0, path="20-2", alt=0, name="@Internal Flash  /0x08000000/64*256 a,192*256 g", serial="057C37553731"

Then you can flash your keyboard firmware:

$ dfu-util --alt 0 --intf 0 --download anne-key.dfu

...

file contains 1 DFU images
parsing DFU image 1
image for alternate setting 0, (1 elements, total size = 5104)
parsing element 1, address = 0x08004000, size = 5096
Download        [=========================] 100%         5096 bytes
Download done.
done parsing DfuSe file

And that's it. Press the reset button again to exit the bootloader and return to normal keyboard mode and you're done!

If your keyboard is running our firmware, you can reboot to DFU mode by holding down Fn+Space+Escape.

If you want to return to the original firmware you can flash the original firmware with:

$ dfu-util --alt 0 --intf 0 --download "anne pro key 1.4.dfu"

Documentation & Hacking

You can find some documentation on hardware on GitBooks. Many fellow projects provide insights into the obins firmware and app protocol:

  1. Reverse-engineering
  1. Alternate control apps
  1. Alternate firmware

To build your own firmware, you need the following components:

  • rustup: to make use of the rust-toolchain file
  • cargo-objcopy: you need to build it outside this directory cd ~ ; cargo install cargo-binutils

Then, make dfu in the top directory will build your anne-key.dfu.

To analyze the firmware's code size, you need cargo-bloat:

  • cargo install cargo-bloat
  • make bloat
  • make bloat BLOAT_ARGS="--crates" # passing arguments to cargo-bloat

Our CI requires consistent formatting, please use our pre-commit hook to make sure:

  • cp scripts/pre-commit .git/hooks/pre-commit

To fix formatting:

  • make fmt

Troubleshooting

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].