Embedded Systems
14.3K subscribers
1.09K photos
236 videos
1 file
749 links
News, articles, guides, analytics, projects and startups from the embedded industry.

Topics of the channel:
◽️ machine learning
◽️ internet of things
◽️ embedded software
◽️ advanced electronics
◽️ new engineering ideas

⤵️ Share and subscribe!
Download Telegram
💻 Shrinking the Arduino code

One of the foundations of C++ is zero-overhead abstractions, yet the Arduino core has a very significant overhead. The Arduino basic blink example compiles to almost 1kB, with most of that space taken up by code that is never used.

Rewriting the AVR core is a task I'm not ready to tackle, but after writing picoCore, I realized I could use many of the same optimization techniques in an Arduino library.

The result is ArduinoShrink, a library that can dramatically reduce the compiled size of Arduino projects.

More information...

#articles #arduino #programming #libraries
👍1
🧠 Flashlight: Fast and flexible machine learning in C++

Flashlight is a new open source machine learning (ML) library, written entirely in C++, that was built by FAIR to power groundbreaking research by enabling teams to rapidly and easily modify deep and ML frameworks to better fit their needs.

More information...

#articles #machine_learning #software #programming #artificial_intelligence #cpp #libraries
💻 heatshrink: An Embedded Data Compression Library

In embedded systems, space is always tight. Adding pennies of extra storage can be enough to kill a budget (when multiplied by hundreds of thousands or even millions of units), so available space has to be used effectively.

Heatshrink is an open-source data compression library designed for resources-constrained embedded systems that works with as little as 50 bytes of RAM.

The library is written in C language and has the following key features:
▫️ Low memory usage – As low as 50 bytes with specific parameters, and usually under 300 bytes are needed.
▫️ Incremental, bounded CPU use – Input data is processed in tiny bites.
▫️ Static or dynamic memory allocation.
▫️ Released under an ISC license which allows you to use the library freely, even in commercial products.

More information:
🔗 Library review
🔗 Original blog post
😹 Github page
😹 Arduino version

#libraries
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 F Prime - Flight Software & Embedded Systems Framework

F Prime is a software framework for the rapid development and deployment of embedded systems and spaceflight applications.

Originally developed at NASA’s Jet Propulsion Laboratory, F´ is open-source software that has been successfully deployed for several space applications.

It has been used for but is not limited to, CubeSats, SmallSats, instruments, and deployable. Framework runs on a wide range of processors, from microcontrollers to multi-core computers.

F´ has the following features:
▫️ Component architecture with well-defined interfaces
▫️ C++ framework providing core capabilities like queues, threads, and operating-system abstraction
▫️ Tools for designing systems and automatically generating code from systems design
▫️ A standard library of flight-worthy components
▫️ Testing tools for unit and system-level testing

More information:
Key features
Official website
GitHub repository

#software #libraries
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
📟 ArduinoJSON: Efficient JSON serialization for embedded C++

ArduinoJson is not limited to Arduino; it works with any C++ project. Moreover, it’s compatible with C++98, so it doesn’t require a modern C++ compiler, which means you can use it with your old vendor toolchain.

Compared to the “official” Arduino_JSON library:
▫️ ArduinoJson is twice smaller,
▫️ ArduinoJson runs almost 10% faster,
▫️ ArduinoJson consumes roughly 10% less RAM.

Finally, ArduinoJson is open-source and uses one of the most permissive licenses so you can use it on any project.

More information...

#arduino #libraries #cpp
👍5
🤖 Micro-ROS puts ROS 2 onto microcontrollers

Micro-ROS adapts ROS2 for limited-performance microcontrollers to bridge the gap between them and the larger processors in ROS robotic applications.

Micro-ROS offers several key features that make it ready for use in your microcontroller-based robotic project:
▫️ Microcontroller-optimized client API supporting all major ROS concepts
▫️ Seamless integration with ROS 2
▫️ Extremely resource-constrained but flexible middleware
▫️ Multi-RTOS support with generic build system
▫️ Vibrant community and ecosystem
▫️ Long-term maintainability and interoperability

More information:
Official website
GitHub repository

#libraries #robots
👍6
💻 PicoMQTT Offers Performant MQTT Client, Broker Operation on ESP32, ESP8266 MCUs

New library is designed to put a low-cost, low-power microcontroller where a single-board computer would once have sat

Typically, the MQTT messaging system is used to connect low-powered remote devices based on a microcontroller to a higher-performance central server. With energy prices continuing to climb in many parts of the world, though, some are looking to move the broker portion of the architecture to lower-powered hardware too — which is where PicoMQTT comes in.

PicoMQTT is an MQTT library and can be used to set up both a client and a broker on the ESP8266 and ESP32.

Features:
▫️ MQTT 3.1.1 implementation
▫️ Publishing and consuming of arbitrary sized messages
▫️ High performance -- the broker can deliver thousands of messages per second
▫️ Low memory usage

More information...

#libraries #esp32
👍8
🧠 Fido – light-weight C++ machine learning library for embedded electronics

Fido is an light-weight, highly modular C++ machine learning library for embedded electronics and robotics. Fido is especially suited for robotic and embedded contexts, as it is written in C++ with minimal use of the standard library, comes packaged with a robotic simulator, and provides and easy interface in which to write robotic drivers.

⛓ More information...

