Tag Archives: Arduino IoT Cloud

Why using 3D printing in your smart home is so useful

via Arduino Blog

Why using 3D printing in your smart home is so useful

3D printing, the stuff of science fiction only a few short years ago, is becoming more widely available all the time. Buying your own 3D printer to keep in your home is now fairly accessible, with entry-level printers available for just a few hundred dollars.

But why would you buy one? It’s easy to think 3D printers are still a niche toy, exciting for a few enthusiasts but largely useless for the general population. But this couldn’t be more wrong — 3D printers have a wide range of very practical uses for everyday households.

In this article, we’ll take a look at why 3D printing is so useful and some of the many reasons to consider adding a 3D printer to your own smart home.

Why 3D printing is so useful

  • It’s fast and convenient. With a 3D printer, you can produce simple objects, creations, and components for existing items in a fairly short amount of time — much quicker than ordering the same things online or heading to a local store.
  • You get a ton of control over what you print. Need a very specific shaped object to repair a broken item in your home? It may be impossible to buy what you need anywhere, but a 3D printer allows you to create exactly the right size and shape you need.
  • It’s relatively affordable. As mentioned, basic 3D printers can be had for fairly cheap nowadays, and printing — for smaller objects, at least — costs very little.
  • It’s sustainable. It’s much more sustainable to print your own things than order them across large distances, and this is especially true for niche items that might need to be shipped across the globe to reach you.

Using 3D printing in your smart home

So what can you use a 3D printer for? There are many potential uses for a 3D printer in your smart home, and they range from practical tasks like repairing broken furniture to more creative hobbies. Let’s take a look at some of the main reasons to own a 3D printer.

Create useful items for your home

3D printers are perfect for creating small, useful items to use around the home. Some examples are coasters, decorations, lampshades, stationery, and small kitchen tools. This is a great way to combine practical use with a fun creative hobby, putting your own personal spin on the little items you use every day.

Repair items

You know that table you have that just never sits right? The door handle that doesn’t quite match the others in the house? The light switch that doesn’t fit exactly flush with the wall?

3D printing is the perfect solution to many of these small defects and faults. Because you have so much control over what you print — 3D printers can print according to virtually any instructions — it’s easy to create components to fix and spruce up the objects and appliances around your smart home.


3D printers aren’t a regular fixture in classrooms around the world just yet, but it’s only a matter of time. These machines allow students to take a more hands-on and creative approach to their learning. Some examples could be:

  • Science projects like creating models of the solar system of the structure of an atom
  • Geography work like printing detailed models of mountains or volcanoes
  • All kinds of product design work
  • Creative work like art

Arts and creative projects

Creative projects aren’t just for the classroom — many people own 3D printers purely for their own artistic work. There’s almost no limit to what a 3D printer can do in this area, and with a little experience, it’s possible to create truly beautiful and incredibly detailed works of art at home.

Build your own smart home with Arduino

3D printing is just one aspect of a smart home. There’s an almost endless list of things you can do with the right home automation tools — from growing a smart garden to keeping your pets entertained and fed.

Check out Arduino Project Hub for inspiration on projects you can build with Arduino’s tools, or visit our homepage for more information.

The post Why using 3D printing in your smart home is so useful appeared first on Arduino Blog.

Introducing Arduino’s IoT Bundle and what it means for you

via Arduino Blog

Introducing Arduino’s IoT Bundle and What it Means for You

We’re excited to announce the launch of the new Arduino IoT Bundle. This is built to help you dive into the complex and fascinating world of the Internet of Things with even more confidence and possibility — giving you the hardware, software, and components you need to create your own connected IoT projects.

So how does it all work? Let’s find out more.

What is the Arduino IoT Bundle?

Getting started with the IoT can be a daunting process. It requires a certain set of tools and a level of knowledge to take those first steps, but building your own connected IoT devices can be an incredibly rewarding process once you figure out the basics.

Arduino IoT Bundle unbox

The Arduino IoT Bundle is designed to bring together all the tools and knowledge you’ll need to get started with your first connected IoT devices. It’s built around the Arduino Nano RP2040 Connect, and the bundle also contains electronic components and a series of step-by-step tutorials to help you get started quickly and confidently.

How it works — some examples

The IoT is an incredibly rich area when it comes to building your own connected projects. There are a ton of exciting opportunities here that don’t require an enormous amount of knowledge or resources to get started with.

Let’s take a look at some examples of IoT projects, you’ll find more in the bundle:

Pavlov’s Cat

Training a cat is a tricky business, as any feline owner will know all too well. However, you can now use technology to make this task easier, using an IoT-enabled device you build at home to keep your cats in line.

This project — using only components found in the Arduino IoT Bundle and some cardboard — allows you to build a device that plays a certain melody whenever it dispenses food for your cat. At other times, it will play a different tune and your furry friend gets nothing. 

