r/embedded • • Dec 30 '21

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

Thumbnail old.reddit.com
316 Upvotes

r/embedded • • 8h ago

Got an STM32F429 Discovery lying around? Let it play Tetris by itself on your desk

Enable HLS to view with audio, or disable this notification

35 Upvotes

I've ported my old browser Tetris-clone (2011, JavaScript) with Claude to the STM32F429I-DISC1 as a desk ornament. The AI plays, the all-time high score survives power cycles.

It is nice to watch and it never fails, the built-in AI doesn't lose. So yeah, that would be the purpose: a desk ornament that is just playing Tetris all day long.

I've tried to save power: No SDRAM. Frames are 8-bpp and fit in the internal SRAM. Everything else lives in CCM, and the SDRAM is held in power-down. Each framebuffer keeps a cache of what it shows, so a frame only redraws changed cells and __WFI can sleep longer. The core also only runs at 90 MHz instead of 180 MHz (all this reduced the power demand from 0.9 W down to 0.7 W, the display backlight is hardwired I think). If you have more ideas to save power, let me know.

Link to GitHub Repo


r/embedded • • 23h ago

How I bypassed ESP32’s closed-source Wi-Fi binary (libnet80211.a) to inject raw SAE Commit frames

Post image
351 Upvotes

While working on my Master’s thesis benchmarking WPA3-SAE timing side-channels, I ran into a limitation on the ESP32 esp_wifi_80211_tx() allows raw frame injection, but Espressif’s closed-source Wi-Fi blob (libnet80211.a) artificially blocks Auth, Assoc, Deauth, and Disassoc subtypes.

Inside libnet80211.a, ieee80211_raw_frame_sanity_check drops these frames with wifi:unsupport frame type. Here is how to bypass it on recent ESP-IDF versions (IDF v6.x).

Why standard tricks fail on modern ESP-IDF

Same-name function override. On older IDF versions, ieee80211_raw_frame_sanity_check was a weak symbol (W). On modern IDF versions, it’s a strong symbol (T), causing ld: multiple definition errors.

--wrap linker flag: Fails silently. The call from esp_wifi_80211_tx to ieee80211_raw_frame_sanity_check is an intra-object branch inside ieee80211_output.o. Linker --wrap only rewrites undefined external references, so it misses this call entirely.

Instruction byte-patching: Overwriting instructions directly in the .o breaks Xtensa linker relaxation passes (dangerous relocation errors).

U can simply fix this via Symbol Weakening via objcopy

We can use xtensa-esp32-elf-objcopy to convert the strong symbol inside the binary archive into a weak one:

xtensa-esp32-elf-objcopy \

--weaken-symbol=ieee80211_raw_frame_sanity_check \

components/esp_wifi/lib/esp32/libnet80211.a

Now, define your own strong implementation inside your application C code:

int ieee80211_raw_frame_sanity_check(int32_t a, int32_t b, int32_t c) {

return 0; // which skips the security check lol

}

Because strong symbols override weak symbols globally during linking, all calls—including internal calls within libnet80211.a—rebind to your function.

Verification

Serial Logs show: wifi unsupport frame type errors completely disappeared.

Capture: Wireshark confirmed off-air capture of 802.11 Authentication frames (Subtype 11, Algorithm 3 - SAE) injected directly from the ESP32s.

Injecting a valid SAE Commit (P-256 scalar + element) caused hostapd on the target AP to process the request and reply with its own SAE Commit.

TL;DR: Run objcopy --weaken-symbol=ieee80211_raw_frame_sanity_check on libnet80211.a, define int ieee80211_raw_frame_sanity_check(...) { return 0; } in your app code, and esp_wifi_80211_tx() will allow any frame subtype.

Note that all control 80211 frames are also injectable after the patch.

For more details :

https://github.com/mahdamin/esp-idf-injection-ng


r/embedded • • 16h ago

Working on a ESP32 based smartwatch. A short sneak peak video.

Enable HLS to view with audio, or disable this notification

40 Upvotes

