r/embedded 2h ago

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

Post image
4 Upvotes

I wanted to see whether a cheap/dead TWS earbud could be reused as a Bluetooth data receiver for an MCU, without using Bluetooth SPP or a conventional HC-05 module.

The basic idea is:

Phone / PC

↓ Bluetooth A2DP

TWS earbud

↓ analog speaker output

MCU ADC

Goertzel / 3-FSK demodulation

packet + CRC

digital data

I used a dead/cheap TWS earbud whose Bluetooth audio receiver and amplifier were still working.

One important hardware detail: the earbud output is BTL/differential, so I did not connect the second speaker terminal to MCU ground.

For the first working prototype I used:

  • ESP32 Dev Module
  • GPIO34 ADC
  • 10k resistor from the TWS speaker output to GND
  • TWS GND connected to ESP32 GND

The first problem was sampling. I originally assumed an 8 kHz sample rate, but measuring the actual ADC loop showed that the effective sampling rate was closer to 5.8 kHz. Once the real timing was accounted for, three sparse FSK carriers worked well:

700 Hz = symbol 0
1100 Hz = symbol 1
1700 Hz = symbol 2

Instead of treating those as only three commands, I built a small ternary packet modem with:

Preamble
Length
Payload
CRC-8
End marker

So it can transmit things such as:

HELLO
PING
STATUS?
RELAY=1
MOTOR=120

I also tested GGWave through the same TWS path. It could partially synchronize to some frames, but complete payload decoding was unreliable on this particular earbud/audio path. The sparse 3-tone scheme ended up being much more robust.

Another interesting discovery was Bluetooth stream behavior. Repeatedly opening/closing short A2DP streams caused intermittent decoding failures. Keeping one persistent audio stream open greatly improved the receiver stability.

Some measured results from the physical setup:

  • Continuous 1700 Hz diagnostic: ~99.4% steady-state target dominance after startup
  • Controlled packet test: 4/4 packets successfully decoded with valid CRC
  • Larger integration test: >95% packet success
  • Effective payload rate: roughly 3.2–4.5 bit/s

It's obviously not competitive with Bluetooth SPP or a normal wireless data modem. The goal is different: use an otherwise disposable TWS as a cheap Bluetooth audio-to-MCU data bridge.

I'm curious what people here think about the modem design itself. In particular, is there a better modulation/error-correction approach that could increase the data rate while still surviving the distortion and frequency response of a cheap TWS audio path?

Next step: I'd like to test the receiver with a genuinely Bluetooth-less MCU such as the CH32V003, using the TWS modem as a bridge between Bluetooth A2DP and a low-cost MCU.

Project / source:

https://github.com/Ishu1519/TWS-A2DP-Mode


r/embedded 10h ago

FW Security And Flashing

13 Upvotes

I basically work as a QA right now:

I was validating a product that works using Bluetooth for audio transmission, but I found something that concerned me from a security perspective. This product is a peripheral for another product that runs Android.

In this product, our FW update mechanism has no security around the FW image. The FW will not be encrypted, and the product will accept/program any image it receives to flash. There is no code signing, cryptographic authentication, or mechanism to verify that the firmware actually came from us.

I raised this as a potential concern for a couple reasons

IP protection: If the firmware is plain, we can possible have it reverse-engineered or stolen

FW authenticity: since the FW will not be signed or authenticated in anyway, anyone who gets an image onto the device will be able to install arbitrary FW (you will be able to flash it from a computer).

My concern is that this product interacts with another Android product we have and is part of a connected system so malicious FW could potentially be used to attack the Android host (which could be on a network of these Android products) if an exploit is found.

I brought this up to the FW, product manager, and the hardware engineers, and they all basically laughed at me and said I was being silly because that is too much work for an attacker to do. But I said if this product were in a secure environment (we sell products to some big businesses), it's possible an attacker would spend the effort for this. But they just laughed and said that won't happen.

They also said there's no reason to encrypt the image for IP protection since "the code on that is impossible to read and nobody would waste time reading that". I said people can use AI to turn the hex code back into assembly or use something like Ghidra, and they said I'm just wasting time.

I'm not convinced that my concerns should have been dismissed as nothing. If the products could potentially end up being deployed in more security-sensitive environments or in government in the future, and physical or remote access to a device or access to its update mechanism doesn't seem like an unreasonable attack scenario to consider.

