Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO

eclipse_platformio_iconI received a lot of feedbacks after PlatformIO had been released. Some people have been asking me the interesting questions, such as:

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.

Continue reading

How was PlatformIO born or why I love Python World

PlatformIO Example

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…

Continue reading

An Android Cross-Compiling Environment on Windows/UNIX-like systems using NDK

android-ndkThe 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 Android SDK/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 🙂

Continue reading

Merry Christmas and Happy New Year + (Bonus Songs)

Merry Christmas and Happy New Year

So the last days of this year are ending…  And many of us are thinking about what we did in this old year. Some of us are analyzing a self success, when others the happened failures. But we should realize that the success and failures are our knowledge of life.

Each of us have had happy and troubled minutes in this year. But the main is that we had faith in ourself and in success. I like to follow by this proverb: “Everything will work out for the best“.

Therefore, let these holidays bring you and your family gladness, love and prosperity. I wish you in New Year that all of your dreams become true. And I want to give you a few of my “Piano” New Year songs… 🙂

Continue reading

History of “SmartAnthill” Project

SmartAnthill is an intelligent micro-oriented networked system

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 heating collector 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)
  • reduce a gas consumption in several times 😀

Continue reading