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

mcu-mpu-and-firmware

middleware-and-os

edge-networking

pcb-and-analog

jobs

iot-cloud

code-review

devheads-feed

general-dev-chat

How can I create and implement DDR memory in Verilog on an FPGA?

I want to create a DDR memory using Verilog and implement it on an FPGA. I wanted to ask for resources that could help me get started. I have no idea of how DDR RAM works, I browsed some sourcces and came across DFI protocol, DDR PHY IP, but I didn't understand much. I want a basic application note or white paper that can get me started on understanding the memories. The main goal is to create a whole processor with all features possible below. I have created a RISC processor with custom ISA, which is 16-bit. I want to increases its functionality. ...

Triggering Frequency Hopping on ADRV9002 Transceiver with External Signal

Hi devs @Middleware & OS I am working on a project where i want to evaluate the Hopping modes and timings on the ADRV9002 Transceiver. I use a GUI called TES also known as Argo navis. This is made by Analog devices and communicates with the ZCU102 FPGA running a Linux distro....

Why Do I Need to Halve Prescaler Values for TIMER 2 & 3 on STM32F4 to Get Correct Interrupt Periods?

Good day everyone, @Middleware & OS I'm using an STM32F4 with three timers and experiencing unexpected behavior with the timers' interrupts. - TIMER 1 (advanced control) generates an interrupt every 1ms with (\text{PSC} = 11) and (\text{ARR} = 13999) as expected. - TIMER 2 (general purpose) is supposed to generate an interrupt every 10ms. Calculations give (\text{PSC} = 39) and (\text{ARR} = 41999), but the interrupt occurs every 20ms. To achieve 10ms, I had to set (\text{PSC} = 19). - TIMER 3 (general purpose) should generate an interrupt every 65.535ms. Calculations give (\text{PSC} = 167) and (\text{ARR} = 65535), but the interrupt occurs every 131.064ms. Halving the PSC to 83 gives the correct 65.535ms period....
Solution:
Oh @Sterling Another possibility is that there might be a factor of 2 difference due to the internal clock tree configuration of the STM32F4. Sometimes, the timers might be running at a different clock frequency than you expect because of prescaler settings in the RCC (Reset and Clock Control) that affect certain timer groups differently.

Why Does CubeMX Generate Separate FLASH and RAM Linker Scripts?

just curious why does the CubeMX generate 2 linker scripts, one ending with FLASH and the second with RAM? Despite their name both linkers include sections in both types of memory
Solution:
FLASH.ld is for Normal operation (code in FLASH). And RAM.ldis for Debug/special use (code in RAM) programs use both memory type...

Looking for some guidance on setting up an FPGA development environment

Hi everyone, I’m looking for some guidance on setting up an FPGA development environment on my Apple MacBook M1 running macOS 14.5. , I have a shallow knowledge about Verilog programming . However, my experience with terminals and setting up development environments is quite limited. I can manage some basic terminal commands but I’m far from proficient. I am now really interested in diving deeper into HDL and working on FPGA projects. Here are a few specific questions I have:...
Solution:
Get a better computer. 8 GB of RAM is not enough memory for modern FPGA development tools. And you can also avoid emulating or having to run VMs by getting an x86 machine instead of ARM.

Arduino Uno Playing Slow Motion Sound from SD Card - Need Help!

Morning guys, I have connected an Arduino Uno with two speakers and a DFR0071 SD card module. The problem is when I play the recorded sound in .wav format, it plays in slow motion. Do you have any ideas? Because I'm completely stuck, thanks. Here is the code I am using: ```cpp...

Isolating X-Axis Readings from Accelerometer Interference

I am creating a project that will use the input from the x-axis accelerometer to control the output of LEDs. I have no problem reading the output from the x-axis, but I find that when I move my project in the y-axis, it affects the x-axis readings. My project needs to read the deceleration of the x-axis without any other interference. How do I isolate the x-axis reading? Any help would be greatly appreciated....
Solution:
A low pass filter smooths out rapid changes in data, so that will make x axis reading more stable U can using a formula: filteredValue = α * newReading + (1 - α) * oldFilteredValue Where α (alpha) controls smoothing: lower α = more smoothing U can add this code const float alpha = 0.2; float filteredX = 0;...
attachment 0

Issues with Fuel Injector Testing Bench Using Arduino Minima R4 at High Frequencies

Hi Devs I m trying to create a fuel injector testing bench with an Arduino minima r4. Running on low frequencies as in the first part of my code everything appears to be good, but in the higher frequencies I believe that the injectors doesn' t close at all. I believe this because except for 50 Hz I don t see any difference in the way injectors work? Can anyone spot a mistake on hardware that can cause that. In the software I m using Arduino built in DAC, it would be better using PWM for this application? `` #include <analogWave.h> ...

Real-Time Temperature Monitoring with ATmega2560, MCP9808, and Zephyr OS: Device Driver Not Found