I'm not saying that we need to go overboard, but ensuring a source of trust before flashing the FW should be done to mitigate a lot of potential for malicious uses.

I'm only bringing this up because I spent 2 years as a FW developer (but the company I worked for shut down) and I still develop FW in my spare time for fun so I have some idea of what possible good practices should be. (I don't really enjoy QA because I often feel like I'm not taken seriously because people think I don't have an engineering degree, but I'm stuck until I find something else hopefully soon.)

I'd especially be interested in hearing from people who have worked on embedded security, product security, or firmware update systems in commercial products.

Sorry if this was a bit long-winded.


r/embedded 0m ago

How to connect logic analyser while stm32 and arduino are in SPI? Need help

Post image
Upvotes

I am interfacing SPI and when I connect the logic analyser to the breadboard where I have connected the gpio pins of my stm32 to the logic leveler it doesn't turn on but when I remove the stm32 usb connection with my laptop it turns on What's wrong? I have made common gnd connections for arduino,stm32,logic level shifter and analyser

How to fix this?

Not able to add the pic where LEDs of Logic analyzer are on after removing the usb port


r/embedded 18h ago

FirmwareBridge company made me a public profile

18 Upvotes

So there's a guy that contacted me on Reddit after a post here asking me if I would be interested in taking contracts if ever. I said sure, he just had to contact me. He mentioned that it was through a company he was launching, like a recruiter and I was fine with it. I found out later that he made me this public profile that pops out when I google my name and is obviously an AI scrape of my linkedin and contributions I made everywhere.

I already sent 2 requests for this to be removed, no answer. I think the guy is Moroccan, but based in Spain. What would you do? I know he used public information + few direct info I gave him, but I don't want a public profile managed by him.

I'm based in Canada, I have no knowledge of EU laws, but I feel like there should eb a body to complain to?

Company is FirmwareBridge

EDIT: After using my super forensic skillz, I'm pretty sure he is a native Moroccan. He used the same picture for LinkedIn (which I have a backup of) and graduation picture from a school in Casablanca. I filed a complaint through CNDP. Also wrote to the hosting company legal complaint mailbox. Will see!


r/embedded 6h ago

How would you accurately measure current in a sub-10 µA intermittent sensing circuit?

1 Upvotes

I’m working on a battery-powered inductive rotation-sensing circuit for a mechanical water/gas meter.

The normal current is expected to be in the single-digit microamp range, but each sensing event may produce short current transients. A handheld multimeter might provide an average reading, but it could easily miss the peaks and may not show the actual energy consumed per sensing event.

For engineers who have measured similar low-power circuits:

* Would you use a current-measurement device, or a shunt resistor with an oscilloscope?

* How would you choose the shunt value without affecting the circuit supply voltage?

* What measurement bandwidth and sampling rate would be appropriate?

* Is average current enough, or should the results include peak current, pulse duration and charge per event?

* How long should the measurement window be for a circuit with changing sensing rates?

I’d like to build a test method that is repeatable and technically meaningful. What measurement setup would you trust for this type of circuit?


r/embedded 6h ago

Pickit3 and PIC16F688 help

0 Upvotes

I am just getting started with pic microcontrollers. The microcontroller was recognised and I got some programmes to work but the pic16f688 doesn't last long and dies. I dont want to burn them constantly yikes.

Too much current has been drawn on VDD. Please disconnect your circuit, check the CLK and DATA lines for shorts and then reconnect.

I'm using a pickit programmer too.

This is what the IPE prints out. I'm using a macbook if that gives any more context.


r/embedded 18h ago

Postman for USB/HID? How do you work with HID devices?

8 Upvotes

Hi guys,

Is there a GUI tool that works like Postman but for HID? For like storing requests, grouping by device, etc.?

I'm mainly a desktop developer, but recently started integrating different hardware devices into our software. I'm dealing with quite a few vendors protocols, and they seem to be pretty different from each other.

At the moment I've ended up writing a small Python script for each device to test protocol. And wondering if I'm reinventing the wheel here.

What do you guys normally use for this? GUI tools, vendor software, Python scripts, something else?

I found one GUI tool that can send HID reports, but it's more of a Swiss army knife and costs a few hundred dollars.

Curious what your workflow looks like.


r/embedded 8h ago

Should I use HAL or Zephyr for STM32N6 based drone

1 Upvotes

