HeliOS is a Tiny Embedded OS Designed for Arduino Boards

Helios Arduino Operating System

Mannie Peterson (aka FellFromTree) has developed an embedded operating system called HeliOS that’s designed specifically for 8-bit and 32-bit Arduino boards, and can easily be used from the Arduino IDE. HeliOS is said to have only 21 function calls and implements cooperative and event-driven multitasking, task notification/messaging, timers, and memory management. It’s a non-preemptive multitasking kernel so you won’t have to deal with mutexes. The developer explains how scheduling works with HeliOS: HeliOS uses a run-time balanced strategy which ensures tasks with shorter run-times are prioritized over tasks with longer run-times. This ensures all running tasks receive approximately equal total run-time without using context switching. The other multitasking option available in HeliOS is event driven multitasking, which uses the wait/notify and timer interfaces. Mixing cooperative and event driven tasks in HeliOS is not a problem. To give it a try, simply open the Arduino IDE Library Manager, search for “HeliOS” […]

SAMD21 Lite is a Stamp-sized, MikroBus Compatible Cortex-M0+ MCU Board

BOKRA SAMD21 Lite

If you’re a fan of tiny microcontroller boards, you’ll be pleased with BOKRA SAMD21 Lite board powered by Microchip SAMD21 Arm Cortex-M0+ MCU, exposing I/Os in a way compatible with MikroBus socket, and adding a Grove connector for good measure. SAMD21 Lite board specifications: MCU – Microchip ATSAMD21G18A Arm Cortex-M0+ microcontroller @ 48 MHz with 256KB flash memory, 32KB RAM Expansion I/Os MicroBus socket with GPIO, SPI, I2C, USART, PWM, DAC, +5V, +3.3V, GND I2C Grove connector 10-pin I/O header with GPIO, USB 2.0, VIN, GND Misc – Reset button, red power LED, 2x user LED (yellow/green), J1/J2 jumper to enable/disable I2C pull-ups Debugging – 4-pin SWD header Power Supply 5V input via VIN MIC5528500 voltage regulator Output current – 500 mA Dimensions -28.6 x 25.4 mm Despite its tiny size, SAMD21 Lite exposes all expect five I/Os from the microcontroller. The Microbus headers and the I2C Grove connector allow […]

Odyssey Blue J4105 Windows & Linux Mini PC Comes with a 128GB SSD, an Arduino Compatible MCU

Odyssey Blue J4105

We recently reviewed ODYSSEY-X86J4105 SBC by Seeed Studio with Windows 10, and installed it to the Re_Computer case to convert it into a mini PC. Besides being a standard Intel Gemini Lake SBC, the board also comes with an Arduino MCU and header, as well as a 40-pin I/O header so it can be an all-in-one Arduino development platform, or be used for advanced robotics projects. Both the board and case had to be purchased separately, and Windows 10 was pre-installed on the internal eMMC flash. But now, Seeed Studio has started to offer Odyssey Blue J4105 mini PC with ODYSSEY-X86J4105 SBC pre-installed into Re_Computer case and fitted with a 128GB SSD for increased storage capacity and better performance. Odyssey Blue J4105 mini PC specifications: SoC – Intel Celeron J4105 quad-core processor @ 1.5/2.5 GHz (Turbo) with 12EU Intel UHD Graphics 600 @ 250-750 MHz; 10W TDP System Memory – […]

ESPurna ESP8266 Automation Firmware Gets Support for BME680 Sensor’s Precise Indoor Air Quality Measurements

BME680 air quality sensor

Bosch BME680 is a 4-in-1 air quality sensor measuring relative humidity, barometric pressure, ambient temperature, and gas (VOC) levels. It’s found in boards such as STM32 based Metriful Sense or Nordic Thingy:91, and Bosch Sensortec published an Arduino library based on “Bosch Sensortec Environmental Cluster (BSEC) Software” to provide precise calculations temperature, humidity, pressure, and indoor air quality (IAQ). BSEC proprietary algorithms can provide indoor air quality data as good as more expensive CO2 sensors according to a recent presentation by the company. Max Prokhorov, lead ESPurna maintainer, and Rui Marinho noticed none of the popular open-source ESP8266 automation firmware including ESPurna, Tasmota, and Esphome supported BME680 sensor just yet. So they decided to work together to add BME680 sensor support via BSEC library to ESPurna firmware, and now it’s very easy to use as you just need to define BME680_SUPPORT=1 before compiling the firmware. You’ll find the now-merged pull […]

