r/embedded • • Dec 30 '21

New to embedded? Career and education question? Please start from this FAQ.

Thumbnail old.reddit.com
321 Upvotes

r/embedded • • 15h ago

My completely open source, Stereo Machine Vision camera, that runs Linux

Thumbnail
rootkitlabs.com
38 Upvotes

I finally got the time to write this this product. Demo videos if you're interested: https://youtube.com/shorts/l1qJyqeMBa0?si=A3XdCOafJR4zm52V

AMA :)


r/embedded • • 4h ago

ESP32 + L293D Motor Driver Causing I2C LCD to Display Random Characters

1 Upvotes

Hi everyone,

I'm working on a project using an ESP32, an L293D motor driver, a 12V DC motor, and a 16x2 I2C LCD.

I'm facing a problem with the LCD:

When the motor is OFF, the LCD works normally.

When the motor is ON, the LCD starts displaying random characters or garbage text.


r/embedded • • 6h ago

Isolating a virtio-net driver on ARM64 with seL4 (and a question about the Pi 4 GENET controller)

0 Upvotes

Hi everyone.

I am working on a research prototype of a trusted computing base on top of the seL4 microkernel. The core idea is simple: if a driver crashes, the kernel should not care. So I moved the network driver and the protocol stack into a separate child process with its own VSpace. A fault there cannot reach the verified core.

Recently I started porting this to ARM64 (targeting the Raspberry Pi 4B). Right now the full cycle works in QEMU: ELF loader, seL4 kernel, root task, UART output, and a virtio-net driver running inside an isolated ELF child. The child has its own CSpace and VSpace, and it re-attaches to the device MMIO and DMA frame that the root task initialized. Interrupts are routed through seL4 Notifications, and the child signals back to the root when it finishes.

The hardest part was not writing the driver, but getting the object management and page table setup right. The AArch64 page table hierarchy and ASID pool assignment took a while to click.

Now I am stuck on the next step. On the real Raspberry Pi 4B, the network controller is Broadcom GENET, not virtio-net. QEMU's raspi4b machine does not emulate GENET, so I cannot validate a driver for it in the emulator. I know there are Linux and L4Re references, but I would prefer to hear from someone who has actually touched this hardware.

If you have worked with GENET on the Pi 4, or with seL4 on ARM64, I would appreciate any pointers. Especially about the DMA layout and the interrupt mapping. I am not looking for a ready-made driver, just for a direction that will save me a few days of guessing.

Repo and docs are here if anyone is curious: https://github.com/Nik0laic4/SchildTCB (the arm64 branch is where the action is).


r/embedded • • 17h ago

Renesas India Review Request

7 Upvotes

Hi,

Can anyone share some info about renesas india, like work culture, layoffs, annual compensation (average).

I have got an offer from renesas hyderabad, hence asking. I am currently at TI.


r/embedded • • 19h ago

Experience with precertified nRF52840 modules?

6 Upvotes

Hello,

I've been developing a design that uses the nRF52840 for BLE communication. I've got the firmware pretty much completed and everything validated with the development kit so I'm moving on to doing the board design. My understanding is that I could save myself some RF design work and the whole FCC certification process by using a precertified module such as the Raytac MDBT50Q-1MV2 or one of the other Nordic-recommended designs.

Has anyone worked with these before? Any specific recommendations? Gotchas to look out for?


r/embedded • • 21h ago

Re-entering corporate work . advise on how to be AI educated.

9 Upvotes

I am not technically ignorant but I am Ai ignorant. When I left work more than a year ago, there was no ai.

I am entering workforce again and I know ai is used by everyone in the company. So I am worried I will be a dinosaur. It is a whole new world and it is very scary for me right now.

I was writing python and verilog in the past. I will still be doing same. I think. But with help of ai.

I want to get familiar with basic skills in using Claude, and co pilot, learn how to automate tasks, familiarize with the terminology.

Internet is full of information and various classes.
But I don’t know how to judge their content to make a selection.

How do you use ai in your daily work ?

Could someone here suggest some online courses to get started ?

How did you go about learning about ai ?

I am not trying to create models or do phd level stuff.

I am trying to learn how to use it at workplace to be more productive.

Thank you all.


r/embedded • • 16h ago

Need help for this problem : STM32G070 – PB15 GPIO input always reads LOW with internal pull-up enabled

