arduino / arduino-examples

Arduino IDE bundled examples
Creative Commons Zero v1.0 Universal
90 stars 41 forks source link

`Blink.ino` does not compile for Nicla Sense ME, unless `#include "Nicla_System"` #63

Closed aliphys closed 4 months ago

aliphys commented 1 year ago

Describe the problem

The Blink sketch does not run without modification on the Nicla Sense ME. It is required to add the #include "Nicla_System.h" directive, in order for the sketch to compile and successfully upload.

To reproduce

  1. Open Blink.ino from File -> Examples -> 01.Basics -> Blink.
  2. Connect the Nicla Sense ME board and select from the drop down menu
  3. Compile. A message informing the user to include the Nicla_System.h library is given in the bottom right corner image
    
    /tmp/.arduinoIDE-unsaved2023327-15341-54bj3y.wzmz7/Blink/Blink.ino: In function 'void setup()':
    /tmp/.arduinoIDE-unsaved2023327-15341-54bj3y.wzmz7/Blink/Blink.ino:29:10: error: call to 'pinMode' declared with attribute error: Please include Nicla_System.h to use this pin
    pinMode(LED_BUILTIN, OUTPUT);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    /tmp/.arduinoIDE-unsaved2023327-15341-54bj3y.wzmz7/Blink/Blink.ino: In function 'void loop()':
    /tmp/.arduinoIDE-unsaved2023327-15341-54bj3y.wzmz7/Blink/Blink.ino:34:15: error: call to 'digitalWrite' declared with attribute error: Please include Nicla_System.h to use this pin
    digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
    ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
    /tmp/.arduinoIDE-unsaved2023327-15341-54bj3y.wzmz7/Blink/Blink.ino:36:15: error: call to 'digitalWrite' declared with attribute error: Please include Nicla_System.h to use this pin
    digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
    ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~

exit status 1

Compilation error: call to 'pinMode' declared with attribute error: Please include Nicla_System.h to use this pin

4. Add `#include "Nicla_System.h"` just above the `setup()` function.
5. Compile again, which will be successful.

Sketch uses 55788 bytes (10%) of program storage space. Maximum is 527616 bytes. Global variables use 12256 bytes (19%) of dynamic memory, leaving 52032 bytes for local variables. Maximum is 64288 bytes.


7. After uploading, all three RGB LEDs will start blinking together (white light)

### Expected behavior

It is NOT required to add `#include "Nicla_System.h" to the sketch. Based on the selected FQBN, the compiler should add the directive if required. 

### The examples version

https://github.com/arduino/arduino-examples/commit/dfedf56610d6110887e227e114c11c2ba4211fb7

### Additional context

The Blink sketch is the de-facto Hello World example, and often **the first sketch users upload** to their board.
Replicated on IDE 1 and Web Editor also.
![image](https://user-images.githubusercontent.com/75624145/234950826-3e3dac30-e02a-46b7-9511-d0861c8fba02.png)

### Issue checklist

- [X] I searched for previous reports in [the issue tracker](https://github.com/arduino/arduino-examples/issues?q=)
- [X] I verified the problem still occurs when using the latest version
- [X] My report contains all necessary details
aliphys commented 1 year ago

While there is a dedicated Blink_Nicla.ino sketch, the Blink.ino sketch should work with all boards.

facchinm commented 1 year ago

The error directive was added to target EXACTLY that case; I think it's more than enough to drive the user to add the include (which is enough to make everything work automatically)