📡 Embedded Systems & IoT Tools
The hardware and software I use for tinkering with electronics; Microcontrollers (AVR, ARM Cortex), PCB design software, soldering tools, oscilloscopes, and firmware development stacks. Also, how I integrate hardware projects with cloud backends and radio communication.
Embedded development is where software meets the physical world.
I’ve always enjoyed the mix of logic, electronics, and problem-solving that comes with building devices that actually do something.
My workflow blends firmware development, PCB design, and cloud connectivity for end-to-end IoT solutions.
⚙️ Microcontrollers & Boards
- STM32 (ARM Cortex-M Series)
My primary platform for most embedded projects. I use CubeMX IDE to configure peripherals, generate HAL code, and manage complex pin mappings before diving into firmware logic. - AVR (Atmega / ATTiny Series)
Used for smaller, power-efficient projects — reliable, easy to program, and widely supported. - Raspberry Pi (Multiple Units)
My Swiss army knife for IoT experiments — serving as controllers, gateways, and even small Linux servers for data collection and automation.
💾 Firmware & Development Environments
- STM32CubeMX IDE – For firmware generation and peripheral configuration on STM32 boards.
- PlatformIO – Cross-platform embedded IDE that integrates with VS Code, perfect for managing multiple board types in one workspace.
- Atmel Studio – For programming and debugging AVR microcontrollers.
- C / C++ – The foundation of all my embedded firmware. I focus on modular, efficient code that can run on limited hardware.
- Make & GCC Toolchains – For building and testing lightweight projects without full IDEs.
🧠 Circuit Design & Prototyping
- KiCad – My go-to tool for PCB design and layout. I use it to design custom boards for sensors, controllers, and IoT devices.
- Breadboards & Logic Analyzers – For fast prototyping, debugging timing issues, and testing signal flow.
- Soldering & Multimeter Tools – The basics that make hardware tangible — every project eventually touches the workbench.
🌐 Connectivity & Cloud Integration
- MQTT & REST APIs – For connecting microcontrollers to cloud platforms and dashboards.
- AWS IoT Core & Custom APIs – Used to collect, analyze, and visualize data from remote sensors.
- Radio Links & Ham Radio Equipment – Occasionally used for low-bandwidth, long-distance communication where WiFi or cellular aren’t available.
🧩 Supporting Utilities
- Serial Terminals & USB Analyzers – For debugging communication protocols and monitoring device logs.
- Python Scripts – Used for automation, testing device responses, or handling data parsing.
- Firmware Versioning with Git – Every embedded project is tracked like any other software product — versioned, documented, and reproducible.
Working with embedded systems keeps me grounded in how software interacts with reality — from blinking an LED to deploying IoT networks that feed data into full-stack applications.
It’s where precision, patience, and curiosity come together to make real-world systems come alive.