Also I’ve received valuable answers and wishes from the “LinkedIn Professionals” (here and here). Most of them like to work with an IDE and preferably Eclipse IDE. As PlatformIO is a console tool with rich commands interface it can work with different IDEs as the “builder, uploader & debugger”.
Today I want to explain how we can build and debug Atmel AVR (Arduino) based project using Eclipse IDE + PlatformIO.
“PlatformIO is a cross-platform code builder and the missing library manager”
Working on an embedded firmware for SmartAnthill Project I’ve been dealing with building code for different embedded platforms. Nowadays, each platform proposes standalone toolchain, driver-lib and even own IDE:
With each new embedded platform I had to adapt to its own IDE, code highlighter, code autocompletion, debugger and many more. Then I’ve decided to write code in my favourite editor (Vim) and build it only with these IDEs. But a structure of my project looked ugly because each IDE had created own project’s META files and folders. Therefore, I had different project locations for each IDE and “symlinked” source code folder to one location. But this wasn’t for long…
The Android NDK is a toolset that allows us to implement parts of our app using native-code languages such as C and C++. There are many articles about integrating AndroidSDK/NDK and writing some “C/C++” JNI compatible code. JNI is the Java Native Interface. It defines a way for managed code (written in the Java programming language) to interact with native code (written in C/C++).
But today we will talk about:
the native cross-compiling on the Windows/UNIX-like systems
uploading of the compiled binary file to the Android device
running the compiled binary file via Android CLI shell.
And what is interesting, we will not use the Android SDK (except adb utility) or any others Android sources 🙂
SmartAnthill is an intelligent micro-oriented networking system
My love to electronics has started from my childhood. And if you ask me about: “What was your favorite toy in childhood?”, then I answer: “Most likely it was a soldering iron”. In that time I only had a minimal basic knowledge in electronics. But to understand that a circuit is broken due to a faulty resistor or transistor was not a big problem for me.
The most interesting moment of “electronic life” started several years ago. Then I was one of those people who have made their first “electronics steps” in the “Home Automation“. The first task which had to be resolved was a “Simplified Climate Control System“. The first way to find the solution for it was using OWFS based on “1-Wire” bus . This approach was cheap and easy to use. The fundamental hardware part was built on DS18B20 (1-Wire Digital Thermometer) and DS2408 (1-Wire 8-Channel Addressable Switch) chips. At the building stage in my house I embedded a lot of digital thermometers into the floor. This allowed me to control the floor’s temperature in the different rooms (because I didn’t have the radiators for heating 😎 ). The information about temperature, the ability to control heatingcollector and gas boiler, the several lines of Bash / PHP code helped me to create my first working version of “Climate Control System“. With it I could:
setup different “Climate Programs”(Day/Night, Weekend, Holiday, Guests and any others modes)
monitor and analyze history of temperature and heating collector (excellent graphs)
control this system from outside of my house (via Internet with mobile application)