I am trying to use pulse sensor with Arduino Nano 33 BLE sense, but when I verify it, it shows Error compiling for board Arduino Nano 33 BLE. The code is from the pulse sensor website. The code works with all Arduino board, but it is not working with the Arduino Nano 33 BLE.

This is the code:

/*  Getting_BPM_to_Monitor prints the BPM to the Serial Monitor, using the least lines of code and PulseSensor Library.
 *  Tutorial Webpage: https://pulsesensor.com/pages/getting-advanced
--------Use This Sketch To------------------------------------------
1) Displays user's live and changing BPM, Beats Per Minute, in Arduino's native Serial Monitor.
2) Print: "♥  A HeartBeat Happened !" when a beat is detected, live.
2) Learn about using a PulseSensor Library "Object".
4) Blinks LED on PIN 13 with user's Heartbeat.

#define USE_ARDUINO_INTERRUPTS true    // Set-up low-level interrupts for most acurate BPM math.
#include <PulseSensorPlayground.h>     // Includes the PulseSensorPlayground Library.   

//  Variables
const int PulseWire = 0;       // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13;          // The on-board Arduino LED, close to PIN 13.
int Threshold = 550;           // Determine which Signal to "count as a beat" and which to ignore.
                               // Use the "Gettting Started Project" to fine-tune Threshold Value beyond default setting.
                               // Otherwise leave the default "550" value. 

PulseSensorPlayground pulseSensor;  // Creates an instance of the PulseSensorPlayground object called "pulseSensor"

void setup() {   

  Serial.begin(9600);          // For Serial Monitor

  // Configure the PulseSensor object, by assigning our variables to it. 
  pulseSensor.blinkOnPulse(LED13);       //auto-magically blink Arduino's LED with heartbeat.

  // Double-check the "pulseSensor" object was created and "began" seeing a signal. 
   if (pulseSensor.begin()) {
    Serial.println("We created a pulseSensor Object !");  //This prints one time at Arduino power-up,  or on Arduino reset.  

void loop() {

 int myBPM = pulseSensor.getBeatsPerMinute();  // Calls function on our pulseSensor object that returns BPM as an "int".
                                               // "myBPM" hold this BPM value now. 

if (pulseSensor.sawStartOfBeat()) {            // Constantly test to see if "a beat happened". 
 Serial.println("♥  A HeartBeat Happened ! "); // If test is "true", print a message "a heartbeat happened".
 Serial.print("BPM: ");                        // Print phrase "BPM: " 
 Serial.println(myBPM);                        // Print the value inside of myBPM. 

  delay(20);                    // considered best practice in a simple sketch.


The error text:

    Arduino: 1.8.7 (Mac OS X), Board: "Arduino Nano 33 BLE"

In file included from /Users/sofyanjamal/Documents/Arduino/libraries/PulseSensor_Playground/src/PulseSensorPlayground.h:439:0,
                 from /Users/sofyanjamal/Documents/Arduino/libraries/PulseSensor_Playground/src/PulseSensorPlayground.cpp:16:
/Users/sofyanjamal/Documents/Arduino/libraries/PulseSensor_Playground/src/PulseSensorPlayground.cpp: In member function 'boolean PulseSensorPlayground::sawNewSample()':
/Users/sofyanjamal/Documents/Arduino/libraries/PulseSensor_Playground/src/utility/Interrupts.h:72:41: error: 'cli' was not declared in this scope
/Users/sofyanjamal/Documents/Arduino/libraries/PulseSensor_Playground/src/PulseSensorPlayground.cpp:105:5: note: in expansion of macro 'DISABLE_PULSE_SENSOR_INTERRUPTS'
/Users/sofyanjamal/Documents/Arduino/libraries/PulseSensor_Playground/src/utility/Interrupts.h:73:40: error: 'sei' was not declared in this scope
/Users/sofyanjamal/Documents/Arduino/libraries/PulseSensor_Playground/src/PulseSensorPlayground.cpp:108:5: note: in expansion of macro 'ENABLE_PULSE_SENSOR_INTERRUPTS'
exit status 1
Error compiling for board Arduino Nano 33 BLE.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
  • 1
    The code is from the pulse sensor website: pulsesensor.com/pages/…. Mar 5, 2020 at 23:48
  • 1
    wow! you are one of the very few people that has actually formatted the code when asked ... upvote for that
    – jsotola
    Mar 6, 2020 at 0:01
  • I tried #define USE_ARDUINO_INTERRUPTS false, but it is still the same error Mar 6, 2020 at 0:40


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.