golioth / ostentus

i2c controlled ePaper display for Golioth Reference Designs
Apache License 2.0
1 stars 0 forks source link

Ostentus

Golioth Ostentus board showing the Golioth logo with all LEDs
illuminated

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:

Additional information

Installation

Precompiled .uf2 binaries can be found in the Releases section.

Building firmware

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.

  1. After cloning the repo, run the bootstrap script to configure submodules

    ./bootstrap.sh
  2. 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
  3. Perform initialization of the Docker image/container

    make docker_init
    
    # macOS
    make docker_init_mac
  4. 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.

Controlling Ostentus

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