The Learning Little Toaster Control Panel
5d185275 — Tristan Partin 4 years ago
Fix recipe UI to show correct recipe
03ccb981 — Tristan Partin 4 years ago
Make the recipe UI work. Everying not toast
b641e5e7 — Tristan Partin 4 years ago
Implement manual control of heating elements


browse  log 



You can also use your local clone with git send-email.

builds.sr.ht status

#The Learning Little Toaster Control Panel


This project is seperated into three parts:

  • GUI
  • client library
  • driver

The GUI is the control panel for interacting with the toaster. The client library is utilized by the GUI to interact with the server. The driver is used to talk to the toaster.


  • libcurl >= 7.52.1
  • glib >= 2.50.3
  • gtk >= 3.22
  • libjson-glib >= 1.2.6

Disclaimer: These are known working dependency versions. Previous versions may work fine.

#Development Environment

This project uses clang-format to format files and Meson as the build system. Project should build fine with clang or gcc.

To initalize the build environment, run

CC={compiler of choice} meson build


By default, the driver builds with support for WiringPi. To disable support, run meson configure -Dwith-wiringPi=false build. You will need to make sure that WiringPi is installed on your system if you don't disable the option. Instructions for manually building it, can be found in the wiringPi repository.

#Environment Variables

  • TLLT_CP_SERVER - URL of the server
  • TLLT_TOASTER_CONFIG_FILE_PATH - file path of the toaster config

#Toaster Config File

JSON file like the following

    "top-heating-element": {
        "gpio-pin": 1
    "bottom-heating-element": {
        "gpio-pin": 2
    "thermistor": {
        "spi-chan": 0,
        "base-pin": 100,
        "number-of-pins": 8


ninja -C build


ninja test -C build





./build/tests/{path to test executable}