IoT air quality checker device never connects to iot cloud

I've never done electronics and wanted to give it a try. So, I got the /iot-air-quality-checker-bundle and then followed the step-by-step guide exactly.

Device works great except that it does not connect to the IoT Cloud. Under devices, its always listed as "offline". I've followed the troubleshooting guide and deleted/ re-associated the device and thing multiple times.

Code is identical to code in the step-by-step guide (except for the thingID and network details)

Any advice on how to debug this would be appreciated!

Hello!

Did you check the serial monitor output? Did it print the message "Connected to IoT Cloud"?

It does not print that message:



/usr/local/bin/arduino-cli compile --fqbn arduino:samd:mkrwifi1010 --libraries /home/builder/opt/libraries/latest --build-cache-path /tmp --output-dir /tmp/715886876/build --build-path /tmp/arduino-build-13951A6ACF283DF34A23A17E902E0080 --library /home/builder/opt/libraries/arduinoiotcloud_1_6_1 /tmp/715886876/airQualityCheck_jul06a

Sketch uses 106872 bytes (40%) of program storage space. Maximum is 262144 bytes.

Global variables use 5920 bytes (18%) of dynamic memory, leaving 26848 bytes for local variables. Maximum is 32768 bytes.

Upload started

Programming with: Serial

Restarting in bootloader mode

Flashing with command:/home/kapa/.arduino-create/arduino/bossac/1.7.0-arduino3/bossac -i -d --port=ttyACM0 -U true -i -e -w -v /tmp/arduino-create-agent997347942/airQualityCheck_jul06a.bin -R

Set binary mode

readWord(addr=0)=0x20007ffc

readWord(addr=0xe000ed00)=0x410cc601

readWord(addr=0x41002018)=0x10010305

version()=v2.0 [Arduino:XYZ] Mar 19 2018 09:45:14

chipId=0x10010005

Connected at 921600 baud

readWord(addr=0)=0x20007ffc

readWord(addr=0xe000ed00)=0x410cc601

readWord(addr=0x41002018)=0x10010305

Atmel SMART device 0x10010005 found

write(addr=0x20004000,size=0x34)

writeWord(addr=0x20004030,value=0x10)

writeWord(addr=0x20004020,value=0x20008000)

Device : ATSAMD21G18A

readWord(addr=0)=0x20007ffc

readWord(addr=0xe000ed00)=0x410cc601

readWord(addr=0x41002018)=0x10010305

Chip ID : 10010005

version()=v2.0 [Arduino:XYZ] Mar 19 2018 09:45:14

Version : v2.0 [Arduino:XYZ] Mar 19 2018 09:45:14

Address : 8192

Pages : 3968

Page Size : 64 bytes

Total Size : 248KB

Planes : 1

Lock Regions : 16

Locked : readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

readWord(addr=0x41004020)=0xffff

none

readWord(addr=0x41004018)=0

Security : false

Boot Flash : true

readWord(addr=0x40000834)=0

BOD : false

readWord(addr=0x40000834)=0

BOR : false

Arduino : FAST_CHIP_ERASE

Arduino : FAST_MULTI_PAGE_WRITE

Arduino : CAN_CHECKSUM_MEMORY_BUFFER

Erase flash

chipErase(addr=0x2000)

done in 0.851 seconds

Write 106880 bytes to flash (1670 pages)

write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x2000, size=0x1000)

[= ] 3% (64/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x3000, size=0x1000)

[== ] 7% (128/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x4000, size=0x1000)

[=== ] 11% (192/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x5000, size=0x1000)

[==== ] 15% (256/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x6000, size=0x1000)

[===== ] 19% (320/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x7000, size=0x1000)

[====== ] 22% (384/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x8000, size=0x1000)

[======== ] 26% (448/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x9000, size=0x1000)

[========= ] 30% (512/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0xa000, size=0x1000)

[========== ] 34% (576/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0xb000, size=0x1000)

[=========== ] 38% (640/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0xc000, size=0x1000)

[============ ] 42% (704/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0xd000, size=0x1000)

