Big Button - Part 1 - Introduction
Tue, Dec 24, 2024
|4 min read
|
Table of Contents
The Embedded Fantasy
Imagine the following scenario: You get a call from a good and respected friend. After some informal conversation he/she switches their tone and prepares to carefully ask you for an opinion on an idea he/she has. At this point you already know what is going to happen next.

As a IT professional, you have experienced this many times. A friend or relative corners you at some event and “confidentially” shares his/her genius industry disruptive idea with a glimmer in their eyes. So you go into autopilot-politely-interested mode, carefully scanning the conversation for an exit. But something is different. The more you listen, the more your friend’s story and idea catches your attention.
You become more engaged and inspired. You can tell he/she has done his/her homework. There are some basic questions that need to be answered, but in all, this is not just something he/she woke up with today. To you this seems to be the real deal.
To be more specific, your friend’s idea is a prototype of a physical device, maybe even a Internet of Things (IoT) device or some wearable. You are galvanized, energized, and want to help, however, it is obvious that you don’t have any embedded systems knowledge and would not know where to start … that is, until you find this random online blog series!
Alright, maybe this intro story to embedded system is a little too dramatic and too specific, but I do hope I got your attention to read further!
Project Backstory
Let me explain how this entire blog/tutorial series came about. Where I live, trash pick up is Tuesdays and Fridays. Or is it Mondays and Thursdays? Well, maybe one of those days is Wednesday…?

I still question myself and still can miss trash day.
Now, I could do two very easy things to solve this issue.
- Stop being an idiot, just memorize the days, and move on.
- Set a recurring alarm on my phone for the right days.
Because I am always looking for a insightful and rewarding engineering side project to be inspired by. I opted to come up with a much more complicated approach.
I wanted a project to learn and apply an embedded systems project. Furthermore, I wanted to be more comfortable with Rust (“blazingly fast”) programming as well.
My goal was to create a button that when pressed, sends a text message to my phone and monitors text message responses. This allows me to snooze or silence the reminder to take out the trash.
I know, not very big or thought out, but I guess reason enough to get going and create some thing!
So in short, and very basically, we are building and programming a BIG glorified push BUTTON.
Project Goal
Now, obviously you do not need to use this device for trash day reminders or anything close to that. However, going through this blog series should enable you to reuse methods, code, or improvise to develop your own ideas.
It is my hope that after working through this project you yourself will be able to solve some problem that requires embedded systems and Rust programming.
NOTE
Embedded can mean many things. Simply put, think of it as programming a stand-alone chip/microcontroller that does not already have a running operating system (ie. Linux).

The project that we will be developing will be a large red button assembly. This button assembly will have a variety of features:
- Super large red glowing button
- Fully battery operated (rechargeable, battery lasting for at least a week)
- Multiple fancy LEDs with a variety of light patterns
- Sound buzzer for audio signal feedback
- System On/Off toggle switch
- Wireless internet interconnectivity via REST API
At the time of writing this project introduction, I am not fully able to summarize the specifics of the entire project, I am still working through details. This tutorial is evolving as you are reading this

Alright! Let’s try figuring out if this tutorial is for you.