<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://stm32world.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Niclas</id>
	<title>Stm32World Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://stm32world.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Niclas"/>
	<link rel="alternate" type="text/html" href="https://stm32world.com/wiki/Special:Contributions/Niclas"/>
	<updated>2026-04-22T08:44:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline&amp;diff=7377</id>
		<title>Streamline</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline&amp;diff=7377"/>
		<updated>2026-04-21T01:59:40Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Miscellaneous */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:Streamline]][[Category:CurrentMakers]][[Category:Work in progress]]{{metadesc|Streamline Development Boards Home}}&lt;br /&gt;
[[File:Streamline Backplane with 2 blades - top right 3.jpg|300px|thumb|Streamline Backplane with 2 blades - 1 Connect and 1 MCU]]&lt;br /&gt;
This page documents the new [[CurrentMakers]] [[Streamline]] series of [[Green]] development boards.  If you are looking for the previous series, that is document here: [[STM32World Legacy]].&lt;br /&gt;
&lt;br /&gt;
[[Streamline]] boards are available here: [https://currentmakers.com/products/streamline/ Streamline on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Rationale ==&lt;br /&gt;
[[File:3 STM32World Modules stacked.jpg|300px|thumb]]&lt;br /&gt;
A number of [[STM32World Legacy]] boards have been developed, and produced, and in general the &amp;quot;system&amp;quot; worked very well.  It did however have one fatal flaw which was the sole cause of it never being considered for more widespread production.  This flaw was the board to board connector.&lt;br /&gt;
&lt;br /&gt;
The original boards used a 2x20 standard pin header on each side giving a result of 80 pins.  In terms of connectivity this was a pretty good solution.  It did however present some issues:&lt;br /&gt;
&lt;br /&gt;
# Cost - the long pin 2x20 connectors are fairly expensive - around $0.80 each - so $1.60 per board.  This may not sound that high but when producing a lot it becomes a serious cost.&lt;br /&gt;
# Manufacturing -  the headers can not be manufactured with traditional SMD technologies but require a manual step or hand soldering.&lt;br /&gt;
# Fragile - when shipping or disconnecting boards it is hard not to bend one or more pins and once bend it becomes extremely difficult to reconnect them.&lt;br /&gt;
&lt;br /&gt;
To get around this flaw a new &amp;quot;connector&amp;quot; was considered and after a long search the best solution was the standard PCI-E X8 connector.&lt;br /&gt;
&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|5xQqV7BhYxM}}&lt;br /&gt;
&lt;br /&gt;
Receiving the first prototypes ever:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
== Backplane ==&lt;br /&gt;
&lt;br /&gt;
The overall idea is to base [[StreamLine]] around a passive backplane.  The backplane contains a number of PCI connectors with 2 x 49 pins (98) that is simply connected in a parallel bus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Sl bp 5 top left.png|1000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In each end of the bus all the A and B signals are broken out into regular pin headers.&lt;br /&gt;
&lt;br /&gt;
=== Backplane rendering ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Backplane top render.png&lt;br /&gt;
File:Backplane front render.png&lt;br /&gt;
File:Backplane front left render.png&lt;br /&gt;
File:Sl bp 5 top.png&lt;br /&gt;
File:Sl bp 5 top left.png&lt;br /&gt;
File:Sl bp 5 top right.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
=== [[Backplane]]s === &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Backplane 5]]&lt;br /&gt;
| [[File:sl_bp_5_top_left.png|80px]]&lt;br /&gt;
| Basic 5 position backplane&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_backplane_5/ Available]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[Blade]]s ===&lt;br /&gt;
&lt;br /&gt;
==== STM32 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Connect]]&lt;br /&gt;
| [[File:Sl prog top left render.png|80px]]&lt;br /&gt;
| Streamline Programmer &amp;amp; Debugger.  This module is essentially identical to [[Jolt Connect]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_connect/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32F407]]&lt;br /&gt;
| [[File:Sl mcu stm32f407 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32F407]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32f407/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32H562]]&lt;br /&gt;
| [[File:Sl mcu stm32h562 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32H562]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32h562/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32L475]]&lt;br /&gt;
| [[File:Sl mcu stm32l475 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32L475]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32l475/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32C511]]&lt;br /&gt;
| [[File:Sl_mcu_stm32c551_top_left_render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32C511]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32c511/ Available]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Neopixel 8x8]]&lt;br /&gt;
| [[File:Sl neopixel 8x8 top left render.png|80px]]&lt;br /&gt;
| Module with an 8x8 matrix of Neopixel WS2812 LEDs&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_neopixel_8x8/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage SD]]&lt;br /&gt;
| [[File:Sl storage sd top left render rev A.png|80px]]&lt;br /&gt;
| Module with Micro-SD slot&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_sd/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage Flash]]&lt;br /&gt;
| [[File:Sl storage flash top left render.png|80px]]&lt;br /&gt;
| Module with 16 MB Flash storage ([[W25q128]])&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_flash/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage EEPROM]]&lt;br /&gt;
| [[File:Sl storage eeprom top left render.png|80px]]&lt;br /&gt;
| Module with 512kB EEPROM storage ([[M24M01]])&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_eeprom/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Real Time Clock&lt;br /&gt;
| &lt;br /&gt;
| Real time clock with on board coin cell battery (or supercap) backup&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline ESC&lt;br /&gt;
| &lt;br /&gt;
| Electronic speed control for BLDC motors&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline HS USB&lt;br /&gt;
| &lt;br /&gt;
| HS USB blade using [[USB3300]]&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline CAN-FD&lt;br /&gt;
| &lt;br /&gt;
| CAN-FD bus interface&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Ethernet&lt;br /&gt;
| &lt;br /&gt;
| Ethernet interface for STM32F407&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| Streamline RS485&lt;br /&gt;
| &lt;br /&gt;
| Non-isolated RS485 interface&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| Streamline WiFi&lt;br /&gt;
| &lt;br /&gt;
| WiFi interface&lt;br /&gt;
| Idea&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Standard Pinout ==&lt;br /&gt;
&lt;br /&gt;
The pinout table is based on a [[MCU]] board with a 100 pin STM32F407.  Boards using [[STM32]] [[MCU]]s with less pins will leave some of the pins unused.&lt;br /&gt;
&lt;br /&gt;
{{Streamline Pinout}}&lt;br /&gt;
&lt;br /&gt;
== Prototype Photos == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right 3.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right 2.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top left.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - front.jpg&lt;br /&gt;
File:Streamline Multiple Blades.jpg&lt;br /&gt;
File:Streamline MCU STM32L475 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32L475 - bottom view.jpg&lt;br /&gt;
File:Streamline MCU STM32H562 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32H562 - bottom view.jpg&lt;br /&gt;
File:Streamline MCU STM32F407 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32F407 - bottom view.jpg&lt;br /&gt;
File:Streamline Connect - top view.jpg&lt;br /&gt;
File:Streamline Connect - bottom view.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Links ==&lt;br /&gt;
&lt;br /&gt;
[https://currentmakers.com CurrentMakers main site]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7376</id>
		<title>Colibri Zephyr</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7376"/>
		<updated>2026-04-20T11:15:27Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Setting up Zephyr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
Colibri is intended to be used by systems integrators, makers, automation engineers, home automation enthusiasts and in general people how doesn't necessarily know how to write low-level programs or operate soldering iron. That means that &amp;quot;flashing an image&amp;quot; to the MCU is beyond what is expected by the potential customers.&lt;br /&gt;
&lt;br /&gt;
Instead, we need an &amp;quot;operating system&amp;quot;, where we can deploy user applications without low-level programming skills. With that comes two challenges;&lt;br /&gt;
&lt;br /&gt;
1. How are those applications written?&lt;br /&gt;
&lt;br /&gt;
2. How are they going to be executed on the Colibri MCUs?&lt;br /&gt;
&lt;br /&gt;
TL;DR &lt;br /&gt;
* A ''user application'' will deployed in a so called [https://en.wikipedia.org/wiki/WebAssembly ''Web Assembly''] runtime. The number and size of user applications are dependent on available RAM in the MCU.&lt;br /&gt;
* Each I/O module will contain its own ''Web Assembly'' driver that user applications will be able to interface with. &lt;br /&gt;
* I/O driver is (initially?) limited to 16kB in size and will run inside its own ''Web Assembly'' runtime and given time slots to execute, via a &amp;lt;code&amp;gt;tick(slot_number)&amp;lt;/code&amp;gt; function call at a (per I/O slot) settable interval. I/O modules may also emit '''''events''''' that applications can subscribe to. The exact API is documented for each Colibri I/O module.&lt;br /&gt;
&lt;br /&gt;
It could happen that domain-specific languages are to be developed for this environment. Or perhaps, we will managed to get [https://autonomylogic.com/runtime OpenPLC] running on ''Web Assembly''. It is a little bit too early to tell in which direction this will be going.&lt;br /&gt;
&lt;br /&gt;
= What is Zephyr? =&lt;br /&gt;
From [https://docs.zephyrproject.org/latest/introduction/index.html Zephyr's website];&lt;br /&gt;
&lt;br /&gt;
    The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained&lt;br /&gt;
    and embedded systems: from simple embedded environmental sensors and LED wearables to sophisticated &lt;br /&gt;
    embedded controllers, smart watches, and IoT wireless applications.&lt;br /&gt;
&lt;br /&gt;
Please read the entire [https://docs.zephyrproject.org/latest/introduction/index.html introduction page].&lt;br /&gt;
&lt;br /&gt;
Additionally to task scheduling, we also get '''cross-platform APIs for SPI and I2C peripherals''', as well as access to many Zephyr libraries, such as '''Modbus/RTU, TCP/IP, MQTT''' and much more.&lt;br /&gt;
&lt;br /&gt;
= Supported Boards =&lt;br /&gt;
* [[Streamline MCU STM32F407]]&lt;br /&gt;
* [[Colibri MCU3]]&lt;br /&gt;
* [[Colibri 3a]]&lt;br /&gt;
* [[Colibri 8]]&lt;br /&gt;
&lt;br /&gt;
= Colibri Integration =&lt;br /&gt;
Colibri carrier boards and Colibri MCU modules are being integrated with Zephyr. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Setting up Zephyr =&lt;br /&gt;
Follow the installation instructions on [https://docs.zephyrproject.org/latest/develop/getting_started/index.html Zephyr's Getting Started documentation].&lt;br /&gt;
&lt;br /&gt;
You will end up with a &amp;lt;code&amp;gt;${HOME}/zephyrproject&amp;lt;/code&amp;gt; directory. If you chose to place that elsewhere, the instructions below must be adjusted.&lt;br /&gt;
&lt;br /&gt;
Check out [https://github.com/currentmakers/zephyr-cm https://github.com/currentmakers/zephyr-cm]&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;${HOME}/.zephyrrc&amp;lt;/code&amp;gt; with the following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr/                  # Maybe change this&lt;br /&gt;
    export ZEPHYR_EXTRA_MODULES=${HOME}/dev/currentmakers/zephyr-cm   # &amp;lt;--- CHANGE THIS&lt;br /&gt;
&lt;br /&gt;
Create a file &amp;lt;code&amp;gt;init-zephyr&amp;lt;/code&amp;gt; and place somewhere you easily remember how to access it. Let's assume it is in &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;. Following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr&lt;br /&gt;
    source ${ZEPHYR_BASE}/../.venv/bin/activate&lt;br /&gt;
    source ${ZEPHYR_BASE}/zephyr-env.sh&lt;br /&gt;
&lt;br /&gt;
= Developing with Zephyr =&lt;br /&gt;
&lt;br /&gt;
After opening the terminal to compile, remember to run &lt;br /&gt;
    . ${HOME}/init-zephyr&lt;br /&gt;
to enable the Python environment and set up the paths.&lt;br /&gt;
&lt;br /&gt;
For any given Zephyr project, for instance the ones in [https://github.com/currentmakers/zephyr-examples] you build like this&lt;br /&gt;
&lt;br /&gt;
    west build -b colibri_mcu3 -- -DSHIELD=colibri_8&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;code&amp;gt;.elf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; output files are in &amp;lt;code&amp;gt;build/zephyr&amp;lt;/code&amp;gt; and can be flashed as usual with&lt;br /&gt;
&lt;br /&gt;
    st-flash --connect-under-reset write build/zephyr/zephyr.bin 0x8000000&lt;br /&gt;
&lt;br /&gt;
(I have seen the &amp;lt;code&amp;gt;st-flash&amp;lt;/code&amp;gt; failed to access without the &amp;lt;code&amp;gt;connect-under-reset&amp;lt;/code&amp;gt;.)&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7375</id>
		<title>Colibri Zephyr</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7375"/>
		<updated>2026-04-20T11:14:39Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Setting up Zephyr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
Colibri is intended to be used by systems integrators, makers, automation engineers, home automation enthusiasts and in general people how doesn't necessarily know how to write low-level programs or operate soldering iron. That means that &amp;quot;flashing an image&amp;quot; to the MCU is beyond what is expected by the potential customers.&lt;br /&gt;
&lt;br /&gt;
Instead, we need an &amp;quot;operating system&amp;quot;, where we can deploy user applications without low-level programming skills. With that comes two challenges;&lt;br /&gt;
&lt;br /&gt;
1. How are those applications written?&lt;br /&gt;
&lt;br /&gt;
2. How are they going to be executed on the Colibri MCUs?&lt;br /&gt;
&lt;br /&gt;
TL;DR &lt;br /&gt;
* A ''user application'' will deployed in a so called [https://en.wikipedia.org/wiki/WebAssembly ''Web Assembly''] runtime. The number and size of user applications are dependent on available RAM in the MCU.&lt;br /&gt;
* Each I/O module will contain its own ''Web Assembly'' driver that user applications will be able to interface with. &lt;br /&gt;
* I/O driver is (initially?) limited to 16kB in size and will run inside its own ''Web Assembly'' runtime and given time slots to execute, via a &amp;lt;code&amp;gt;tick(slot_number)&amp;lt;/code&amp;gt; function call at a (per I/O slot) settable interval. I/O modules may also emit '''''events''''' that applications can subscribe to. The exact API is documented for each Colibri I/O module.&lt;br /&gt;
&lt;br /&gt;
It could happen that domain-specific languages are to be developed for this environment. Or perhaps, we will managed to get [https://autonomylogic.com/runtime OpenPLC] running on ''Web Assembly''. It is a little bit too early to tell in which direction this will be going.&lt;br /&gt;
&lt;br /&gt;
= What is Zephyr? =&lt;br /&gt;
From [https://docs.zephyrproject.org/latest/introduction/index.html Zephyr's website];&lt;br /&gt;
&lt;br /&gt;
    The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained&lt;br /&gt;
    and embedded systems: from simple embedded environmental sensors and LED wearables to sophisticated &lt;br /&gt;
    embedded controllers, smart watches, and IoT wireless applications.&lt;br /&gt;
&lt;br /&gt;
Please read the entire [https://docs.zephyrproject.org/latest/introduction/index.html introduction page].&lt;br /&gt;
&lt;br /&gt;
Additionally to task scheduling, we also get '''cross-platform APIs for SPI and I2C peripherals''', as well as access to many Zephyr libraries, such as '''Modbus/RTU, TCP/IP, MQTT''' and much more.&lt;br /&gt;
&lt;br /&gt;
= Supported Boards =&lt;br /&gt;
* [[Streamline MCU STM32F407]]&lt;br /&gt;
* [[Colibri MCU3]]&lt;br /&gt;
* [[Colibri 3a]]&lt;br /&gt;
* [[Colibri 8]]&lt;br /&gt;
&lt;br /&gt;
= Colibri Integration =&lt;br /&gt;
Colibri carrier boards and Colibri MCU modules are being integrated with Zephyr. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Setting up Zephyr =&lt;br /&gt;
Follow the installation instructions on [https://docs.zephyrproject.org/latest/develop/getting_started/index.html]&lt;br /&gt;
&lt;br /&gt;
You will end up with a &amp;lt;code&amp;gt;${HOME}/zephyrproject&amp;lt;/code&amp;gt; directory. If you chose to place that elsewhere, the instructions below must be adjusted.&lt;br /&gt;
&lt;br /&gt;
Check out [https://github.com/currentmakers/zephyr-cm https://github.com/currentmakers/zephyr-cm]&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;${HOME}/.zephyrrc&amp;lt;/code&amp;gt; with the following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr/                  # Maybe change this&lt;br /&gt;
    export ZEPHYR_EXTRA_MODULES=${HOME}/dev/currentmakers/zephyr-cm   # &amp;lt;--- CHANGE THIS&lt;br /&gt;
&lt;br /&gt;
Create a file &amp;lt;code&amp;gt;init-zephyr&amp;lt;/code&amp;gt; and place somewhere you easily remember how to access it. Let's assume it is in &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;. Following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr&lt;br /&gt;
    source ${ZEPHYR_BASE}/../.venv/bin/activate&lt;br /&gt;
    source ${ZEPHYR_BASE}/zephyr-env.sh&lt;br /&gt;
&lt;br /&gt;
= Developing with Zephyr =&lt;br /&gt;
&lt;br /&gt;
After opening the terminal to compile, remember to run &lt;br /&gt;
    . ${HOME}/init-zephyr&lt;br /&gt;
to enable the Python environment and set up the paths.&lt;br /&gt;
&lt;br /&gt;
For any given Zephyr project, for instance the ones in [https://github.com/currentmakers/zephyr-examples] you build like this&lt;br /&gt;
&lt;br /&gt;
    west build -b colibri_mcu3 -- -DSHIELD=colibri_8&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;code&amp;gt;.elf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; output files are in &amp;lt;code&amp;gt;build/zephyr&amp;lt;/code&amp;gt; and can be flashed as usual with&lt;br /&gt;
&lt;br /&gt;
    st-flash --connect-under-reset write build/zephyr/zephyr.bin 0x8000000&lt;br /&gt;
&lt;br /&gt;
(I have seen the &amp;lt;code&amp;gt;st-flash&amp;lt;/code&amp;gt; failed to access without the &amp;lt;code&amp;gt;connect-under-reset&amp;lt;/code&amp;gt;.)&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7374</id>
		<title>Colibri Zephyr</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7374"/>
		<updated>2026-04-20T10:53:52Z</updated>

		<summary type="html">&lt;p&gt;Niclas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
Colibri is intended to be used by systems integrators, makers, automation engineers, home automation enthusiasts and in general people how doesn't necessarily know how to write low-level programs or operate soldering iron. That means that &amp;quot;flashing an image&amp;quot; to the MCU is beyond what is expected by the potential customers.&lt;br /&gt;
&lt;br /&gt;
Instead, we need an &amp;quot;operating system&amp;quot;, where we can deploy user applications without low-level programming skills. With that comes two challenges;&lt;br /&gt;
&lt;br /&gt;
1. How are those applications written?&lt;br /&gt;
&lt;br /&gt;
2. How are they going to be executed on the Colibri MCUs?&lt;br /&gt;
&lt;br /&gt;
TL;DR &lt;br /&gt;
* A ''user application'' will deployed in a so called [https://en.wikipedia.org/wiki/WebAssembly ''Web Assembly''] runtime. The number and size of user applications are dependent on available RAM in the MCU.&lt;br /&gt;
* Each I/O module will contain its own ''Web Assembly'' driver that user applications will be able to interface with. &lt;br /&gt;
* I/O driver is (initially?) limited to 16kB in size and will run inside its own ''Web Assembly'' runtime and given time slots to execute, via a &amp;lt;code&amp;gt;tick(slot_number)&amp;lt;/code&amp;gt; function call at a (per I/O slot) settable interval. I/O modules may also emit '''''events''''' that applications can subscribe to. The exact API is documented for each Colibri I/O module.&lt;br /&gt;
&lt;br /&gt;
It could happen that domain-specific languages are to be developed for this environment. Or perhaps, we will managed to get [https://autonomylogic.com/runtime OpenPLC] running on ''Web Assembly''. It is a little bit too early to tell in which direction this will be going.&lt;br /&gt;
&lt;br /&gt;
= What is Zephyr? =&lt;br /&gt;
From [https://docs.zephyrproject.org/latest/introduction/index.html Zephyr's website];&lt;br /&gt;
&lt;br /&gt;
    The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained&lt;br /&gt;
    and embedded systems: from simple embedded environmental sensors and LED wearables to sophisticated &lt;br /&gt;
    embedded controllers, smart watches, and IoT wireless applications.&lt;br /&gt;
&lt;br /&gt;
Please read the entire [https://docs.zephyrproject.org/latest/introduction/index.html introduction page].&lt;br /&gt;
&lt;br /&gt;
Additionally to task scheduling, we also get '''cross-platform APIs for SPI and I2C peripherals''', as well as access to many Zephyr libraries, such as '''Modbus/RTU, TCP/IP, MQTT''' and much more.&lt;br /&gt;
&lt;br /&gt;
= Supported Boards =&lt;br /&gt;
* [[Streamline MCU STM32F407]]&lt;br /&gt;
* [[Colibri MCU3]]&lt;br /&gt;
* [[Colibri 3a]]&lt;br /&gt;
* [[Colibri 8]]&lt;br /&gt;
&lt;br /&gt;
= Colibri Integration =&lt;br /&gt;
Colibri carrier boards and Colibri MCU modules are being integrated with Zephyr. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Setting up Zephyr =&lt;br /&gt;
Follow the installation instructions on [https://docs.zephyrproject.org/latest/develop/getting_started/index.html]&lt;br /&gt;
&lt;br /&gt;
You will end up with a &amp;lt;code&amp;gt;${HOME}/zephyrproject&amp;lt;/code&amp;gt; directory. If you chose to place that elsewhere, the instructions below must be adjusted.&lt;br /&gt;
&lt;br /&gt;
Check out [https://github.com/currentmakers/zephyr-cm]&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;${HOME}/.zephyrrc&amp;lt;/code&amp;gt; with the following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr/                  # Maybe change this&lt;br /&gt;
    export ZEPHYR_EXTRA_MODULES=${HOME}/dev/currentmakers/zephyr-cm   # &amp;lt;--- CHANGE THIS&lt;br /&gt;
&lt;br /&gt;
Create a file &amp;lt;code&amp;gt;init-zephyr&amp;lt;/code&amp;gt; and place somewhere you easily remember how to access it. Let's assume it is in &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;. Following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr&lt;br /&gt;
    source ${ZEPHYR_BASE}/../.venv/bin/activate&lt;br /&gt;
    source ${ZEPHYR_BASE}/zephyr-env.sh&lt;br /&gt;
&lt;br /&gt;
= Developing with Zephyr =&lt;br /&gt;
&lt;br /&gt;
After opening the terminal to compile, remember to run &lt;br /&gt;
    . ${HOME}/init-zephyr&lt;br /&gt;
to enable the Python environment and set up the paths.&lt;br /&gt;
&lt;br /&gt;
For any given Zephyr project, for instance the ones in [https://github.com/currentmakers/zephyr-examples] you build like this&lt;br /&gt;
&lt;br /&gt;
    west build -b colibri_mcu3 -- -DSHIELD=colibri_8&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;code&amp;gt;.elf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; output files are in &amp;lt;code&amp;gt;build/zephyr&amp;lt;/code&amp;gt; and can be flashed as usual with&lt;br /&gt;
&lt;br /&gt;
    st-flash --connect-under-reset write build/zephyr/zephyr.bin 0x8000000&lt;br /&gt;
&lt;br /&gt;
(I have seen the &amp;lt;code&amp;gt;st-flash&amp;lt;/code&amp;gt; failed to access without the &amp;lt;code&amp;gt;connect-under-reset&amp;lt;/code&amp;gt;.)&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7373</id>
		<title>Colibri Zephyr</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_Zephyr&amp;diff=7373"/>
		<updated>2026-04-20T10:53:25Z</updated>

		<summary type="html">&lt;p&gt;Niclas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
Colibri is intended to be used by systems integrators, makers, automation engineers, home automation enthusiasts and in general people how doesn't necessarily know how to write low-level programs or operate soldering iron. That means that &amp;quot;flashing an image&amp;quot; to the MCU is beyond what is expected by the potential customers.&lt;br /&gt;
&lt;br /&gt;
Instead, we need an &amp;quot;operating system&amp;quot;, where we can deploy user applications without low-level programming skills. With that comes two challenges;&lt;br /&gt;
&lt;br /&gt;
1. How are those applications written?&lt;br /&gt;
&lt;br /&gt;
2. How are they going to be executed on the Colibri MCUs?&lt;br /&gt;
&lt;br /&gt;
TL;DR &lt;br /&gt;
* A ''user application'' will deployed in a so called [https://en.wikipedia.org/wiki/WebAssembly ''Web Assembly''] runtime. The number and size of user applications are dependent on available RAM in the MCU.&lt;br /&gt;
* Each I/O module will contain its own ''Web Assembly'' driver that user applications will be able to interface with. &lt;br /&gt;
* I/O driver is (initially?) limited to 16kB in size and will run inside its own ''Web Assembly'' runtime and given time slots to execute, via a &amp;lt;code&amp;gt;tick(slot_number)&amp;lt;/code&amp;gt; function call at a (per I/O slot) settable interval. I/O modules may also emit '''''events''''' that applications can subscribe to. The exact API is documented for each Colibri I/O module.&lt;br /&gt;
&lt;br /&gt;
It could happen that domain-specific languages are to be developed for this environment. Or perhaps, we will managed to get [https://autonomylogic.com/runtime OpenPLC] running on ''Web Assembly''. It is a little bit too early to tell in which direction this will be going.&lt;br /&gt;
&lt;br /&gt;
= What is Zephyr? =&lt;br /&gt;
From [https://docs.zephyrproject.org/latest/introduction/index.html Zephyr's website];&lt;br /&gt;
&lt;br /&gt;
    The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained&lt;br /&gt;
    and embedded systems: from simple embedded environmental sensors and LED wearables to sophisticated &lt;br /&gt;
    embedded controllers, smart watches, and IoT wireless applications.&lt;br /&gt;
&lt;br /&gt;
Please read the entire [https://docs.zephyrproject.org/latest/introduction/index.html introduction page].&lt;br /&gt;
&lt;br /&gt;
Additionally to task scheduling, we also get '''cross-platform APIs for SPI and I2C peripherals''', as well as access to many Zephyr libraries, such as '''Modbus/RTU, TCP/IP, MQTT''' and much more.&lt;br /&gt;
&lt;br /&gt;
= Colibri Integration =&lt;br /&gt;
Colibri carrier boards and Colibri MCU modules are being integrated with Zephyr. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Setting up Zephyr =&lt;br /&gt;
Follow the installation instructions on [https://docs.zephyrproject.org/latest/develop/getting_started/index.html]&lt;br /&gt;
&lt;br /&gt;
You will end up with a &amp;lt;code&amp;gt;${HOME}/zephyrproject&amp;lt;/code&amp;gt; directory. If you chose to place that elsewhere, the instructions below must be adjusted.&lt;br /&gt;
&lt;br /&gt;
Check out [https://github.com/currentmakers/zephyr-cm]&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;${HOME}/.zephyrrc&amp;lt;/code&amp;gt; with the following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr/                  # Maybe change this&lt;br /&gt;
    export ZEPHYR_EXTRA_MODULES=${HOME}/dev/currentmakers/zephyr-cm   # &amp;lt;--- CHANGE THIS&lt;br /&gt;
&lt;br /&gt;
Create a file &amp;lt;code&amp;gt;init-zephyr&amp;lt;/code&amp;gt; and place somewhere you easily remember how to access it. Let's assume it is in &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;. Following content;&lt;br /&gt;
    export ZEPHYR_BASE=${HOME}/zephyrproject/zephyr&lt;br /&gt;
    source ${ZEPHYR_BASE}/../.venv/bin/activate&lt;br /&gt;
    source ${ZEPHYR_BASE}/zephyr-env.sh&lt;br /&gt;
&lt;br /&gt;
= Developing with Zephyr =&lt;br /&gt;
&lt;br /&gt;
After opening the terminal to compile, remember to run &lt;br /&gt;
    . ${HOME}/init-zephyr&lt;br /&gt;
to enable the Python environment and set up the paths.&lt;br /&gt;
&lt;br /&gt;
For any given Zephyr project, for instance the ones in [https://github.com/currentmakers/zephyr-examples] you build like this&lt;br /&gt;
&lt;br /&gt;
    west build -b colibri_mcu3 -- -DSHIELD=colibri_8&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;code&amp;gt;.elf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; output files are in &amp;lt;code&amp;gt;build/zephyr&amp;lt;/code&amp;gt; and can be flashed as usual with&lt;br /&gt;
&lt;br /&gt;
    st-flash --connect-under-reset write build/zephyr/zephyr.bin 0x8000000&lt;br /&gt;
&lt;br /&gt;
(I have seen the &amp;lt;code&amp;gt;st-flash&amp;lt;/code&amp;gt; failed to access without the &amp;lt;code&amp;gt;connect-under-reset&amp;lt;/code&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
= Supported Boards =&lt;br /&gt;
* [[Streamline MCU STM32F407]]&lt;br /&gt;
* [[Colibri MCU3]]&lt;br /&gt;
* [[Colibri 3a]]&lt;br /&gt;
* [[Colibri 8]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7372</id>
		<title>File:Colibri Architecture-1.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7372"/>
		<updated>2026-04-20T04:37:22Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Niclas uploaded a new version of File:Colibri Architecture-1.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
One architectural conceptual view of the Colibri system.&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7371</id>
		<title>File:Colibri Architecture-1.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7371"/>
		<updated>2026-04-20T01:04:38Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Niclas uploaded a new version of File:Colibri Architecture-1.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
One architectural conceptual view of the Colibri system.&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7370</id>
		<title>File:Colibri Architecture-1.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7370"/>
		<updated>2026-04-19T23:53:24Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Niclas uploaded a new version of File:Colibri Architecture-1.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
One architectural conceptual view of the Colibri system.&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7369</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7369"/>
		<updated>2026-04-19T16:00:13Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Architecture Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a WebAssembly program for the MCU module to execute.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Architecture Overview ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_Architecture-1.svg|240px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Colors in this view represents who creates the software for each part.&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
The Colibri system is designed around two main external projects, [[Colibri Zephyr|Zephyr]] and WebAssembly ([https://github.com/wasm3/wasm3 wasm3]).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The WebAssembly approach is to allow for;&lt;br /&gt;
* I/O modules that are unknown to the MCU module to be installed without re-flashing the firmware,&lt;br /&gt;
* Uploading of user programs, without flashing the firmware,&lt;br /&gt;
* Sandboxed execution to limit issues that user programs can create,&lt;br /&gt;
* Simplified tool chain,&lt;br /&gt;
* Deferring the choice of programming languages,&lt;br /&gt;
* Future-proofing for programming evolution, option to create our own language.&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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 [[Colibri_EEPROM_Layout|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.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU6]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7368</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7368"/>
		<updated>2026-04-19T15:59:53Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Architecture Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a WebAssembly program for the MCU module to execute.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Architecture Overview ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_Architecture-1.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Colors in this view represents who creates the software for each part.&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
The Colibri system is designed around two main external projects, [[Colibri Zephyr|Zephyr]] and WebAssembly ([https://github.com/wasm3/wasm3 wasm3]).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The WebAssembly approach is to allow for;&lt;br /&gt;
* I/O modules that are unknown to the MCU module to be installed without re-flashing the firmware,&lt;br /&gt;
* Uploading of user programs, without flashing the firmware,&lt;br /&gt;
* Sandboxed execution to limit issues that user programs can create,&lt;br /&gt;
* Simplified tool chain,&lt;br /&gt;
* Deferring the choice of programming languages,&lt;br /&gt;
* Future-proofing for programming evolution, option to create our own language.&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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 [[Colibri_EEPROM_Layout|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.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU6]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7367</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7367"/>
		<updated>2026-04-19T15:58:44Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a WebAssembly program for the MCU module to execute.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Architecture Overview ==&lt;br /&gt;
[File:Colibri_Architecture-1.svg]&lt;br /&gt;
&lt;br /&gt;
Colors in this view represents who creates the software for each part.&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
The Colibri system is designed around two main external projects, [[Colibri Zephyr|Zephyr]] and WebAssembly ([https://github.com/wasm3/wasm3 wasm3]).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The WebAssembly approach is to allow for;&lt;br /&gt;
* I/O modules that are unknown to the MCU module to be installed without re-flashing the firmware,&lt;br /&gt;
* Uploading of user programs, without flashing the firmware,&lt;br /&gt;
* Sandboxed execution to limit issues that user programs can create,&lt;br /&gt;
* Simplified tool chain,&lt;br /&gt;
* Deferring the choice of programming languages,&lt;br /&gt;
* Future-proofing for programming evolution, option to create our own language.&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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 [[Colibri_EEPROM_Layout|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.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU6]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7366</id>
		<title>File:Colibri Architecture-1.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7366"/>
		<updated>2026-04-19T15:57:57Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Niclas uploaded a new version of File:Colibri Architecture-1.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
One architectural conceptual view of the Colibri system.&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7365</id>
		<title>File:Colibri Architecture-1.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_Architecture-1.svg&amp;diff=7365"/>
		<updated>2026-04-19T15:56:43Z</updated>

		<summary type="html">&lt;p&gt;Niclas: One architectural conceptual view of the Colibri system.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
One architectural conceptual view of the Colibri system.&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7350</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7350"/>
		<updated>2026-04-17T04:55:00Z</updated>

		<summary type="html">&lt;p&gt;Niclas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
The MCU3 is a relatively simple MCU module, on an M.2 board with the size 22x42mm and the Key E configuration.&lt;br /&gt;
&lt;br /&gt;
Besides the [[STM32F405|STM32F405RG]] MCU there are also &lt;br /&gt;
* 128 Mbits (16MB) flash memory for application use.&lt;br /&gt;
* a dual-colored (Green/Red) LED&lt;br /&gt;
* 16MHz HSE crystal&lt;br /&gt;
* 32768 Hz LSE crystal, intended for calendar functions in the STM32.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: All modules in Colibri are NOT electrically compatible with the M.2 connector standard. DO NOT plug Colibri modules into any M.2 socket other than Colibri (or compatible) ones. And DO NOT plug any M.2 modules (Key E is typically WiFi/BLE) into a Colibri carrier board.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
Use the STM32CubeMX [[File:Mcu3.ioc|mcu.ioc template file]] to get the pinout right from the beginning. (Right-click, &amp;quot;Save link as...&amp;quot; to download it)&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7349</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7349"/>
		<updated>2026-04-17T01:44:36Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a WebAssembly program for the MCU module to execute.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
The Colibri system is designed around two main external projects, [[Colibri Zephyr|Zephyr]] and WebAssembly ([https://github.com/wasm3/wasm3 wasm3]).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The WebAssembly approach is to allow for;&lt;br /&gt;
* I/O modules that are unknown to the MCU module to be installed without re-flashing the firmware,&lt;br /&gt;
* Uploading of user programs, without flashing the firmware,&lt;br /&gt;
* Sandboxed execution to limit issues that user programs can create,&lt;br /&gt;
* Simplified tool chain,&lt;br /&gt;
* Deferring the choice of programming languages,&lt;br /&gt;
* Future-proofing for programming evolution, option to create our own language.&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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 [[Colibri_EEPROM_Layout|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.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU6]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7348</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7348"/>
		<updated>2026-04-17T01:35:36Z</updated>

		<summary type="html">&lt;p&gt;Niclas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a WebAssembly program for the MCU module to execute.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
The Colibri system is designed around two main external projects, [[Colibri Zephyr|Zephyr]] and WebAssembly ([https://github.com/wasm3/wasm3 wasm3]).&lt;br /&gt;
&lt;br /&gt;
Zephyr provides a lot of ''operating system'' type of features, like task scheduling, concurrency data types, timers, peripheral drivers and more.&lt;br /&gt;
&lt;br /&gt;
The WebAssembly approach is to allow for;&lt;br /&gt;
* I/O modules that are unknown to the MCU module to be installed without re-flashing the firmware,&lt;br /&gt;
* Uploading of user programs, without flashing the firmware,&lt;br /&gt;
* Sandboxed execution to limit issues that user programs can create,&lt;br /&gt;
* Simplified tool chain,&lt;br /&gt;
* Deferring the choice of programming languages,&lt;br /&gt;
* Future-proofing for programming evolution, option to create our own language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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 [[Colibri_EEPROM_Layout|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.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU6]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7347</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7347"/>
		<updated>2026-04-17T01:29:50Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* I/O Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a Forth program for the MCU module.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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 [[Colibri_EEPROM_Layout|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.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU6]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7346</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7346"/>
		<updated>2026-04-17T01:24:19Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a Forth program for the MCU module.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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. Furthermore, there is a ''[[zeptoforth]]'' program located in the EEPROM that contains the functionality of the module, executed in the MCU module. This allows for future I/O modules without requiring the upgrade of the MCU module. You might want to use other [[Colibri Programming Languages]], if Forth does not suit your needs.&lt;br /&gt;
&lt;br /&gt;
NOTE; '''''[[zeptoforth]]''''' is only available/supported for the ''Colibri MCU3'' at the moment, while support for ''Colibri MCU4'' and ''Colibri MCU5'' will be coming soon.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU6]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri&amp;diff=7345</id>
		<title>Colibri</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri&amp;diff=7345"/>
		<updated>2026-04-17T01:23:56Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* MCU Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri Automation System}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width: 250px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;width: 250px; height: 150px; overflow: hidden; position: relative; background: #000;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;position: absolute; top: -20px; left: -15px;&amp;quot;&amp;gt;&lt;br /&gt;
        [[File:Colibri_8_photo1.jpg|250px|link=File:Colibri_8_photo1.jpg|alt=Colibri 8 PCB]]&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri rs485u-2.jpg|180px|thumb]]&lt;br /&gt;
[[File:Colibri aic-RevA-2.jpg|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Check out the [[Colibri Videos]] on Youtube.&lt;br /&gt;
&lt;br /&gt;
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;&lt;br /&gt;
* Flexible I/O system, via MCU modules and I/O modules in M.2 Key E sockets. Many types already developed.&lt;br /&gt;
* 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)&lt;br /&gt;
* Each I/O slot can be powered-up/down individually from the MCU.&lt;br /&gt;
* Each I/O slot is addressable individually.&lt;br /&gt;
* 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.&lt;br /&gt;
* Each I/O module has an 1Mbit EEPROM with calibration parameters and a Forth program for the MCU module.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Carrier Boards ==&lt;br /&gt;
* ''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.&lt;br /&gt;
* ''Colibri 8'' is like the ''Colibri 3a'', but with 7 I/O slots and an isolated RS-485 port to the MCU slot.&lt;br /&gt;
* 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,&lt;br /&gt;
* Planned; ''Colibri 16pi'' is like the ''Colibri 8pi'', but with 15 I/O slots rather than 7.&lt;br /&gt;
&lt;br /&gt;
== MCU Modules ==&lt;br /&gt;
There is a choice, and more will follow;&lt;br /&gt;
&lt;br /&gt;
* ''[[Colibri MCU1]]'' - MCU module with a STM32WLE5, 256kB Flash, 64kB RAM, on-chip LoRa and LoraWAN protocol available in STM32CubeMX.&lt;br /&gt;
* ''[[Colibri MCU2]]'' - MCU module with a STM32H562RG, 1024kB Flash, 640kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU3]]'' - MCU module with a STM32F405RG, 1MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU4]]'' - MCU module with a STM32L475RG, 1MB Flash, 128kB RAM and a 16MB external flash memory.&lt;br /&gt;
* ''[[Colibri MCU5]]'' - (deprecated) MCU module with a STM32F103RE, 512kB Flash and 64kB RAM. No external flash memory.&lt;br /&gt;
* ''[[Colibri MCU6]]'' - MCU module with a RP2354B, 2MB Flash, 192kB+4kB RAM and a 16MB external flash memory.&lt;br /&gt;
&lt;br /&gt;
== I/O Modules ==&lt;br /&gt;
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. Furthermore, there is a ''[[zeptoforth]]'' program located in the EEPROM that contains the functionality of the module, executed in the MCU module. This allows for future I/O modules without requiring the upgrade of the MCU module. You might want to use other [[Colibri Programming Languages]], if Forth does not suit your needs.&lt;br /&gt;
&lt;br /&gt;
NOTE; '''''[[zeptoforth]]''''' is only available/supported for the ''Colibri MCU3'' at the moment, while support for ''Colibri MCU4'' and ''Colibri MCU5'' will be coming soon.&lt;br /&gt;
&lt;br /&gt;
== [[Colibri Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
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,&lt;br /&gt;
theoretically making it possible for multi-slot I/O modules (none are planned).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF4444&amp;quot;&amp;gt;'''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.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 3a]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| 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.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 8]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Colibri carrier board with Colibri MCU slot and 7 Colibri I/O slots. &lt;br /&gt;
| Early Access&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri 1dp]]''&lt;br /&gt;
| Colibri Carrier&lt;br /&gt;
| Minimal Colibri Host with a single MCU slot and 0-500Pa air pressure sensor.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU1]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32WLE5CC, for LoraWAN applications.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU2]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32H562RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU3]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32F405RG and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU4]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a STM32L475RGTx and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri MCU5]]''&lt;br /&gt;
| Host MCU&lt;br /&gt;
| MCU module with a Raspberry Pi RP2354B and a 16MB flash memory.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[M.2 E Breakout]]''&lt;br /&gt;
| M.2 breakout board&lt;br /&gt;
| Generic breakout board for M.2 E key boards.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIC]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-20mA inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AIV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V inputs&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri AQV]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two analog 0-10V outputs&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DII]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two ISOLATED digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIO1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| IEC 61131-2 compliant, 4-channels digital inputs and outputs.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DIU]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital inputs, for state, counter, pulsewidth measurement. On-board STM32F030 for ability to count very fast pulses and high accuracy PWM measurements.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri DP1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| A 0-500Pa air pressure sensor mounted on I/O module.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri FET]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four digital outputs, FET outputs sinking to GND. Max 1 Amp per channel.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri PID1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| PID regulator, with a PT1000 input and a 0-10V analog output. On-board STM32F030 for host-independent operation.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri Pt1000]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two PT1000 temperature sensor inputs.&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485I]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Isolated RS-485 port. On-board STM32G431KB to implement protocols, such as Modbus RTU.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri RS485U]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two non-isolated RS-485 ports. On-board STM32F030 implementing Modbus protocol, either as master or slave device.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri SSR]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Two Solid State Relays, ON/OFF.&lt;br /&gt;
| Prototypes&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri TRIAC1]]''&lt;br /&gt;
| I/O module&lt;br /&gt;
| Four Triac outputs, driving 24V AC.&lt;br /&gt;
| Prototyping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-8pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 7 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|-&lt;br /&gt;
| ''[[Colibri-16pi]]''&lt;br /&gt;
| Carrier board&lt;br /&gt;
| Colibri carrier board with Raspberry Pi CM5, Colibri MCU slot, 15 Colibri I/O slots, two Ethernet ports, 3 USB ports and SDcard connector.&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= License =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The software will also be published with GPLv3, when something is workable.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU5&amp;diff=7344</id>
		<title>Colibri MCU5</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU5&amp;diff=7344"/>
		<updated>2026-04-17T01:20:33Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU5 module}}&lt;br /&gt;
[[File:Colibri-mcu5-revB-photo-front.png|180px|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU5 is a processor board for the [[Colibri]] carrier boards. It uses a Raspberry Pi RP2354A as the MCU.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU2&amp;diff=7343</id>
		<title>Colibri MCU2</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU2&amp;diff=7343"/>
		<updated>2026-04-17T01:19:55Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU2 module}}&lt;br /&gt;
[[Colibri]] MCU2 is a processor board for the [[Colibri]] carrier boards. It is an STM32H562RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu2.ioc|mcu2.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== ''zeptoforth'' ==&lt;br /&gt;
The MCU2 does NOT come preloaded with the [[zeptoforth]] programming language and environment. We intend to assist the ''zeptoforth'' project to achieve this. Stay tuned for updates.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU4&amp;diff=7342</id>
		<title>Colibri MCU4</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU4&amp;diff=7342"/>
		<updated>2026-04-17T01:19:37Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU4 module}}&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU4 is a processor board for the [[Colibri]] carrier boards. It is simply an STM32L475RE to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu4.ioc|mcu4.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective development environment.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
If Forth is not your cup of tea, the standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU2&amp;diff=7341</id>
		<title>Colibri MCU2</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU2&amp;diff=7341"/>
		<updated>2026-04-17T01:19:04Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU2 module}}&lt;br /&gt;
[[Colibri]] MCU2 is a processor board for the [[Colibri]] carrier boards. It is an STM32H562RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu2.ioc|MCU2.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== ''zeptoforth'' ==&lt;br /&gt;
The MCU2 does NOT come preloaded with the [[zeptoforth]] programming language and environment. We intend to assist the ''zeptoforth'' project to achieve this. Stay tuned for updates.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU2&amp;diff=7340</id>
		<title>Colibri MCU2</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU2&amp;diff=7340"/>
		<updated>2026-04-17T01:18:39Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU2 module}}&lt;br /&gt;
[[Colibri]] MCU2 is a processor board for the [[Colibri]] carrier boards. It is an STM32H562RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu2.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== ''zeptoforth'' ==&lt;br /&gt;
The MCU2 does NOT come preloaded with the [[zeptoforth]] programming language and environment. We intend to assist the ''zeptoforth'' project to achieve this. Stay tuned for updates.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7339</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7339"/>
		<updated>2026-04-17T01:16:42Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* C/C++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
The MCU3 is a relatively simple MCU module, on an M.2 board with the size 22x42mm and the Key E configuration.&lt;br /&gt;
&lt;br /&gt;
Besides the [[STM32F405|STM32F405RE]] MCU there are also &lt;br /&gt;
* 128 Mbits (16MB) flash memory for application use.&lt;br /&gt;
* a dual-colored (Green/Red) LED&lt;br /&gt;
* 16MHz HSE crystal&lt;br /&gt;
* 32768 Hz LSE crystal, intended for calendar functions in the STM32.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: All modules in Colibri are NOT electrically compatible with the M.2 connector standard. DO NOT plug Colibri modules into any M.2 socket other than Colibri (or compatible) ones. And DO NOT plug any M.2 modules (Key E is typically WiFi/BLE) into a Colibri carrier board.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
Use the STM32CubeMX [[File:Mcu3.ioc|mcu.ioc template file]] to get the pinout right from the beginning. (Right-click, &amp;quot;Save link as...&amp;quot; to download it)&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7338</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7338"/>
		<updated>2026-04-17T01:16:22Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* C/C++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
The MCU3 is a relatively simple MCU module, on an M.2 board with the size 22x42mm and the Key E configuration.&lt;br /&gt;
&lt;br /&gt;
Besides the [[STM32F405|STM32F405RE]] MCU there are also &lt;br /&gt;
* 128 Mbits (16MB) flash memory for application use.&lt;br /&gt;
* a dual-colored (Green/Red) LED&lt;br /&gt;
* 16MHz HSE crystal&lt;br /&gt;
* 32768 Hz LSE crystal, intended for calendar functions in the STM32.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: All modules in Colibri are NOT electrically compatible with the M.2 connector standard. DO NOT plug Colibri modules into any M.2 socket other than Colibri (or compatible) ones. And DO NOT plug any M.2 modules (Key E is typically WiFi/BLE) into a Colibri carrier board.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
Use the STM32CubeMX [[File:Mcu.ioc|mcu.ioc template file]] to get the pinout right from the beginning. (Right-click, &amp;quot;Save link as...&amp;quot; to download it)&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_3a&amp;diff=7337</id>
		<title>Colibri 3a</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_3a&amp;diff=7337"/>
		<updated>2026-04-17T01:13:14Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* MCU slot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Coliri 3a carrier board}}&lt;br /&gt;
&lt;br /&gt;
Minimal Colibri carrier board with 1 MCU slot and 2 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. There is &lt;br /&gt;
nothing connected to the USART1 port.&lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are two I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
There are others.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
=== I2C Addresses ===&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-3a.svg]]&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
* [[File:Colibri 3-RevC-pcb.pdf|thumb|Colibri 3 PCB]]&lt;br /&gt;
* [[File:Colibri 3-RevC-schematics.pdf|thumb|Colibri 3 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_3a&amp;diff=7336</id>
		<title>Colibri 3a</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_3a&amp;diff=7336"/>
		<updated>2026-04-17T01:12:54Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* I2C communications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Coliri 3a carrier board}}&lt;br /&gt;
&lt;br /&gt;
Minimal Colibri carrier board with 1 MCU slot and 2 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri-3-6.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_3a_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. There is &lt;br /&gt;
nothing connected to the USART1 port.&lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are two I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
There are others.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
=== I2C Addresses ===&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-3a.svg]]&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
* [[File:Colibri 3-RevC-pcb.pdf|thumb|Colibri 3 PCB]]&lt;br /&gt;
* [[File:Colibri 3-RevC-schematics.pdf|thumb|Colibri 3 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7335</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7335"/>
		<updated>2026-04-17T01:11:08Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* MCU slot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 8'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must '''NOT''' be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 8'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 8'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 8'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 8'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-IO_Expansion.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-X1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7334</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7334"/>
		<updated>2026-04-17T01:03:21Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* I/O slot power */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 8'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must '''NOT''' be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 8'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 8'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 8'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 8'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-IO_Expansion.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-X1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7333</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7333"/>
		<updated>2026-04-17T01:03:03Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* I/O slot power */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 8'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must '''NOT''' be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 8'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 8'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 8'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-IO_Expansion.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-X1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7332</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7332"/>
		<updated>2026-04-17T01:02:47Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* I2C communications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 8'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must '''NOT''' be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 8'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-IO_Expansion.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-X1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7331</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7331"/>
		<updated>2026-04-17T01:02:08Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* I/O module slots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 8'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must '''NOT''' be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-IO_Expansion.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-X1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7330</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7330"/>
		<updated>2026-04-17T00:58:34Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* I2C Addresses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must NOT be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
  ; Slot 0 is selected in MUX (TCA9548)&lt;br /&gt;
  TCA6424 = 0x22       ; IO Expander for RESET, POWER and SPI select&lt;br /&gt;
  M24M01  = 0x50-0x51  ; 1 Mbit of EEPROM&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-IO_Expansion.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-X1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7329</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7329"/>
		<updated>2026-04-17T00:53:09Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Schematics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must NOT be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-IO_Expansion.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-X1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_8-IO_Expansion-X1.svg&amp;diff=7328</id>
		<title>File:Colibri 8-IO Expansion-X1.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_8-IO_Expansion-X1.svg&amp;diff=7328"/>
		<updated>2026-04-17T00:52:45Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Schematics of the I/O slot on Colibri 8. This is repeated 7 times.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Schematics of the I/O slot on Colibri 8. This is repeated 7 times.&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_8-IO_Expansion.svg&amp;diff=7327</id>
		<title>File:Colibri 8-IO Expansion.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_8-IO_Expansion.svg&amp;diff=7327"/>
		<updated>2026-04-17T00:51:35Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Schematics of the I/O subsystem on Colibri 8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Schematics of the I/O subsystem on Colibri 8&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7326</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7326"/>
		<updated>2026-04-17T00:50:42Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must NOT be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7325</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7325"/>
		<updated>2026-04-17T00:50:12Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must NOT be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7324</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7324"/>
		<updated>2026-04-17T00:49:40Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Schematics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must NOT be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics1.svg|2400px]]&lt;br /&gt;
[[File:Colibri_8-Power Supply.svg|2400px]]&lt;br /&gt;
[[File:Colibri 8-IO Expansion-LEDs.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_8-IO_Expansion-LEDs.svg&amp;diff=7323</id>
		<title>File:Colibri 8-IO Expansion-LEDs.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_8-IO_Expansion-LEDs.svg&amp;diff=7323"/>
		<updated>2026-04-17T00:47:18Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Schematics for Colibri_8 IO Expansion, LEDs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Schematics for Colibri_8 IO Expansion, LEDs&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_8-Power_Supply.svg&amp;diff=7322</id>
		<title>File:Colibri 8-Power Supply.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_8-Power_Supply.svg&amp;diff=7322"/>
		<updated>2026-04-17T00:46:14Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Colibri 8 powers supply schematics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Colibri 8 powers supply schematics&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Colibri_8-rev_A-schematics1.svg&amp;diff=7321</id>
		<title>File:Colibri 8-rev A-schematics1.svg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Colibri_8-rev_A-schematics1.svg&amp;diff=7321"/>
		<updated>2026-04-17T00:44:56Z</updated>

		<summary type="html">&lt;p&gt;Niclas: Colibri schematics 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Colibri schematics 1&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7320</id>
		<title>Colibri 8</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_8&amp;diff=7320"/>
		<updated>2026-04-17T00:43:36Z</updated>

		<summary type="html">&lt;p&gt;Niclas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Colibri]][[Category:Work in progress]]{{metadesc|Colibri 8 carrier board}}&lt;br /&gt;
&lt;br /&gt;
DIN-rail mounted Colibri carrier board with 1 MCU slot and 7 I/O clots. MCU slot is to be populated with any of the MCU variants available. &lt;br /&gt;
[[File:Colibri_8_photo1.jpg|thumb|250px]]&lt;br /&gt;
[[File:Colibri_8_photo2.jpg|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Features = &lt;br /&gt;
&lt;br /&gt;
== MCU slot ==&lt;br /&gt;
The MCU slot is the standard [[Colibri MCU slot]] for accepting any of the available MCU modules. The MCU module can &lt;br /&gt;
be programmed in many different ways, and see the [[Colibri Programming Languages]] page for details on that. &lt;br /&gt;
&lt;br /&gt;
The MCU in the MCU slot will be the manager of all the hardware resources;&lt;br /&gt;
* SPI bus and SPI slot select device&lt;br /&gt;
* I2C bus and I2C Mux&lt;br /&gt;
* Galvanically Isolated RS-485 port, for SCADA and other supervisory systems.&lt;br /&gt;
* 16MB flash memory&lt;br /&gt;
* 128kB EEPROM memory on carrier board&lt;br /&gt;
* Temperature and Humidity sensor&lt;br /&gt;
&lt;br /&gt;
== I/O module slots ==&lt;br /&gt;
There are seven I/O module slots on this carrier board. Most I/O modules can be used, but there are I/O modules that&lt;br /&gt;
will depend on the power supply, for instance [[Colibri Triac1]] will only work if the ''Colibri 3a'' are powered by an AC source.&lt;br /&gt;
Also [[Colibri DIO1]] must NOT be used on systems with AC power supply.&lt;br /&gt;
&lt;br /&gt;
== I2C communications ==&lt;br /&gt;
The I2C bus from the MCU module must be multiplexed to allow for many I/O modules of the same type to be used in different I/O slots.&lt;br /&gt;
&lt;br /&gt;
The multiplexer is a TCA9548APWR on address 0x70 (0b1110000x), and each bit in the &amp;quot;data byte&amp;quot; written to the multiplexer will enable&lt;br /&gt;
that I/O slot's I2C bus. I2C bus 0 is the ''Colibri 3a'' carrier board itself, i.e. to the EEPROM. It is important that only one I2C&lt;br /&gt;
bus is enable at a time.&lt;br /&gt;
&lt;br /&gt;
== SPI communications ==&lt;br /&gt;
Each I/O slot has a SPI Chip Select (CS, active low) individually addressable, and two shared chip selects &lt;br /&gt;
(no defined state, I/O module dependent, often unused) for addressing more than one SPI device on a single I/O module.&lt;br /&gt;
&lt;br /&gt;
SPI communications happens at 1Mbps by default.&lt;br /&gt;
&lt;br /&gt;
== I/O slot power ==&lt;br /&gt;
Each I/O slot has +3.3V, +5V and +12V available on the connector. On the ''Colibri 3a'' the power for +3.3V and +5V can be turned on/off &lt;br /&gt;
individually by the MCU, meaning the MCU can for instance turn off the +5V on X2, for instance to re-initialize some circuit.&lt;br /&gt;
&lt;br /&gt;
Additionally, the external power that is used to power the ''Colibri 3a'' device is also available on the I/O slot header. This is how some &lt;br /&gt;
I/O modules become dependent on the type of power that drives the ''Colibri 3a'', for instance the [[Colibri DIO1]] that will malfunction and&lt;br /&gt;
possibly break if AC voltage is used.&lt;br /&gt;
&lt;br /&gt;
== Power input  ==&lt;br /&gt;
The built-in power supply is versatile and accepts either AC or DC voltages, over a vast range;&lt;br /&gt;
&lt;br /&gt;
* 7-36 Volt AC&lt;br /&gt;
* 6-50 Volt DC&lt;br /&gt;
&lt;br /&gt;
== USB-C port ==&lt;br /&gt;
There is a USB-C port for upstream communication with PC or other devices, typically used for Service and Maintenance.&lt;br /&gt;
&lt;br /&gt;
== Jolt Connect programming header ==&lt;br /&gt;
A standard Jolt Connect compatible programming header is available. The device will NOT be powered through that header.&lt;br /&gt;
&lt;br /&gt;
= I2C Addresses =&lt;br /&gt;
  TCA9548 = 0x70    ; Selects which I/O slot the I2C should be connected to.&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
[[File:Architecture-colibri-8.svg]]&lt;br /&gt;
&lt;br /&gt;
= Schematics =&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Errata =&lt;br /&gt;
* In Revision A, the secondary USART on the MCU slot was not yet defined, so the RS-485 transceiver is connected to the programming USART (USART2). This has been corrected for later revisions.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
[[File:Colibri_8-rev_A-schematics.pdf|Colibri 8 Schematics]]&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7319</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7319"/>
		<updated>2026-04-17T00:16:24Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
The MCU3 is a relatively simple MCU module, on an M.2 board with the size 22x42mm and the Key E configuration.&lt;br /&gt;
&lt;br /&gt;
Besides the [[STM32F405|STM32F405RE]] MCU there are also &lt;br /&gt;
* 128 Mbits (16MB) flash memory for application use.&lt;br /&gt;
* a dual-colored (Green/Red) LED&lt;br /&gt;
* 16MHz HSE crystal&lt;br /&gt;
* 32768 Hz LSE crystal, intended for calendar functions in the STM32.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: All modules in Colibri are NOT electrically compatible with the M.2 connector standard. DO NOT plug Colibri modules into any M.2 socket other than Colibri (or compatible) ones. And DO NOT plug any M.2 modules (Key E is typically WiFi/BLE) into a Colibri carrier board.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
If Forth is not your cup of tea, the standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7318</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7318"/>
		<updated>2026-04-17T00:15:52Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
The MCU3 is a relatively simple MCU module, on an M.2 board with the size 22x42mm and the Key E configuration.&lt;br /&gt;
&lt;br /&gt;
Besides the [[STM32F405|STM32F405RE]] MCU there are also &lt;br /&gt;
* 128 Mbits (16MB) flash memory for application use.&lt;br /&gt;
* a dual-colored (Green/Red) LED&lt;br /&gt;
* 16MHz HSE crystal&lt;br /&gt;
* 32768 Hz LSE crystal, intended for calendar functions in the STM32.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: All modules in Colibri are NOT compatible with the M.2 connector standard. DO NOT plug Colibri modules into any M.2 socket other than Colibri (or compatible) ones. And DO NOT plug any M.2 modules (Key E is typically WiFi/BLE) into a Colibri carrier board.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
If Forth is not your cup of tea, the standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7317</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7317"/>
		<updated>2026-04-17T00:15:08Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
The MCU3 is a relatively simple MCU module, on an M.2 board with the size 22x42mm and the Key E configuration.&lt;br /&gt;
&lt;br /&gt;
Besides the [[STM32F405RE]] MCU there are also &lt;br /&gt;
* 128 Mbits (16MB) flash memory for application use.&lt;br /&gt;
* a dual-colored (Green/Red) LED&lt;br /&gt;
* 16MHz HSE crystal&lt;br /&gt;
* 32768 Hz LSE crystal, intended for calendar functions in the STM32.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: All modules in Colibri are NOT compatible with the M.2 connector standard. DO NOT plug Colibri modules into any M.2 socket other than Colibri (or compatible) ones. And DO NOT plug any M.2 modules (Key E is typically WiFi/BLE) into a Colibri carrier board.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
If Forth is not your cup of tea, the standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7316</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7316"/>
		<updated>2026-04-17T00:06:39Z</updated>

		<summary type="html">&lt;p&gt;Niclas: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, &amp;quot;Save link as...&amp;quot; on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
If Forth is not your cup of tea, the standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7315</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7315"/>
		<updated>2026-04-17T00:06:16Z</updated>

		<summary type="html">&lt;p&gt;Niclas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards. (Right-click, Save As... on the link)&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
If Forth is not your cup of tea, the standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7314</id>
		<title>Colibri MCU3</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Colibri_MCU3&amp;diff=7314"/>
		<updated>2026-04-17T00:03:11Z</updated>

		<summary type="html">&lt;p&gt;Niclas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Components and Modules]][[Category:Modules]][[Category:Colibri]]{{metadesc|Colibri MCU3 module}}&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_front.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_rev-B_back.jpg|125px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_top_right_render.png|250px|thumb]]&lt;br /&gt;
[[File:Colibri_mcu3_bot_render.png|250px|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[Colibri]] MCU3 is a processor board for the [[Colibri]] carrier boards. It is an STM32F405RG to be used as the MCU for a Colibri system. Primarily intended for battery operated applications.&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
STM32CubeMX file [[Media:Mcu3.ioc|MCU3.ioc template file]] for Colibri carrier boards.&lt;br /&gt;
&lt;br /&gt;
== Low Level ==&lt;br /&gt;
The standard SWDIO/SWCLK pins are available in the pin header together with USART2 for effective low level development environment.&lt;br /&gt;
&lt;br /&gt;
== C/C++ ==&lt;br /&gt;
If Forth is not your cup of tea, the standard SWDIO/SWCLK pins are available on the M.2 connector, as well as BOOT0 + USART1 for effective development environment. We recommend the use of the STM32CubeMX to set up the MCU correctly, and then your favorite IDE for the edit-compile-flash-run cycle.&lt;br /&gt;
&lt;br /&gt;
== Zephyr ==&lt;br /&gt;
Zerphyr is an MCU-independent embedded OS, with a very modular approach to software, which fits quite well with the modular support of Streamline and Colibri products.&lt;br /&gt;
&lt;br /&gt;
Read more about how [[Colibri Zephyr]] is intended (work in progress) to operate on the [[Colibri]] family.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Colibri_mcu3.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Colibri_mcu3_top_render.png&lt;br /&gt;
File:Colibri_mcu3_bot_render.png&lt;br /&gt;
File:Colibri_mcu3_top_right_render.png&lt;br /&gt;
File:Colibri_mcu3_top_left_render.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niclas</name></author>
	</entry>
</feed>