Lumensalis CircuitPython Framework Documentation
This is the user guide and documentation for the Lumensalis CircuitPython Framework (LCPF).
This documentation is still a work in progress. The LCPF itself is already capable of quite a bit, but the documentation is still thin in places. Adding more documentation and examples, especially to help people get started using the LCPF, is currently the top priority. For now (and even once the documentation is more complete), the best way to get started is to join the Lumensalis Discord Server and ask questions.
Overview
The Primary Goal of the LCPF is helping non-programmers1 incorporate interesting and complex interactive effects into their projects. It doesn’t completely eliminate the need to do a little “coding”, but it makes it much easier2.
It runs on small embedded Controllers with Devices that allow the Controller to interact with the outside world.
It allows you to use Actors, Behaviors, and Devices to create sound, motion, and lighting effects you can see and hear in the real world.
It is designed to be interactive - your project can have “senses” which allow it to react to the environment. Behaviors can respond to inputs from the outside world, such as
- sensors
- a variety of StemmaQTQwiic and other I2C sensors
- IR remotes
- remote control
- WebUI - built in support for HTTP WebUI
- REST/Websockets support for custom external Web interfaces
- DMX (ArtNet)
Getting Started
Before you can use the LCPF, you need to get it installed and working on a supported embedded controller - see the Getting Started section.
Once it’s installed, to use the LCPF for your project you need to
- configure the Hardware you’re using
- configure the behaviors you want your project to use
Configuring the Hardware
If you’re using “shield” style expansion boards (like TerrainTronics D1 Mini Castles), configuring the hardware is fairly easy (much easier thant it would be with most other systems). See the Device Configuration section for details.
Configuring the Behaviors
The LCPF provides a set of behaviors that you can use to add effects to your project. There are two main approaches to doing this:
- Find Example code, copy and customize it
- this is the easiest way to get started
- IF there’s an example that does something similar to you want
- there will be more examples coming soon
- this is the easiest way to get started
- Learn all about the Concepts and Behaviors in
the LCPF and define your project behaviors from scratch
- this allows you to get the most out of the LCPF
- but it does require a bit more work
Starting by finding and copying example code is the recommended approach for most users. Before long, you’ll start understanding a bit about key Concepts like Scenes and key Behaviors like Patterns and Motions from the examples.
Footnotes
-
“Non-programmers” is a bit of a fuzzy term. For the LCPF, it refers to people with little to no experience writing code, and no interest in learning to program in the traditional sense. It’s not only for non-programmers - the LCPF can still be quite useful for those experienced or interested in “coding” - BUT it does things differently. Please see the DevelopersREADME. ↩
-
Well, hopefully, assuming I get things right… ↩