r/embedded • • Aug 08 '25 Galaxy Brain

My business card runs a fluid simulation.

11.7k Upvotes

I haven't had a lot of luck finding a new job in NYC. Found out my whole company is "relocating" early next year, so it's time to get beyond LinkedIn.

https://github.com/Nicholas-L-Johnson/flip-card


r/embedded • • Oct 10 '26 Mindblown

minimal raspberry pi

Post image
3.6k Upvotes

Not my build but Japanese electronics twitter is lit.

https://x.com/EMakerDragon/status/2108935034191352114/photo/1


r/embedded • • Jul 11 '26 Bravo Heartwarming

Embedded Software Developer 's desk

Post image
3.4k Upvotes

Working on solid-state circuit breaker.


r/embedded • • Dec 24 '25 Thanks Helpful Bravo

I built an open-source Linux-capable single-board computer with DDR3

Post image
3.2k Upvotes

I've made an ARM based single-board computer that runs Android and Linux, and has the same size as the Raspberry Pi 3! (More pics on the Github repo)

Why? I was bored during my 2-week high-school vacation and wanted to improve my skills, while adding a bit to the open-source community :P

I ended up with a H3 Quad-Core Cortex-A7 ARM CPU with a Mali400 MP2 GPU, combined with 512MiB of DDR3 (Can be upgraded to 1GiB, but who has money for that in this economy...)

The board is capable of WiFi, Bluetooth & Ethernet PHY, with a HDMI 4k port, 32 GB of eMMC, and a uSD slot.

I've picked the H3 for its low cost yet powerful capabilities, and it's pretty well supported by the Linux kernel. Plus, I couldn't find any open-source designs with this chip, so I decided to contribute a bit and fill the gap.

A 4-layer PCB was used for its lower price and to make the project more challenging, but if these boards are to be mass-produced, I'd bump it up to 6 and use a solid ground plane as the bottom layer's reference plane. The DDR3 and CPU fanout was really a challenge in a 4-layer board.

The PCB is open-source on the Github repo with all the custom symbols and footprints (https://github.com/cheyao/icepi-sbc). There's also an online PCB viewer here.


r/embedded • • Jan 19 '25

I made the smallest possible USB device

Post image
2.9k Upvotes

I made a tiny single-PCB USB rubber ducky that slots into a USB port and injects keystrokes. Once inserted, it disappears completely inside the port and is almost invisible to the untrained eye. It comprises a USB enabled STM32 microcontroller and four phototransistors, which both hold the PCB in place and allow remote (IR) activation and deactivation.

As far as USB A goes, it doesn't get much smaller than this - the PCB is 8x12mm, just about the size of the USB contacts ;)

More Infos on hackaday: https://hackaday.io/project/202218-hidden-hid-v2-worlds-smallest-rubber-ducky


r/embedded • • Oct 10 '25

I2C vs. SPI vs. UART

2.8k Upvotes

r/embedded • • May 22 '26

What happens when UI meets a knob?

2.2k Upvotes

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


r/embedded • • Aug 22 '25

I Built a Single Pair Ethernet Switch!

Post image
2.1k Upvotes

Single pair Ethernet (SPE) seems to be a big upcoming technology and I wanted to get to know it better so I built a 4 port managed switch with 3x 100/1000BASE-T1 ports and 1x 10BASE-T1S port. The switch chip is an SJA1105Q, and the host port is connected to an STM32H573 (can’t upload multiple pictures so no back image). It also has power over datelines (PoDL) for powering remote devices. It should be a good platform for future experiments!


r/embedded • • Jun 02 '26 Bravo

Every time I think I've reached the limits of what the ESP32 S3 can do, I find more performance somewhere

1.8k Upvotes

I've shown off my (now open source!) Jet renderer a few times, but the S3 is full of surprises.

So, for my next trick - real time screen space reflections with distortion for water riples, lens flare, bumped from 4 to 8 ships. This is now down to about 45-50FPS instead of 60 but it's worth it for how it looks, and I'm pretty sure I can recover some of that speed back still :)


r/embedded • • Jan 20 '26

