/BlueMicro_BLE

Keyboard Firmware for the Nordic nRF52 Series of Bluetooth SoC based on the Adafruit NRF52 Feather

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

BlueMicro Firmware Current Version Build on Docker

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.

GitHub forks GitHub stars GitHub contributors Discord GitHub pull requests GitHub issues

Build Status

Branch Github Actions - Docker (Adafruit BSP) Github Actions - Docker (Community BSP) Github Actions - Ubuntu (Community BSP) Jenkins - Windows
Master Build on Docker - Adafruit Build on Docker - Community Build on Ubuntu Build Status
Develop Build on Docker - Adafruit Build on Docker - Community Build on Ubuntu Build Status

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:

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

GitHub license

BlueMicro_BLE uses the following projects, each are licensed separately.

Project Details Release
Arduino IDE Development Platform Arduino IDE
Arduino CLI Alternate platform Arduino CLI
Community nRF52 Arduino Board Support Package Community nRF52 releases
Adafruit nRF52 Arduino Board Support Package Adafruit Library for releases
Adafruit nRF52 Bootloader Bootloader Adafruit Bootloader for releases
Adafruit Neopixel RGB LED Library Adafruit_NeoPixel
Adafruit TinyUSB Arduino USB Library for nRF52840 Adafruit_TinyUSB_Arduino
Hathach TinyUSB USB Library for nRF52840 Hathach TinyUSB
Adafruit SSD1306 Monochrome OLEDs Library based on SSD1306 drivers Adafruit_SSD1306
Adafruit GFX Library core graphics library Adafruit-GFX-Library
Adafruit_BusIO helper libary to abstract away I2C & SPI transactions and registers Adafruit_BusIO
Olikraus U8g2 U8g2: Library for monochrome displays, version 2 u8g2