Welcome to the Pixels dice repository!
For more information on the dice, see Pixels' website.
This repository contains all the software developed for Pixels.
The software can be broken in two very distinct categories: code running on the Pixels (the firmware), and code running on computer (or mobile phone) that connects to the Pixels (the apps).
The communications are done over Bluetooth Low Energy (abbreviated to BLE). Pixels use a simple yet efficient messaging protocol that is easily portable to various languages such as C++, C#, python and Javascript.
Each top folder of the repository contains one or more different projects, here is the list:
- blinky: a simple test written in C for Pixels' electronic board that blinks its LED #0
- Bootloader: a C program that starts the main application uploaded in Pixels memory and allows updating that application over Bluetooth
- Central: the mobile Pixels app, developed with Unity (so, written in C#)
- DiceBLEWin: a C++ Unity plugin to expose the Windows BLE stack
- Firmware: Pixel's firmware binaries and C++ sources
- raspi: a python app that can connects to Pixels, runs on a Raspberry Pi 3 Model B+
- web: currently a Chrome extension for Roll20 that connects to Pixels and outputs the dice rolls in the chat, written in Javascript
Pixels use a BLE module from Nordic. To build the firmware you'll have to install Nordic's nRF5 SDK. Download here.
You'll need Unity to build this project. It is currently using Unity 2020.1.
This project makes use of bluepy lib as its bluetooth stack. See pixels.py to get started.
This Javascript extension is a proof of concept to showcase how Pixels can be used in conjunction with the Roll20 website.
Unless noted overwise, those projects are licensed under the MIT License - see the LICENSE.md file for details.