Just like Pavlov and his famous dogs, you’ll be able to train your cat to associate certain sounds with a reward — teaching your cat when it’s time for dinner.

The Nerd

Remember the days of the Tamagotchi? Caring for a digital pet was something millions of people devoted large chunks of their day to (or not, in the case of the many deceased Tamagotchis).

Now, with Arduino’s IoT Bundle, you can make your own digital pet. The Nerd lives on your desktop and survives by eating food and absorbing sunlight. Your task is easy: just make sure it’s adequately fed and has enough light to bask in. The Nerd will even help you by sending you an SOS in Morse code through a built-in speaker when it’s getting hungry.

You can feed The Nerd by pressing a button which is connected to the Arduino Cloud. Just don’t forget to keep on top of things — these creatures don’t die quietly.

Puzzle Box

This puzzle box is designed to keep your belongings safe(ish) in a cardboard container which is controlled by a fun combination lock. All you need is a few pieces of cardboard and the components from the Arduino IoT Bundle.

The box is kept closed with a servo motor, and will only open up if you turn all the potentiometers to get the right combination for access. You can set the combination in the Arduino IoT Cloud dashboard. To make things more fun, an LED on the box gives you feedback in the form of different coloured lights, letting you know how close you are to guessing the correct combination and gaining access to the box.

The puzzle box works best as a fun game to entertain others, rather than an actual security feature — but it’s still well worth giving a try.

Tap into the IoT with Arduino

Arduino’s IoT Bundle is the perfect introduction to tinkering around with your very own IoT devices at home. It gives you everything you need to get started with some simple projects, and requires very few pre-existing components and not much prior experience at all.

The post Introducing Arduino’s IoT Bundle and what it means for you appeared first on Arduino Blog.

Arduino Security Primer

via Arduino Blog

SSL/TLS stack and HW secure element

At Arduino, we are hard at work to keep improving the security of our hardware and software products, and we would like to run you through how our IoT Cloud service works.

The Arduino IoT Cloud‘s security is based on three key elements:

  • The open-source library ArduinoBearSSL for implementing TLS protocol on Arduino boards;
  • A hardware secure element (Microchip ATECCX08A) to guarantee authenticity and confidentiality during communication;
  • A device certificate provisioning process to allow client authentication during MQTT sessions.


In the past, it has been challenging to create a complete SSL/TLS library implementation on embedded (constrained) devices with very limited resources. 

An Arduino MKR WiFi 1010, for instance, only has 32KB of RAM while the standard SSL/TLS protocol implementations were designed for more powerful devices with ~256MB of RAM.

As of today, a lot of embedded devices still do not properly implement the full SSL/TLS stack and fail to implement good security because they misuse or strip functionalities from the library, e.g. we found out that a lot of off-brand boards use code that does not actually validate the server’s certificate, making them an easy target for server impersonation and man-in-the-middle attacks.

Security is paramount to us, and we do not want to make compromises in this regard when it comes to our offering in both hardware and software. We are therefore always looking at “safe by default” settings and implementations. 

Particularly in the IoT era, operating without specific security measures in place puts customers and their data at risk.

This is why we wanted to make sure the security standards adopted nowadays in high-performance settings are ported to microcontrollers (MCUs) and embedded devices.

Back in 2017, while looking at different SSL/TLS libraries supporting TLS 1.2 and modern cryptography (something that could work with very little RAM/ROM footprint, have no OS dependency, and be compatible with the embedded C world), we decided to give BearSSL a try.

BearSSL: What is it?

BearSSL provides an implementation of the SSL/TLS protocol (RFC 5246) written in C and developed by Thomas Pornin.

Optimized for constrained devices, BearSSL aims at small code footprint and low RAM usage. As per its guiding rules, it tries to find a reasonable trade-off between several partly conflicting goals:

  • Security: defaults should be robust and using patently insecure algorithms or protocols should be made difficult in the API, or simply not possible;
  • Interoperability with existing SSL/TLS servers; 
  • Allowing lightweight algorithms for CPU-challenged platforms; 
  • Be extensible with strong and efficient implementations on big systems where code footprint is less important.

BearSSL and Arduino

Our development team picked it as an excellent starting point for us to make BearSSL fit in our Arduino boards focusing on both security and performance.

The firmware developers team worked hard on porting BearSSL to Arduino bundling it together as a very nice and open-source library: ArduinoBearSSL.

Because the computational effort of performing a crypto algorithm is high, we decided to offload part of this task to hardware, using a secure element (we often call it a “cypto chip”). Its advantages are:

  • Making the computation of cryptography operations faster;
  • You are not forced to use all the available RAM of your device for these demanding tasks;
  • Allows storing private keys securely (more on this later);
  • It provides a true random number generator (TRNG).

How does the TLS protocol work?

TLS uses both asymmetric and symmetric encryption. Asymmetric encryption is used during the TLS handshake between the client and the server to exchange the shared session key for communication encryption. The algorithms commonly used in this phase are based on Rivest-Shamir-Adleman (RSA) or Diffie-Hellman algorithms. 

