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

CMake Error Setting Up Zephyr Environment for MicroPython on ESP32

Hello guys am working on a simple temperature monitoring system using MicroPython on a Zephyr RTOS-supported microcontroller, such as the ESP32, and transmit the data over Bluetooth Low Energy (BLE) to a mobile app? Am currently trying to setup a Zephyr environment for MicroPython I tried ```cmake cmake_minimum_required(VERSION 3.13.1)...

Why Isn't My OLED Screen Updating with Pressure Readings on AVR128DA48?

Hey guys, I'm trying to display real-time pressure readings on an OLED screen using I2C in my AVR128DA48-based pressure monitoring project. However, the OLED screen does not update as expected. the I2C wiring and connection to the OLED screen are quite cool, and I also ensured that the pressure readings were valid and correctly formatted. Yet, I'm still encountering the OLED screen failing to display any pressure readings. What might be causing this issue, and how can I ensure that the OLED screen updates correctly with real-time pressure values? this is my code instructions: ``` #include <zephyr.h>...

How to Build a Human Interface for BeagleBone Industrial with 3 Push Buttons on TFT LCD Display?

Hi I'm working in industrial automation controller. In that I have beaglebone industrial connected with TFT LCD display via HDMI. I used 3 push button to Control Interface. How to build Human Interface which is controlled by 3 push button which displayed in LCD display. Recommend some techniques or method to build this Interface

Is UART Different from USART on the Arduino Uno?

Question: UART stands for Universal Asynchronous Receiver Transmitter, and what is used on something like the Arduino Uno for programming and various interface tasks, correct? Alternatively, USART stands for Universal Synchronous and Asynchronous Receiver Transmitter, and is something different, correct (e.g. NOT used with Arduino Uno)?...

Bare Metal Program - Adafruit RP2040 LoRa - Feather

First time MCU programmer here. The current goal is a minimalistic firmware with basics, defining the memory map, booting, setting clocks, and blinking an led. Using C language. Raspberry’s RP2040 is an Arm cortex M0+. No plans to play with the LoRa chip right now. Considering I am an embedded systems beginner I figured it’s worth it to reach out to community to see if there are obvious speed bumps I haven’t recognized with this board: https://www.adafruit.com/product/5714 RP2040 32-bit Cortex M0+ dual core...

Looking for project ideas and examples for AVR ATmega32 with UART

hey so I can interface with an AVR ATmega32 well I know how to utilize my UART but is there some source from where I can find small/big projects?
Solution:
Hi @Shousha Check these lists of projects with schematic, source codes etc. https://atmega32-avr.com/projects/ You can also try build and modify projects with new feature addition. Hope this will help!...

How to control a 5V output pin on STM32 Nucleo L4R5ZI remotely through a connected PC?

I have an STM32 Nucleo L4R5ZI, which is connected to a PC. The Nucleo is located in a place where I don't have direct access to it, so I can only control it through the connected PC. I need to stop the 5V output from one of its pins for 10 seconds, by any means necessary. I'm okay with restarting or shutting down the Nucleo if needed. However, I'm unsure how to achieve this. I've already attempted to cut power to the USB from the OS, but that didn’t work. I’m limited to making changes either in the code or the OS; I can't physically modify the Nucleo. How can I do this?...

What is the purpose of HAL_ADC_PollForConversion in STM32 HAL ADC code?

So I've been experimenting with the STM32 (F103RB) for a few weeks, but I'm unclear about the purpose of the HAL_ADC_PollForConversion function. It seems to have no effect on the ADC readings in my code. Here’s an example: The 1st (with PollForConversion): ```c...

What is the best ESP32 board and audio playback solution for a smart clock with NTP synchronization?

Hello guys I'm working on a compact ESP32 project to build a smart clock that fits inside a standard clock enclosure. I want to synchronize the time with NTP servers to ensure accurate timekeeping and play audio files, such as MP3 or WAV, at the top of every hour. The device should be small enough to fit inside a clock, making it a discreet addition to any room. I'm looking for suggestions on a suitable ESP32 board and audio playback solution that can handle my requirements. Additionally, I'd ap...

GUI interface for my project with Beaglebone Industrial

Hi I'm working in industrial automation controller. In that I have beaglebone industrial connected with TFT LCD display via HDMI. I used 3 push button to Control Interface. How to build Human Interface which is controlled by 3 push button which displayed in LCD display. Recommend some techniques or method to build this Interface #firmware-and-baremetal #middleware-and-os...

How to fix "Failed to initialize SD card -ENODEV" error on AVR128DA48 using SPI?

I'm working on logging pressure data to an SD card via the SPI interface on the AVR128DA48 microcontroller. However, I'm encountering an issue where the SD card fails to initialize. I have ensured the SD card is properly formatted and compatible with the system, and also verified the SPI wiring and connection to the SD card module, but I'm still facing the Failed to initialize SD card -ENODEV error. how can I overcome this and log the pressure data? this is my instruction snippet: ``` #include <zephyr.h> #include <device.h>...

Why does my NMI handler address end with a 0, but the vector address ends with a 1?

Happy Sunday guys, I am working with an STM32-F49ZI Nucleo board, which features an ARM Cortex-M4 32-bit MCU. I am using GCC as my compiler and GCC linker. For debugging, I am using OpenOCD and I inspected the addresses through the memory window in the debugger I have written my own NMI handler function, NMI_Handler, and when I inspect its address in the debugger, I see that it ends with a 0. However, the vector address for the NMI handler contains the same address, but the last bit is set to 1. I understand that this might be related to the ARM Cortex-M4’s support for Thumb instructions (which are 16-bit), but I'm having trouble understanding why the last bit is set to 1. ...
Solution:
The last bit of the vector address is set to 1 to indicate that the handler uses Thumb instructions. When the processor jumps to the handler, it automatically clears this bit to get the actual function address, Cortex-M processors always operate in Thumb mode.