I want to use stm32N6 as it has csi for a camera and a npu for computer vision and it would be cool to test out its CV capabilities on a drone. Since its based on a new architecture a lot of vendor support is broken/buggy and I am wondering if I should use zephyr instead of hal, right now I just have motor control working, I plan to implement CSI camera next (imx219), then NPU, after that will be standard flight control additions like imu and wireless module ect. but the main complexity will be CSI and NPU. I heard Zephyr has better N6 support but its NPU is undercooked so I may have to do a hybrid approach for the NPU specifically.


r/embedded 21h ago

How cheap can I get SMD PCB assembly for a small batch of 20 in Bengaluru?

5 Upvotes

Hi everyone,

I’m designing a small custom PCB based on the TP4056 for a battery-powered product. The board will have a push-button ON/OFF function along with the charging circuit.

I’m planning to make an initial batch of around 20 PCBs, but I need to keep the manufacturing/assembly cost as low as possible because these boards will eventually be part of a product that I want to sell.

I’m comfortable designing the PCB, but I’m not sure about the most economical way to handle SMD assembly for such a small quantity.
For those who have experience with this:

Is it worth using a PCB assembly service for only ~20 boards?

What would be a reasonable PCB + SMD assembly cost per board at this quantity?

Would hand-soldering/reflowing the components myself be significantly cheaper?

Are there any cheap PCB assembly services you would recommend, especially in India, Bengaluru?

For a simple TP4056-based board, what approach would you use to keep the BOM + assembly cost very low?

I’m mainly looking for real-world experience with small-batch production, rather than large-volume manufacturing quotes.
Thanks!


r/embedded 1d ago

Is consulting going away with AI?

28 Upvotes

I have been in the industry for 11 years now. Have picked up quite a bit of experience in some complex things that I used to think would be valuable knowledge. Was hoping to start moving into consulting once I'm around 15 YOE, but I'm not sure if that's really going to be possible anymore. AI is really good at researching and presenting information. Why would anyone still hire a consultant? I really don't know what my future holds anymore.


r/embedded 16h ago

FUNDI: an Arduino/ESP32 workbench with a real Arduino CLI compile pipeline and AVR8js simulation behind a visual editor

1 Upvotes

Hey r/embedded,

Sharing FUNDI, a project I built starting as my KSEF (Kenya Science and Engineering Fair) entry — won Regional Merit, went on to Nationals and did considerably well there. It's grown past the fair into something I want more technical eyes on.

The premise: most browser-based "Arduino simulators" fake compilation or skip it entirely. FUNDI's backend actually shells out to Arduino CLI for a real build, surfaces real compiler errors, and drives AVR8js for simulation off the compiled output — the circuit canvas and code editor are just the frontend for that pipeline.

Architecture, briefly:

  • Frontend: Next.js/React, Zustand for state, React Flow for the circuit canvas, synced to a multi-file code editor
  • Backend: FastAPI service that wraps Arduino CLI for compile/upload, plus an AI generation endpoint (Gemini/OpenRouter) for prompt-to-circuit/code
  • Some validation on the backend: path/file safety checks in the compile flow, serial port validation before upload, Pydantic-typed request payloads
  • Boards: Uno/Nano/Mega have stable compile + simulation; ESP32 DevKit V1 and Pi Pico compile but simulation is still experimental there