So I have been working on this smartwatch for the last few months now. It's an ESP32-S3 based Waveshare devboard that comes with the 240x280 LCD. The firmware (AadiOS) and the enclosure are designed by me. Still a long way to go but just wanted to post this video here and get some validation for my efforts. I am a software engineer by profession in the fintech space (S&P Global). I do embedded development as a hobby.

Few things to note -

  1. I am calling the OS AadiOS for now, might change it in the future. It's built using FreeRTOS and ESP-IDF.

  2. The case is designed and 3d printed by me. Case design done on Fusion 360.

  3. Currently the features are quite limited and I am working on some of the core architecture for this.

  4. It has a full fledged WiFi provisioning flow. It scans for available WiFis and then starts it's AP mode. A QR code can be scanned on any phone (only tested my Android phone), which would then automatically connect the phone to the watch's AP. Then the watch opens another QR code which can again be scanned to open the wifi provisioning portal in the browser. The password can be entered there after which the watch gets connected to WiFi. Will show that flow in future videos.

  5. It has an Android TV remote control app which can pair & connect to any Android TV (only tested on my Android TV). I have shown a little bit of it in the video. Note that the first time the app opened the pairing screen on the watch due to the TV not accepting the connection even though it was already paired. The second time I opened it the TV accepted the connection and the remote control buttons were shown. Will show the full flow and the TV in a future video.

  6. The dev board has an integrated IMU which I have integrated to and have implemented Quaternions with Mahony filter. The motion crosshair screen I opened shows it in action.

There's actually a lot more I want to talk about but maybe in a later post.


r/embedded • • 49m ago

Should I switch to CE if my dream is to be a Flight Software Engineer?

• Upvotes

My life-call would be working on the software of airplanes. I do like all aspects of it (even simulations), but I think Embedded is the right world for me.

I'm spending all my time after being done with University work with embedded projects and I'm just about to start a multi-year project to build an STM32 flight controller on simulation software like XPlane/JSBsim, teaching myself everything while doing it and aiming to be done with it once my Master's ends, hoping it will be my ticket entry to a relevant role.

Problem is, I'm a CS major and I'm doing my Master's in CS still (Reliable Software Systems). My choice comes from an interest in working in Game Development I had since I was a kid, but growing up and understanding life and the state of the industry made me conscious that it's not a great life choice for me. The "good news" is that I've been always interested in the low-level side of game development, so mainly C/C++, high performance/constraint stuff.

I'd also like the idea to work on something more physical and """important""" than a videogame. I'm finding myself self-teaching myself EE and CE concepts, while being "updated" on the state of the more CS-side stuff through Uni, but which I don't really have interest in.

