Maker One (M1) Modular Embedded System Framework

The Story Behind Maker One (M1)

I’ve always been that person who loves exploring new tools. Productivity tools, testing tools, small random utilities, I just like trying things that make life easier or more fun.

But after using so many mobile apps, I started feeling something was missing. Phones are great, they have amazing tools and smooth UIs, but I still wanted a standalone gadget. Something that just does its job without all the noise and distraction.

A phone is a general-purpose device. It does everything, which is also the problem. When I’m working on something meaningful, I prefer staying away from it. That’s when it clicked. We don’t always need fancy apps, we just need something that works and stays focused.

Honestly, even with most tools, I probably use less than half of what they can do. I think that’s true for a lot of people. So I thought, why not build my own small device that runs only the tools I actually need.

I’m a developer and I love building stuff. When I’m tinkering or putting something together, that’s when I feel happiest. And that’s how Maker One, or just M1, started taking shape.

Right now it’s still in the prototype stage, but it works. I don’t know exactly where this project will go, but I’m enjoying the process. It feels good to build something from scratch that actually does what I imagined.


What Maker One (M1) Is

Maker One is my attempt to make a modular embedded system.
A small setup where multiple tiny apps can run independently on one piece of hardware.

Kind of like how your phone has different apps, but here it’s all about simple, focused tools for hardware. No internet, no notifications, no distractions.

Each app does a specific job like stopwatch, counter, WiFi scanner, quotes display, or sensor test. You can switch between them using a launcher UI on a 2.2 inch TFT screen with just three buttons.

The system handles things like
• Drawing the UI and text on the display
• Reading button inputs with proper debounce
• Registering and launching different apps
• Handling small data logs and test readings

Everything runs on an ESP32 dev board and uses the Arduino framework under PlatformIO.
But I’m not heavily dependent on Arduino libraries. Most of the system is written using my own high-level APIs and abstraction layer to keep the code modular and safe from future library or framework changes.

That makes the firmware more stable and easier to maintain while still keeping it flexible for future updates.

I see M1 more like a small framework that I can keep expanding, adding tools, testing new modules, and building small experiments on top of it.

I also made a short 40 second introduction video showing M1 in action, booting up, switching apps, and running smoothly.


Prototype Highlights

This first prototype already does a lot. It can run multiple built-in apps through the launcher and switch between them instantly.

Right now it runs
• Ultrasonic Sensor Test – live distance readings
• Servo Test – moves servo angles directly from the UI
• Buzzer Test – tone and alert testing (not in intro video)
• WiFi Scanner – scans nearby WiFi networks
• Stopwatch – start, stop, and lap
• Counter – button-controlled counter
• Quotes – shows random tech and motivational quotes

Each app runs independently but inside the same system. I just add a new one and it automatically appears in the launcher. Seeing it behave like a small embedded OS feels really satisfying.


Gallery

Some photos and short clips from the prototype tests

Maker One setup (no sensors attached)
Ultrasonic sensor test
Servo test
Buzzer test
WiFi scanner app
Stopwatch app
Counter app
Quotes app

Coming Soon

M1 is still growing. I’ll keep adding updates here as I make progress.
Next, I’ll probably share more about the hardware setup, firmware design, and some behind the scenes details.

For now, I’m just happy watching it come alive, seeing it boot, switch apps, and actually do what I built it for.

More updates soon…


Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *