BlueMicro Firmware
Currently Upgrading to support Adafruit nRF52 release 1.3.0!
Work is currently under way to update BlueMicro_BLE to be able to use the latest release of the Adafruit Board Support Package. This will enable the following
- BLE profiles
- USB/BLE switching on the nrf52840
A Keyboard Firmware for nRF52832 and nRF52840 Boards
BlueMicro_BLE is a keyboard firmware that builds on top the Adafruit nRF52 board support package (BSP) for their line of Adafruit nRF52 Feather Boards.
By starting with the simple hid_keyboard.ino example provided with the Arduino board support package, we expanded it to a full blown Keyboard firmware with lots of features.
Build Status
Branch | Github Actions - Docker (Adafruit BSP) | Github Actions - Docker (Community BSP) | Github Actions - Ubuntu Builder |
---|---|---|---|
Master | |||
Develop |
Documentation
See the pages Here
You can contribute to the documentation by editing the markdown files located in the docs folder of the repository.
Video Documentation - BlueMicro Youtube Channel
See a number of tutorials, builds and other keyboard related videos on the BlueMicro Youtube Channel.
Compatible Hardware
Any nRF52832 or nRF52840 boards that support either of the following 2 Arduino Board Support Packages:
- Arduino Core for Adafruit Bluefruit nRF52 Boards
- Community Add-on to the Adafruit_nRF52_Arduino Board Support Package
If you use the Adafruit nRF52 Boards in the Arduino IDE, you should select either of the following:
Chip | Default Board Selection |
---|---|
nRF52832 | Adafruit Feather nRF52832 |
nRF52840 | Nordic nRF52840DK (PCA10056) |
If your board needs a special bootloader or a configuration that's not compatible with the above boards, you should consider adding your board to the Community Add-on to the Adafruit_nRF52_Arduino Board Support Package. This will make it simpler for others to re-use your special configuration and flashing the bootloader.
Contributing
We're very happy to have your contributions in BlueMicro_BLE Firmware
Contributing New Features: First, make sure you've run a full set of builds for all boards if adding new functionality (./build.ps1 all). This will ensure that the new functionality doesn't break the build of other keyboards. Then, make a pull request to this repo. Thanks!
Adding a new keyboard: First, add your new keyboard to the folder structure. You will need to create the apropriate folders and place the 4 necessary keyboard files. Then, make sure you've run a build for all keymaps applicable to your keyboard (./build.ps1 keyboardname). This will ensure that your keymap can support future hardware configurations. Then, make a pull request to this repo. Thanks!
Adding your keymaps: First, make sure you've run a build for all keymaps applicable to your keyboard (./build.ps1 keyboardname). This will ensure that your keymap can support other hardware configurations. Then, make a pull request to this repo. Thanks!
Looking for a feature: Lots of features are already available; however, not everything is documented yet. Join in on the Discord server and ask if it's already available, or if anyone is working on what you are looking for. If you are willing to help adding or testing a new feature, join the team!
Filing an issue: Submit issues to the GitHub Issues page.
Want to help: take one of issues in the list here where you think you could help. Comment on it as you start work and join in on the Discord server for a live discussion.
Credits
The firmware uses the same Arduino Board Support Package as the Adafruit nRF52 Feather Boards
BlueMicro_BLE uses the following projects, each are licensed separately.
Project | Details | Release |
---|---|---|
Arduino IDE | Development Platform | |
Arduino CLI | Alternate platform | |
Community nRF52 Arduino | Board Support Package | |
Adafruit nRF52 Arduino | Board Support Package | |
Adafruit nRF52 Bootloader | Bootloader | |
Adafruit Neopixel | RGB LED Library | |
Adafruit TinyUSB Arduino | USB Library for nRF52840 | |
Hathach TinyUSB | USB Library for nRF52840 | |
Adafruit SSD1306 | Monochrome OLEDs Library based on SSD1306 drivers | |
Adafruit GFX Library | core graphics library | |
Adafruit_BusIO | helper libary to abstract away I2C & SPI transactions and registers | |
Olikraus U8g2 | U8g2: Library for monochrome displays, version 2 |