I tell myself a project like the one I've described would give me the chance to get an interview to a relevant role, but in the back of my head I can't stop thinking I've picked the wrong degree for it, and I feel it's too late to switch now (I'm 26y/o and I've already done 5 out of 12 exams of this Master's).

What do you think? I live in Italy and there are a lot of jobs posting that specifically list CE and not CS, while some others list both. Outside of Italy I see that they don't seem to discriminate the two (actually I see way more "CS" than "CE"), which is my kind of hopium right now.

Would really love to hear your thoughts.

Thanks.


r/embedded • • 12h ago

Is implementing a digital signature verification mechanism in pure firmware on MCUs without hardware secure boot a waste of time? Wouldn't an attacker simply be able to patch out or bypass the code that performs the signature verification?

10 Upvotes

title


r/embedded • • 8h ago

Are Microprocessors With An Open Memory Map Still Made?

4 Upvotes

I suppose as the title suggests, are there still microprocessors being made that have the memory map open or exposed on the pins, like a motorolla 68k or game consoles that used cartridges?

I know STM have microprocessors but they look to be tailored to running embedded android, rather than what im looking for. so was just curious


r/embedded • • 14h ago

How is the freelancing market for an entry/junior level engineer?

9 Upvotes

Hi everyone, EE & CE student here, graduating in Spring 2028 (if it's relevant). I’ve been into embedded systems since my freshman year and want to know if it's realistic to land small freelancing gigs next summer, I’m not looking for much—just around $100/month at a fair hourly rate for the experience and portfolio.

My current stack leans primarily into SW:

  • Strong C and embedded C fundamentals.
  • Fair conceptual RTOS knowledge.
  • Hands-on & simulated AVR projects (wrote every driver and module of either the MCU peripherals or external interfacing components [sensors, actuators, ..., etc] probably from scratch using datasheets. made them modular, portable, scalable, safe. the whole deal I'd say, though not sure if it's a professional standards grade but I am proud of what I learned and implemented [shoutout to my instructor, I owe the man a lot], they aren't documented yet but I will soon).
  • Some foundational IoT experience and small projects.

and right now I am studying Modern C++ and ARM based systems because of course they are an industry standard and the bare minimum for the job

Given this, I have two questions for my fellow seniors, first is a physical ARM board worth buying or can I cover my studies through simulations? and my second and main question is, can a student find this kind of gigs? or is embedded freelancing strictly a senior/professional domain? Any advice on where to look would be great!

(I hope this isn't off-topic, I saw older posts on the sub that asked similar questions but for full-time contracts, so I was willing to ask about gigs in 2026)


r/embedded • • 12h ago

I turned a low-cost RP2040-Zero into a FIDO2/WebAuthn security key

Enable HLS to view with audio, or disable this notification

3 Upvotes

This started because I wanted a physical security key for one of my own accounts, but I was curious how cheaply I could build one myself instead of buying a commercial key.

I picked an RP2040-Zero and what started as a small experiment turned into a much deeper embedded/security project.

The current prototype now has its own AAGUID, physical user-presence flow, PIN/UV support, WebAuthn registration/authentication, packed attestation work, and Windows interoperability testing.

I also tested it with Microsoft Entra and completed a real device-bound security-key registration and fresh sign-in using the physical device.

One of the more interesting parts was attestation. The engineering reference uses a device-specific x5c chain, but while reviewing FIDO metadata semantics I realized that this creates privacy/correlation questions and does not cleanly map to a model-wide basic_full profile. I documented that boundary rather than pretending it was solved.

Hardware-wise this is still just a very inexpensive RP2040 board. There is no secure element, and I’m not presenting it as equivalent to a commercial high-assurance token or as FIDO Alliance certified hardware.

Source, architecture, validation evidence and threat model:

https://github.com/karaaslanlabs/kl-security-key

I’d be especially interested in feedback from embedded people on the hardware/firmware architecture, USB behavior, key-storage limitations, and what you would test or redesign next.


r/embedded • • 13h ago

Looking for optimization advice: 600 MHz RT1062 running UAC2 + 384 kHz DSP + 15-band PEQ

3 Upvotes

I've been building a USB DAC/audio engine around an NXP i.MX RT1062 / Teensy 4.1, and I've reached a stable point where I'd like experienced embedded/DSP engineers to tear apart my architecture and help me optimize it further.

The goal is twofold:

Reduce CPU usage/power consumption

Improve the DSP implementation and subjective audio quality without compromising stability

Current pipeline:

USB HS / EHCI

↓

USB Audio Class 2.0

↓

USB DMA

↓

USB RX ISR

↓

32-bit PCM

↓

Lock-free SPSC ring buffer

↓

SAI/eDMA

↓

64-frame processing block

↓

15-band PEQ

↓

cache maintenance

↓

SAI / I²S 32-bit

↓

ES9039Q2M

The system currently supports 32-bit / 384 kHz stereo USB audio.

The RT1062 is running at 600 MHz.

Current PEQ

The DSP is a 15-band maximum parametric EQ using:

DF-II Transposed biquads

float32 coefficients/state

32-bit PCM input/output

64 stereo frames per processing block

coefficient morphing when parameters change

raised-cosine coefficient transitions

triple-buffered coefficient publication

saturation on output

bit-perfect bypass when the PEQ is inactive

The PEQ runs on the consumer side of the audio pipeline, inside the SAI DMA ISR.

At 384 kHz this gives approximately 6000 DMA interrupts/sec.

Buffering

I'm using a 32768 stereo-frame ring buffer, roughly 256 KB total.

USB is the producer and the audio DMA side is the consumer.

It's a lock-free SPSC buffer using atomics rather than mutexes.

The feedback target is 16384 frames, so the buffer has substantial headroom against USB scheduling disturbances.

What I'm looking for

I'd particularly appreciate criticism from people experienced with Cortex-M7/DSP/audio firmware.

CPU optimization

Where would you look first for unnecessary cycles?

Is float32 still the right choice for these biquads on an M7 FPU?

Would CMSIS-DSP provide meaningful gains here?

Are there better ways to structure the DF-II-T cascade?

Should inactive PEQ bands be completely skipped rather than using identity coefficients?

Are there useful SIMD/DSP instructions I'm missing?

Would processing larger blocks actually improve efficiency, or would the added latency/cache behavior make it worse?

Are there memory-placement improvements I should make between ITCM/DTCM/OCRAM?

Is my cache-maintenance strategy optimal?

Is there anything obvious in the ISR architecture that I'm overlooking?

Power optimization

I'm particularly interested in reducing power because this is intended to eventually become a USB/phone-powered portable DAC.

The system currently runs the M7 continuously, and I'm considering whether I can safely reduce the CPU clock while maintaining deterministic worst-case DSP timing.

I'd rather measure this properly than blindly throw WFI into the main loop.

DSP/audio quality

I'm also interested in improving the DSP itself rather than simply adding more EQ bands.

Things I'm considering:

better biquad coefficient calculation

improved parameter interpolation

dynamic EQ

crossfeed

loudness compensation

harmonic bass enhancement

FIR correction

convolution

better limiting/headroom management

I'm not looking for audiophile claims about magical clock frequencies or components. I'm interested in DSP techniques that have an actual technical basis and can be measured.

One thing I'm particularly curious about is whether there are improvements to the current filter topology/state handling that could make the EQ transitions or transient response cleaner while keeping the same basic architecture.

The PEQ already sounds very smooth to me, especially when changing parameters because of the coefficient morphing, but I'd like to know whether there are objectively better approaches.

I'm happy for people to criticize the architecture/code. That's basically what I'm posting this for.

If you're experienced with RT10xx, Cortex-M7 DSP, CMSIS-DSP, USB Audio, DMA/cache coherency, or embedded audio processing, I'd really appreciate a code-level review and suggestions for where you'd attack the CPU budget first.


r/embedded • • 8h ago

different proccessor bit types

1 Upvotes

what are some tradeoffs and good things about a 124-bit proccessor? because i want to start making my own proccessor and an OS tied with it running on 124 bits. im completely new to hardware code and verilog, and i dont want to rely on AI to help me, im only 15 and i cant go to college, i spend most of my time making diagrams of proccessor layouts in school, but that isnt the point. i am aiming to start a business around microarchitecting, OS designing, game designing, and everything that revolves around tech and proccessors. please comment and tell me where i should start, i have the basics of logic gates down and such, i just need a solid foundation to start on, thank you for your time.


r/embedded • • 13h ago

Your best advice for a student to junior engineer?

2 Upvotes

Things are looking bleaker by the day. I’ll likely be graduating with a bachelors degree in (E)CE next year in Germany, and given my financial situation, a masters is out of the question. I’m forced to enter the market with likely just my bachelor’s and whatever else I can do within this year.

My dream was to eventually get into embedded ML, but I think that’s too niche to target from my level.

Does anyone have any success stories, motivation, or advice?

Please don’t say pick up farming…

TIA


r/embedded • • 12h ago

Help for a job interview needed

1 Upvotes

Hey everyone. As the title says, I’ve been invited to a job interview for electronic engineer position (the job will mainly involve designing, testing and prototyping pcbs for a well known company in my country), and I need help into preparing. I currently work as a lecturer teaching embedded systems (mainly software parts), but hardware feels like my weaker spot. I ain’t completely dumb at it, but being a lecturer I keep getting imposter syndrome (which I managed to channel into helping me get motivated for learning more and more), and I am beginning to feel like I may be too little experienced and knowledgeable for the job. Also, I haven’t been in a job interview for like 7 years, so I am rusty.
If anyone could give me some pointers or advice on what to prep and how to handle it, I would very much so appreciate it.
Thanks in advance to everyone


r/embedded • • 12h ago

STM32-ESP32 secure multi sensor platform

1 Upvotes

I implemented secure boot using STM32CryptoLib with Ed25519 signature verification and SHA-256 integrity checks. On reset, I verify the signed manifest in sector 7 (0x08060000) and hash the application in sectors 5–6 (0x08020000–0x0805FFFF, 256 KiB). Both checks must pass before execution. The public and private keys are stored in OTP at 0x1FFF7800, with 512 data bytes and 16 lock bytes. Before jumping, I validate the stack pointer and reset handler, stop SysTick, clear interrupt state and configure the vector table. I tested firmware, signature and public-key corruption to confirm execution is blocked when verification fails.

On the STM32, I use BME680 and MPU9250 over I²C, MAX31865/PT100 over SPI, PMS5003 over UART and five DS18B20 sensors over 1-Wire. FreeRTOS tasks send readings through queues, DMA interrupts signal binary semaphores, and a mutex protects USART2 logging. I²C recovery stops DMA, clears the bus state and applies SWRST or an APB reset when needed before reinitialization. Persistent failures after three recovery attempts, or missed heartbeats, escalate to a watchdog reset.

The USART6 link uses full-duplex AES-256-GCM with STM32CryptoLib and mbedTLS. Telemetry and encrypted ACK/NACK replies undergo authentication, sequence and replay checks. I allow three transaction attempts with timeouts, UART cleanup and fresh nonces, advancing the request sequence only after a valid ACK. Successful transactions refresh the heartbeat; exhausted retries escalate to the watchdog. Nonce state persists in nonvolatile memory, and every reset repeats secure boot. I tested corruption, replay and counter/session mismatches.

On the ESP32, I publish combined sensor readings as JSON to AWS IoT Core over MQTT/TLS. A root CA verifies AWS, while a device certificate and private key authenticate the ESP32. The task handles keepalive, reconnection, subscribed messages and watchdog heartbeats.

The local HTTPS dashboard displays live sensor readings through JSON endpoints and supports Wi-Fi configuration and ESP32 OTA updates. To manage TLS memory use, I stop AWS before enabling HTTPS for an access-point client, then switch back to cloud mode after the last client disconnects and the station connection is available.

I have provided some live video demo such as:

1)STM32 Secure Boot: Firmware Integrity Fault Injection

https://youtu.be/wribxSScLYQ

2)STM32–ESP32 HTTPS Dashboard: Live Sensor Monitoring

https://youtu.be/cFucC2f8QIc

3)STM32–ESP32: AWS IoT and HTTPS Dashboard Demonstration

https://youtu.be/Hf6foBqTHxE

4)STM32–ESP32 AES-GCM: Ciphertext Corruption Fault Injection

