r/embedded

▲ 94 r/embedded+1 crossposts

I am open-sourcing csv.h a single-header CSV parser written in pure C99

For my thesis I had to read a lot of big CSV files in C and I couldn't really find a parser I wanted to use. The main C one is LGPL and comes with a whole build system, and everything else I found was C++. So I ended up writing my own. Now that im done with the thesis i cleaned it up properly , seperated it from the rest of the thesis code, and decided to standalone push it on GitHub.

It's one file. You copy csv.h into your project and that's it, nothing to link, no dependencies. It doesn't allocate memory, the fields just point into your own buffer, and you can run through files of any size a chunk at a time.

Honestly I spent way more time testing it than writing it. It passes csv-spectrum and I compared the output against Python's csv module on a few thousand files/

Check it out here -> https://github.com/GeorgeKiritsis/Csv.h

If someone has time to look at the API and tell me what could change or be imrpoved, that would help a lot. Thanks a lot in advance

u/giorgoskir5 — 1 day ago

Is it possible to run real linux on atmega328p?

So I found a project from a guy who run linux on 8pin stm, and I wanna ask if is it possible to run on atmega328p? From arduino uno board.

dmitry.gr
u/Dry_Afternoon8921 — 1 day ago

What's the modern documented assembler for 8051

I intend to program stc8g, a 8051 compatible, low cost microcontroller in assembly language instead of C. SDCC is a good compiler but its assembler SDAS is not documented (not able to find any documentation), so what's the alternate in Linux.

I though there would be many modern, well known assemblers targeting 8051 but I simply could not find one expect for SDCC and one from Keil (but I am not sure if that is free).

Any help would be appreciated.

u/arjobmukherjee — 1 day ago
▲ 16 r/embedded+1 crossposts

IoT industry-ready: Should I move from Arduino to ESP-IDF?

Hi everyone,

I’m preparing myself to become industry-ready for IoT/Embedded Systems and would appreciate some advice from people working in the industry.

So far, I’ve worked with ESP32 using the Arduino framework and have built projects involving sensors, MQTT, Wi-Fi, etc.

Now I’m wondering whether I should move to ESP-IDF and use PlatformIO as my development environment.

My main questions are:

- Is learning ESP-IDF important for becoming industry-ready?

- Should I stop using Arduino framework and move completely to ESP-IDF?

- Is PlatformIO worth learning, or should I stick with Espressif’s official tools?

- For someone targeting IoT/Embedded Firmware roles, what would you recommend learning next?

- Should I focus more on FreeRTOS, ESP-IDF, C, debugging, communication protocols, and Linux rather than spending too much time on frameworks?

I’m not trying to just build hobby projects—I want to develop skills that actually translate to professional IoT/embedded development.

Would really appreciate advice from experienced engineers and people who have gone through a similar transition. Thanks!

reddit.com

How does your lab/shop look like?

Im planning to invest some money into a small scale prototyping lab / engineering shop. Partly because I've lost my embedded systems enthusiasm due to my embedded systems job, and partly because I have the budget for it. Im planning something like:

  • Programmable power supply
  • Oscilloscope, Logic analyzer, Multimeter
  • Breadboards / perfboards / wiring
  • Soldering + hot-air rework station
  • Build server for Hardware-in-the-loop CI
  • 3D Printer
  • MCU:s (esp32s, STM32s, Nordic nRFs, NXPs, TIs)
  • MPU:s - for embedded Linux
  • Large component/module library
  • Other office supplies like a desk, drawers, lamp, etc

Partly im looking to "mimic" my work production/infra, and partly im looking to discover/test/evalueate features in mcus / components and create products. Therefore my vision is to start the prototypes on breadboards, move to a perfboard when functionality is verified, then move to PCB when system integration / market hypothesis is verified on a perfboard.

Do you guys have any tips for me moving forward with this setup? Any experiences from your own homelabs? Any bottlenecks in your embedded prototypes?

reddit.com
▲ 24 r/embedded+1 crossposts

Guillotine: no_std, no alloc GUI framework in Rust

Link: https://github.com/mempirate/guillotine

Hey everyone. Over the past couple of weeks I've been experimenting with Rust on ESP32 chips, with my first project being a simple power readout of the smart plug powering my home lab.

However, I wasn't very impressed with the state of GUI libraries in Rust, so I built my own: Guillotine. Was able to build the following dashboard with it:

Power readout of my Shelly smart plug. Code at https://github.com/mempirate/shellyctl

The goals are threefold:

  1. Declarative UI building blocks (inspired by GPUI) for flexible UIs (with eventual support for a lot of CSS-like layout properties such as flex and grid)
  2. High performance, even on constrained chips (support for incremental redrawing, DMA with frame buffers)
  3. Beautiful widgets

It builds upon embedded_graphics and mipidsi, so should have broad compatibility. As of yesterday, it's also fully no_std and no alloc, and is already powerful enough for some use cases. Would love to hear your feedback and tell me what you'd like to see in a framework like this! I have a couple of weeks of time that I can dedicate to it.

reddit.com
▲ 5 r/embedded+1 crossposts

Can a dead TWS earbud be repurposed as a Bluetooth data modem for microcontrollers?

Dead TWS earbuds still have a working Bluetooth receiver + amp — only the battery, buttons, or mic usually fail. So I tapped the analog speaker output and built a 3-tone FSK modem to send data over it.

Signal path:

Phone/PC → Bluetooth A2DP → TWS earbud → analog speaker out → MCU ADC → Goertzel FSK demod → packet + CRC

Key details: TWS output is BTL/differential — do NOT ground the second speaker terminal, it'll short the amp (as did) .

ADC sample rate assumption (8kHz) was wrong. Measured actual rate was 5.8kHz. 3 sparse tones (700/1100/1700 Hz) survive the earbud's bad frequency response better than GGWave's multi-tone scheme, which failed to decode payloads reliably on this path. Built a small packet protocol: preamble, length, payload, CRC-8, end marker. Keeping the A2DP stream open, instead of closing/reopening it, fixed intermittent decode failures.

Results: 95%+ packet success in integration testing. 4/4 packets decoded clean with valid CRC in controlled tests.

~3.2–4.5 bit/s effective payload rate. Not competitive with SPP or a real wireless modem — that's not the point. The point is turning e-waste into a $0 Bluetooth-to-MCU bridge.

Next: testing this with a Bluetooth-less MCU (CH32V003) as the actual receiver. Source: https://github.com/Ishu1519/TWS-A2DP-Mode

Curious if anyone's got a better modulation scheme that survives A2DP codec distortion at a higher bitrate.

u/Ishant1519 — 1 day ago
▲ 17 r/embedded+2 crossposts

An Open Letter to AMI Firmware Engineers: It’s Time to Bring Screen Reader Accessibility to Aptio UEFI BIOS

To the firmware engineering teams at American Megatrends (AMI) and other major UEFI developers:Millions of computers worldwide rely on AMI**'s Aptio firmware to boot and manage hardware. Yet, entering the pre-OS environment remains a complete blackout for blind and visually impaired users who rely on screen readers like NVDA.We are fully capable of managing our devices, configuring systems, and performing maintenance. What we lack is not technical skill, but basic accessibility engineering in the BIOS. Relying exclusively on graphical, visual-only interfaces creates an unnecessary barrier and locks blind users out of fundamental hardware controlWith modern UEFI frameworks, it is entirely feasible to integrate lightweight text-to-speech or basic audio/screen-reader hooks into the pre-boot environment. We urge AMI engineers and firmware developers to prioritize accessibility in future Aptio releases. Technology should empower everyone equally, starting from the moment the power button is pressed."**

reddit.com
u/obaida2026 — 2 days ago

Looking for Companies

I am a 2nd year in my college studying Electrical Engineering. I am interested in embedded systems and I want to go on to applying it on space technology. Now I was looking at on-campus internships in my college. All the hardware companies I see look for Chip designing, VLSI. I feel lost whether I will get a real job or not. I ain't sure anymore whether I will get a internship or not. What kind of companies hire Embedded Engineers? And what roles do they hire under? What skills should I have in general for these roles? Please help, reallt feeling doubtful and lost about the future.

reddit.com
u/Know-it-all0122 — 1 day ago

Looking for an STM32 dev board with 2 USB ports

I'm looking for an STM32 development board that has two usable USB ports, preferably allowing the MCU to act as both USB Host and Device simultaneously.

Any board recommendations?

reddit.com
u/Best-Condition-5784 — 2 days ago

How can I detect a human sound from background noise in a quiet environment sing a simple analog circuit and microcontroller, without DSP or machine learning?

Tried simple microcontroller adc and mic peak level but it detect all sounds no discrimination between human and external sounds like TV, or other machines.

reddit.com
u/Relevant_Pumpkin9190 — 2 days ago

Are you allowed to use LLMs at work?

Curious how other embedded teams are handling this.

Is ChatGPT/Claude actually allowed where you work?

I’ve heard everything from “completely blocked” to “fine, but don’t paste code” to companies providing their own approved AI tools.

For embedded, the tricky part seems obvious: the useful context is often the sensitive context. Firmware, logs, BSPs, hardware configs, internal APIs, device details, sometimes even credentials.

So I’m wondering how this works in practice.

Do you use LLMs for debugging or firmware work? Does your company have a clear policy around it? And if public tools are blocked, have they given you an approved alternative?

Also curious whether people see these restrictions as sensible engineering/security practice or mostly corporate overreaction.

reddit.com
u/insideembedded — 1 day ago

Transitioning away from IAR

Since the Qt buyout of IAR, my company has had a not so great experience with them, to the point of we’re wanting to explore our options with other vendors.

Has anyone had to break up with IAR, and what tool set did you go with? I know VS code and Eclipse are fine for IDEs, but as far as build tooling what’s the best option? Arm bought and integrated Keil, I’ve had great luck with Keil before. GCC is a free option but I don’t know how well their stuff handles optimization. We are an Arm shop, mostly ST but a few older products that use NXP. Any suggestions? The team is small so we have no leverage with Qt/IAR, but we hired really smart people so changing tools, while not optimal, is def doable.

Help me Obi-wan Embeddey, you’re my only hope!

Thanks!

reddit.com
u/I_love_makin_stuff — 2 days ago

How does your team actually keep track of what you're building?

Full disclosure: I work for Altium on the team building Requirements Portal, so this is what we think about all day. Right now I'm just trying to understand how smaller hardware teams actually handle it.

Genuine question for teams building physical products. When you kick off a project, how do you define your project (the specs, the constraints, the "must not exceed X" stuff)?

Most small hardware teams we talk to manage requirements in Excel or Confluence. That's fine at the start. The problem is six months in when you have to go back to remember how you implemented a requirement.  

A few questions for the thread:

  • At what point does a spreadsheet stop being "good enough" for tracking requirements?
  • Do you write this stuff down formally, or is it mostly tribal knowledge?
  • What does your project definition process look like?
  • Do your implementation engineers ever reference the requirements doc during design, or does it only come out during review?
  • Has anyone tried a dedicated requirements tool for a sub-10 person team? What was the friction?

Appreciate all the feedback on this.

reddit.com
u/dainasantos — 2 days ago

In the age of AI agents, do Embedded Systems Engineers still need to master both Hardware and Firmware, or is one becoming more important?

I have about 2 years of experience in embedded systems and want to get some perspective on where to focus my skills.

Traditionally, embedded systems engineering meant being solid in both hardware (circuit design, microcontrollers) and firmware (low-level programming, RTOS, drivers).

Now with AI agents becoming so advanced and widespread, I'm wondering — is this still the case, or has the industry started shifting priorities? Should I keep building both skillsets equally, or focus more on one given where things seem to be heading?

reddit.com
u/PenSilver7149 — 2 days ago
▲ 82 r/embedded+1 crossposts

Hardware newbie building an AI voice device with ESP32

This is my first hardware project: a voice AI device connected to a local server running Agora Conversational AI. I’m new to hardware and don’t have any soldering experience yet, so I’m starting with a breadboard prototype based on this idea.
I’ve decided to learn soldering and PCB design, with the goal of eventually turning this into a real product. Any advice?

u/zicohacks — 2 days ago

Embedded Skills/Tools

I am still figuring out things, which part of embedded systems, skill or tool that will most likely help me in other fields or other fields that is not 100% embedded focused but still has it, I don’t want to learn something that is very very unique to just embedded.

I am doing an internship for 4 months in embedded but honestly thinking about majoring in other fields so which skill or tool or anything that I can learn that is not only existing in embedded systems?
Which tasks that exist in embedded but will help in other fields or areas.

I don’t want it to be a waste of time if I don’t major in it or choose that I don’t want to work in embedded/automotive

reddit.com
u/user38484883882 — 2 days ago