Why isn't my LED responding to pressure readings in AVR128DA48 project?

hey guys, In my ongoing project on real-time pressure monitoring using the AVR128DA48 microcontroller, I’ve set up an alert system that triggers an LED to blink when the pressure exceeds a certain threshold. However, the LED doesn't seem to respond correctly to the pressure values, I have tested the LED separately to ensure it is functioning, verified that the BMP280 sensor is returning valid pressure readings, and also checked the GPIO pin configuration for the LED, yet still fails to respond correctly to the pressure readings, even when the threshold is crossed. this is my code below: ``` #include <zephyr.h> #include <device.h>...
Solution:
Yea thankz @Marvee Amasi I checked the issue was coming from my comparison of the pressure values...I had to use a single unit for it, both for the integer and fractional values..thanks for pointing out

How to resolve board restarting issue on LilyGO TTGO LoRa32 (T3 V1.6.1)?

Hii , I have a problem with my LilyGO TTGO OLED LoRa32 board. Board reference: T3 V1.6.1 Pinout:...
attachment 0

Which MicroPython libraries should I use for ECG with ESP32?

Hello everyone, I'm trying to make ECG using esp32 with micropython, I need help to find the libraries to use in code.

How can I resolve I2C transfer failure on AVR128DA48 with BMP280 sensor in Zephyr OS?

Hello guys, I'm working on a real-time pressure monitoring system for industrial automation using the AVR128DA48 microcontroller and Zephyr OS. I'm interfacing a BMP280 pressure sensor via I2C, but I'm encountering an error during communication. The I2C wiring and connections between the BMP280 sensor and AVR128DA48 are verified to be ok, I double-checked the BMP280 sensor's I2C address (0x76), and updated the device tree for correct I2C configuration in Zephyr OS. yet still having this issue I2C transfer failed with error code -EIO making it unable to establish successful I2C communication with the BMP280 sensor. who has an idea of how I can reslove it? this is my code: ```#include <zephyr.h> #include <device.h>...
Solution:
hey buddy @Dtynin try updating I2C device binding, with the following supposedly #define I2C_DEV DT_LABEL(DT_NODELABEL(i2c0))

Segmentation Fault in C Function Printing Double from Assembly Code

I'm encountering a segmentation fault while calling a C function from assembly code to print floating point values. The C function employs a switch statement to handle different data types, including doubles. Been able to confirm that the issue lies within the printf function when handling double values, as converting the double to an integer before printing works correctly. But directly printing the double using %f results in a segmentation fault. I'm running this on a 64 bit system (Ubuntu 22.04) and the GCC compiler. Any insights into resolving this issue ?...
Solution:
@Marvee Amasi It sounds like you’re dealing with an alignment issue or possibly an issue with how the double is being accessed in memory. When you cast a long to a double, there’s a chance that the address isn’t properly aligned for accessing double-precision floating point numbers, especially on a 64-bit system. A quick test would be to ensure that val is aligned correctly before casting it to a double. You can add an assertion to check the alignment ```c...
attachment 0

Automatically Start Obstacle Detection System on BeagleBone Black at Boot

still based on myquestion on developing an obstacle detection system using a BeagleBone Black running Embedded Linux using HC-SR04 ultrasonic sensor to measure distances and displays the measurements on a 16x2 LCD screen, how do i ensure my obstacle detection system starts automatically when the BeagleBone Black boots up
Solution:
To start your obstacle detection system automatically on BeagleBone Black boot-up: 1. Create a systemd service file (obstacle_detection.service) in /etc/systemd/system/ 2. Enable the service: sudo systemctl enable obstacle_detection.service 3. Start the service: sudo systemctl start obstacle_detection.service...

LCD Screen Remains Blank on BeagleBone Black with HC-SR04 Ultrasonic Sensor

hello guys, based on my previous question on developing an obstacle detection system using a BeagleBone Black running Embedded Linux using HC-SR04 ultrasonic sensor to measure distances and displays the measurements on a 16x2 LCD screen. am encoutering a situation where the LCD screen remains blank and does not display any readings, and i have verified the lcd is powered correctly, i have also checked lcd initialization
python
lcd = CharLCD(pin_rs=LCD_RS, pin_e=LCD_E, pins_data=[LCD_D4, LCD_D5, LCD_D6, LCD_D7], numbering_mode=GPIO.BOARD)
python
lcd = CharLCD(pin_rs=LCD_RS, pin_e=LCD_E, pins_data=[LCD_D4, LCD_D5, LCD_D6, LCD_D7], numbering_mode=GPIO.BOARD)
but still my lcd screen remains blank...

Configuring USB CDC Rx Interrupt for STM32-F446RE (Nucleo)

I am seeking guidance on configuring a USB CDC Rx interrupt to handle data reception for the STM32-F446RE (Nucleo). At present, I utilize int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) in a loop to receive incoming data. However, due to the transmission of substantial amounts of data, an interrupt-based reception technique is necessary. Any assistance or advice would be highly appreciated.
Solution:
Hey @Sterling The function is a callback that is already being called in an interrupt context by the USB stack. You should not be calling it in a loop....