2 Upvotes

r/embedded • • 14h ago

A SCPI command times out after being sent. How do you determine whether the instrument executed it?

0 Upvotes

I've been working on a Rust-based AI-to-hardware runtime called OpenMHS, and one of the interesting challenges has been handling ambiguous instrument execution.

Suppose you send a SCPI command to a programmable instrument. The connection times out before receiving a response.

The command might have executed, or it might not have. Blindly retrying could be unsafe, especially for non-idempotent operations.

Our current approach:

  • Record UNKNOWN_OUTCOME rather than treating a timeout as failure.
  • Block potentially unsafe retries until the command is reconciled.
  • Handle late SCPI responses to avoid confusing subsequent exchanges.
  • Use instrument readback or operator verification to resolve uncertain outcomes.

We've tested this behavior against simulated instruments, but haven't validated it with physical equipment.

I'm curious how engineers working with real SCPI instruments handle this. Are there cases where readback cannot reliably distinguish whether an operation occurred?

Implementation: https://github.com/KNambiarDJsc/Open-MHS/blob/main/docs/adapters/scpi.md#timeouts-cancellation-and-retries


r/embedded • • 13h ago

Good sources to learn Embedded Systems and C

0 Upvotes

Hello! So my background is completely in cybersecurity; I got my BSc and MSc in it, I couldn't find a job until I got hired by this company for soldering. Suddenly, because they found out I can program, I have now become the Lead Embedded Systems Engineer.

I have been forced to program in C (I am struggling; I literally translate Python code and then go to W3Schools to get the C translation), and I spend days reading PIC24 microcontroller PDFs to find out how to use features and what pins can do. Same with ESP32's. However, I struggle to retain information like MPLAB shortcuts, settings, etc. I don't understand the x16 compiler.

And one thing I have been racking my brain about recently, is I added DMA (what i understand is sensor value straight to ram) and due to the capacitors inside of the pic charging and discharging quickly, I end up getting the charged value, instead of the real value. For example, the analogue pins show 1.5V; if the reading is below 1.5V, every analogue pin reads 1.5V. However, if it's 3.3V, every value maxes out. I had this with 8 analogues on one pin, as soon as I slowed it down to 60 mips and turned DMA off, it was fine again.

I am having one of those moments where I have never been taught or trained to do this, in the interview, they asked me what AC and DC was, I have no clue (I know now), and my background is just in programming Python, and I know a hell of a lot about cyber security and data transmission.

Any advice would be amazing, as I recently nearly blew myself up with a 330 V charged capacitor while programming a DC-DC converter because I forgot to define the analogue pin to go high, which didn't switch the relay off.

To me, I think of embedded systems like I would a Unix system on really, really old hardware.

Thank you.
TL;DR: Any good sources I could learn from as someone not educated in this field, but forced to be in this field due to the job market?


r/embedded • • 1d ago

books about writing a linux driver for a real device

10 Upvotes

Are there any books or tutorials about writing a linux device driver for a real device.

Like they have some specs for a real wifi controller and then take you step by step how to communicate with that device in a linux module.

I've read quite a few books now about driver development but they remain very general. explain about memory management, createing char or block devices etc. But not a real device


r/embedded • • 2d ago

How do u keep motivation on personal projects while managing full time job

Post image
383 Upvotes

I started a embedded project like 5months ago, definitely not with full on dedication, i just like to do whatever peeks my interest, before i was trying Digital and FPGA things. Any ways like for this one i thought maybe i should design my own drivers and all from the bottom up and i started and it was not fun to have the first project building everything from basics, well i knew concepts from my university classes but definitely not on how to use them.

Any ways i built few stuff with no HAL, no reference, just on my own from whatever i could think of, i did some sensor drivers for the project, then some helper libraries, and then probably the most time consuming one the TFT display driver, but i somehow got it working too, its not perfect but it works at least also i have attached a image of it working and probably will link my git if someone wants check if i am real or not, but be warned its messy.

And now i am trying to make it proper i guess starting from again I2C driver by adding interrupts instead of polling, it doesn't matters for my current project but i have that problem of trying to make it perfect at;east for my eyes, so its taking time , and also bcz of job i been getting less time. i probably do have bad planning and time management, but just wanted to get to know how other people handle it, sorry for yapping.