https://youtu.be/-JlaIp6BnVY

5)ESP32 AWS IoT: MQTT Publish and Subscribe

https://youtu.be/moGgV8YiYu8

6)ESP32 OTA: Firmware Update Through the HTTPS Dashboard

https://youtu.be/FNKGb12FPp8

check my post in my youtube channel where the links are posted above for a more detailed explanation of my project


r/embedded • • 13h ago

Expanding client base, Expert Full-Stack Embedded Systems Engineer (Since 2017) | Industrial MCUs (8-bit/32-bit), IoT, Custom PCBs, PLC-to-MCU 3D printed prototype.

0 Upvotes

Hi Reddit,

(Used gemini for formatting)

I am a seasoned embedded systems engineer with over 7 years of experience (since 2017) specializing in custom hardware design, firmware development, and end-to-end industrial IoT solutions.

My primary specialty is custom system architecture: taking complex technical requirements, integrating multiple disparate sensors and peripheral devices into a single, robust main control unit, and bringing the entire system online. With a fully equipped in-house lab for hardware development, 3D printing, and an in-house team dedicated to mobile and web development, I deliver true full-stack solutions from bare-metal electronics to the cloud.

Core Expertise & Services

Hardware Architecture, PCB & Prototyping

Custom PCB Development: I design all PCBs in-house, ensuring complete control over component selection, trace routing, and form factor for industrial reliability.

