nour_oud
nour_oud
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/26/2024 in #devheads-feed
Ultra Compact LiDAR Distance Meter/Range Finder
The Ultra Compact LiDAR Distance Meter/Range Finder is a tiny device with a 0.49-inch OLED display, micro battery, and Xiao ESP32 microcontroller. It uses a VL53L0X TOF-based LiDAR sensor for precise distance measurement. Components: ➡️ Xiao ESP32C3 with battery management ➡️ 0.49-inch OLED display (64x32 pixels) ➡️ VL53L0X TOF-based LiDAR ➡️ Rechargeable micro battery via USB This compact device measures distances accurately up to 1 meter. ⛓ More information: https://www.hackster.io/Gokux/ultra-compact-lidar-distance-meter-range-finder-bba721
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/25/2024 in #devheads-feed
LVGL with ESP32 TFT LCD Touchscreen Display –Arduino IDE
In this guide, you'll learn how to use LVGL (Light and Versatile Graphics Library) with a 2.8-inch TFT LCD touchscreen and an ESP32 board in the Arduino IDE. It explains wiring the display to the ESP32, understanding SPI communication, and using the ILI9341 driver. You'll explore LVGL features like creating GUIs with buttons, sliders, images, and animations, and gain skills for developing interactive displays for microcontroller projects. ⛓ More information: https://randomnerdtutorials.com/lvgl-esp32-tft-touchscreen-display-ili9341-arduino/
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/24/2024 in #devheads-feed
DIY ESP32-Based Smartwatch with LiDAR and Wi-Fi Scanning
This project features the ESP32 microcontroller, integrating advanced environmental monitoring and IoT control. It stands out by interacting with various smart devices, offering practicality and innovation for enthusiasts. Smartwatch Features: ➡️ High precision timekeeping. ➡️ Motion-activated. ➡️ Tracks humidity, pressure, and temperature. ➡️ VL53L1X distance sensor and 5mW laser for precise measurements. ➡️ Displays network signal strength and encryption levels. ➡️ Controls IoT devices like door locks and light switches. ➡️ Fully recharges in 43 minutes via USB-C or magnetic charger. Its extensive features and rapid charging make this smartwatch a practical and exciting tool for innovative applications and daily use. More information: The main article The main article The YouTube video
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/20/2024 in #devheads-feed
Singaporian Researchers developed a flexible battery for smart contact lenses
Smart contact lenses could be powered by a flexible battery as thin as a human cornea that stores electricity when immersed in saline solution. 🇸🇬 ⛓ More information: https://www.theengineer.co.uk/content/news/ntu-singapore-team-develops-flexible-battery-for-smart-contact-lenses/
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/19/2024 in #devheads-feed
Qt vs. Flutter: Which Framework is Right for Your Embedded Project?
Choosing between Qt and Flutter for embedded project development depends on specific project needs: Qt: Based on C++, known for native performance and efficiency, ideal for complex, high-performance applications with advanced functionalities and direct hardware access, such as medical devices and low-end hardware without GPU support. Flutter: Emphasizes rapid development and cost-effectiveness using Dart, with features like hot reload for quick iterations and a single codebase for consistent UI across platforms. In summary, Qt is best for performance-critical applications, while Flutter is ideal for fast, cost-efficient, cross-platform projects. ⛓ More information: https://www.ics.com/blog/qt-vs-flutter-which-framework-right-your-embedded-project
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/17/2024 in #devheads-feed
New Embedded Programming Language by Apple
Last week at WWDC 2024, Apple unveiled Embedded Swift, a new programming language for resource-limited systems. This variant of Swift is designed for microcontrollers like the ESP32, Raspberry Pi RP2040, and STM32, enabling IoT and low-power device development with Swift's familiar syntax. Key features include: ➡️ Support for value and reference types, closures, optionals, and error handling ➡️ Optimization for microcontroller environments ➡️ Seamless integration with C and C++ SDKs ➡️ Extensive support for various microcontrollers and numerous code examples Embedded Swift combines Swift's ergonomics, safety, and ease of use, making embedded development accessible to both hobbyists and professionals familiar with Swift. More information: The article The GitHub The Video
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/14/2024 in #devheads-feed
DIY haptic SmartKnob: BLDC motor + round LCD
This innovative input device, SmartKnob, is an open-source input device with software-configurable endstops and virtual detents. It includes haptic touch feedback and a round LCD, utilizing a brushless gimbal motor and magnetic encoder for closed-loop torque feedback. Powered by an ESP32, it integrates a TMC6300 BLDC motor driver, HX711 strain gauge ADC, and VEML7700 ambient light sensor. Key Features: ➡️ 240x240 round LCD with 39.5mm watch glass ➡️ Low-cost BLDC gimbal motor with a hollow shaft ➡️ Powered by ESP32-PICO-V3-02 ➡️ PCB flexure and SMD resistors for press detection and haptic feedback ➡️ 8 side-firing RGB LEDs illuminate the ring ➡️ USB-C for power and data ➡️ VEML7700 ambient light sensor for automatic adjustments ➡️ Versatile mounting options and easy PCB access This project innovates human-device interfaces using off-the-shelf components and is great for advanced electronics hobbyists. More information: GitHub YouTube
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/12/2024 in #devheads-feed
Strategies for Handling Padding in C Programming
In C programming, padding refers to extra memory added between structure members to align data for efficient CPU access. The compiler adds padding to align members to their natural boundaries. For example, in a 32-bit system:
struct foo {
uint32_t i;
uint8_t b;
};
struct foo {
uint32_t i;
uint8_t b;
};
Here, the compiler adds 3 bytes of padding after "b" to make the structure 8 bytes in total. The article discusses strategies to optimize memory layout and access, focusing on packed structures. ⛓ More information: https://interrupt.memfault.com/blog/c-struct-padding-initialization
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/11/2024 in #devheads-feed
Apple Intelligence: Apple’s New Generative AI Unveiled
At WWDC 2024, Apple introduced Apple Intelligence, a generative AI integrated across its ecosystem for personalized experiences with a focus on privacy. "Personal intelligence is the next big step for Apple," said Tim Cook. SVP Craig Federighi noted that most processing is local on Apple silicon, with Private Cloud Compute for cloud tasks. Key highlights: ➡️Enhanced Siri: Deeper integration, text-based queries, and expanded App Intents. ➡️App Integration: Assists with Mail messages and Smart Replies. ➡️Image Playground: On-device image generation for Messages and Keynote. ➡️Image Wand: Apple Pencil creates images from text. Apple Intelligence will be on iPhone 15 Pro, and M1 Mac and iPad devices with upcoming OS updates. Apple is also partnering with OpenAI to integrate ChatGPT into Siri for enhanced image and text generation ⛓ More information: https://techcrunch.com/2024/06/10/apple-intelligence-is-the-companys-new-generative-ai-offering/?guccounter=2&guce_referrer=aHR0cHM6Ly93ZWIudGVsZWdyYW0ub3JnLw&guce_referrer_sig=AQAAAMORol1cPouNMBw2tDdKH-7lVN0cbao2tBZqSFQXOqP_b0n5I7fwdM7pnxSEH8f_TrjMcEGC18iGQdODdOar5GZmiB3X0yiSI0Down3odSgNTK-hv6ilDBqoL1dlfqnet_RP0RxYCNN-ey1WxzJoL3pQCWCVKA3ukjbvfqGRAgCO
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/10/2024 in #devheads-feed
5 best practices for writing interrupt service routines
Interrupt Service Routines (ISRs) are crucial for embedded systems, but poorly designed ISRs can cause race conditions, slow response times, and high CPU usage. To create effective ISRs, keep them brief and efficient to minimize CPU cycles and avoid timing issues. Avoid calling functions within ISRs to reduce execution time and maintain stability. Use static compilation, preprocessors, and inline functions to optimize ISR code while preserving modularity. Delegate heavy tasks to other threads using flags, queues, and proper synchronization for efficient and responsive ISRs. Declare shared variables as volatile to prevent compiler optimizations that could cause unpredictable behavior. Customize default ISR handlers to set diagnostic flags instead of entering infinite loops to handle unexpected interrupts safely. Following these practices improves the performance and reliability of embedded systems. ⛓ More information: https://www.embedded.com/5-best-practices-for-writing-interrupt-service-routines/
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/6/2024 in #devheads-feed
Raspberry foundation has released an affordable AI Kit
The Raspberry Pi Foundation, in collaboration with Hailo, has launched the $70 Raspberry Pi AI Kit. This kit includes an M.2 HAT+ board with a preassembled Hailo-8L AI accelerator module, boosting the Raspberry Pi 5's neural networks (NN), artificial intelligence (AI), and machine learning capabilities. Key features: ➡️13 tera-operations per second (TOPS) ➡️Single-lane PCIe 3.0 at 8Gbps ➡️Full integration with Raspberry Pi's software ecosystem ➡️Support for multiple cameras and NN configurations The kit supports AI applications like object detection and pose estimation by running complex models on the Hailo-8L co-processor, freeing up the Raspberry Pi's CPU for other tasks. ⛓ More information: https://www.raspberrypi.com/news/raspberry-pi-ai-kit-available-now-at-70/
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/4/2024 in #devheads-feed
Modern Embedded Systems Programming Free Course
In this course, you'll learn how to program embedded microcontrollers the modern way, from the basics all the way to the contemporary modern embedded programming practice. The unique approach of this course is to step down to the machine level frequently and show you exactly what happens inside your embedded microcontroller. This deeper understanding will allow you to apply the concepts more efficiently and with greater confidence. If you are looking for a practical, hands-on, well-structured, and in-depth course explaining the essential concepts in embedded programming, this free course is right for you. https://youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM&si=MyuZbxWgNtTlfvxj
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 6/3/2024 in #devheads-feed
3 tips for using CMake with embedded software
CMake is an open-source, cross-platform tool that provides efficient control over the software compilation process through platform-independent configuration files. These files generate native makefiles suitable for any compiler environment, making CMake a versatile and valuable tool for managing complex build environments. ➡️ Use Toolchain Files to Simplify Build Configuration: * Different build types, such as Debug On-Target, Release On-Target, Simulation, Test, and Code Analysis, require specific configurations. * Toolchain files help manage these variations, facilitating cross-compilation and implementation swaps. * Typically, two toolchain files (one for host builds and one for on-target builds) are sufficient. ➡️ Automate Build Commands with Custom Scripts: * Instead of memorizing long CMake commands, encapsulate them in scripts. * Custom scripts simplify the build process and reduce errors. * These scripts can include parameters for toolchain files, build types, and other settings, making them especially useful in CI/CD systems. ➡️ Pair CMake with Ninja for Faster Builds: * Ninja is a high-speed build system focused on efficiency. * Using Ninja with CMake can result in compilation times that are 4 to 6 times faster compared to traditional tools like Make. * Simple setup commands integrate Ninja into the build process, significantly reducing build times and improving development efficiency. Implementing these tips can streamline the build process for embedded software, making development faster, more efficient, and better suited to modern development practices. ⛓ More information: https://www.embedded.com/3-tips-for-using-cmake-with-embedded-software/
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 5/29/2024 in #devheads-feed
Raspberry Pi M.2 HAT+ Review: Low-cost, high-speed
The Raspberry Pi M.2 HAT+ is a recent addition to the Raspberry Pi accessory range, created to provide high-speed NVMe storage at an economical price. At just $12, this board offers PCIe Gen 3 speeds, significantly enhancing the performance for Raspberry Pi 5 users. Key features of the expansion board: ➡️One of the most affordable ways to add NVMe storage to a Raspberry Pi. ➡️Comes with a pre-connected PCIe cable and plastic standoffs for easy installation. ➡️Designed to fit the form factor of the Raspberry Pi 5, ensuring compactness and compatibility. ➡️Provides faster boot times and improved system responsiveness compared to microSD cards. ➡️Fully compatible with the latest Raspberry Pi firmware, ensuring a simple setup process. The M.2 HAT+ also manages to keep cooling efficient, only slightly increasing idle temperatures. It supports M.2 2230 and 2242 drives, which are both widely available and cost-effective. In summary, the Raspberry Pi M.2 HAT+ is a superb, budget-friendly option for adding high-speed NVMe storage to your Raspberry Pi 5, despite some minor issues with GPIO access. ⛓ More information: https://www.tomshardware.com/raspberry-pi/raspberry-pi-m2-hat-review
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 5/28/2024 in #devheads-feed
Open-Source POV Candle (Tiny Volumetric Display)
This project is an intriguing fusion of creativity, technical expertise, and innovative application of modern electronics to simulate the flickering of a candle. It uses an RP2040 board for control, a 3D-printed battery holder, and a high-speed rotating array of LEDs driven by a DC motor. The brilliance of this project lies in its use of persistence-of-vision to create the flickering effect, delivering a visually impressive result with minimal components and clever software techniques. It captivates not only with its practical functionality but also with the inventive problem-solving and hands-on construction that transform a simple concept into a sophisticated creation. More information: The article The GitHub The YouTube
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 5/27/2024 in #devheads-feed
IOT/Cloud/Security based embedded applications course
I highly recommend these courses to anyone who has a desire to learn or develop themselves. https://www.arm.com/resources/education/online-courses/internet-of-things https://www.coursera.org/learn/iot
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 5/23/2024 in #devheads-feed
How to set up STM32CubeMX and CMake together.
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 5/22/2024 in #devheads-feed
Youtube Playlist: Intro To Embedded Systems Design.
2 replies
DIIDevHeads IoT Integration Server
Created by nour_oud on 5/19/2024 in #devheads-feed
Mastering motor control: implementation in C++
This article serves as an extensive guide for creating real-time software for motor control systems using modern C++. It includes detailed programming guidelines on efficient interrupt handling, memory alignment, compiler-specific optimizations, and adherence to industry standards such as MISRA C++. Practical code examples are available on GitHub , illustrating the implementation of these techniques in motor control applications. ⛓ More information…
2 replies