Anyone else guilty of ā€œrandom box of boardsā€ storage?

Post image
1.7k Upvotes

r/embedded • • Jun 16 '26

I've pushed my 3D renderer for the ESP32 S3 up to 40K tris/sec - screen space reflections, water distortion, particle effects, more geometry, all while maintaining a locked solid 60fps

1.7k Upvotes

I thought it was fast when I hit 25K tris/second, but further optimisations and tweaks have pushed this to an absolutely absurd 40K tris/second, so over 600 on-screen triangles at 60fps on an ESP32 S3.

This is all running on my open-sourced Jet renderer - https://github.com/CubeCoders/Jet

These improvements were made largely by reducing how much memory was having to be copied around and sorted per-frame, along with some minor SIMD operations to optimise memory copying. Basically it's been less about the speed of the actual rasterizer and more about alleviating the memory bottleneck.

I left it in CPU controlled but this is an entirely playable game. I plan soon to introduce cross-platform multiplayer so you can play an ESP32 and a PC head-to-head, just because I can.


r/embedded • • May 09 '26 Diamonds are Forever

Embedded

Post image
1.7k Upvotes

r/embedded • • Jan 10 '26

Every embedded Engineer should know this trick

Post image
1.6k Upvotes

https://github.com/jhynes94/C_BitPacking

A old school Senior Principal engineer taught me this. Every C curriculum should teach it. I know it's a feature offered by the compiler but it should be built into the language, it's too good.


r/embedded • • Oct 04 '25

I Built a Handheld NES From Scratch As My First Embedded Project

1.5k Upvotes

This is my first ever ESP32 and embedded project. I bought the parts and learned how to solder for the first time. For three months, I've been building a handheld NES with an ESP32 from scratch.

While having already made my own NES emulator for Windows, I had to do a whole rewrite of the program to port and optimize it for the ESP32. This is written in C++ and is designed to bring classic NES games to the ESP32. This project focuses on performance, being able to run the emulator at near-native speeds and with full audio emulation implemented. Check out the project!

Here's the GitHub repository if you would like to build it yourself or just take a look!

Github Repository: https://github.com/Shim06/Anemoia-ESP32


r/embedded • • Jun 07 '25

My tool for visualizing embedded data in realtime

1.5k Upvotes

Some time ago I posted on this sub that I'm working on a visual debug tool for embedded projects - here's a short demo of how it looks like in action. The motor controller is based on an STM32G4 and I'm using an STLink V2 to read the variables and later on visualize them.

I'm currently working on integrating other low cost debug probes and wonder if you'd find it useful at your dayjob or hobby projects?


r/embedded • • Jan 29 '23

ESP32 E-Paper Weather Display

Post image
1.4k Upvotes

r/embedded • • Dec 05 '25

I made an open-source FPGA development board!

Post image
1.4k Upvotes

I wanted to get started with FPGAs by making my own development board, and thus I made Arctyx Nano!

https://github.com/Keyaan-07/Arctyx-NanoĀ - everything is open-sourced under MIT License!

Arctyx Nano is a low-cost, open source FPGA development board carrying the ICE40-UP5K FPGA from lattice along with the RP2350A in a raspberry pi pico form factor. It consists of 6 LEDs and one RGB LED. All the pins on both the ICs are used in one way or another.

I am currently using APIO open-source toolchain to verify, simulate and build projects and to upload using APIO, i have to figure it out.

This is my first FPGA PCB and i would love feedback on my design!

This board was created as a project forĀ hackclub blueprint, check it out!!Ā 
edit: Also, here's a video demo of the the lights blinking!

https://youtu.be/n2nxeG9eYtc


r/embedded • • Jun 28 '26

My brother and I designed our own 3D-printed metal watch

Post image
1.3k Upvotes

A few years ago, u/raceking37 and I decided to create our own digital watch. The project was inspired by a few vintage HDSP-2000 LED matrix displays that we had acquired. These displays were first introduced in the 1970s and have a really unique look, especially under a microscope. They're quite difficult to photograph with my phone, though, so they look much nicer in person than they do in these photos. The watch uses an ATTINY1616 microcontroller. The metal case of the watch is SLM 3D-printed in stainless steel. I also made a short video about the project.