Thank you,
Github


r/embedded • • 2d ago

I finished my first ever project! A streaming device for my favorite music broadcast

Enable HLS to view with audio, or disable this notification

107 Upvotes

I’ve been building this for a while now but I’m extremely proud of how it turned out.

It’s basically an esp32S3 with a DAC, display and rotary encoder. I wrote the software myself based on other open source internet radio projects.

It will stay permanently connected to my speakers

The esp also hosts a local site so it can be controlled by my phone and PC.

I definitely struggled way too long with the stripboard layout and had to change the GPIOs multiple times.
The enclosure was fairly easy to design and print.

NTS sells basically the exact same thing for 163€ and I ended up spending about 20€

https://shop.nts.live/products/atonemo-nts-radio-player?_su_rec=GscQ--4umlaH8pXFFeWqixHMHGaErNL3CWHI5uBl0aHVbBQLApS8lzDtljSPSYoiKRocUeWiDVQxb9WePT911zNTtSnGL_8O6sXq0h80bkH5TRKk9XeakbzEl6GZCvFGCRX3atOspGmAWikyg0bDTEDgOxlJJOSpEIHZk2xALdIReY6P4ThWZeZgjdDLdA1b1bd-hxc04eZIs9qxQ3DvzN42jvOw14_IRB0bfBz3s2jlm0LnvMERDS2_dBiyoJ-vCZyvXDPHqyxHagMFI_jwhFah

Would love to hear what you think about it, have any ideas on how to improve it or are interested in building one yourself. I can work on a guide if anyone’s interested.

Cheers


r/embedded • • 13h ago

How can artificial intelligence be integrated into embedded systems?

0 Upvotes

Artificial Intelligence can be integrated into embedded systems by combining microcontrollers or embedded processors, sensors, AI/ML algorithms, and software to enable devices to analyze data, make decisions, and perform tasks automatically with minimal human intervention.


r/embedded • • 2d ago

Which microcontroller would you use if you needed 2 USB ports?

44 Upvotes

At work I have to use a severely locked down Windows desktop, with a ridiculously short inactivity timeout. I can't change it, and I can't use a conventional mouse jiggler, because it shows up as a second mouse, which is not allowed. I also can't use bluetooth. A potential solution I am considering is to make a USB pass through device, that would appear to the system to be the original mouse, but would periodically jiggle if there had been no activity for a minute or so. This would need 2 USB ports, one to plug the mouse into, and one to connect to the system. Is there a microcontroller that has 2 USB ports? I don't need wifi, bluetooth, or any other interfaces.

Please don't suggest I look for a new job, I already am. I am also open to alternate solutions.

Thanks.


r/embedded • • 1d ago

I wanna make video games for an MCU (ESP32) Any good 2D graphics library?

3 Upvotes

I need the library to not depend on any frameworks, a standalone one

what i mean by this is that I just provide a buffer (preferably RGB565), and it simple writes to it so i handle the display push side.

all I need is basic sprite support, and it must be fast enough to make a bullet hell.

Please, tell me any recommendations!


r/embedded • • 1d ago

I am confused regarding selling and building a closed source product which was inspired by APGL:3.0 licensed project

1 Upvotes

hi guys , We’re a small student team . We’re building a low-cost river flow monitoring device for flood and canal monitoring. The open-source project that inspired us is under the AGPL license. We read its source code, then wrote our own code from scratch for a small embedded board(the original creator code needed 8gb raspi 5 , our works on esp32p4) , copying none of it. We want to sell the device.

A few questions:

  1. Does reading the original source make our code a derivative work?
  2. Does writing from a spec help, if the spec’s author had seen the original?
  3. Can we keep our firmware closed ?
  4. Has anyone shipped hardware around AGPL software? How did it go?

We’re also happy to hear what you’d do if you were us.

Thanks!


r/embedded • • 1d ago

Arduino Uno + INA219: Need help simulating load and voltage modulation

0 Upvotes

Hey everyone,

I am trying to use an Arduino Uno and an INA219 current sensor to test two things at the same time: load modulation (changing current) and voltage modulation (dropping a line from 9V down to 7V).

My setup plan:

• For current shifts: An N-channel MOSFET switching a 100-ohm resistor on and off.

• For voltage shifts: A P-channel MOSFET dropping the 9V line down to 7V.