TLS 1.2 Handshake flow

After the TLS handshake, the client and the server both have a session key for symmetric encryption (e.g. algorithms AES 128 or AES 256).

The TLS protocol is an important part of our IoT Cloud security model because it guarantees an encrypted communication between the IoT devices and our servers.

The secure element

In order to save memory and improve security, our development team has chosen to introduce a hardware secure element to offload part of the cryptography algorithms computational load, as well as to generate, store, and manage certificates. For this reason, on the Arduino MKR family, Arduino Nano 33 IoT and Arduino Uno WiFi Rev2, you will find the secure element ATECC508A or ATECC608A manufactured by Microchip.

How do we use the secure element?

A secure element is an advanced hardware component able to perform cryptographic functions, we have decided to implement it on our boards to guarantee two fundamental security properties in the IoT communication: 

  • Authenticity: You can trust who you are communicating with;
  • Confidentiality: You can be sure the communication is private.

Moreover, the secure element is used during the provisioning process to configure the Arduino board for Arduino IoT Cloud. In order to connect to the Arduino IoT Cloud MQTT broker, our boards don’t use a standard credentials authentication (username/password pair). We rather opted for implementing a higher-level authentication, known as client certificate authentication.

How does the Arduino provisioning work?

The whole process is possible thanks to an API, which exposes an endpoint a client can interact with.

As you can see in the diagram below, first the Client requests to register a new device on Arduino IoT Cloud via the API, to which the server (API) returns a UUID (Universally Unique IDentifier). At this point, the user can upload the sketch Provisioning.ino to the target board. This code is responsible for multiple tasks:

  • Generating a private key using the ATECCX08A, and store it in a secure slot that can be only read by the secure element;
  • Generating a CSR (Certificate Signing Request) using the device UUID as Common Name (CN) and the generated private key to sign it;
  • Storing the certificate signed by Arduino acting as the authority.

After the CSR generation, the user sends it via the API to the server and the server returns a certificate signed by Arduino. This certificate is stored, in a compressed format, in a slot of the secure element (usually in slot 10) and it is used to authenticate the device to the Arduino IoT Cloud.

Remote working with Arduino: Alexa and the Arduino IoT Cloud

via Arduino Blog

We’ll certainly remember this year, with many of us learning how to adapt and live a safe life-style under the pandemic. As many countries begin to initiate a relaxation of restrictions and we are starting to be able to leave our houses, arrange shifts to get into work (still observing safety measures), we might find ourselves with different needs.

Perhaps we got used to having the TV on more often than usual, letting the voices of shows we don’t really watch keep us company in the background while home alone… working. Maybe we just like to have a corner light up with colors which soothe our moods, or give a fancy background tint to a remote disco party as we dress with big shades and wigs.

Many of these things can easily be automated using Alexa and Arduino IoT Cloud, so when we (finally) leave the house and are not sure if the TV is still on, or if our living room corner is still purple! we can simply ask “Alexa, turn the TV off” or “Alexa, turn the living room off” and a series of smart devices and software will take care of it for us.

Let’s give it a shot…

Getting the Alexa skill: Learn how to use Arduino IoT Cloud and Amazon Alexa to interact with your sensors.

Using the MKR RGB shield with Alexa: Learn how to control your MKR RGB Shield using Arduino IoT Cloud and Amazon Alexa.

Controlling TV with Alexa: Learn how to create a voice-controlled device with Alexa and Arduino IoT Cloud in 7 minutes

Create a voice-controlled device with Alexa: Learn how to turn on/off your lamp, and change the color and luminosity of the light in seven minutes!

Want to get started with the Arduino IoT Cloud? Check out this article!

Remote working with Arduino: An intro to the Arduino IoT Cloud

via Arduino Blog

As more of us have restrictions on leaving our houses, the time we take away from physical social interactions (namely “going out”) is put back into extracurricular activities. We catch up with old hobbies and bring new ones into our lives.

While baking is proving to be one of the most popular ones, testified by an unprecedented shortage of yeast and flour on supermarket shelves, there are activities for which gathering supplies hasn’t changed much.

We’d like to get you into learning something about the Internet of Things using our platform and boards.

If you’re reading this, you probably have some of the tools you need for the following tutorials, while the ones you don’t have are a click away.

We’ll start by learning how to connect a board to the Arduino IoT Cloud and in a matter of minutes have your environment data in an easy to read dashboard.

In the next installment, we’ll see how you can remotely control a device from a dashboard and maybe water your office plant while you’re stuck at home!

Getting started with the Arduino IoT  Cloud

A basic guide on how to set up the IoT cloud can be found here.

Using the MKR ENV Shield with the Arduino IoT Cloud

This tutorial walks through displaying values from an environmental shield on the IoT dashboard.