#libraries #programming #machine_learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👌1
🔃 pcb2blender - KiCad to Blender 3D model workflow

The pcb2blender tool revolutionizes the way KiCad projects are rendered in Blender. It streamlines the process of creating professional-looking product renders by allowing users to export their KiCad boards as .pcb3d files and then directly import them into Blender.

This innovation eliminates the tedious cleanup work usually involved, enabling users to focus on scene composition and lighting. Notably faster than previous methods, pcb2blender supports rendering work-in-progress boards or those undergoing last-minute revisions.

More information:
☠️ The Hackaday article
😹 The GitHub page

#libraries #tools #3d_modeling #design #electronics
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
💻 Watch ESP32’s GPIO status in real-time in a web browser

GPIOViewer is an innovative open-source Arduino library designed for real-time monitoring of GPIO pins on ESP32 boards via a web browser. It provides a dynamic and graphical representation of the board's GPIO pin status, enhancing troubleshooting and project development.

Key features of the library:
➡️ Displays live status of digital, analog, and PWM signals on ESP32 GPIO pins.
➡️ Tracks actual hardware status, differentiating it from simulation-only tools like the Wokwi ESP32 simulator.
➡️ Utilizes ESPAsyncWebServer and AsyncTCP libraries, with the latter available through the Arduino IDE’s Library Manager.
➡️ Adds only about 50 KB to projects.
➡️ Recommended to use with strong Wi-Fi connections for lower latency and faster data sampling.
➡️ Supports a variety of ESP32 boards, including ESP32-VROOM-32, Olimex ESP32-EVB, and more.

This real-time GPIO monitoring capability is not only a boon for debugging but also enhances the overall user experience in developing and testing ESP32-based projects.

More information:
☠️ The Hackaday article
😹 The GitHub page

#libraries #arduino #esp32
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👌6👎1
🖥 LVGL - Open-Source GUI library for embedded systems

Light and Versatile Graphics Library (LVGL) is an open-source graphics library specifically designed for embedded systems. It provides an efficient way to create visually appealing and modern graphical user interfaces (GUIs) on resource-constrained devices like microcontrollers and small processors.

Characterized by its lightweight nature, LVGL is highly optimized for performance, requiring minimal memory and processing power. The library supports a wide range of widgets, animations, and graphical elements, making it versatile for various applications. It's platform-independent, easily adaptable to different hardware with minimal setup, and works well with different operating systems or on bare-metal systems.

LVGL is written in C, offering ease of integration for most embedded projects. With an active community and comprehensive documentation, LVGL is a go-to solution for developers looking to add rich GUIs to their embedded devices.

More information:
🔗 The official website
😹 The GitHub page

#libraries
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
🔃 CppUTest – unit testing and mocking framework for C/C++

CppUTest is a popular unit testing framework primarily used for Test-Driven Development (TDD) in C and C++ projects. It's specifically designed for embedded and resource-constrained systems, but it's also suitable for general software development.

CppUTest offers various features:
➡️ Support for setting up and tearing down test fixtures, allowing for the isolation of tests and the management of test environments.
➡️ Offers a wide range of assertion macros for validating expected behavior and outcomes in tests.
➡️ Capability for creating mock objects and mock-based tests.
➡️ Provides with a test runner utility for executing test cases and reporting test results.
➡️ Integration with popular build systems like CMake and Make.

In summary, CppUTest gives teams an opportunity to unlock the potential for streamlined development workflows and heightened code reliability.

More information:
🔗 The project's page
😹 The GitHub repository

#libraries #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👌2
🧠 BitNetMCU - Implement neural networks even on the cheapest microchips!

BitNetMCU presents an exciting journey into the fusion of machine learning and embedded systems, offering valuable insights into the implementation of neural networks even on the most modest piece of hardware.

Features of the project:
➡️Utilizes quantization aware training and fine-tuning techniques to achieve over 99% accuracy on tasks like MNIST.
➡️Operates efficiently within strict memory constraints, with algorithms designed to run on any microcontroller.
➡️Employs a 🐍 PyTorch-based training pipeline for versatility and ease of use.
➡️Implements an 👩‍💻 Ansi-C inference engine for seamless portability across different microcontroller platforms.

To sum up, this project provides a gateway to deeper understanding in electronics, AI, and machine learning, empowering individuals to create innovative solutions for real-world challenges in IoT, edge computing, and beyond.

More information:
🔗 The main article
😹 The GitHub repository

#projects #libraries #artificial_intelligence #machine_learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👌2
♾ Arduino Power Management Library: Energy Optimization Overview

Arduino has released a new Power Management Library aimed at optimizing power consumption for Arduino Pro modules, including the ✈️ Portenta H7, Portenta C33, and ✈️ Nicla Vision. This library helps developers reduce energy usage in IoT and wearable devices by enabling features like sleep modes and real-time battery monitoring.

Key features of the library:
➡️Real-time tracking of voltage, current, temperature, and battery health.
➡️Fine-tuning of battery charging parameters for safe and efficient charging.
➡️Significant power savings through low-power states.
➡️Control and adjustment of power rails to optimize energy usage.

This library is ideal for developers working on battery-powered IoT devices and wearables who need to balance performance and power efficiency, making it a useful tool for creating long-lasting, energy-efficient projects.

More information:
🔗 The official website
😹 The GitHub repository

#libraries #arduino
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15