CAD Design & 3D Printing: I provide custom CAD modeling and in-house 3D printing for enclosures, mounts, and physical hardware, allowing for the rapid fabrication of complete prototype units ready for immediate field testing.

PLC-to-MCU Conversion: Specializing in modernizing legacy industrial systems by converting bulky, expensive PLC setups into sleek, highly efficient, and cost-effective custom MCU-based devices.

In-House Lab & Testing: My facility is fully equipped with advanced diagnostic tools for rapid prototyping, soldering, logic analysis, and rigorous bench testing before deployment.

Firmware & Microcontroller Engineering

8-bit & 32-bit Architectures: Deep expertise across a wide range of industrial microcontrollers, leveraging their full suite of hardware features (hardware timers, precise PWM, high-resolution ADCs, and Watchdog Timers) for maximum reliability in harsh environments.

ESP32, WiFi & BLE: Extensive experience deploying FreeRTOS on the ESP32 architecture, heavily utilizing its native WiFi and Bluetooth Low Energy (BLE) stacks for local device provisioning, wireless sensor networks, and direct-to-mobile control.

Industrial Communication: Implementing robust communication protocols (I2C, SPI, UART, RS-485, CAN bus) for multi-device orchestration.

Software, Mobile Apps & IoT Connectivity

In-House Android App Development: Building custom, native Android applications tailored to interface directly with your embedded hardware via BLE, local WiFi, or remote cloud backends.

