Why do we need SNU.h library for nano33iot?

Hello everyone,

i just wrote a code For Arduino Cloud using VS Code for my nano 33 iot board. While compiling i got error referring to include SNU.h after i included it worked. I just want to know the function of SNU.h .

Please post your sketch and the full error message, using code tags for both

the library loads the update binary over network and applies it. it works as a second stage bootloader preppended to your sketch

1 Like

///////main datei

#include <ArduinoIoTCloud.h> // library is the central element of the firmware enabling certain Arduino
                             // boards to connect to the Arduino IoT Cloud.
#include "thingProperties.h" //This file includes the ArduinoIoTCloud and Arduino_ConnectionHandler 
                             //libraries
//#include <SNU.h>

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

  initProperties();          // Defined in thingProperties.h

  ArduinoCloud.begin(ArduinoIoTPreferredConnection); // the connection to the Arduino IoT Cloud is initialized
                            // Connect to Arduino IoT Cloud
  /*
     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();
  
  led=false;              //...for led initialisation
  pinMode(13,OUTPUT);      //initialisation 13 as output pin 
}
void loop() 
{
  ArduinoCloud.update();
}
/*
  Since LED1 is READ_WRITE variable, onLED1Change() is
  executed every time a new value is received from IoT Cloud.
*/
void onledChange() 
 {
  // Add your code here to act upon LED1 change
  if(led)                      //if lED1 ist on
  digitalWrite(13,HIGH);        //write high on pin 13
  else
  digitalWrite(13,LOW);         //otherwise write Low 
}

///////////include tab
////////thingProperties.h

#include <Arduino_ConnectionHandler.h>
#include "arduino_secrets.h"
//#define THING_ID "372b0e12-d9fb-4089-819b-fd10a3238f87"        //The Thing’s unique ID code
//#define THING_ID "6bce3a67-17de-2563-8381-560dd8b276cb"

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 onledChange();
bool led;

void initProperties()
{
  ArduinoCloud.addProperty(led, READWRITE, ON_CHANGE, onledChange);
}

WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
///////platformio.ini

[env:nano_33_iot]
platform = atmelsam
board = nano_33_iot
framework = arduino
lib_deps = arduino-libraries/ArduinoIoTCloud@^1.7.0

///////////error

Processing nano_33_iot (platform: atmelsam; board: nano_33_iot; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelsam/nano_33_iot.html
PLATFORM: Atmel SAM (8.1.0) > NANO 33 IoT
HARDWARE: SAMD21G18A 48MHz, 32KB RAM, 256KB Flash
DEBUG: Current (atmel-ice) External (atmel-ice, blackmagic, jlink)
PACKAGES:
 - framework-arduino-samd @ 1.8.13
 - framework-cmsis @ 1.40500.0 (4.5.0)
 - framework-cmsis-atmel @ 1.2.2
 - toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 24 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ArduinoIoTCloud @ 1.7.0
|   |-- Arduino_DebugUtils @ 1.3.0
|   |-- Arduino_ConnectionHandler @ 0.6.6
|   |   |-- WiFiNINA @ 1.8.13
|   |   |   |-- SPI @ 1.0
|   |   |-- Arduino_DebugUtils @ 1.3.0
|   |-- WiFiNINA @ 1.8.13
|   |   |-- SPI @ 1.0
|   |-- RTCZero @ 1.6.0
|   |-- Adafruit SleepyDog Library @ 1.6.1
|   |-- ArduinoECCX08 @ 1.3.6
|   |   |-- Wire @ 1.0
|   |-- Wire @ 1.0
|   |-- ArduinoMqttClient @ 0.1.6
|-- Arduino_ConnectionHandler @ 0.6.6
|   |-- WiFiNINA @ 1.8.13
|   |   |-- SPI @ 1.0
|   |-- Arduino_DebugUtils @ 1.3.0
Building in release mode
Compiling .pio\build\nano_33_iot\src\main.cpp.o
In file included from .pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/cbor/../property/PropertyContainer.h:27:0,
                 from .pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/cbor/CBORDecoder.h:35,
                 from .pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/ArduinoIoTCloud.h:35,
                 from src\main.cpp:1:
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/cbor/../property/types/automation/CloudTelevision.h: In member function 'virtual void CloudTelevision::setAttributesFromCloud()':
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/cbor/../property/types/automation/CloudTelevision.h:229:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
       setAttribute((int&)_cloud_value.pbc);
                                       ^
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/cbor/../property/Property.h:52:42: note: in definition of macro 'setAttribute'
 #define setAttribute(x) setAttributeReal(x, getAttributeName(#x, '.'))
                                          ^
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/cbor/../property/types/automation/CloudTelevision.h:230:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
       setAttribute((int&)_cloud_value.inp);
                                       ^
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/cbor/../property/Property.h:52:42: note: in definition of macro 'setAttribute'
 #define setAttribute(x) setAttributeReal(x, getAttributeName(#x, '.'))
                                          ^
In file included from src\main.cpp:1:0:
include/thingProperties.h: In function 'void initProperties()':
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/ArduinoIoTCloud.h:113:64: warning: 'void ArduinoIoTCloudClass::addPropertyReal(bool&, arduino::String, permissionType, long int, void (*)(), float, void (*)(Property&))' is deprecated: Use addProperty(property, Permission::ReadWrite) instead. [-Wdeprecated-declarations]
 #define addProperty( v, ...) addPropertyReal(v, #v, __VA_ARGS__)
                                                                ^
include/thingProperties.h:18:16: note: in expansion of macro 'addProperty'
   ArduinoCloud.addProperty(led, READWRITE, ON_CHANGE, onledChange);
                ^~~~~~~~~~~
In file included from src\main.cpp:1:0:
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src/ArduinoIoTCloud.h:120:10: note: declared here
     void addPropertyReal(bool& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(Property & property) = CLOUD_WINS) __attribute__((deprecated("Use addProperty(property, Permission::ReadWrite) instead.")));
          ^~~~~~~~~~~~~~~
Compiling .pio\build\nano_33_iot\lib77e\ArduinoIoTCloud\utility\ota\OTA-samd.cpp.o
.pio\libdeps\nano_33_iot\ArduinoIoTCloud\src\utility\ota\OTA-samd.cpp:31:12: fatal error: SNU.h: No such file or directory

*************************************************************
* Looking for SNU.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:SNU.h"
* Web  > https://registry.platformio.org/search?q=header:SNU.h
*
*************************************************************

 #  include <SNU.h>
            ^~~~~~~
compilation terminated.
*** [.pio\build\nano_33_iot\lib77e\ArduinoIoTCloud\utility\ota\OTA-samd.cpp.o] Error 1
=========================================================== [FAILED] Took 10.40 seconds ===========================================================
 *  The terminal process "C:\Users\NirajBista\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. ```

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