[============= ] 45% (768/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0xe000, size=0x1000)

[============== ] 49% (832/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0xf000, size=0x1000)

[================ ] 53% (896/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x10000, size=0x1000)

[================= ] 57% (960/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x11000, size=0x1000)

[================== ] 61% (1024/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x12000, size=0x1000)

[=================== ] 65% (1088/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x13000, size=0x1000)

[==================== ] 68% (1152/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x14000, size=0x1000)

[===================== ] 72% (1216/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x15000, size=0x1000)

[====================== ] 76% (1280/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x16000, size=0x1000)

[======================== ] 80% (1344/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x17000, size=0x1000)

[========================= ] 84% (1408/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x18000, size=0x1000)

[========================== ] 88% (1472/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x19000, size=0x1000)

[=========================== ] 91% (1536/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x1a000, size=0x1000)

[============================ ] 95% (1600/1670 pages)write(addr=0x20005000,size=0x1000)

writeBuffer(scr_addr=0x20005000, dst_addr=0x1b000, size=0x1000)

[============================= ] 99% (1664/1670 pages)write(addr=0x20005000,size=0x180)

writeBuffer(scr_addr=0x20005000, dst_addr=0x1c000, size=0x180)

[==============================] 100% (1670/1670 pages)

done in 0.696 seconds

Verify 106880 bytes of flash with checksum.

checksumBuffer(start_addr=0x2000, size=0x1000) = 21e5

checksumBuffer(start_addr=0x3000, size=0x1000) = a0b4

checksumBuffer(start_addr=0x4000, size=0x1000) = d4f2

checksumBuffer(start_addr=0x5000, size=0x1000) = a1c6

checksumBuffer(start_addr=0x6000, size=0x1000) = 5514

checksumBuffer(start_addr=0x7000, size=0x1000) = 8ef6

checksumBuffer(start_addr=0x8000, size=0x1000) = 90fd

checksumBuffer(start_addr=0x9000, size=0x1000) = 5919

checksumBuffer(start_addr=0xa000, size=0x1000) = 3e85

checksumBuffer(start_addr=0xb000, size=0x1000) = d921

checksumBuffer(start_addr=0xc000, size=0x1000) = 3ea4

checksumBuffer(start_addr=0xd000, size=0x1000) = a7cb

checksumBuffer(start_addr=0xe000, size=0x1000) = f05c

checksumBuffer(start_addr=0xf000, size=0x1000) = dcbb

checksumBuffer(start_addr=0x10000, size=0x1000) = a3cb

checksumBuffer(start_addr=0x11000, size=0x1000) = a97f

checksumBuffer(start_addr=0x12000, size=0x1000) = 81f

checksumBuffer(start_addr=0x13000, size=0x1000) = ca8b

checksumBuffer(start_addr=0x14000, size=0x1000) = a4a8

checksumBuffer(start_addr=0x15000, size=0x1000) = 7803

checksumBuffer(start_addr=0x16000, size=0x1000) = 4f6d

checksumBuffer(start_addr=0x17000, size=0x1000) = a3a0

checksumBuffer(start_addr=0x18000, size=0x1000) = 285d

checksumBuffer(start_addr=0x19000, size=0x1000) = 6c13

checksumBuffer(start_addr=0x1a000, size=0x1000) = 73a

checksumBuffer(start_addr=0x1b000, size=0x1000) = eb75

checksumBuffer(start_addr=0x1c000, size=0x180) = 94a4

Verify successful

done in 0.091 seconds

CPU reset.

readWord(addr=0)=0x20007ffc

readWord(addr=0xe000ed00)=0x410cc601

readWord(addr=0x41002018)=0x10010305

writeWord(addr=0xe000ed0c,value=0x5fa0004)

This is not the serial monitor output, it's the compilation/upload output. Check here how to open it (see " 7. Editing the Sketch" section)

1 Like

of course its something so basic.

device could not connect to the wifi. I retyped the name/password and this time I did this it fixed the issue. device connects and is writing to the dashboard. thanks @eclipse1985 !

1 Like

Great! Glad to hear you solved your issue!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.