CoffeeCaller is a Zephyr RTOS module that provides the source code for the TiaC CoffeeCaller board.
This repository contains the source code for the 'CoffeeCaller' application, a simple self-designed development board that coordinates coffee breaks between colleagues that sit in different office rooms in a building.
In each room, there is one prepared Coffee Caller board, which communicates to others via a Mesh technology (e.g., OpenThread). When one wants to drink coffee, them press the button, which triggers a buzzer and LEDs on each CoffeeCaller it can reach. Then, others can communicate that they would also drink coffee by pressing the button on their CoffeeCaller too, which triggers a short acknowledgement beep.
After some time, the Coffeecaller signals if someone wants to go with you for coffee or not by doing beeping noices and flashing LEDs.
This project is still in development, and multiple features are still missing.
- Build with Zephyr RTOS
- Everything builds and is executable for TiaC CoffeeCaller and
native_sim(for development purposes). - Test setups for multiple test levels
We tested the code on the following boards:
- TiaC CoffeCaller, board definition files in the TiaC Systems Bridle repository
native_sim
Other boards may work but are not actively tested.
To compile the applications, you need the Zephyr SDK installed. For that, follow the instructions on the Zephyr SDK installation page
This is a super short intro to what needs to be done to setup the workspace. More details at Zephyrs 'Getting started' guide.
Create a new workspace and change the working directory:
mkdir cc_ws
cd cc_wsCreate + activate a Python virtual environment:
python3 -m venv .venv
. .venv/bin/activateNow install the Zephyr RTOS meta-tool west.
pip install westSetup the workspace and clone the repository with all modules and Zephyr:
west init -m https://github.com/Alicipy/CoffeeCaller
west updateNow, install all Python requirements for Zephyr so all features work:
pip install -r zephyr/scripts/requirements.txtAfterward, you can work with the repository and workspace.
These list the most common use cases during development.
To cover all use cases, please consult the
west documentation.
Execute all commands in the workspace cc_ws.
west build -b <board_name> <path_to_application>
west build -b coffeecaller_nrf52/nrf52840 ./CoffeeCaller/applications/coffeecallerThe coffeecaller_nrf52/nrf52840 board has an uf2 bootloader. So connect the board and after mounting, do:
west flash -r uf2
Executing (a subset of) tests for all supported boards:
west twister -T <path_to_test_folder>
# example to execute all integration tests in `tests` folder
west twister --integration -T ./CoffeeCaller/tests
# example to execute all tests for `native_sim`
west twister -p native_sim -T ./CoffeeCaller