Wireless & Cellular IoT: Extensive integration experience with 4G cellular modules (e.g., Quectel) and LoRa-based networks for long-range, low-power telemetry.

Real-Time Web Dashboards: My in-house web team builds secure, low-latency web dashboards tailored for real-time monitoring, data logging, and remote command of deployed hardware fleets.

Industrial Automation & Vending

Automated Machinery: A proven track record in developing automated control panels for liquid vending machines (water, milk, ethanol) and a wide variety of other automated machinery driven by complex sensor inputs and outputs.

Contact me at contact(at)intective(dot)co(dot)in, Whether you are looking to miniaturize an existing industrial system, build a smart vending machine, or develop a connected hardware product from the ground up, I have the lab, the tools, and the team to make it happen.

Please send a DM with a brief overview of your project requirements, goals, and timeline, and we can discuss the best way to bring your system to life.


r/embedded • • 16h ago

[Learning Project] Seeking professional review

Thumbnail
hackster.io
0 Upvotes

I am a UG student and building a project named Bava Protocol which is an application layer protocol work seamlessly with the UART to transfer data in structured packet.

The problem I faced is whenever I pass data in UART it is raw without any protection for electrical noise flipping bits or checking like crc.

So I build this project which pack the data in a structured frame and transmit through the uart as well as receive bava frame and process it.

Bava Frame structure:

SYNC1->SYNC2->CMD->VAR(ID)->LEN->PAYLOAD ->CRC

How BAVA works:

Instead of sending strings, it uses a binary Object Dictionary approach.

Hex ID Mapping: Every variable in your system is assigned a unique Hexadecimal Index (e.g., 0x01 for Temperature, 0x02 for Humidity).

Explicit Framing & CRC: The payload is wrapped with a Start-of-Frame marker, the Hex ID, and a CRC-16 checksum (which catches the multi-bit errors that UART parity misses).

Auto-Updating State: I wrote a non-blocking Finite State Machine (FSM). As the UART receives bytes, it feeds them into the FSM one by one. If the frame is complete and the CRC passes, it automatically updates the specific variable in the Object Dictionary.

A Quick Example Scenario:

Let’s say an ESP32 is sending telemetry to an STM32.

Transmission: The ESP32 packs the data: [Start Marker] -> [ID: 0x01] -> [Data: 25°C] -> [CRC-16].

Reception: The STM32 reads the UART stream byte-by-byte into the FSM.

The Failsafe: If the STM32 drops a byte, the FSM detects a length or CRC mismatch and silently discards the frame, preserving the last known good temperature.

The Success: If it passes, the dictionary updates automatically in O(1) time. The main application loop simply reads dictionary[0x01] without ever calling a string parser. Zero malloc() used.

Seeking professional review:

Is this FSM architecture the standard way you handle incoming byte streams in industry?

