Skip to Content
Lumensalis CircuitPython framework coming soon 🎉

Supported Controllers

BoardShieldStandardChipRamFlashFeatures
Lolin S2 MiniD1MiniESP32-S22MB4MBD1MPC1
Lolin S3 MiniD1MiniESP32-S32MB4MBD1MPC1
Lilygo T-OI+D1MiniESP32-C3400K4MBD1MPC1, battery

Supported D1 Mini shields

(these require a D1Mini shield compatible controller )

ShieldDesignerFeatures
Cilgerran CastleTerrain-Tronics6x High Power LED and DC Motor driver
Harlech CastleTerrain-TronicsSmart 8xLED Controller
Caernarfon CastleTerrain-TronicsNeoPixel, IR, Qwiic/StemmaQT, triple servo
Caerphilly CastleTerrain-TronicsCarrier board with NeoPixel, IR, Qwiic/StemmaQT

Supported StemmaQT / Qwiic devices

DeviceDesignerFeatures
Harlech Castle XLTerrain-TronicsI2C (Qwiic/StemmaQT) 24 LED controller
AW9523AdafruitI2C GPIO Expander with LED Driver
TLV493DAdafruit3D Magnetic Sensor
MPR121AdafruitCapacitive Touch Sensor
Wii NunchukAdafruitWii Nunchuk Controller
PCA9685Adafruit16-Channel 12-bit PWM/Servo Driver
QtRotaryEncoderAdafruitI2C Rotary Encoder
VL53L0XAdafruitI2C Time-of-Flight Distance Sensor

Generic I2C

DeviceFeatures
SSD1306OLED display

Supported Hardware

In order to use all the nifty hardware that provides Inputs and/or Outputs, LCPF needs to know what hardware you are using. This is usually a fairly complex part of an embedded project. LCPF makes this much easier2. For example, if you use a Lolin S2 Mini with a Terrain-Tronics Caernarfon Castle Kit, IR remote, 35 NeoPixel LEDS, and two servo motors, your entire code for device configuration could be as simple as

caernarfon = mainManager.TerrainTronics.addCaernarfon(neoPixelCount=35) doorMotor = caernarfon.initServo( 1, "doorDrive" ) windowMotor = caernarfon.initServo( 2, "windowMotor" ) remote = caernarfon.addIrRemote()

No pins assignments, no addresses, no board types - LCPF handles all that for you.2 For example, if you use a Lolin S2 Mini with a Terrain-Tronics Caernarfon Castle Kit, configuration is as simple as

caernarfon = mainManager.TerrainTronics.addCaernarfon()

There’s no need what kind of controller you’re running on 3 - LCPF figures that out for you. And since it knows where the various parts of the Caernarfon Castle board are connected, there’s no need to specify pin assignments. So if you are using the IR remote, 35 NeoPixel LEDS, and two servo motors, your entire code for device configuration could be

caernarfon = mainManager.TerrainTronics.addCaernarfon(neoPixelCount=35) doorMotor = caernarfon.initServo( 1, "doorDrive" ) windowMotor = caernarfon.initServo( 2, "windowMotor" ) remote = caernarfon.addIrRemote()

Footnotes

  1. D1MPC = D1 Mini Pin Compatible, accepts Wemos Mini shields (like Terrain-Tronics Castle boards) 2 3

  2. IF you stick within the “curated” set of hardware options. However, there are already a few dozen supported devices and the list continues to grow. 2

  3. Currently supported controllers include Lolin S2 Mini, Lolin S3 Mini, and the Lilygo T-OI Plus

Last updated on