Nano 33 IoT - Can't Get Past Crypto Config

Hello All,

Looked at most of the posts; have used the online tools to upload a sketch - all that works. On the Crypto Config - I ran the debug monitor - here's what I get:

time="2019-09-07T15:08:13-07:00" level=info msg="COM3 arduino:samd:nano_33_iot \"{runtime.tools.bossac-1.7.0-arduino3.path}/bossac\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{build.path}/{build.project_name}.bin\" -R {Use1200bpsTouch:true WaitForUploadPort:true Network:false Auth:{Username: Password: PrivateKey: Port:0} SSH:false} Provisioning.bin"

{"Cmd":"Serial","ProgrammerStatus":"Starting"} time="2019-09-07T15:08:13-07:00" level=info msg="Restarting in bootloader mode"

{"Msg":"Restarting in bootloader mode","ProgrammerStatus":"Busy"} time="2019-09-07T15:08:13-07:00" level=info msg="Touching port COM3 at 1200bp {"Msg":"Get port list before reset","ProgrammerStatus":"Busy"} time="2019-09-07T15:08:13-07:00" level=info msg="Touching port {"Msg":"[COM11 COM3]","ProgrammerStatus":"Busy"} time="2019-09-07T15:08:13-07:00" level=info msg="Touching port COM3 at 1200bps"

{"Msg":"Touching port COM3 at 1200bps","ProgrammerStatus":"Busy"} {"Msg":"Reset before upload: 1200bps Touch: Open port COM3: Serial port busy","ProgrammerStatus":"Error"} list {

Anyone know what's going on? Nana IoT's are right out of the box.

I noticed

TIA, John W.

Hello Again,

I found one issue - but I'm not out of the proverbial woods yet - I had one of those TCP to serial port mapping drivers running; the Nano IoT grabbed one of the ports that had been mapped to a TCP stream; I disabled that - and - I remapped the serial port that the Nano grabbed - I think this could be a similar issue that some others are having - you need to force the board to go into bootloader mode - but make sure you don't have any previous possible conflicts with what port it grabs - like grabbing a port that had been assigned to a TCP stream as what happened in my case; at least initially.

It still doesn't connect to the cloud - but at least I'm past the crypto chip issue now. My network settings are correct - I imagine it could be the 500mS retry - that could be too fast for my network - that retry needs to happen at 5 seconds or 10 seconds IMHO.

Running the debug window really helps.

Regards, John W.

[ 1436262 ] WiFi.status(): 0 [ 1436262 ] Current WiFi Firmware: 1.2.3 [ 1436263 ] Connecting to "AJ6BC-Prime" [ 1442956 ] Connected to "AJ6BC-Prime" [ 1442957 ] Connecting to Arduino IoT Cloud... [ 1443260 ] Bogus NTP time from API, fallback to UDP method [ 1445825 ] Connected to Arduino IoT Cloud

Here's a link to a sketch example that will blink the Yellow LED on the Nano 33 IoT:

https://create.arduino.cc/editor/jwestmoreland/2bf7c3ac-be5e-4aac-88de-6255f73581dd/preview

Request: The SCK pin should be marked D13 on the schematic.

Regards, John W.

In case the share link doesn’t work:

/*
Sketch generated by the Arduino IoT Cloud Thing “THING”
https://create.arduino.cc/cloud/things/21c48669->your generated ID

Arduino IoT Cloud Properties description

The following variables are automatically generated and updated when changes are made to the Thing properties

bool LED_STATE;

Properties which are marked as READ/WRITE in the Cloud Thing will also have functions
which are called when their values are changed from the Dashboard.
These functions are generated with the Thing and added at the end of this sketch.
*/

#include “thingProperties.h”

#define LED_PIN 13

void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);

// Defined in thingProperties.h
initProperties();

// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);

/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();

pinMode(LED_PIN, OUTPUT);

}

void loop() {
ArduinoCloud.update();
// Your code here

}

void onLEDSTATEChange() {

// Do something
digitalWrite(LED_PIN, LED_STATE);
Serial.print("The light is ");
if (LED_STATE) {
Serial.println(“ON”);
} else {
Serial.println(“OFF”);
}

}

void onLEDChange() {
// Do something
}

// include:
#include <ArduinoIoTCloud.h>
#include <WiFiConnectionManager.h>

const char THING_ID = “21c48669-”;

const char SSID = SECRET_SSID; // Network SSID (name)
const char PASS = SECRET_PASS; // Network password (use for WPA, or use as key for WEP)

void onLEDSTATEChange();

bool LED_STATE;

void initProperties(){

ArduinoCloud.setThingId(THING_ID);
ArduinoCloud.addProperty(LED_STATE, READWRITE, ON_CHANGE, onLEDSTATEChange);

}

ConnectionManager *ArduinoIoTPreferredConnection = new WiFiConnectionManager(SSID, PASS);

///

Maybe this will help - and you can blink the on-board LED without having to set up a breadboard.

Regards,
John W.