DevHeads IoT Integration Server

DII

DevHeads IoT Integration Server

The DevHeads IoT Integration Server accelerates technology engineering by helping pro devs learn, share and collaborate.

Join

seeking-collabs

πŸͺ²-firmware-and-baremetal

πŸ“¦-middleware-and-os

πŸ“‘-edge-networking

🟩-pcb-and-analog

jobs

☁-iot-cloud

βœ…-code-review

devheads-feed

general-dev-chat

Understanding the bootloader part and integration when using u-boot 10/03 Yocto Build Issues AMA

QUESTION (#5): Fluffy-Inflation-446: " I really struggle to completely understand the bootloader part and integration when using u-boot. Any good materials to dive in u-boot port and device tree manipulation using Yocto? Thanks " πŸ”— π—₯π—²π—΄π—Άπ˜€π˜π—²π—Ώ 𝗳𝗼𝗿 π—Όπ˜‚π—Ώ π˜‚π—½π—°π—Όπ—Ίπ—Άπ—»π—΄ π—²π˜ƒπ—²π—»π˜π˜€: https://app.livestorm.co/devheads-community/devheads-weekly-office-hours-1...

Added OpenCV to my Yocto System but Encountered AttributeError 10/03 Yocto Build Issues AMA

QUESTION (#4): Several: " I added OpenCV to my system, but I am getting AttributeError: module 'cv2' has no attribute 'dnn' when I try to run my code. " πŸ”— π—₯π—²π—΄π—Άπ˜€π˜π—²π—Ώ 𝗳𝗼𝗿 π—Όπ˜‚π—Ώ π˜‚π—½π—°π—Όπ—Ίπ—Άπ—»π—΄ π—²π˜ƒπ—²π—»π˜π˜€: https://app.livestorm.co/devheads-community/devheads-weekly-office-hours-1...

Segmentation Fault with Flatten() in TensorFlow Lite for Microcontrollers on STM32F746NG

I'm building a CNN model to run on an STM32F746NG Discovery board following the "TensorFlow Lite for Microcontrollers" tutorials and the TinyML book. I know that the supported TensorFlow-Keras functions are listed in the all_ops_resolver.cc file (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/micro/all_ops_resolver.cc), but I'm having trouble with the Flatten() function. It doesn’t seem to be listed, even though it's such a basic operation. I’m using other functions from the list, and my model looks like this: model = models.Sequential() model.add(layers.Conv2D(16, (3, 3), activation='relu', input_shape=(36, 36, 1))) model.add(layers.MaxPooling2D((2, 2)))...

Yocto Override Syntax and how this works with bbappends 10/03 Yocto Build Issues AMA

From @Express_Damage5958: Yocto Override Syntax and how this works with bbappends...

Can't find any clear documentation on how to provide a custom file, Like /etc/issue? 10/3 Yocto AMA

From @Jagauthier: I want to provide a custom file. Like /etc/issue. However, I can't find any clear documentation on how to do this. I've tried multiple things including creating basefiles%.bbappend, and as well as a custom recipe to provide it. Either it's not copied or the image fails because base_files things I am already providing the file. Why is this so hard? I should be able to find the answer with a simple google search, like this https://www.google.com/search?client=firefox-b-1-d&q=Yo...

How to separate camera.cfg of kernel bbappend file into two conditions? 10/3 Yocto Build Issues AMA

From @MayQueen Technologies: In the camera.cfg of kernel bbappend file, is there a way to separate two conditions where only camera customers need to add this cfg or not? Should I add a new DISTRO variable? @Ming...

What's with strange Yocto release names (Kirkstone, Scarthgap, etc)? 10/3 Yocto Build Issues AMA

From @everal: What is with all the strange names for Yocto releases - Kirkstone, Scarthgap, etc?

IRAM constrains in ESP32

I'm developing a BLE code in ESP32 using nimble stack, that itself consuming around 70% of the IRAM. I want to integrate few other peripherals like CAN, SPI. How can I optimize or reduce the IRAM size with working functionality?...
No description

Debugging Memory Management & Task Scheduling Issues in FreeRTOS on ESP32

Hey guys while developing a FreeRTOS-based realtime application on ESP32 to manage multiple industrial sensors, l've encountered system crashes and memory management issues, likely due to stack overflows and improper task scheduling. I've previously tried standard debugging methods like increasing stack size and adjusting task priorities. Would advanced tools like FreeRTOS Tracealyzer or ESP-IDF's built-in debugging be more effective for this scenario? Additionally, when it comes to memory management, should I focus on static memory allocation to avoid fragmentation, or is dynamic allocation more efficient in handling varying task loads?...

do you mind handing out a primer on linking vs static compiliing. Especially in the context of GPL?

@Ming while it's fresh do you mind handing out a primer on linking vs static compiliing. Especially in the context of GPL?

Issue with Simultaneous Activation of Multiple Relays in Zephyr RTOS on ESP32

Still based on my project on home automation system that controls water pumps and taps based on motion detection using the Zephyr RTOS on an ESP32. I added more relay modules for each tap so i can control multiple taps based on the same motion detection But the Multiple relays not activating simultaneously how can i resolve this.
```c define TAP1_PIN 25...

Best Synchronization Techniques for Task Communication in FreeRTOS on ESP32

Hi guys i'm developing a real-time sensor data display system on an ESP32 microcontroller using FreeRTOS. The project involves two main tasks: TaskA handles sensor data collection and processing while TaskB performs calculations and displays the results on an LCD. To ensure smooth operation, I need to synchronize their execution so that: TaskA doesn’t send data to TaskB until the data is fully ready and TaskB doesn’t process or display any data until it has been correctly received from TaskA. ...

Why will there be issues while trying to build the Boot to Gecko (B2G) project on my x86-64 Ubuntu

Why will there be issues while trying to build the Boot to Gecko (B2G) project on my x86-64 Ubuntu 12.10 system. The Gecko build fails when attempting to link librt, even though the library is present on my system. When running the build command for Gecko: ``` $ ./build.sh -j1 gecko...

Ensuring Message Prioritization on CAN Bus with AVR128DA48 and Zephyr OS for Industrial Monitoring

I’m trying to implement message prioritization on the CAN Bus for my Smart Industrial Monitoring System. High-priority messages (emergency alerts) should be transmitted before regular sensor data. I’m using the AVR128DA48 with Zephyr OS. This is how I’ve set up the message: ``` struct zcan_frame emergency_frame = { .id_type = CAN_STANDARD_IDENTIFIER,...

Linux is now an RTOS

As of Linux 6.12 the real-time PREMPT_RT support has been merged into the kernel. It has only taken about 20 years! However, I still don’t want it controlling my car’s airbags!!...

Tech Tips Yocto AMA

In preparation of the Tech Tips AMA on Yocto, this is a place to post the questions you want me to look into (yes - I'm cheating in wanting to give myself some time to research and test the answers before I go live!). To start people off, here are some of the questions I have been asked outside of this channel that I may be answering: - What is with all these strange names for Yocto relases - Kirkstone, Scarthgap, etc?...

Should I Adjust min_child_samples When Training LightGBM with 100% of the Data?

Hi, I'm training a LightGBM model to optimize performance for an embedded system application, specifically for real-time anomaly detection on edge devices. I'm currently facing a dilemma regarding parameter tuning when increasing the amount of training data. Initially, I split my dataset into 90% for training and 10% for testing. Using grid search, I found the optimal parameters for the model. Now, I want to leverage 100% of the data to train the model to make it as robust as possible for deployment on resource-constrained devices. My question is about parameters like min_child_samples, which are related to the data volume. When I increase the data from 90% to 100%, should I keep min_child_samples the same as the value found during the 90% data training? Or should I adjust it because the data volume has increased, considering the constraints of embedded systems?...
Solution:
Hi @wafa_ath you need to re adjust min_child_samples when you want to switch from 90% to 100% of the data, Observe that - Larger dataset = Higher min_child_samples value. Why ? Cus since you now have more data, increasing the value of min_child_samples it may help prevent the model from becoming complex and overfitting on noise yeah, which is important for embedded systems - Then start by incrementally increasing min_child_samples by a small percentage , maybe you can start by 10% to 20% and monitor performance on cross validation...

Can I Directly Update the TLB During a Page Fault on x86-64?

I’m working with x86-64 architecture in long mode and want to know if it's possible to directly update the Translation Lookaside Buffer (TLB) with a mapping from a virtual address to a physical address during a page fault, without going through the typical page table walk process. Virtual Address: 0x7FFFD0000000
Physical Address: 0x12345000 ...

Resolving TensorFlow Installation Error for TinyML Model on ESP32 Using MicroPython

Hey guys still based on my project on developing a home automation voice-controlled system using MicroPython and TinyML on an ESP32 microcontroller to recognize specific voice commands ("turn on" and "turn off") for controlling an LED. Am having issues installing my Tensorflow To complile my TinyMl model but keep getting this error ```python ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them....

Troubleshooting ADC Configuration for Sensor Data Acquisition on AVR128DA48 with Zephyr OS

hey guys on my Smart Industrial Monitoring System project, I've connected a vibration sensor (MPU6050) and temperature sensor (DS18B20) to the AVR128DA48. I'm using Zephyr OS, and I've configured the ADC for reading the sensor data. Below is the code I'm using to initialize the ADC for reading sensor data: ``` #include <zephyr.h> #include <drivers/adc.h>...
Solution:
Do you have the correct ADC device name, we make mistakes like this attimes . In the Zephyr OS, the ADC device names may vary depending on the hardware you're using. Instead of "ADC_0", check your board’s device tree for the correct device name. Print out the available devices with: ``` const struct device *adc_dev = device_get_binding(DT_LABEL(DT_NODELABEL(adc0))); if (!adc_dev) { printk("Failed to bind to ADC_0 device\n");...