Why another Arduino blog?

It’s not a secret: there are many blogs about IoT, and there are even more tutorials on Arduino. So, does the Internet needs yet another blog on the topic? True, many places teach you how to get started, but how many sites allow growing from there?

On the other side of the spectrum, there are many excellent C++ blogs and reference sites. They talk about the latest improvements in C++20 and the most intricate metaprogramming techniques. I’m a frequent reader of those sites because I’ve been practicing C++ for many years and I love this language. However, there are two problems with these sites. First, the content is inaccessible to most Arduino users because they assume that the reader already knows C++ well. Seconds, the techniques presented are often inapplicable in Arduino:

  • the “Arduino language” has its own quirks (byte or std::byte?)
  • the standard library is rarely available
  • the compiler lacks the newest C++ features (forget C++20)
  • the Flash memory is quite limited (forget meta-programming)
  • the RAM is very limited (forget the standard library)

So, how do you go from Arduino beginner to fluent C++ developer? That is the goal of “C++ for Arduino.” With this blog, you will:

  • understand what’s happening behind the scene
  • learn new techniques
  • grow your C++ skills

How do we do that?

“C++ for Arduino” offers short articles on very focus topics. The scope of each article is voluntary narrow so that the content is easy to digest.

Each article provides code samples that you can run on your Arduino board so that you can practice at home.

To keep the content accessible for most readers, including the large majority that doesn’t speak English as a native language, I write the articles with a simple and direct style:

  • short sentence
  • active voice
  • conversational style (“I,” “you,” and “we”)

Because many Arduino users are used to programming in other languages, I often make comparisons with the languages I know: C#, Java, JavaScript, and Python.

Who is behind this blog?

My name is Benoît Blanchon. I’m a professional programmer with much experience in C++ and C#. Even though it’s not my day job, I own a Master’s Degree in Electronics.

I’ve been playing with Arduino boards since 2009. I’m the creator of ArduinoJson, a library to serialize and deserialize JSON documents on embedded systems. As I’m writing these lines, ArduinoJson is the most popular Arduino library.

I wrote a book, Mastering ArduinoJson, whose second chapter, “The Missing C++ Course,” inspired me to start this blog. I also write on another blog of mine Good Code Smell.

I also created two other Arduino libraries: ArduinoTrace and StreamUtils.