Skip to content

chrisgilldc/brickmaster

Repository files navigation

BRICKMASTER

Summary

A (Circuit)Python application for controlling relays and devices. The most important of which are, of course, Legos.

Project Goals

  • Provide a common interface for a variety of devices
  • Be able to do cool automations with connected devices (ie: Saturn 5 launch simulation)
  • Teach myself some more Python (and hardware, and MQTT)

Supported Platforms

  • Raspberry Pi OS (Bookworm) - Specifically on the Pi Zero W. Other Pis should work just fine, just aren't tested.
  • CircuitPython 9 - CircuitPython 8 is no longer being tested.
    • Adafruit Metro M4 Airlift - Default pystack size on this board is 1536, which should be raised to at least
      1. Given notable memory limitations of this board I may stop testing in the near future. Requires a pystack value of at least 4096, possibly more depending on your control configuration. The ESP32 line or possibly the Metro M7 Airlift would be recommended instead.
    • Adafruit ESP32 Feather v2

Feature set is intended to be 1:1 between CPython and CircuitPython. Documentation notes where this is not true due to platform limitations.

v0.7 Target Features

  • Load config from a remote site.
  • Remote reload command to reset (and load new config!)
  • Actual Sphinx documentation

V0.6 Target Features

  • Option to load config from a remote site (ie: web directory) - Nope, moving to v0.7
  • Package for PyPi and Circup.
  • Control options
    • Multi-pin controls. Done!
    • Groups to wrap multiple controls together. - Dropped. Probably better to group through Home Assistant.
    • Flasher option. Done!
    • Multiple AW9523 expanders Tested, works! Note, still can't mix pins across sources for a single control.

Latest Updates - V0.5.1

  • Debugged issues with client reconnection when the broker goes away (ie: restarts)
  • Discovery and Status messages are now retained, which allows devices/entities and their status to be maintained across HA restarts. No more disappearing devices.
  • Added new MQTT 'log' option to control logging of the base MQTT client. This is a deep debug option, should really only be needed for debugging.
  • Fixed indicator LEDs - those broke at some point - and rewrote them to use CtrlGPIO control objects for consistency.
  • Included and tested example systemd units for Linux installs.
  • Updated CircuitPython 'code.py' startup file to be smarter and behave as a parallel to the cli invoker on Linux.
  • Reorganized with an eye towards packaging. Will learn how to do that at some point.
  • Cleaned up some settings and updated documentation.

Latest Updates - V0.5.0

Having struggled with CircuitPython/Adafruit-MiniMQTT stability issues, I have refactored the whole network module and split based on platform. Brickmaster2 on linux will now use the very robust PAHO MQTT, which I also use in my other project, CobraBay. This leads to some code bloat. Notes on how to deploy based on platform are below.

About

Brickmaster 2 - Now with MQTT!

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages