r/embedded

▲ 837 r/embedded

What happens when UI meets a knob?

For me it's this little board. I can't stop spinning its knob to scroll the smooth UI. 🥹

u/Simple-Ad3267 — 8 hours ago

Linux Devs Who Switched to Windows Did You Regret It?

I’m an embedded developer with 13+ years of experience, using Ubuntu for development (for all mg career). Most of my work has been RTOS/bare-metal, with about 3 years in embedded Linux.

I’m considering a role at a company that uses Windows for development due to IT/security constraints. The team said they “manage,” but don’t really like it and rely on WSL when needed.

I’m pretty set in my ways and really value efficient workflows. For those who spent most of their career developing on Linux and later switched to Windows how bad was it? Did it noticeably impact your productivity?

FYI the job opportunity is OK nothing great I'm just bored in my current role and looking for change but not if that change makes me hate things more.

reddit.com
u/vhdl23 — 5 hours ago
▲ 292 r/embedded+1 crossposts

Mobile Phone OS with Web Browsing on a RISC-V MCU

I've been looking for a super light weight mobile phone OS thats open source with a web browser and you have the ability to write apps for but I couldnt find one...lol

So I've been working on Rovari OS a lightweight OS for MCUs that will allow them to run mobile devices. The OS was inspired by Android architecture, jidt really really scaled down...and instead of Java I use a Wrench VM (based on Wren) apps run sanboxed and I made a full SDK for the OS as well so you can write apps the run during runtime, access OS services and crashing an app dosent take the OS down...apps load from the SD when you install them and the device can run it, but keeps a record for the app drawer..and oh yeah it browses the web has camera, calendar, stop watch calculator etc etc all written with Wrench so can write apps without reflashing the MCU....my aim is to be a feature phone with as close to the original iPhone as possible I have most stuff working getting a vm to run apps on the limited memory was the hardest part...but the dual cores helped a lot with stuff...will release it over the next coming months have a lot to do still....I only recently figured out how to keep the VM running without crashing...lol...after everything it only has about 128KB to run apps....

The web browser though can browse the web, I really intend to use it for email and messaging and stuff maybe browse news headlines...the aim is to be less connected not more...maybe I might add more ram later on as ps ram or sram meh....anyway I'll update on this as time goes by.....

u/Separate-Choice — 16 hours ago

Open-sourced my embedded learning path: motion alerts, induction actuators, and physics-driven flight control

Hey r/Arduino,

Been documenting my embedded learning curve through builds over the past year. Everything is public if anyone wants to dig into the firmware or schematics.

What’s in the repos:

  • VigiLight — PIR-based motion alert system using flashing LEDs (designed for hearing-impaired environments). Straightforward Arduino UNO + sensor logic, but the timing and debounce handling might save someone a headache. Code and wiring notes are here: https://github.com/serial-commit-dev/VigiLight
  • N-35 Flight Prototype — Newtonian physics baked into a single-file Arduino control system for a twin-elevon aircraft. Covers thrust balancing, servo sequencing, and a calculated power-to-descent flight profile. Currently stable; working toward a modular stack with web-based remote control. Full kinematics and servo mixing logic: https://github.com/serial-commit-dev/N-35
  • Web-Shooter (ESP32) — Electromagnetic induction actuator controlled via GPIO sequencing. Five stable releases so far; main learning was managing solenoid timing and flyback protection with a MOSFET + diode setup. Firmware and component diagram: https://github.com/serial-commit-dev/Web-Shooter
  • Arduino-Projects — Basic starter collection (toll gate with ultrasonic, RFID logic, etc.). Good reference if you’re mentoring someone through their first sensor-interfacing sketches. Sketches and breadboard layouts: https://github.com/serial-commit-dev/Arduino-Projects

Build photos, kinematics breakdowns, and a consolidated view of all projects are documented on my portfolio if you want the visual side of things: https://serial-commit-dev.github.io/My-Portfolio/

reddit.com
u/Cheap-Helicopter-225 — 14 hours ago

I wrote a small preemptive RTOS from scratch for ARM Cortex-M

a demonstration of TinyRTOS running on an STM32 Nucleo-F756ZG, rendering and dispatching all currently supported OSI commands over USART3 as of version 2026.5.21+2.

Repo: https://github.com/iwilkey/tinyrtos

yo

Over the past couple weeks, I’ve been building a compact preemptive RTOS kernel completely from scratch in C for ARM Cortex-M (currently targeting the STM32F756ZG).

The original goal was purely educational: I wanted to deeply understand how RTOS kernels actually work internally instead of treating them like a black box.

Current features include:

  • preemptive priority scheduler
  • PendSV/SVC context switching
  • separate PSP task stacks
  • queues
  • semaphores
  • mutexes
  • ISR-safe synchronization APIs
  • stack watermarking
  • runtime task diagnostics
  • HardFault register dump + fault decoding
  • UART-based OSI (Operating System Interface)

The project intentionally stays very close to the hardware and avoids heavy abstraction layers.

I’m fully aware it is NOT production-ready yet; there’s still no MPU support, stack overflow protection, priority inheritance, dynamic allocation, etc, but the core functionality is now stable enough that I’d love to open it up to contributors and discussion from people more experienced than me.

One of my main goals moving forward is exploring what it would take to evolve TinyRTOS into something significantly more robust while still keeping it small and understandable.

I’d genuinely appreciate:

  • architecture critiques
  • RTOS design feedback
  • embedded debugging advice
  • Cortex-M exception handling discussion
  • contributors interested in helping improve it

Let me know what you think!

reddit.com
u/Rough_Evening3853 — 21 hours ago

Transition to FPGA from MCU development

I have been working for the last few years on developing different power electronics projects using TI’s amazing C2000 MCUs.

Unfortunately we ran into a situation where our BD team got us a one off project of some crazy multistage multilevel topology complex enough that our power electronics engineer said we would need to switch to an FPGA to implement.

I have been tasked with selecting an FPGA platform for this project and I don’t know a whole lot about FPGAs.

I’m mainly asking for experienced FPGA developers to comment as my company has a history of hardware engineers overspeccing microcontroller platforms that have absolutely trash documentation and no support but look amazing on a one page datasheet with all the buzz words.

My question is what platform base would you recommend for power electronics and control development? Does picking this platform give you access to all IPs that perform for example simple control loops, PLL’s, etc like a microcontroller say C2000 usually does? I just don’t want to pick and get burned ahead of time. Thanks

reddit.com
u/Dapper_Discipline_18 — 18 hours ago
▲ 20 r/embedded+1 crossposts

MSP430FR6972 host + RAK11720 (LoRa+BLE) + BW16 (WiFi) + GPS — sensor node prototype, two-board stack

Working on a battery-powered sensor node with periodic LoRa uplinks plus opportunistic WiFi sync when in range. Two-board approach.

Host MCU is an MSP430FR6972 — chose it for the FRAM (no separate EEPROM, fast writes during power-loss recovery) and the ultra-low standby current. RAK11720 acts as LoRa+BLE coprocessor over UART, BW16 handles WiFi separately on the carrier. GPS is the LC76G with a passive patch in the lid.

Carrier-daughter split was driven by needing to swap radio modules during development without redesigning the whole stack. Already tested with two daughter board revisions.

Open to questions on the layout decisions or the power architecture.

u/chainsen_dev — 24 hours ago

My prep strategy

After many requests, I’m posting my prep strategy and interview experience here:

Old post : https://www.reddit.com/r/embedded/s/lBKgmJBEsC

Recently got selected after one of the most mentally exhausting interview processes I’ve been through, and I thought I’d share the full story because the outcome could give hope to others

Background:
- almost 4 years experience in automotive validation/testing
- Mostly worked on Vector stack and application-side testing , no regular coding or low level driver work

The important part:
I seriously prepared for around 60 focused days while working full-time.

Prep included:
- C fundamentals (Neso Academy etc.)
- Basic C++
- ARM Cortex-M basics
- RTOS concepts
- Threads, mutexes, semaphores
- Producer-consumer
- Memory layout / linker / stack / heap
- Embedded systems fundamentals
- DSA basics again from scratch
- Some LeetCode medium problems
- Reverse linked list
- Binary search variants
- Hash maps / LRU attempts
- Bit manipulation
- IPC/scheduling concepts

Sources:

- Neso Academy YT playlist for C fundamentals
- Udemy courses by fastbit academy on ARM cortex and RTOS fundamentals
- ChatGPT for fast learning
- online compilers for coding practice and leetcode medium problems here and there

FYI - I used these sources mostly as a tools for brushing up as i had prior context in these topics from my academic days.

Tip: I created separate chat boxes for each topic in ChatGPT and only a particular chat box for only that topic to avoid mixup and quick reference

Also makes it easier to have an interactive quiz generated by the ChatGPT to test how well I’m learning
Interview process was 5 rounds total.

Interview experience:

Round 1:
Concurrency problem involving ordered thread execution using semaphores (odd/even printing style logic). Needed hints but eventually converged. Questions from current work and some academic projects relevant to their work.

Round 2:
Coding:
- Merge two sorted arrays
- Search in sorted matrix

Onsite round 3:
- C Memory map layout in depth grilling
- C fundamentals grilling
- Linked list reversal
- Basic array and pointer manipulation questions
- Deep questions on my relevant project from masters

Onsite round 4:
- Motivation for job change
- Background discussion over work and academic history
- logistic discussions

Round 5.

Got grilled for ~1.5 hours.

Topics:
- Multithreading on single-core systems
- Scheduling overhead
- Why multithreading helps/hurts
- Thread allocation strategy for image-processing systems
- Core vs virtual thread discussion
- types of semaphores and usages
- Asked to design a small parallel processing system and how the resource allocation should be done( theoretical)
- Detailed questions about my exact work experience and implementation depth

Then coding:

  1. Implement memmove
  2. Reverse bits of a number with optimization discussion
  3. matrix problem involving row/column suffix sums

I misunderstood the matrix question twice under pressure.

Then HR called.

Received the written offer letter just today.

Anyway, posting this because during prep I used to read posts like these myself and assume everyone getting into top companies was already cracked from day one.

A lot of us are figuring it out in real time.

FYI - I used ChatGPT for formatting this post, excuse me if any mistakes are there.

reddit.com
u/Prior-Mud2043 — 1 day ago

Cheaper alternative to PCA9685? Looking for an I2C controllable pwm generator

I'm looking for an I2C controllable PWM generator IC, preferably under a buck a piece and with at least 4 channels. Should not require flashing of a firmware first unless that flashing can be done through the same I2C connection..

Any ideas?

reddit.com
u/MarinatedPickachu — 1 day ago

Extracting Old Toy Audio

I have 3 BIN sound-pack files from old 2012 interactive toys that all use the same system. This is a photo of the full board inside the toys, other photos and info are inside the Drive folder below.

My goal is to have the full clean audio data (all songs and voice lines) extracted cleanly just like how the toys output them.

What I know:

  • the BINs contain the real character sound packs

  • long songs can be recognized when decoded, but they have heavy static (which may be LED data? Because the LEDs are lightened when a sound plays)

  • the real toy plays the same content cleanly

  • smaller voicelines/reaction clips are not coming out when decoded

  • the toys update over mini-USB with official updater software

  • the hardware has a glob-top main chip, external SPI flash "SST25VF016B" (2 MB), mic, speaker, buttons, and LEDs

SST25VF016B Document: https://ww1.microchip.com/downloads/en/DeviceDoc/20005044C.pdf#:\~:text=,function%20of%20the%20status%20register

How the toy works:

  • 3 buttons presses trigger songs, jokes, or interactions with other toys

  • it can also hear ultrasonic signals and reply with matching voice lines

  • character packs can be switched between compatible toys, so the BIN clearly contains the full sound-pack behavior

What I’m trying to figure out:

  • is this a decoder problem, a BIN structure/mapping problem, or device-specific playback behavior?

  • how is the toy reading the BIN cleanly while PC decoding is noisy?

  • ideally, how can I recover clean audio like the toys as proof?

Link for the folder that has all pictures of inner contents of the toy, its soundpack updaters and BIN files inside the updaters: https://drive.google.com/drive/folders/1151liPxOTuA84JCaL-dT5yFuoC2F0\_vj?usp=sharing

All pictures taken by: https://www.reddit.com/u/arkrunningbear85/s/V6r126AVDO

u/Alone_Syllabub4362 — 1 day ago

Should I continue with AVR mcu's or try other mcus

I am a first year students in electronics and communication. I decided to build a project on atmega328p in my summer break

I built a bluetooth connected 'console'

My main goal was to learn

- AVR c(used on delay, interrupt and io library)

-Different communication protocol(used i²c and uart)

-practice soldering

-learn graphics

-learn interrupts

For bluetooth i just directly used a HC-05 module. And used a mit app inventer on my android. I rightnow just send time as other things were getting too complicated and the app inventer has limited features and it was becoming a nightmare to debug.So any input regarding this would also help

During programming i gave high priority to making my code ' modular' as it was emphasised very highly by our professors like uart.c,display.c,graphics.c,io.c,twowire.c,ui.c and main.c

I added features like

- time from my cell phone

- d6,d12,d20 dice rolls

-the dino game

-reading bluetooth terminal input from cell phone

-stopwatch

Then i soldered all components. Instantly in agony but learnt a lot. Any input also appreciated here

My question is that, is this much time on AVR is enough or should i spend more time on avr or move to other mcus

u/Constant-Link-5228 — 1 day ago
▲ 177 r/embedded

management pushing standard ai for firmware is going to cause a disaster

dealing with non-technical managers trying to force standard copilot into our firmware pipeline is getting exhausting. they see web devs generating javascript all day and assume we can just do the exact same thing for bare metal c code running on an rtos.

The disconnect is just insane. if a web app has a hallucination, a button doesn't load. if a probabilistic model guesses teh wrong register offset or misconfigures an interrupt priority, a physical motor tears itself apart or a battery catches fire. "99% correct" code generation is basically a 100% failure rate when you're dealing with safety critical hardware. These standard models just statistically guess the next token without any actual concept of hardware constraints or physical memory mapping

Was reading up on some formal verification developments recently and saw that newer reasoning systems like Aleph are actually pivoting to mathematical proofs and strict constraint satisfaction instead of just scaling up probabilistic guessing. it gave me a tiny bit of hope that someone out there finally understands that hardware requires actual deterministic correctness and not just a really good chat bot.

but until the broader tech industry actually shifts to that mindset, i'm stuck manually auditing "almost correct" i2c drivers generated by an overhyped autocorrect just to keep my boss happy

u/Phil_Raven — 2 days ago
▲ 1 r/embedded+1 crossposts

Row matrix not being enabled

Please don't judge my way of circuitry, I know I could have created net but the bigger problem lies in the function. I am creating a 8 x 12 led matrix. I didnt have another uln2803 so I used 4 bc547. but the problem is, no matter how much code I change or test code I write, I cannot enable row only. Entire column lights up, If I want to glow the top left led, entire first column lights up. what can be the possible solution for this?

u/Shiney_Potato — 1 day ago

Learning Zephyr for Project

So , i am currently trying to learn zephyr can anyone give me a good playlist or guide to use zephyr , also i want to read values using the ADC of an stm32 thats like one task that i need to do 100% how can i use zephyr for it and what should i do , i added some overlay files and stuff but its giving some error.

reddit.com
u/Fine-Cockroach796 — 1 day ago

Career as an embedded engineer

Hi I'm 28(m) and I'm curious to know is a career as an embedded engineer just Arduino in steroids. Is it just programming or are you also building the hardware. Is it possible to get into this field. I have a degree in biochemical engineering and the only programming I did was in Matlab. I've played around with Arduino and have enjoyed it. I'm currently learning programming. Is it worth pivoting into this field or is it simply not possible.

reddit.com
u/Apprehensive_Fox321 — 2 days ago
▲ 8 r/embedded+3 crossposts

RP Pico Streamline Board - RP2354 - RP Pico #1

STM32World going rogue!

Trying out the new Streamline MCU RP2354 board. A dive into what is Raspberry Pico RP2350, WHY am I making this video (on a channel named STM32World) and finally - how easy it is to use.

#GettingStarted #Tutorial #Streamline #RP2350 #STM32World

youtube.com
u/lbthomsen — 1 day ago

Just starting my embedded internship and the codebase seems so daunting

Hi all, I have finished my junior year of EE and I’m a week into my embedded internship. I have been more hardware focused but this summer I thought I would try out an embedded position. I have taken multiple c courses and a microcontrollers class but it seems like they have not prepared me for this at all. My project is working on an embedded RTOS in c++ but I can not for the life of me follow the data flow. The amount of files and lines in these files combined with the abstraction of everything is really throwing me for a loop. Any suggestions to wrap my head around this so I can start making progress?

reddit.com

Is the reason people buy a Salae over a DS Logic primarily because of the software Logic 2?

I've heard that logic is really good and I've got DS view which is not and I'm wondering what people think. I'm on a Mac

reddit.com
u/johnwheelerdev — 1 day ago

Special I2C address usage?

So, the I2C 7-bit addresses 0x00 - 0x07 are all reserved for "special purposes".

But, I found a CO2 concentration sensor that pays attention to writes to address 0x00 with a subsequent data byte of 0x06 to perform a commanded reset.

I've seen some devices that can get themselves discombobulated and I think that just pumping the SCL signal should get them to recombobulate themselves. So, I wrote a bus_pump() routine that just sends writes to address 0x00 to force the SCL line to toggle while holding the SDA line low the whole time.

But, if something out there is going to actually respond, operationally, to something like that, I need to find a different strategy.

So, does anyone know of any I2C devices that do weird things vis-a-vis the reserved addresses?

reddit.com
u/EmbedSoftwareEng — 1 day ago
▲ 3 r/embedded+1 crossposts

what are the kind of Jobs available in embedded

i am an embedded systems engineer student, and i want to know the technologies and the real world jobs that people do for Money to see what i need to work on

reddit.com
u/zi7fa — 1 day ago