Skip to main content

Brickmaster Lego Control

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brickmaster-0.6.1b2.tar.gz (10.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brickmaster-0.6.1b2-py3-none-any.whl (55.1 kB view details)

Uploaded Python 3

File details

Details for the file brickmaster-0.6.1b2.tar.gz.

File metadata

  • Download URL: brickmaster-0.6.1b2.tar.gz
  • Upload date:
  • Size: 10.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for brickmaster-0.6.1b2.tar.gz
Algorithm Hash digest
SHA256 4978452b4921d804b87d971c2ebe2de15425709558eb9bfc2d71b212b138e530
MD5 7a89cfff015913104c29228a26c1d3a2
BLAKE2b-256 9a5fbdde2df1ccc92e6f24cb94712a9e24316dddac43cefdcc4d93ca1cd0b0ff

See more details on using hashes here.

File details

Details for the file brickmaster-0.6.1b2-py3-none-any.whl.

File metadata

File hashes

Hashes for brickmaster-0.6.1b2-py3-none-any.whl
Algorithm Hash digest
SHA256 fcd1e5e51e940cf518e5f2fa3677c9244e3304d853df5a73d9e87d7e93b7b718
MD5 593aa1c13fef2d6a725257d7d3cd24a7
BLAKE2b-256 ff07a059ddd26617f0478b34bb0b7c23851a1d72280622e5c8ed2209490c61ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page