💻 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
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
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
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:
#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
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
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
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
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
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.
#libraries #programming #machine_learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👌1
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:
#libraries #tools #3d_modeling #design #electronics
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
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:
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:
#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
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:
#libraries
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
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:
In summary, CppUTest gives teams an opportunity to unlock the potential for streamlined development workflows and heightened code reliability.
More information:
#libraries #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👌2
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:
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:
#projects #libraries #artificial_intelligence #machine_learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👌2
Arduino has released a new Power Management Library aimed at optimizing power consumption for Arduino Pro modules, including the
Key features of the library:
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:
#libraries #arduino
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15