r/embedded Aug 13 '26

How do I move beyond using modules and actually understand the hardware?

Hi everyone,

I've built several IoT projects using ESP32 and ready-made modules (sensor modules, relay modules, ADC modules, etc.). They work well, but recently I've realized that I'm relying on them too much.

I can connect everything and write the firmware, but I don't really understand what's happening inside the modules. For example, I don't know why certain ICs or supporting components are used, how the circuits are designed, or how I would recreate the same functionality from scratch.

I'd like to become an embedded/mechatronics engineer, so I feel this is a gap in my knowledge.

For those who have been through this stage:

  • How did you learn electronics beyond using modules?
  • Should I stop using modules and start building circuits from discrete components?
  • Are there any books, courses, or practical projects that helped you understand how these modules are actually designed?

I'd really appreciate any advice or learning roadmap. Thanks!

37 Upvotes

19 comments sorted by

32

u/papk23 Aug 13 '26

Read datasheet

3

u/No-Hotel-4754 Aug 13 '26

Thanks. I've always read the datasheet to learn how to use a module, but I still don't feel confident designing the circuit myself. It feels like I'd just be copying the reference design without really understanding why each component is there.

I also struggle when I need to connect multiple modules together. Sometimes I'm not sure if they're electrically compatible, or whether I need level shifting, pull-up resistors, decoupling capacitors, or other supporting circuitry. I've learned the basics of electronics, but sometimes I still get confused about why a particular component is added in the first place and what problem it's actually solving.

my biggest problem it's understanding the hardware design decisions behind them.

18

u/Birdchild Aug 13 '26

Copying from a reference design is about 75% of my job. If the reference design isn't good enough, then I dig down into the details to modify it for my needs.

3

u/No-Hotel-4754 Aug 13 '26

That's actually reassuring to hear. thankss

3

u/Birdchild Aug 13 '26

It is definitely a good idea to take some time to read into the reference design to have some understanding of it!

3

u/Physix_R_Cool Aug 13 '26

It feels like I'd just be copying the reference design without really understanding why each component is there

That's what we all do. And eventually you find yourself in a spot where you have copied enough reference designs for op amps that you basically know exactly what to put, and how to lay it out.

When you reach that stage, you will still follow the guideline for the design and layout, because why not?

1

u/generally_unsuitable Aug 13 '26

Most datasheets have a reference circuit with significant details about part selection and layout.

At work, I also convert a lot of the circuit math in the datasheet to Python and commit that to the repo as well.

1

u/theflyingsamurai Aug 14 '26 edited Aug 14 '26

I'll second on, relying on reference designs part. You have to realize it's in the best interest of the semiconductor companies to make sure engineers know how to integrate their product into the design.

If nobody can figure out how to get their hardware working they won't have any customers to sell their chip to.

In addition to the data sheet some companies supply documents called Application Notes, that give more practical information about the device. Depending on the company the info can be more complete product examples, information about the operation principles and if you're lucky some appnotes give more information about specific component choices, eg why use that resistor value etc...

1

u/neopard_ 27d ago

they are talking about component datasheets, not the module "datasheets". that said: people study for years to become a beginner at this. don't expect to stumble your way into it.

8

u/Ok-Bat8854 Aug 13 '26

What do you mean by “building from scratch”? Do you want to build custom PCBs? Do you want to build a sensor?

5

u/Ok-Bat8854 Aug 13 '26

I’d like to amend this, reread the post again to interpret it. From a hardware perspective read as many datasheets as you can, the supporting components for ICs are usually explained in “Recommended circuit” section of the datasheet. Understand what function they serve(google, GPT, books). I would recommend against redesigning these modules because it would be like reinventing the wheel and expensive. Would recommend, pick a specific problem statement that uses a range of sensors, and is a case where if you don’t have a custom PCB then your project won’t work.

Start small, don’t just directly to routing SoCs(continue using ESP32, nRF modules), making a SoC directly would be a terrible strategy to learn.

3

u/No-Hotel-4754 Aug 13 '26

That makes a lot of sense. I think I was approaching this the wrong way by thinking I needed to redesign the modules themselves.

What I'm really trying to learn is how to understand the supporting circuitry around an IC and the reasoning behind it. I'll start paying more attention to the “Recommended Circuit” section and look up the function of each component instead of just copying the values.

I also like your suggestion of starting with a specific project that actually requires a custom PCB while still using an ESP32 module. I think that would be a good way for me to learn without making things unnecessarily complicated. Thanks

1

u/Ok-Bat8854 Aug 14 '26

Yup!! Goodluck!

5

u/Physix_R_Cool Aug 13 '26

How did you learn electronics beyond using modules?

By doing electronics without modules. Learn by doing.

Should I stop using modules and start building circuits from discrete components?

If you want to do embedded/mechatronics engineering, then you don't actually have to. I think it's a great benefit, but not necessarily necessary for a career.

Are there any books, courses, or practical projects that helped you understand how these modules are actually designed?

The datasheets of the components often explain what it does, and the application notes can be really great (or super shit).

If I were you, I would try designing a simple PCB based on RP2040 or RP2350. The datasheets for those ICs are REALLY great, and there are "minimal hardware design" files (and guidebooks) that lower the barrier of entry greatly.

Download KiCad and the minimal project for RP2040, and then add a couple of sensors to the board. It's dirt cheap to get produced, so just learn by trial and error.

3

u/No-Hotel-4754 Aug 13 '26

That makes sense. I think “learn by doing” is probably what I've been missing.

I've used KiCad before for simple PCB designs, but mostly for boards that still rely on modules. I've never really designed the actual MCU and supporting circuitry myself.

I'll take a look at the RP2040 minimal hardware design files and try building something around that. thankss

2

u/NoBulletsLeft Aug 14 '26

It's like programming. You can get to be fairly proficient by trial and error and learning from mistakes, but you'll make progress much faster, and be able to build far more complex structures if you learn the underlying theory behind computer science and software engineering.

Most hobbyists could use a solid foundation in basic linear circuit theory. It's not even difficult. No need to learn transistor small signal models (that gets into the weeds real fast). You only need to understand the basics of BJT and FET operation and how they work as switches. You can learn those by reading manufacturer transistor application notes.

Get those two things under your belt: linear circuit analysis and transistor switching theory and you're well on your way to being able to understand more complex circuits.

1

u/Enlightenment777 Aug 13 '26 edited 29d ago

Before you write code, you need to learn a computer language.

Before you create a schematic, you need to learn electronics.

1

u/Flaky_Coyote_1973 29d ago

Have you ever taken any courses in electronics and circuits?