r/embedded • • Apr 24 '26

I've been building a Wipeout style 3D game. This is running at 60fps interlaced at 480x320 on an ESP32-S3.

1.3k Upvotes

The track is procedurally generated at startup time, I've got 3x Ai players with collision avoidance. Physics and collisions work great and let ships nudge each other around.

This is using an ST7796 SPI display. As I said in the title this is doing interlaced updates using two half height buffers leveraging both CPU cores so one draws the next frame while the other takes care of IO.

This is a fully custom 3D engine, right now its got a set of directives turned on to only do the fastest style which is solid filled triangles with no lighting.

The shadow dynamically adjusts to match the track surface and ship orientation but is other a flat outline of the ship as a separate model.


r/embedded • • Aug 20 '25

Big endian vs little endian

Post image
1.3k Upvotes

r/embedded • • Aug 14 '25

3D rendering on the ESP-P4

1.2k Upvotes

Based on the tgx library (https://github.com/vindar/tgx) with a couple of performance optimizations and added features like multi-threaded rendering, scene-graph, animations and collada import. The 3D model is a hand optimized mesh based on a design by @nabonilo


r/embedded • • Apr 23 '24 Bravo

Embedded roadmap

Post image
1.2k Upvotes

I’ve seen this roadmap on GitHub and was wondering how much of it I should be familiar with upon graduation. I have about a year to pick up skills and was wondering which I should focus on. I have a good grip on programming and circuit design but this is only the things I’ve learned in my courses. Thanks


r/embedded • • May 31 '25

I made a custom memory allocator

Post image
1.2k Upvotes

r/embedded • • Jul 11 '19

Employment-education Entry level embedded software career guide

1.1k Upvotes

Entry Level Embedded Software Career Guide

I frequently get asked for advice on getting into embedded internships and entry level, so I decided to put together a simple guide based on my experience. Feel free to add your advice or perspective. Note that this is an embedded software guide. There are many embedded systems jobs out there beyond software; this isn't the only path.

Disclaimer: This guide is based on my anecdotal, subjective experience. I'm a primarily self-taught embedded software / firmware engineer, living in the Bay Area, 1.5 YOE, with two embedded systems internships, and 1 full time firmware position, currently looking for my 2nd position, and currently interviewing with the high compensation companies. I decided to make this career change 2 years ago, with no prior software or technical degree or experience. What worked for me, may not work for you. I highly encourage you to continuously refine redirect your path based on your own research through talking with working engineers, looking at job postings, and reading articles.

Rule # 1: Build and show off skills that are in-demand by employers.

This is the advice I give to anyone looking for a job in any industry.

What are the skills that are in-demand? This is highly dependent on the area you live in, and the industries around you. Go to LinkedIn / Google / Indeed, and look at all the entry level and internship job postings for embedded software / firmware, and tabulate skills that are asked for. This doesn't need to be rigorous, and there will probably be a bunch of terms and concepts that you don't know -- that's okay. For now, just focus on the common concepts.

My list ended up looking something like this:

  • C

  • C++

  • Testing

  • RTOS

  • Board bring-up

  • Driver development

  • I2C

  • Sensors & Actuators

  • ARM

  • Linux Kernel Development

  • Python

  • Microcontrollers

  • UART

  • Bluetooth / Wifi / IEEE 802.11

  • System Debug

  • OS Architecture / Design

  • ...

One thing to also notice is common clusterings of skills: microcontrollers, embedded linux, hardware testing, networking, automotive, and IoT are the common ones I've seen in my search.

Personally, I focused on the most in-demand, broadest, and fundamental skills first, because I wanted a job, and I wanted the ability to pivot to different types of development if I ended up disliking a subfield.

Fundamentals

The following topics / courses will give you a strong foundation for embedded systems software development, and questions about the basics will likely come up in interviews:

  1. Introduction to Programming. CS50 is a great first course. Covers a lot, but has a ton of auxiliary resources.

  2. Data Structures and Algorithms. There's tons of resources out there already, so I won't go into that here.

  3. Computer Organization / Systems. (Learn the basic hardware in a computer, and learn assembly)

  4. Operating Systems. The combination of a good computer organization and assembly course, with a good operating systems course answered so many questions for me and filled in a ton of blanks.

How do I build these skills?

  1. A computer engineering, electrical engineering, or computer science degree, with a selection of electives focused on embedded software concepts will get you 75% of the way to a job, and will make it significantly easier for you to get interviews.

  2. Embedded Systems Rule the World, and Real-Time Bluetooth Networks - Shape the World will get you good enough projects to land a job if you complete them, and if you can intelligently talk about the covered topics. Whether you're self-taught, or getting a degree, I 100% recommend working through these two courses as a first step towards getting employable, real world skills. (If you're completely new to programming, complete CS50 first).

  3. Learn to Google! There are so many resources out there, at all levels, to help with your learning. Each concept that you need to learn, you need to understand why people use it, alternatives, what problem it solves, and ways to implement it. Find tutorials that work for you -- for some concepts, I've had to go through multiple textbooks and multiple tutorials before they finally clicked. Be a relentless autodidact.