hey guys who has implemented real-time temperature monitoring with an ATmega2560 microcontroller? I'm using a MCP9808 sensor, and Zephyr OS, and currently trying to fix the sensor initialization error. Despite configuring the I2C peripheral in Zephyr, integrating the MCP9808 sensor, and writing code to read sensor data, I encounter the error "Sensor: Device driver not found." Here's my code: ```#include <zephyr.h> #include <device.h> #include <drivers/i2c.h> #include <sys/printk.h>...
Solution:
make sure you've enabled the MCP9808 driver in your Zephyr configuration. Add these lines to your prj.conf file: CopyCONFIG_I2C=y CONFIG_SENSOR=y CONFIG_MCP9808=y...

Issue with word Data Type When Porting Arduino Library to STM32

Hi @Middleware & OS I am porting some Arduino library code to STM32 and encountering issues with the word data type. The compiler gives me the error: "expected expression before 'word'". Here is the code: ```c uint8_t au8Buffer[MAX_BUFFER]; uint16_t *au16regs;...
Solution:
@Sterling The issue arises because word is a specific data type and function in the Arduino environment, which may not be directly available or compatible with STM32 libraries.

Issues with Accurate Quadrature Encoder Readings on BeagleBone Black

Hey guys am developing a real-time control system for a robotics application using a BeagleBone Black running Embedded Linux. The system needs to read data from a quadrature encoder to determine the position and speed of a motor. However, I encounter an issue where the encoder readings are not accurate or are missed at higher speeds. I have connected the quadrature encoder to the BeagleBone Black's GPIO pins, verified that the encoder signals (A and B) are properly connected to the correct GPIO pins. Error: Missed encoder pulses Here's my code ...

I want to design a system that tracks the inertia of a moving device

Hi, I want to design a system that tracks the inertia of a moving device I'm willing to use the MPU-9250 sensor IMU and ESP32 as micro controllers and SIM7600 to collect GPS data And send them to the cloud, my question how do we combine the data of the IMU sensor and The GPS and how we can define if the object is moving or stopped using the imu sensor, do we need Machine learning?
Solution:
finding the difference between walking and running is tricky , yes the option can be machine learning ( like use past data of rate of change of co ordinates with respect to time of people of different height , and the change rate can be specified from the the current person height using the given data ) , But it will be simple if you add calibrating feature ( like during setup you can ask a person to run for 30sec and walk for 30sec , and by using the rate of change of co ordinates data of those...

working on a program using STM32F103C8T6 where I encounter a problem reading files from an SD card

Good evening guys , I'm working on a program using an STM32F103C8T6 microcontroller where I encounter a problem reading files from an SD card. Here's the relevant part of my program: ```cpp if (!SD.begin(CHIP_SELECT)) {...
Solution:
Check the available memory before and after each file operation to see if you're running out of RAM.

i have connected my esp8266 to my laptop in the device manager its not showing up

even tho i have connected my esp8266 to my laptop in the device manager its not showing up
Solution:
Hi @Yajat_Kaul there are two variants of ESP8266 NodeMCU out there one with CH341 and other CP2102 as USB to TTL converter. So you've to install drivers suits to your module. Please confirm version. I'll suggest sharing picture of your esp8266. Also, try with other good quality MicroUSB cable avoid using cable from mobile chargers. Here is official link for CH341 drivers https://wch-ic.com/downloads/CH341SER_EXE.html

Does anyone know of any available touch HMIs with WIFI something relatively cheap

Does anyone know of any available touch HMIs with WIFI something relatively cheap. I basically have to provision 4 or 5 Touch screens used to interact with a webpage. that is their sole purpose.

Has anyone worked with the IEK-TM4C129EXL evaluation board?

Hey guys Has anyone worked with the IEK-TM4C129EXL evaluation board? If so, could you please share the necessary configurations or libraries required to develop on this board using Mbed OS?
Solution:
I wouldn't use Mbed OS anymore, they announced end of life in July 26. https://forums.mbed.com/t/important-update-on-mbed-end-of-life/23644
attachment 0

Best Practices for Developing Robust Custom Libraries for ESP32 Integrating Wi-Fi, Bluetooth, BLE

Hey guys @Middleware & OS Whilst developing a custom library for ESP32 aimed at integrating various wireless technologies (such as Wi-Fi, Bluetooth, and BLE) for an Industrial IoT project, I encountered issues related to hardware initialization and compatibility across different ESP-IDF framework versions. Specifically, the library functions intermittently fail to initialize the wireless modules correctly, leading to sporadic connection failures and inconsistent performance across devices. For e...
Solution:
use esp-idf's built in drivers and api that offer an abstraction layer above the hardware specifics, resolves compatibility across different esp32 boards and idf versions

Debugging Numerical Instability in AVX512-Optimized 2D Fluid Simulation on x86-64 CPU

In the process of me optimizing a 2D fluid simulation for x86-64 CPU using AVX512 instructions, Intel Xeon architecture , scalable processor with AVX512 support, GCC 12 compiler with -O3 optimization flags having periodic boundary conditions using explicit euler time stepping s heme I've implemented a staggered grid-based approach with a finite difference method for calculating fluid forces, but I'm encountering numerical instability issues when simulating large-scale fluid dynamics. Here is my AVX512 optimized force calculation kernel...
attachment 0

seeking for help related to data communication with a uart module.

Hi, I am seeking for help related to data communication with a uart module. The module was connected via RX0 and TX1 pins in arduino Nano , however when I am trying to send data with Serial.write(...), the program just cannot upload to the board at all. Was it because of code uploading also need to use Serial via USB? Or something else? This is the code: `` void setup() { // put your setup code here, to run once:...
Solution:
I would think not, as if the Arduino is still trying to write it would interfere with the communication either way. You could always try it, as I could be wrong but even if it did work perhaps it would be simpler to use software serial.
Next