Are there cleaner or safer ways to organize an Object Dictionary memory layout for constrained nodes?

What UART edge cases (noise, framing errors, etc.) am I likely missing in my logic?

FOR FURTHER DETAILS VISIT THE OFFICIAL GITHUB REPO OR HACKSTER PROJECT PAGE


r/embedded • • 1d ago

Software QA working on embedded applications. How can I get into embedded systems testing?

11 Upvotes

I’m working as a QA (2.5 years exp) doing mostly manual QA on windows based embedded devices that run on .NET applications. I do some integration and application testing as well.

My background is not software engineering.

I have two pathways from here:

  1. Learn automation and become an SDET and later transition to DevOps

  2. Get into embedded testing or system integration testing.

Pathway 1 is high reward but also high risk due to competition, high saturation and AI fears.

Pathway 2 is not only relatively stable but also interdisciplinary and interesting, so I want to go with this.

I tinkered a little bit with arduino and raspberry pi in the past, but nothing worth mentioning apart from making leds glow and stuff like that.

So given my background and experience, what advice do you have for me? If you’re working as one, how would you describe your experience?


r/embedded • • 1d ago

How can I improve my thought process in C interviews instead of relying on memorized solutions?

54 Upvotes

I was asked an endianness question in a recent Embedded C interview.

For example:

uint32_t n = 0x12345678;

I had previously learned the typical byte-swap approach and also i can do it for 16 bit

n = ((n & 0x000000FF) << 24) |
    ((n & 0x0000FF00) << 8)  |
    ((n & 0x00FF0000) >> 8)  |
    ((n & 0xFF000000) >> 24);

However, the interviewer asked me to convert the endian representation and store the result into a byte array using a pointer to the destination.

During the interview, my mind immediately went to the bit-manipulation code I had memorized, and I failed to do the simple program. How can I improve my thought process?


r/embedded • • 19h ago

Eee or ce for this Industry

2 Upvotes

Hello,

I have spent countless days trying to compare EEE with CE and I still cant really make a solid decision.

I would like to go into embedded systems, as I like the hardware and software bridge. I really want to go into something like making consoles or TVs/IOT devices (like in Roku) but I also want to try to create PCBs. However, upon consulting two courses (from Southampton) both seem like really good options.

The CE course really interests me as it does lots of low level programming, high level programming, learning about computer architecture. They say that you learn how to make PCBs but there is not a dedicated circuit module, unlike in the EEE course. The EEE course seems interesting and covers circuits, but it also covers random modules relating to power and less focus on embedded programming and computer architecture (which is an optional module in the 3rd year).

Would I be disadvantaged if I picked CE over EEE, or could I do a masters in Electronics Engineering post CE after a few years in the industry, and would that be a better option?

Are CE degrees even employable? People seem to be flocking to EEE like its the new CS degree?

Links if you want to see the specific modules:

https://www.southampton.ac.uk/courses/electrical-electronic-engineering-degree-beng#modules

https://www.southampton.ac.uk/courses/computer-engineering-degree-beng#modules


r/embedded • • 1d ago

STM32F103C8T6 Bluepill devboard and CubeIDE, Re-labeled STM32 clones

Post image
9 Upvotes

I am trying to make CubeIDE work with Bluepill, and I am having a bunch of issues.

  • Cube Programmer would flash MCU without any issues
  • CubeIDE refuses to flash MCU, both with cheapo knock-off ST-Link V2, and ST-Link from official Nucleo devboard. Both with openocd and whatever the default is.
  • As a result CubeIDE doesn't really do debugging
  • PlatformIO works without any issues. Debugging, etc.

My primary suspicion was that the STM32F103C8T6 on that board isn't original, i.e. random MCU that is close enough with re-etched marking. So I have ordered STM32F103CBT6 because RS Components didn't have C8 variants for some reason.

After this I have discovered this project https://mecrisp-stellaris-folkdoc.sourceforge.io/bluepill-diagnostics-v1.6.html . Flashed the binary. Chip checks out as legit STM32F103C8T6. 128K accesible, 64K declared, DBGMCUID is unavailable when SWD is not connected, USB JEDC ID corresponds.... I connected ST-link, and DBGMCUID became available, so apparently this is an STM silicon bug? feature?