Specific Resources

ConceptResources
CK&R, the canonical C handbook, and a relatively quick read. "Modern C" by Gustedt for a more in depth, and modern, take.
Testing"Test Driven Development for Embedded C" by Grenning
Operating Systems"Operating Systems" by Silberschatz. "Operating Systems: Three Easy Pieces" by Arpaci-Dusseau
RTOSA good operating systems textbook will be a great starting point. Checkout this FreeRTOS Tutorial, and I've also heard good things about the "Modern Embedded Systems Programming" YouTube channel. Real-Time Bluetooth Networks - Shape the World
I2C, UART, SPIThere are great articles on Sparkfun and Adafruit.
Sensors & ActuatorsThe Robogrok robotics course Youtube videos have a great, newbie friendly introduction to robotics, sensors, actuators, and PID control.
Linux Kernel DevelopmentI frequently see "Linux Kernel Development" by Love as recommended
MicrocontrollersEmbedded Systems Rule the World
Bluetooth / Wifi / IEEE 802.11Real-Time Bluetooth Networks - Shape the World

Other General Resources I've found helpful:

The "Making Embedded Systems" book by Elecia White (/u/logicalelegance) -- a great introduction to the basics of embedded systems, and does a good job of being an easy read for newbies.

Embedded.fm Podcast. Great podcast hosted by the above author.

Embedded Artistry. Good articles.

The Ganssle Group. Good articles.

Barr Group. Good articles.

The Amp Hour. Hardware focused podcast.

Adafruit. The 'working out of the box' hardware paired with newbie friendly tutorials are a nice starting point. Professional development kits and datasheets are oriented towards people who've already worked on similar systems, so there is quite a bit of assumed context someone new to the field doesn't have.

Applications

The best way to get your application moved forward is through personal connections, and recommendations. But, sometimes that isn't an option, and you have to cold apply.

My advice is to apply to positions that you meet >=50% of the requirements.

Make sure you get you resume reviewed by professionals in the field before applying.

If you get a low response rate, you need to get your resume re-reviewed, or you need to build better projects that better demonstrate the skills employers are looking for.

Interview Questions

In addition to typical software interview preparation, embedded software interviews tend to ask some repetitive questions. I don't know how many times I've answered what volatile and static are. Here are some typical questions:

  • What is static?

  • What is volatile?

  • How does an interrupt work?

  • What programming practices should typically be avoided in embedded systems, and why?

  • Basic circuits questions: Ohms law. Voltage Dividers. Series and Parallel Resistors.

  • Compare and contrast I2C, UART, and SPI

  • How does an ADC work? How about a DAC?

  • Compare and contrast Mutex and Semaphores

  • Linked List algorithm questions

  • String manipulation algorithm questions

  • Bit manipulation algorithm questions

  • Tell me about a hardware issue you debugged.

  • Why would you use an RTOS?

  • How does an OS manage memory?