• For reading data: The INA219 sitting on the high side of the 9V line.

A couple of quick questions:

  1. The INA219 takes about 532 μs to read data by default. How fast can I change the signal before the sensor gets too slow to catch it?

  2. What is the easiest way to drop the voltage from 9V to 7V using the MOSFET without overcomplicating the circuit?

Thanks for any tips or wiring ideas!


r/embedded • • 2d ago

How does node size affect MCU characteristics?

22 Upvotes

What could one expect to be different between say 350nm and 32nm for something like Arduino?

- static and dynamic leakage? Would a 1MHz chip use less energy with bigger node size?

- voltage both min and max?

- are GPIO pins driven directly from chip? Does size affect input resistance and output current limits?

- other practical things that may matter?


r/embedded • • 2d ago

AI use in private vs military sector

21 Upvotes

Hey all,
I have been in the field for little over 2 years. One year working as an embedded firmware engineer and for more than a year more as a linux device driver/bsp engineer and for the last 3-4 months company that I work at has been pushing very heavily to agentic development.

Basically a bug is found and my boss says just give it to claude and give the ssh access to the product that we are developing to claude too so it can debug this. And I really hate that and I feel like im not learning as much as I should be.

So basically my question is:
Is there a difference in these agentic workflows between private sector companies and military companies/startups where in my opinion privacy is way more important than in private sector.

The main reason why Im asking this question is because im seriously considering switching jobs and I just want to know what is the best sector to go to.

Thank you and will be waiting for your opinions and answers.


r/embedded • • 2d ago

Antenna Design as MSc Comp Eng thesis

6 Upvotes

I was thinking of creating a custom open-source compact inverted-F antenna targeting 4.5-5 GHz. There is the SWRA117D; however, it was designed a long time ago for 1 mm-thick PCBs (compared to mostly 1.6mm PCBs of today) and for a Dk that is a little different than the most common values used today. As far as I know, that antenna works well enough on 1.6mm PCBs (common JLC stack-ups, etc...)

AN91445 has two inverted-F antenna designs (pages 10 and 15) targeting ~4.3 Dk and 1.6 mm; they even tell you how to calibrate the antennas to your own PCB thickness. They are both compact, but the first one is vertically constrained, and they both perform differently compared to the TI one in terms of gain and radiation patterns.

There is also the WeACT STM32WB55 Black Pill antenna, which isn't really "open source". The antenna shape is available in a PDF they share on GitHub, but the PCB stackup and antenna performance are unknown.

--

Would it make sense and/or be realistic for me to try to design a custom open-source inverted-F trace antenna? Maybe design one that performs better in some aspect or maybe target a different frequency like 433 MHz (for LoRa, for example). As far as I know, there is no 433 MHz antenna with the qualities above. I found a few 433 MHz antennas that somewhat fit what I'm after in IEEE, though that isn't open source, of course.

I don't have much knowledge in RF/design (I do in PCB/hardware/electronics design), but I have an idea of how I would go about doing this: use one of the above antennas as a starting point or start from scratch in a simulator like the one in MATLAB (I don't know if it's good enough, but it's accessible to me as a student; there is also a SWRA117D demo and the results match TI measurements), and measure it using a VNA. I can maybe also manufacture all antennas and test them under the same conditions, then compare them. I also plan on publishing the paper in IEEE if it's good/novel enough.


r/embedded • • 3d ago

Is 0.3mm FFC too delicate for programming/debugging connection?

Post image
69 Upvotes

Hi everyone,

I'm currently working on a product that is very space constrained. Additionally, it features 3 MCUs, requiting ~25 connections between the debuggers and the device. On previous products, we've used beds of nails on 3D printed fixtures, but they proved unreliable, fiddly and took a lot of time to put together.

I'm leaning towards putting a single FFC connector on the board, and have a breakout board route all of the signals to the three debuggers.

I've only worked with 1mm FFCs, and they are quite rugged. Here, to save space, i wanted to go with smaller pitch. I found 2 options:

0.5mm vertical connectors are around 51mm2

0.3mm vertical connectors are around 27mm2

Are the 0.3mm FFCs as delicate as they look? Will they survive a FW engineer handling them? Are they significantly more likely to break or short than the standard 0.5mm FFCs?

Please share your experiences. Thank you in advance.