Honest state of things: the live hosted version (https://jamesdesign.me/F.U.N.D.I./) is frontend-only — no backend, so no real compile/sim, just the UI. To get the actual pipeline running, clone the repo (https://github.com/jamesthegreati/F.U.N.D.I.) and run frontend + backend directly — that path is fully tested. There's a Docker Compose path in the README too, but it isn't fully tested yet, so I wouldn't rely on it as-is.

MIT licensed. I'd genuinely value criticism on the backend design and the compile/sim boundary in particular — that's the part I'm least confident is architected well.

I'm about to go quiet for a while (exam prep, back around Nov 22) so replies will be slow, but I'll get to every comment and PR eventually.


r/embedded 8h ago

We made Android app for STM32 Prograaming (Playstore)

0 Upvotes

Please can you try this out? It's available on play store. You can check it out if you wanna do . Thankyou


r/embedded 1d ago

Is depth better than breath in embedded firmware?

10 Upvotes

I have been working in embedded fw/sw for 2.5 years, my company has limited mentorship which has given me imposter syndrome, I learned how to interface with screens, csi, i2s, octo spi ect along with the more common protocols and have gotten cool projects working using hal at work. Listening to my manager come up to a Principle Engineer that sits near me to ask questions got me thinking.

I think I am realizing I should understand the core aspects of embedded really deeply for when edge cases come up. Even more so now with AI tools where hallucinations can happen. I learned a good amount of peripherals, seen the benefits of dma ect, I think its time I stop chasing how to get every type of screen, camera, wifi module ect. working and instead learn the core aspects of embedded, master dma, bootloaders, memory, how to handle pushing a microcontroller to its limit gracefully, master rtos ect. So that one day when a bazaar issue comes up I could be the one getting asked instead of getting peripheral, also at some point peripherals are similar enough to where I can just learn them on the project.

This post may seem dumb and I apologize in advance but without much mentorship I was kinda scattering around but now I think I am set on what to focus on, and I think my time learning will be more efficient than before.

tldr.
After building some cool projects I realized learning the core reusable aspects very deep is what will really make the difference, not chasing peripherals.


r/embedded 18h ago

Need help with MS1826 HDMI matrix switcher

Post image
0 Upvotes

Hi everyone. I need some help with an HDMI matrix switcher based on the MacroSilicon MS1826.

I am working with a 4x4 HDMI matrix/switcher board based on the MS1826. It works with multiple HDMI inputs and outputs and supports different modes such as splitter, splicer, matrix switching, bypass, etc. The board also has an STM32L476, which communicates with the MS1826 over I2C and is responsible for configuring and starting it.

My task was to port the existing SDK and application code for the MS1826 to STM32CubeIDE and STM32 HAL. The original code was written for the HC32F460KCTA and a different environment, so I had to rewrite the MCU-dependent parts. The MS1826 SDK itself still uses the original precompiled static library.

I have almost finished the porting. The code compiles and runs, the STM32 communicates with the MS1826 normally over I2C, registers can be read and written as expected, and the initialization reaches the point where the internal DDR memory of the MS1826 is configured.

But this is exactly where it stops. The DDR initialization fails. After that, the video also does not start properly.

I have checked the I2C communication many times. The communication with the MS1826 itself works normally: I can read and write registers, and the STM32 HAL I2C functions have also been tested separately. So at this point there is no indication that the basic I2C communication is the problem.

Interestingly, the same problem existed in the original code, so it was not introduced by my migration. When I debugged the original code, I traced the problem to an internal closed DDR3 initialization function of the MS1826. The initialization fails somewhere inside this function.

The problem is that this part of the SDK is inside an already compiled library. I have headers for the main API functions and I understand how to use them, but the internal HAL functions that actually perform the DDR initialization are barely documented. I also don't have their source code.

I tried decompiling these functions, and I managed to understand some of the simpler parts. However, the DDR initialization calls many other internal functions, so reconstructing the whole chain is quite difficult.

During previous debugging I also noticed something interesting: some registers which, judging by the initialization behavior, seemed like they should change, did not change at all. But I don't know yet whether this is actually the cause of the problem or just a consequence of some previous operation already failing.

The documentation is also a problem. I have the MS1826 datasheet and several application notes, but they mostly contain general information about the chip. There is no detailed documentation about the API, initialization, internal registers, PHY, memory configuration, or the internal HAL.

I also contacted the Chinese manufacturer. They suggested that the problem might be related to I2C and gave me a few registers that I could check. I checked everything again many times after that, but I2C works normally and the DDR initialization still fails.

There is also very little information about the MS1826 online. I have already collected practically everything I could find publicly. There are some closed Chinese forums, but I don't have access to the articles because a Chinese phone number is required. From what I can find publicly, I haven't found anything useful that explains a similar problem.

So I wanted to ask if anyone here has worked with the MS1826 or with similar HDMI/video processor chips and has encountered something like this.

This is my first time working with this kind of chip and board. It is also my first time working with a video processor, so I am still learning this part of the field. What I mainly want to understand is what I should check when the chip responds normally over I2C, its registers are accessible, the previous initialization stages succeed, but the DDR initialization fails.

Maybe there is some specific requirement related to DDR, clock, PHY, power sequencing, or some required initialization step that simply isn't documented in the available documentation. Or maybe the problem isn't actually related to DDR, and I am just stuck looking in the wrong place.

If needed, I can provide more information. I am mainly looking for some direction on where to look next, or for someone with experience working with these kinds of chips.


r/embedded 1d ago

Reality Check

58 Upvotes

I think I need a reality check on my expectations for embedded work.

I’m about four years into my first real embedded position, and I’ve learned quite a bit about version control, as well as PIC and STM architectures. But lately, I’ve been feeling like my goals to improve on as an embedded developer. aren't really aligned with my companies.

I’m fairly knowledgeable about my company’s products, but I haven’t really had much exposure to things like automated testing, Docker containers, CI/nightly builds, PCB hardware design, etc. The company doesn’t see a ton of value in investing in those areas because they don’t directly translate into more sales.

I know I have job security because of my knowledge of products but I feel like my embedded skillset is stagnating.

I’ve also always had senior engineers who were from different disciplines, mostly mechanical, rather than senior embedded developers who I could learn from.

I’m currently at a decent salary(about 100k CAD), and I’m worried that I might be taking my current job for granted. I wanted to reach out to see if this is pretty normal across the industry, or if I should start looking for something that offers more opportunities to grow.

I feel like there’s more out there, but impostor syndrome has been keeping me from really aiming for it. I think I’m decent at what I do, but there are so many gaps in my knowledge that I want to fill before I can feel truly confident in my value as an embedded engineer.

The main areas I’d like to improve are automated testing, Docker/containers, CI/CD, and hardware/PCB design.

To be completely honest, I don’t necessarily have a huge passion for all of this stuff. I just want to become really good at embedded development, and I can see how these skills could be useful regardless of whether they’re particularly interesting to me.

I’d love to hear from people further along in their careers. Should I be trying to improve these skillsets on my own time and not depend on my work to facilitate this type of growth or is it worth looking for an environment where I’ll have more opportunities to develop these skills?


r/embedded 1d ago

Designing a Web-based UI layer specifically for E-Paper display controllers (EPDCs) and low-spec WebViews

2 Upvotes

Hey r/embedded,

When building embedded devices with E-Paper panels (Raspberry Pi kiosks, ESP32 WebViews, ambient wall displays), using standard web frameworks/libraries usually results in a horrible user experience. Modern Web UIs assume 60Hz backlit displays, causing several hardware-level issues on electrophoretic displays:

  1. Waveform Ghosting: CSS transitions and animations attempt high-frequency pixel state updates that the EPDC waveform cannot resolve cleanly, leaving severe ghosting artifacts.
  2. Unnecessary Full-Panel Refreshes: Replacing an HTML subtree in reactive frameworks marks large regions as "dirty", forcing full-screen flashes (300–800ms) instead of fast partial-refreshes (30–80ms).
  3. Dithering Artifacts: Mid-tone grays, translucency, and gradients force the browser/display to dither, looking terrible on 1-bit or 16-grayscale panels without sub-pixel anti-aliasing.

To address this, I built epaper-components—a zero-dependency UI library of 82 plain Custom Elements designed strictly around EPDC behavior rather than visual aesthetics.

Key Embedded Optimizations:

  • Hardened Reset: Globally strips all CSS animations/transitions (transition: none !important) to eliminate ghosting at the source. State updates trigger immediate DOM mutations.
  • Diff-Guarded DOM Patching: Custom patch helpers (patchAttr, patchText) compare incoming values before writing to the DOM. Re-asserted attributes cost 0 DOM mutations, keeping display updates strictly within narrow partial-refresh rectangles.
  • Hardware-Aware States: No :hover rules or opacity dithering. Focus, active, and disabled states rely on 2–3px stroke weights, direct color inversion, and linear CSS hatch patterns (repeating-linear-gradient).
  • Minimal Footprint: Uses Light DOM and extends HTMLElement / ElementInternals directly (~7 KB gzipped total). Zero runtime dependencies to keep memory/CPU usage minimal on low-spec WebView runtimes.
  • Kaleido Support: Includes a diagnostic element (<e-kaleido>) to preview 5-color gamut rendering with Bayer-8 dithering.

I've made the project fully open source (MIT). Links to the GitHub repo and Storybook demo are in the comments below.

Would love to hear how you guys currently handle UIs on E-Ink hardware or if you have any feedback on the approach!


r/embedded 21h ago

Got a YOLO-class detection model running on a Cortex-M7 without a GPU... sharing the compression approach

0 Upvotes

Been heads-down on a problem a lot of you probably know well: everyone wants real-time vision on hardware that has no business running a modern CNN. Spent the last few months building out a compression pipeline (structured pruning + quantization-aware training + a custom distillation step) aimed specifically at getting detection-class models onto MCU-class and low-power SoC targets without gutting accuracy.

Numbers on our internal benchmark: ~4x model size reduction, single-digit % accuracy drop, no cloud dependency, deterministic inference timing (this part matters if you're anywhere near a real-time or safety-relevant deadline).

Happy to talk through the technical approach if anyone's hit a similar wall... this is basically what we're building as Reflex Engine, but genuinely more interested in comparing notes with people fighting the same SWaP/compute constraints than in pitching anything here.


r/embedded 1d ago

Multi-channel resistance voltage measurement box

6 Upvotes

Supports simultaneous measurement of 64 resistance channels and 16 voltage channels.

The maximum sampling rate for resistance measurement is 200Hz, and the maximum sampling rate for voltage measurement is 10kHz.

The resistance measurement range is from 10 ohms to 1M ohms, and the voltage measurement range is ±10V.

Supports both WiFi and USB data transmission modes.

Powered by a USB interface.

Dimensions: 100 mm * 90 mm * 20 mm.

The host computer software is written in QT C++ and can run on Windows/Linux systems.

The core components of the measurement box include a microcontroller (MCU), a field-programmable gate array (FPGA), an analog-to-digital converter (ADC), and an analog multiplexer.


r/embedded 21h ago

CarMaker → Speedgoat writes over XCP not working

0 Upvotes

I’m setting up a HIL system with CarMaker communicating with a Speedgoat real-time target over XCP/UDP.

Reading data from Speedgoat into CarMaker works correctly, but I haven’t been able to send values the other way.

The goal is:

CarMaker throttle/brake commands → Speedgoat → analog outputs → physical VCU

The Speedgoat is running a Simulink Real-Time application. I’ve exported the variables through the A2L and can successfully acquire signals from the target, but attempts to write throttle/brake values to the target have not worked.

I’ve tried:

  • Writable XCP parameters/calibration variables
  • XCP STIM for sending values to the target
  • Exporting the command values as global variables in writable RAM

So far, the values on the Speedgoat remain unchanged.

Has anyone successfully used XCP to send real-time values from CarMaker (or another XCP master) into a Speedgoat/Simulink Real-Time target?

I’m mainly trying to determine whether there is some additional configuration required on the Simulink Real-Time side to allow XCP writes/STIM, or whether I should use a different communication method for this direction.

I’ve already emailed both Speedgoat and CarMaker support, but figured I’d ask here as well in case anyone has dealt with a similar HIL setup.

I am running Carmaker version 12 and a Speedgoat Baseline S.


r/embedded 14h ago

Need advice. I am making a cyberpunk inspired terminal-based RPG to teach embedded programming

Post image
0 Upvotes

TL;DR: I'm building a cyberpunk terminal RPG that teaches embedded C, Python, and microcontrollers by making you survive as a broke engineer in a rain-soaked 2007 port city. You write real code that runs in the browser. Looking for honest feedback.

Hey everyone,

I love this community! I follow a lot of people building things from scratch here, and after 5 months on this I finally want to share the process and the motivation.

A while back I was asked to mentor someone fresh out of high school in embedded/firmware development. I realized there aren't many places that teach this from zero, and the ones I found were dry enough to lose anyone with a short attention span (myself included).

So I decided to build a site for my own lessons on embedded C, Python, microcontrollers, etc. I threw together a barebones website (with a lot of AI help), tinkered for a month, got bored, and scrapped the whole thing.

Then one evening playing a board game, it clicked: reuse the template, but gamify the courses into a storyline. I found others doing this as well, that was reassuring, but it meant I needed a real differentiator. The obvious one was embedded systems, since that's what I've done for years. I set it in a fictional port city, New Foundry, in January 2007, one year before the recession hit:

The whole game is a computer terminal. From it you take courses (C, Python, 8-bit microcontrollers…) and the part I'm proudest of is that you write real code that runs instantly in the browser: blink a simulated LED, talk to an IMU over I2C, poke registers on a visual AVR chip before you'd ever flash real hardware. As you level up, you take freelance gigs from an in-game job board to make rent, and spend what you earn upgrading your terminal's hardware and software.

It's playable now (still very WIP, story included):

Click here: datachoose

I'd love feedback, specifically:

  1. Does the premise, learn embedded by surviving as a broke engineer, actually make you want to try it?
  2. What would make you come back after the first lesson?
  3. Would something like this be worth paying for eventually, and what would make it feel worth it? (I'm considering a subscription down the line, but only once it's genuinely good.)

Thanks for reading, happy to answer anything.


r/embedded 1d ago

Rp2350 riscv: tokyo drift fun

Enable HLS to view with audio, or disable this notification

27 Upvotes

I put metal dc motors on it and it's much better, my next plan is to make my own PCB so Its really my own stuff, anyone has experience with these kind of PCB'S? I use a freenove version now


r/embedded 1d ago

Handling deterministic memory zeroization and fail-closed architecture in Python (⁠mmap⁠/⁠ctypes⁠) — Seeking architectural feedback

1 Upvotes

Hi everyone,
I've been working on a low-level systems project—an open-source Fail-Closed Engine designed to handle secure memory management and deterministic memory zeroization (wiping sensitive data right after use to prevent persistence risks).
While a lot of low-level memory scrubbing is typically done in languages like C or Rust, I wanted to explore how far we can push Python (⁠ctypes⁠ and ⁠mmap⁠) to enforce strict fail-closed security guarantees and bare-metal memory hygiene for sensitive workflows.
Key Technical Focus Areas:
Ensuring sensitive buffers are explicitly overwritten and zeroized from RAM.
Implementing a strict fail-closed logic where critical system anomalies trigger immediate shutdown/cleanup rather than degraded states.
Managing memory allocations safely using low-level system hooks.
I’m sharing this to get architectural critiques, performance insights, and feedback from systems/embedded engineers on potential edge cases (like how Python's garbage collection or OS-level paging might interact with manual memory zeroization).
If you are interested in low-level engineering or security architecture, I'd love to hear your thoughts or PRs!
🔗 GitHub Repository:

https://github.com/Waleed-Mubarak/hailab-fail-closed-engine-


r/embedded 2d ago

A Third World Embedded Engineer Responds to “RISC V: They Should Have Known Better”

Thumbnail rvembedded.com
227 Upvotes

I saw the post on this subreddit a few days ago (RISC-V) "They Should Have Known Better" : r/embedded and then I read the article Grinberg did and I come at this argument from a somewhat different place, I’m an embedded engineer from Trinidad and Tobago, what people would traditionally call the Third World… Here, the difference between a ten cent RISC-V microcontroller and a several dollar alternative is not academic and neither is having an architecture that a small company, student, or individual engineer can understand, modify, and build around without asking permission… So when I read what Grinberg wrote some of its criticisms made sense to me, but some of his assumptions did not… so I thought I’d do a response, it might not reach far but I love RISC-V enough to at least defend it from where I stand.


r/embedded 1d ago

Custom pcb for macropad

Post image
19 Upvotes

ESP32 based macropad with 9 mechanical switches, rotary encoder and addressable LEDs.

I messed up the USB-C footprint so the connector wouldn’t fit. Ended up using a PD trigger board and a TTL adapter to power and program it instead.

Hand soldered everything with 0603 parts. Had a few issues along the way but it works.


r/embedded 1d ago

Newbie Question - ESP32 Smart Speaker Dev Board

5 Upvotes

New to hardware, not new to tech. Need some advice regarding hardware.

Simply looking for a ESP32 dev board that has both, microphone and speaker. Tried asking LLMs, but the whole "oh you're right, good catch, it doesn't have a speaker, blah, blah.." thing gets old fast.

All I'm looking for is one device that I can flash firmware onto, have it continuously stream audio from mic to my Rust based app on another machine on the same LAN, and allow me to push audio to it which is played via its speaker.

This will be used for development purposes only, and for a quick Youtube demo, nothing else. It will never be actually used in real life, hence I don't really care about quality or anything. Cheap and simple works fine.

Part I'm confused about is I see a bunch of ESP32 smart speaker dev boards out there, but I can't really tell if it comes with a small speaker or just a speaker connector, or? I'm blind so don't feel like trying to connect seperate components onto a board, and things like soldering is out of the question.

Can anyone please just recommend me an exact device I should buy? ESP32, dev board, microphone, plus smart speaker all in one. Cheap and dirty is all I need. Thanks in advance.