About

About MicroControllersTech

MicroControllersTech was created to provide clear, complete, and practical embedded systems tutorials that go beyond basic examples.

Many tutorials online demonstrate isolated features or partial implementations. This site takes a different approach: each project is designed to be fully reproducible, with detailed explanations, working configurations, and complete code where it matters.

Background

The content is developed from decades of software engineering experience, with a focus on building reliable, understandable systems rather than quick demonstrations.

The goal is not just to show how something works, but to explain why, so that readers can apply the same concepts to their own designs.

What You’ll Find Here

  • STM32-based embedded projects
  • Peripheral interfacing (SPI, I2C, UART, DMA, etc.)
  • Memory systems (SRAM, FRAM, Flash)
  • Communication protocols
  • Real hardware integration and debugging

Each tutorial is structured to guide you from setup through verification, so you can confidently reproduce the results.

Goal of the Site

To help engineers, hobbyists, and students move from simple examples to building complete, working embedded systems.

Unfortunately, I’ve experienced so many sites that provide a resource for teaching up to a certain point! That might be great for some people, but they actually don’t go the extra step in showing what else you need to apply this technology to be beneficial or practical in a real world situation. Yes, it’s great that I can write data to this memory chip, but oh hey!….. You can only use this example to write less than 10 bytes before it craps out on you. Why!?!?! Well, because the tutorial didn’t bother to explain to you that the chip had some limitation, and you needed extra coding/wiring to make it really useful!!!! WHAT!!!!????!!!!!

I’ve been a software engineer since 1980, and I’m still interested in applying decades of experience to modern embedded projects.

I originally started by building an 8085 single-board computer, breadboarding an 8085A CPU with 32KB of EEPROM and 32KB of SRAM. I also integrated an Intel 8251 USART, which allowed me to connect an FTDI interface to a terminal emulator on my PC via USB.

Once that system was running, I began experimenting with writing my own multitasking routines to handle multiple concurrent operations. After some time, I decided it made more sense to focus on current technology rather than hardware that is now over 45 years old, especially given the limited support and documentation available.

I had experimented with Arduino platforms in the past, but they never felt like the right fit for how I prefer to develop. I eventually shifted to working with STM32 microcontrollers, where development feels closer to standard C/C++ and aligns more naturally with my professional background.

Using STM32CubeIDE, which is based on Eclipse, felt immediately familiar. I had used Eclipse extensively with Java since the mid-2000s, so the workflow was natural. Just as important, STM32 development provides proper debugging tools, such as breakpoints and step-through execution, which were significant factors in choosing this platform.