In a previous blog post I looked at Atom and PlatformIO, how to install and how to create and run a project for one of the 200+ supported MCU boards. But the true power of this development platform comes from its extensibility, including syntax highlighting, Git integration, custom board and platform definitions and simple project management.
Let's have a quick look at some of the extensions I've added to improve my 'productivity and workflow'... ;o)
One of the many design choices you face when designing an electronic device, is how to power it. It's often just an afterthought, but for finished products that go beyond simple prototype and must function error-free for years, it's crucial. The basic choices we have are:
- Use (rechargeable) batteries
- Use an external power supply (like a wall wart)
- Built a power supply into the device (and feed it mains or other external power)
- Harvest external energy source (like solar or thermo energy)
Obviously, sometimes a combination is applicable, like using solar power combined with rechargeable batteries.
They all have pro's and con's. For instance, whether battery operation is an option depends on power consumption and location/accessibility (e.g.: Is it not near a power source? Can the batteries be replaced?). A good power source is a must for any microcontroller circuit. Not only from safety and environmental point of view, but also to ensure its long lasting uninterrupted workings.
Wireless communication is essential to any Home Automation, IoT or other embedded device and sensor setup. Whether adding devices in an existing house, accessing remote sensors or simply avoiding expensive wiring, in many cases some form of RF communication is the only feasible option. For in-house projects wired communications can be in some cases be useful, like Ethernet, 1-Wire, RS485 or even PLC (Power Line Communication). But these days wireless is all the rage and I will therefor dive deep into the world of RF communications, starting with this blog post, which will be mainly focused on an ESP8266 based development board.
For my (home) automation and other planned projects I am looking for simple means of communication between various device nodes, sensors and actuators. These will mostly be based on small microcontrollers (like Atmel's 8-bit AVR, ARM Cortex or similar MCU's) with a small amount of memory. More details on these MCU-driven nodes (or should I say 'IoT' devices) will follow as I start digging into the details of these microcontrollers and do some designing and building along the way. But for now I want to have a simple communication protocol for tiny devices with as little as a few KB of memory, and connected through different wired or RF links.