Troubleshooting your Adafruit IO Project

The Problem with IoT Project Troubleshooting

Much like a sandwich, Adafruit IO projects have a lot of layers where things can go wrong. As a result, it becomes much harder to troubleshoot these types of projects.

There's the hardware (like a Feather ESP8266) layer which brings issues such as "why isn't my motor turning". Your wiring may be an issue. The code could be incorrect. It could even be a networking issue, which brings us to the next layer...

Then, there's networking which connects your internet-controlled project to the internet. Problems could arise here resulting to DNS configuration, port forwarding problems, or your router simply not talking to The Internet™.

There's also The Internet™, and that brings a lot of problems too. Finally there's Adafruit IO, a web service that we built and support. 

...and there could be problems with any layer of this delicious sandwich. 

How to Help Out ("I have a problem that's not listed here, what now?")

If your project is not working properly, the Adafruit community is here to help you out. Post up in the Adafruit IO Forums or chat with Adafruit staff and community members in real-time on the adafruit-io channel on the Adafruit Discord server.

While we help out and see repeated issues, we'll add them to this page to help others. 

Common Issues

My Serial Monitor prints "..." endlessly after the "Connecting to Adafruit IO" message

Your board is not connecting to Adafruit IO, but why? Let's find out:

First, check in config.h that you have the correct IO_USERNAME, IO_KEY, WIFI_SSID, and WIFI_PASS are set correctly. 

Next, we're going to modify the while loop which waits for an IO connection in your sketch. Change the line in the status check loop from Serial.println(.); to Serial.println(io.statusText());

// wait for a connection
while(io.status() < AIO_CONNECTED) {
Serial.println(io.statusText());
delay(500);
}

Verify and re-upload the sketch. If you're receiving a Network disconnected error message, the board is not able to talk to the internet. Re-check your hardware, connections, and router settings. 

If it's still not showing Adafruit IO connected, check the IO status on the Adafruit Status page to make sure the service is online.

My data isn't displaying, is Adafruit IO's {service/MQTT/API} down?

Is my data being sent properly? Am I sending too much data?

There's a monitor page built-into Adafruit IO which provides a live view of incoming data and error messages. Keep this page open while you send data to your Adafruit IO devices to monitor data and errors. 

My dashboard is reporting a temperature reading in Fahrenheit/Celsius but I need it in the opposite unit

The dashboard displays information from feeds. Chances are, the sensor you are using is outputting a temperature in Fahrenheit/Celsius but you need to convert it (in your code) to the opposite unit. Here's some handy pseudo-code to help out:

From Fahrenheit to Celsius:

   degreesFahrenheit = degreesCelsius × 9/5 + 32

From Celsius to Fahrenheit: 

   degreesCelsius = (degreesFahrenheit - 32) × 5/9

I'm using an Feather M0 WiFi (ATWINC1500) and it's not connecting to Adafruit IO.

If you're using a Feather M0 WiFi and receiving a Disconnected from Adafruit IO message in your serial monitor, you'll want to check two things:

  1. Make sure that you have the correct Adafruit IO Keys in your sketch, and that the router/network configuration is correct. 
  2. The SSL ceritifcates on your device for Adafruit IO need to be up-to-date. It's hard to check if they're up-to-date from the device, so we suggest running through the process of adding a new SSL certificate through the Arduino IDE. You can find the guide for that here.

Board-Specific Issues

ESP8266

Error: 'AdafruitIO_WiFi' does not name a type

From Boards Manager, downgrade from ESP8266 v2.5.0-beta2 to stable 2.4.2.

This guide was first published on Jun 13, 2018. It was last updated on Jun 13, 2018. This page (Troubleshooting your Adafruit IO Project) was last updated on Sep 22, 2019.