This repository contains the firmware for the Golioth Ostentus.
Ostentus is a faceplate designed for use with Golioth hardware demonstrations. The printed circuit board includes five reverse-mounted LEDs for status indication, an ePaper display for output, three capacitive touch pads, and an accelerometer. The faceplace receives commands via i2c to control the following features:
Precompiled .uf2
binaries can be found in the Releases section.
Micropython has known issues building with some CMake versions. This repository includes a Dockerfile that will install a known-working build environment. Installation and use of the Docker container has been simplified as much as possible.
After cloning the repo, run the bootstrap script to configure submodules
./bootstrap.sh
Install Docker on your system
Note: If you have installed Docker Desktop on macOS you can skip this step.
sudo apt install docker.io
sudo usermod -a -G docker <your_username>
newgrp docker
Perform initialization of the Docker image/container
make docker_init
# macOS
make docker_init_mac
Build firmware
make
The result of running make
is a firmware.uf2
file in the root directory of
this repository that can be flashed onto the Pico.
If you encounter issues using this approach, please consult the Build with Docker guide for building the Ostentus binary.
It is recommended that you use the libostentus
library to control Ostentus
from Zephyr. (This is included as a submodule of this repo.) Add
the libostentus repo to your Zephyr
project as a submodule.
Use any i2c-controller to write to the display on device-address 0x12
.
The source of truth for the memory registers is from the golioth/libostentus
repository (included as a submodule). Please consult
libostentus/include/libostentus_regmap.h