CrowPi2 Raspberry Pi 4 Learning Kit Review – Part 1 – Unboxing and First Boot

CrowdPi2 Unboxing Review

Last month, we wrote about Elecrow introducing CrowPi2 Raspberry Pi 4 laptop and electronics learning kit for its launch on Kickstarter crowdfunding website. The company has now sent one of its kits to CNX Software for evaluation and review. I’ll start by checking out the content of the package, and boot it up, before publishing a more detailed review in a few weeks. The package is fairly big and highlights it’s made for kids over 8 years old with close to 100 course resources and over 20 electronics modules. The back of the package list the main features and package contents with for example a 11.6″ Full HD display, Raspberry Pi 4 4GB board running a customized (Linux) system or Retropie for game emulation, electronics components and modules like servos and motors, as well as some resources for gaming including two USB gamepads. The first things we get when opening […]

TTGO T-Lite W5500 ESP32 WiFi & Bluetooth Board Comes with OLED Display, Optional Ethernet Add-on Board

TTGO T-Lite W5500 ESP32 Ethernet Board

If you like tiny boards with Ethernet,  TTGO T-Lite W5500 development board may be an interesting option,  as the ESP32 board comes with a built-in OLED, and female headers to connect an Ethernet add-on board called W5500 Gateway Module. LilyGO TTGO T-Lite W5500 specifications: SoC – Espressif System ESP32 dual-core WiFi and Bluetooth SoC with 520KB SRAM Storage – 4MB flash Display – 0.96-inch OLED display (SSD1306 driver) Connectivity 802.11 b/g/n WiFi 4 up to 150 Mbps, and Bluetooth 5.x BR/LE via ESP32 SoC, on-board ceramic antenna or external antenna (selectable with a resistor?) Optional Ethernet via SPI Ethernet board based on Wiznet W5500 USB – 1x USB Type-C port for power and programming via CP2104 USB to TTL chip I/Os 8+6 through holes with GPIOs, SPI, ADC, Touch, 5V, 3.3V, GND Operating voltage – 2.7V-3.6V Misc – Boot & Reset button, 40MHz crystal oscillator Power Supply – 5V/1A via […]

Is That a Raspberry Pi Zero? Nope. ATMegaZero is an Arduino Compatible Board

ATMegaZero Raspberry Pi Zero ESP8266

ATMegaZero is an Arduino Leonardo compatible board based on Microchip ATmega32U4 8-bit AVR microcontroller that mostly follows Raspberry Pi Zero form factor with the 40-pin GPIO header, MicroSD card slot, and one micro USB port in the same location. The MIPI CSI camera connector makes place for an OLED display connector, and the HDMI port is obviously gone, but you also get an 8-pin  header to easily install an ESP8266 based ESP-01 module to add WiFi connectivity. ATMegaZero specifications: MCU – Microchip ATmega32U4 microcontroller running at 16MHz with 32KB Flash, 2.5KB SRAM, 1KB EEPROM Storage – MicroSD card Display – 32-pin OLED display port compatible with 30-pin SSD1306 and SSD1331 based displays Wireless Connectivity – 8-pin header for optional ESP8266 ESP-01 WiFi module Expansion – 40-pin Raspberry Pi-inspired GPIO header with UART/SPI/I2C Debugging & Programming – Micro USB port, 6-pin programming header Misc – 4x LEDs, button Power Supply – […]

Edge Impulse Enables Machine Learning on Cortex-M Embedded Devices

Edge Impulse

Artificial intelligence used to happen almost exclusively in the cloud, but this introduces delays (latency) for the users and higher costs for the provider, so it’s now very common to have on-device AI on mobile phones or other systems powered by application processors. But recently there’s been a push to bring machine learning capabilities to even lower-end embedded systems powered by microcontrollers, as we’ve seen with GAP8 RISC-V IoT processor or Arm Cortex-M55 core and the Ethos-U55 micro NPU for Cortex-M microcontrollers, as well as Tensorflow Lite. Edge Impulse is another solution that aims to ease deployment of machine learning applications on Cortex-M embedded devices (aka Embedded ML or TinyML) by collecting real-world sensor data, training ML models on this data in the cloud, and then deploying the model back to the embedded device. The company collaborated with Arduino and announced support for the Arduino Nano 33 BLE Sense and […]

EmbeddedTS embedded systems design