r/embedded • • 2d ago

I compiled a CC0 Markdown reference for STM32/ESP32 hardware traps, op-amps, timer math, and Linux debugging (with a Python PSC/ARR solver & SPICE netlist)

0 Upvotes

Over the past few months I've been consolidating my bench notes into a single version-controlled reference so I stop digging through RM0008, AN2834, and Espressif datasheets for the same formulas and pin restrictions.

Everything is written in native GitHub LaTeX and Mermaid diagrams under the CC0 public domain dedication:

What is currently covered:

  1. MCU Hardware Traps & PCB Checklist: ESP32 strapping pins (GPIO0, GPIO2, GPIO12 VDD_SDIO 1.8V bootloop trap, ADC2 Wi-Fi conflict), STM32 APB timer clock doubling ($f_{\text{TIM}} = 2 \times f_{\text{PCLK}}$ when PPRE > 1), STM32F1 JTAG pin hijack (PB3/PB4/PA15), and high-side P-MOSFET gate Zener clamping.
  2. Analog & SPICE: RC/RL filter cutoffs, op-amp configurations, SAR ADC quantization ($V_{\text{ref}}/2^N$ vs. ESP32 1.1V internal reference non-linearity), plus a runnable SPICE-3f5 netlist (simulations/sallen_key_lpf_1khz.cir).
  3. Scripts & Pinouts: A dependency-free Python script (scripts/stm32_timer_calc.py) that computes exact 16/32-bit PSC/ARR pairs and PWM resolution in bits, plus an ESP32/S2/S3/C3/C6 hardware comparison table.
  4. Linux Hardware Debugging: Quick CLI reference for picocom, dmesg -wH, arm-none-eabi-size, and serial port locks.

If you have a favorite datasheet gotcha, silicon errata trap, or pre-flight schematic check that saved you a board respin, let me know in the comments and I'll add it to the handbook.


r/embedded • • 1d ago

I built a browser-based debug console for Dev Boards over BLE (no WiFi, no re-plugging)

Enable HLS to view with audio, or disable this notification

0 Upvotes

I built this because debugging my own boards meant either sitting next to a USB cable or opening some vendor tool every time.

BTEfy runs in Chrome or Edge and talks to the board directly. BLE goes through Web Bluetooth (Nordic UART, ESP32 BLE UART, HM-10), USB through Web Serial (CDC, UART adapters, HC-05 virtual COM). No desktop app, no backend between the browser and the device.

The data path: transport layer with reconnect and backoff, then a line framer, then it splits into the terminal and the telemetry parser. Parser accepts KEY=VALUE, KEY:VALUE and JSON Lines on the same stream. Charts are uPlot on fixed-size ring buffers and stats flush to React every 100 ms instead of per byte. A 100 Hz stream stays flat on memory, if the UI can't keep up it drops frames and counts them in Diagnostics. Terminal does text, HEX and HEX+ASCII, with timestamps, search and pause. Sessions record to IndexedDB and export as TXT, CSV or JSON. Saved device profiles, command presets, a mock simulator with fault injection and an installable PWA shell that works offline.

Stack: Next.js 16, React 19, TypeScript, Zustand stores, uPlot, Dexie over IndexedDB, Tailwind. All hardware code is client-side, device data never leaves the machine, no accounts.

(Note: I have used AI to build the webpage and help with the initial coding, as I'm not a web guy. I urgently needed a tool for a project and AI came to the rescue. So, AI Exorcist beware!!!)

There is also a small Arduino driver in the repo (driver/BTEfyDebug.zip, NimBLE 2.x) that handles MTU-aware chunking and a 1 KB TX ring buffer so loop() doesn't block. MicroPython port has the same API: BTEfy.println/log/metric. 64 tests on the web side.

Repo: https://github.com/samiul000/BTEfy

I made it solely for my personal use as i need a lot of debugging for my projects and plugging and unplugging or connecting to wifi is really pain in the ass, but I thought I should public it so it might help someone too.


r/embedded • • 2d ago

My ESP8266 + Lora Letterbox Remote post - full code

0 Upvotes

I made a letterbox alert project - it's WAYbeyond WiFi range - using cheap ESP8266 and cheap Lora modules - with ESPHOME. Full description, development (2-part writeup) and code

The letterbox alert project