Colibri

From Stm32World Wiki
Jump to navigation Jump to search


       Colibri 8 PCB
Colibri-3-6.jpg
Colibri 3a photo1.jpg
Colibri rs485u-2.jpg
Colibri aic-RevA-2.jpg

Check out the Colibri Videos on Youtube.

Colibri is a low-cost automation system, primarily intended for building automation, home automation, energy supervision, agriculture supervision and similar systems. Main features beside costs are;

  • Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.
  • Power supply of 9-36 Volt, either AC or DC (some I/O cards won't work with DC supply, and some not with AC supply)
  • Each I/O slot can be powered-up/down individually from the MCU.
  • Each I/O slot is addressable individually.
  • MCU communicates with each I/O slot via I2C and/or SPI. The I2C bus is multiplexed to avoid address collision. SPI uses one Chip Select per I/O slot and 2 additional Chip Select if multi SPI devices are on a single I/O module.
  • Each I/O module has an 1Mbit EEPROM with calibration parameters and a WebAssembly program for the MCU module to execute.
  • Some I/O modules have on-board secondary processors for time-critical or other reasons, for instance RS-485 communication, digital inputs (pulse counting) and PID regulator.

Programming

The Colibri system is designed around two main external projects, Zephyr and WebAssembly (wasm3).

Zephyr provides a lot of operating system type of features, like task scheduling, concurrency data types, timers, peripheral drivers and cross-platform compatibility to be able to support STM32, RP2354 and possibly other MCU families. And combining that with a WebAssembly environment, we should be able to have a lot of platform independence.

The WebAssembly approach is to allow for;

  • I/O modules that are unknown to the MCU module to be installed without re-flashing the firmware,
  • Uploading of user programs, without flashing the firmware,
  • Sandboxed execution to limit issues that user programs can create,
  • Simplified tool chain,
  • Deferring the choice of programming languages,
  • Future-proofing for programming evolution, option to create our own language.

Carrier Boards

  • Colibri 3a has 2 I/O slots and one MCU slot, one USB-C port to the MCU slot, Jolt Connect pin header for programming.
  • Colibri 8 is like the Colibri 3a, but with 7 I/O slots and an isolated RS-485 port to the MCU slot.
  • Planned; Colibri 8pi is like the Colibri 8 but with a full-fledged Raspberry Pi Compute Module 5. 1 Colibri MCU slot and 7 I/O slots,
  • Planned; Colibri 16pi is like the Colibri 8pi, but with 15 I/O slots rather than 7.

MCU Modules

There is a choice, and more will follow;

  • Colibri MCU1 - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.
  • Colibri MCU2 - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.
  • Colibri MCU3 - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.
  • Colibri MCU4 - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.
  • Colibri MCU5 - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.
  • Colibri MCU6 - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.

I/O Modules

The Colibri system is based around the M.2 connector and a non-standard bus for I2C and SPI communications. Each I/O module has an EEPROM memory available to identify which module is present in each I/O slot, links to documentation, calibration parameters, testing results and (up to) 16kB of WebAssembly for the MCU module to execute.

Form Factor

Both Colibri I/O modules and MCU modules are 22x42mm and has an edge connector called M.2 Key E, but it doesn't follow the M.2 specification for Key E. The distance between the I/O slots are specified to 23.5mm, theoretically making it possible for multi-slot I/O modules (none are planned).

WARNING!!! Do NOT plug Colibri I/O modules nor any MCU module into other equipment. Do NOT plug any M.2 card into a Colibri system, unless that card/board is specifically made for Colibri.

Boards

Name Type Description Status
Colibri 3a Colibri Carrier Minimal Colibri carrier board with 2 I/O slots and one MCU slot. MCU slot is to be populated with any of the MCU variants available. Active
Colibri 8 Colibri Carrier Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. Early Access
Colibri 1dp Colibri Carrier Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor. Prototypes
Colibri MCU1 Host MCU MCU module with a STM32WLE5CC, for LoraWAN applications. Prototyping
Colibri MCU2 Host MCU MCU module with a STM32H562RG and a 16MB flash memory. Prototyping
Colibri MCU3 Host MCU MCU module with a STM32F405RG and a 16MB flash memory. Prototyping
Colibri MCU4 Host MCU MCU module with a STM32L475RGTx and a 16MB flash memory. Prototyping
Colibri MCU6 Host MCU MCU module with a Raspberry Pi RP2354B and a 16MB flash memory. Prototyping
M.2 E Breakout M.2 breakout board Generic breakout board for M.2 E key boards. Prototypes
Colibri AIC I/O module Two analog 0-20mA inputs Prototypes
Colibri AIV I/O module Two analog 0-10V inputs Prototypes
Colibri AQV I/O module Two analog 0-10V outputs Active
Colibri DII I/O module Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements. Prototypes
Colibri DIO1 I/O module IEC 61131-2 compliant, 4-channels digital inputs and outputs. Prototypes
Colibri DIU I/O module Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements. Prototypes
Colibri DP1 I/O module A 0-500Pa air pressure sensor mounted on I/O module. Prototyping
Colibri FET I/O module Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel. Prototypes
Colibri PID1 I/O module PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation. Active
Colibri Pt1000 I/O module Two PT1000 temperature sensor inputs. Active
Colibri RS485I I/O module Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU. Prototyping
Colibri RS485U I/O module Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device. Prototypes
Colibri SSR I/O module Two Solid State Relays, ON/OFF. Prototypes
Colibri TRIAC1 I/O module Four Triac outputs, driving 24V AC. Prototyping

Planned Boards

Name Type Description Status
Colibri-8pi Carrier board Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector. Planned
Colibri-16pi Carrier board Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector. Planned

License

All Schematics are licensed with the GPLv3, meaning that you are free to make your own designs or manufacture devices using these. We expect that if you derive new design, that you publish these, preferably on this website.

The software will also be published with GPLv3, when something is workable.

Resources