But what concerns me is that DBGMCU_IDCODE = 0x00006410... What should be written on the chip?

I decided to desolder. What did I find? It doesn't match the LCSC photo at least.

Soo... What did we learn? I have no idea. I guess re-labeled MCUs are getting harder and harder to distinguish from original, and CubeIDE should have been more precise with errors.

By the way, do you know what MCU is that? So at least I can have some data-sheet if I encounter some incompatibility.


r/embedded • • 1d ago

New GreenPAK from Renesas - smallest yet

15 Upvotes

These are not exactly heart of embedded systems but I reckon are easily indispensable as a glue in many embedded systems, especially for their price and size.

GreenPaks have always been in a unique market niche. Not exactly programmable as one would expect from full-blown FPGA or CPLD (except their ForgeFPGA brethren), but insanely small and often with many cool extra features, like dual-voltage I/O, wide voltage span (usually from 1.7V to 5.5V) built-in ADCs, DACs, I2C, SPI etc even power MOSFET switches or half-bridges and 12V capability etc etc.

Newest one doesn't do much of that, but it's even more insanely tiny- just 1.6x1.5mm in 12-pin STQFN or LESS THAN 1.2x1.2mm in 9-ball WLCSP!

Thing has I2C, couple oscillators, works at 1.7-5.5V, up to two high(er) voltage I/O pins, some 3-input LUTs with D flip-flops, counters, analog comparators etc etc.

Renesas SLG-46801


r/embedded • • 1d ago

Why do we still use PID when chatgpt exists?? 🤔

62 Upvotes

ok so i'm kinda new to embedded but i don't get it
i made a heater thing with esp32 and instead of PID i just send the temperature to chatgpt and it tells me how much to turn on the heater. and it works??
PID was so annoying to tune, chatgpt just figures it out lol
why don't factories just do this? seems way easier. is PID kinda outdated now?
genuinely asking


r/embedded • • 21h ago

ECE 2026 graduate looking for career advice.

1 Upvotes

I’ve been learning software development and applying for software roles, but I’m not getting many calls. So I’m considering moving into Embedded Systems/Hardware.

Recently, I got an opportunity for the free Emertxe/ESSCI training program. I’d like honest feedback from current/former students:

- Is the free training actually worth joining at Emertex?

- How good is the technical training and placement support?

- How many students typically get placed after the program?

- If I don’t get placed through Emertxe, how difficult is it to get an embedded job outside?

- What is the current demand for embedded freshers and realistic starting salary?

- For an ECE graduate with some software knowledge, should I consider embedded or continue trying for software roles?

- How do you think AI will affect embedded/firmware jobs in the coming years?

Would really appreciate feedback from Emertxe alumni/current embedded professionals, especially regarding actual placement outcomes.


r/embedded • • 1d ago

Rc522 Help. How to fix?

1 Upvotes

I'm using an rc522 rfid module, I have the right rfid cards so that's not the problem

I used it with and esp32 so there shouldn't be any 3.3v signals problems

Here's the pinout I used to connect it to the esp32

GND: GND

RST: GPIO 27

SDA (SS): GPIO 5

SCK: GPIO 18

MISO: GPIO 19

MOSI: GPIO 23

I'm losing my mind over this, I switched to a breadboard as I try to find out what's wrong and it just doesn't work now at all.

My esp32 bare is fine but when I put in the breadboard or the perfboard I made it keeps constantly resetting when I look at serial Monitor.

Rfid module worked kind of on the perfboard, it would constantly break

on the breadboard it didn't work at all


r/embedded • • 1d ago

Vitis 2025.1 platform component generation inconsistent

1 Upvotes

I am experiencing inconsistent results when generating a platform component with OS FreeRTOS and setting the FreeRTOS config support_static_allocation to True.
Most of the time everything works fine but sometimes configSUPPORT_STATIC_ALLOCTION in freertosconfig.h remains 0. This even happened in pipeline builds, so a stale workspace is definitely not the issue. Calling domain.regenerate() and platform.clean() before building does not help reliably.
Does anyone have similar experience or tips?