Powering Arduino nano BLE sense rev2 with 5V battery

I'm trying to make an arduino nano ble sense rev2 remote and connected to another one using bluetooth to send data back and forth. I'm attempting to hook one of them up to a 5V lithium battery, using a 3.3V 500mA step-down voltage regulator but I'm unsure of how to build the circuit and I dont want to accidentally short the system. Below is the general system of what I have, haven't soldered or connected any wires yet since I'd like to get some input and then move from there.

You photo shows a 3.7V battery. You cannot step DOWN to 5V, you will need a boost or step up converter.

My apologies, I meant to say I’m stepping down from the 3.7 to a 3.3. A lot of what I’ve seen have been 5V so I got confused when I wrote and misspoke. With that in mind, any idea how to put it together?

I think the BLE sense rev2 has a synchronous 3.3V buck converter onboard. So you should be able to power it directly from the battery at the Vin pin.

I did that with another one and the arduino no longer works. It just stopped working even when I disconected it and plugged it into the computer. I'm afraid that its gonna happen again which is why I thought it safer to buy these and build the circuit. but I can give it another try maybe I did something wrong the first time

I don't know why that would happen. I have no experience with this part, but the schematic for it suggests it would work.

Does the one that went bad work if you connect a 3.3V supply to the 3.3V pin?

It does not, might have been a faulty board because I did what you said and the new board is working just fine now. One problem I've been running into with this project the board isnt running the code that I downloaded onto it before plugging it into the battery and removing the USB.

I have it set up so that it should be communicating between the arduino plugged into the battery and the arduino plugged into my computer, and the code is from the intro to bluetooth walkthrough so I know its right... any thoughts? I'd like to have one arduino that can exist on its own connected to the central through bluetooth and just using its own battery, so no usb on it once the battery is connected.

I've just had a quick look on Aliexpress and there are many converters for supplying voltages from Lithium batts.
My choice would be a 3v3 low drop out (LDO) regulator. However this would give you limited use of the batteries energy as the LDO must have more than 3v3 at is input and the batt will fall to 3V before becoming 'flat'.

Sorry, I really know nothing about the BLE sense. My comment on battery power was just based on the schematic of its power supply section.

Edit: Here's that schematic. It seems the 3.3V regulator can be powered either from USB or from the Vin pin, but not at the same time unless you also include a diode in the Vin line. Also note that if you want to power directly at the 3.3V pin, you should open the SJ4 jumper.

I already have the step voltage regulator, I was more wondering how to put the system together. I believe the Arduino has a builtin regulator, but one of the last arduinos I was using got fried when I connected it to the battery so I'm trying to avoid that since it takes a minute for them to ship to my lab. as of now, i have the battery plugged into the VIN and the Ground pins, but If I wanted to include the step regulator for safety, do you know what that build would look like so I can put it together? I just dont have any experience with circuits so I'm trying to be safe and learn before applying and messing things up

okay thats good to know. Dont use the USB and the battery at the same time or it'll get blown out. I believe the USB is just to upload the code, and once thats done I can disconnect that and connect the battery and it should run the code thats been uploaded onto it, hence the bluetooth - hopefully. But we'll see. thank you for that piece of insight, hugely helpful to me for keeping everything as safe as possible

A block diagram of what you are wanting to achieve would help us help you :slight_smile:

Yes, sorry I've tried asking for whole project help before and never gotten any responses so lets see how this goes :slight_smile:

My final goal with this project is to have a peripheral arduino run a testing protocol where it asks someone holding it to perform specific gestures by vibrating a motor 1-4 times. the person will know to associate the number of vibrations with a specific gesture, and then once the vibrations have ended the system starts a timer, reads accelerometer and gyroscope data through a pretrained ML tensorflow model built into the system, and then stops the timer when the correct gesture has been read. it then sends the time it took to complete, along with the gesture that was being asked for over to the central device where it prints that info into the serial monitor.

the circuit aspect of this is setting up an arduino to function on what is essentially a tendonitis splint with velcro tape on it that will hold all the parts and be worn by the person being tested. The end goal is to have the arduino function without needing to be connected to the computer, and using bluetooth to send data collected to a central device for reading. I have the 3.V battery, the arduino nano ble sense, and a vibrational motor. I now know that the battery can be plugged into the arduino directly with no problems, but the motor has been giving me trouble as the pins on my arduino arent outputting any voltage when I set them to high in the code. I used a multimeter to test them out independant of the motor, and they gave no signal. the 3.3V pin does work though, so I know it can output something if it wants to, but I've been havign trouble with the pinout code and getting that to work.

Below is my code so far, I have a main sketch for the Bluetooth and a .cpp for the interpretation function:
Main:

#include <ArduinoBLE.h>
#include <Wire.h>
#include <Arduino.h>
#include "model.cpp" 



const char* deviceServiceUuid = "19b10000-e8f2-537e-4f6c-d104768a1214";
const char* deviceServiceCharacteristicUuid = "19b10001-e8f2-537e-4f6c-d104768a1214";

BLEService gestureService(deviceServiceUuid);
BLEStringCharacteristic gestureCharacteristic(deviceServiceCharacteristicUuid, BLERead | BLENotify | BLEWrite, 20); // assuming max length of gesture name is 20

const unsigned long gestureTimeout = 5000; // Gesture timeout duration in milliseconds

bool gestureInProgress = false;
int currentGesture = -1;
int gestureCount = 0;

unsigned long startTime = 0;
unsigned long gestureElapsedTime = 0;

void setupBluetooth() {
  if (!BLE.begin()) {
    Serial.println("- Starting Bluetooth® Low Energy module failed!");
    while (1);
  }

  BLE.setLocalName("Avalon");
  BLE.setAdvertisedService(gestureService);
  gestureService.addCharacteristic(gestureCharacteristic);
  BLE.addService(gestureService);
  gestureCharacteristic.writeValue("1");
  BLE.advertise();

  Serial.println("Peripheral Device");
  Serial.println(" ");
}

void setupIMU() {
  if (!IMU.begin()) {
    Serial.println("- Failed to initialize IMU!");
    while (1);
  }
}

void setup() {
  Serial.begin(9600);
  setupBluetooth();
  setupIMU();
}


void loop() {
  int gestureIndex = R_runthrough();  // call the runthrough function here

  // If the gestureIndex is -1, that means there was an error in inferencing
  // So, we don't do anything else in this iteration of the loop
  if (gestureIndex == -1) {
    return;
  }

  // If the gesture index isn't -1, we go ahead and process the gesture
  // Update the BLE characteristic with the name of the detected gesture
  if (gestureIndex >= 0) {
    String gesture = GESTURES[gestureIndex];
    Serial.println(gesture);
    gestureCharacteristic.writeValue(gesture);
  }
}

and this is the .cpp file... it is based on the intro to machine learning tutorial that arduino offers, and I'm trying to repurpose it for this:

#include <Arduino_BMI270_BMM150.h>
#include <TinyMLShield.h>
#include <TensorFlowLite.h>
#include <tensorflow/lite/micro/all_ops_resolver.h>
#include <tensorflow/lite/micro/micro_error_reporter.h>
#include <tensorflow/lite/micro/micro_interpreter.h>
#include <tensorflow/lite/schema/schema_generated.h>
#include <tensorflow/lite/version.h>
#include "model.h"

const float accelerationThreshold = 2.5; // threshold of significant in G's
const int numSamples = 119;

int samplesRead = numSamples;


// Global variables used for TensorFlow Lite (Micro)
tflite::MicroErrorReporter tflErrorReporter;
tflite::AllOpsResolver tflOpsResolver;
const tflite::Model* tflModel = nullptr;
tflite::MicroInterpreter* tflInterpreter = nullptr;
TfLiteTensor* tflInputTensor = nullptr;
TfLiteTensor* tflOutputTensor = nullptr;

// Create a static memory buffer for TFLM, the size may need to
// be adjusted based on the model you are using
constexpr int tensorArenaSize = 8 * 1024;
byte tensorArena[tensorArenaSize] __attribute__((aligned(16)));

// array to map gesture index to a name
const char* GESTURES[] = {
  "punch",
  "flex", 
};

#define NUM_GESTURES (sizeof(GESTURES) / sizeof(GESTURES[0]))

void IMU_setup() {
  Serial.begin(9600);

  // initialize the IMU
  if (!IMU.begin()) {
    Serial.println("Failed to initialize IMU!");
    while (1);
  }

  // print out the samples rates of the IMUs
  Serial.print("Accelerometer sample rate = ");
  Serial.print(IMU.accelerationSampleRate());
  Serial.println(" Hz");
  Serial.print("Gyroscope sample rate = ");
  Serial.print(IMU.gyroscopeSampleRate());
  Serial.println(" Hz");

  Serial.println();

  // get the TFL representation of the model byte array
  tflModel = tflite::GetModel(model);
  if (tflModel->version() != TFLITE_SCHEMA_VERSION) {
    Serial.println("Model schema mismatch!");
    while (1);
  }

  // Create an interpreter to run the model
  tflInterpreter = new tflite::MicroInterpreter(tflModel, tflOpsResolver, tensorArena, tensorArenaSize, &tflErrorReporter);

  // Allocate memory for the model's input and output tensors
  tflInterpreter->AllocateTensors();

  // Get pointers for the model's input and output tensors
  tflInputTensor = tflInterpreter->input(0);
  tflOutputTensor = tflInterpreter->output(0);
}

int R_runthrough() {
  float aX, aY, aZ, gX, gY, gZ;

  // wait for significant motion
  while (samplesRead == numSamples) {
    if (IMU.accelerationAvailable()) {
      // read the acceleration data
      IMU.readAcceleration(aX, aY, aZ);

      // sum up the absolutes
      float aSum = fabs(aX) + fabs(aY) + fabs(aZ);

      // check if it's above the threshold
      if (aSum >= accelerationThreshold) {
        // reset the sample read count
        samplesRead = 0;
        break;
      }
    }
  }

  // check if the all the required samples have been read since
  // the last time the significant motion was detected
  while (samplesRead < numSamples) {
    // check if new acceleration AND gyroscope data is available
    if (IMU.accelerationAvailable() && IMU.gyroscopeAvailable()) {
      // read the acceleration and gyroscope data
      IMU.readAcceleration(aX, aY, aZ);
      IMU.readGyroscope(gX, gY, gZ);

      // normalize the IMU data between 0 to 1 and store in the model's
      // input tensor
      tflInputTensor->data.f[samplesRead * 6 + 0] = (aX + 4.0) / 8.0;
      tflInputTensor->data.f[samplesRead * 6 + 1] = (aY + 4.0) / 8.0;
      tflInputTensor->data.f[samplesRead * 6 + 2] = (aZ + 4.0) / 8.0;
      tflInputTensor->data.f[samplesRead * 6 + 3] = (gX + 2000.0) / 4000.0;
      tflInputTensor->data.f[samplesRead * 6 + 4] = (gY + 2000.0) / 4000.0;
      tflInputTensor->data.f[samplesRead * 6 + 5] = (gZ + 2000.0) / 4000.0;

      samplesRead++;
    

      if (samplesRead == numSamples) {
        // Run inferencing
        TfLiteStatus invokeStatus = tflInterpreter->Invoke();
        if (invokeStatus != kTfLiteOk) {
          Serial.println("Invoke failed!");
          while (1);
          return -1;
        }

        // Track the highest score and its index
        float highestScore = -1.0;
        int highestScoreIndex = -1;
        
        // Loop through the output tensor values from the model
        for (int i = 0; i < NUM_GESTURES; i++) {
          float score = tflOutputTensor->data.f[i];
          
          // Print out the scores for each gesture
          Serial.print(GESTURES[i]);
          Serial.print(": ");
          Serial.println(score, 6);

          if (score > highestScore) {
            highestScore = score;
            highestScoreIndex = i;
          }
        }

        if (highestScoreIndex >= 0) {
          return highestScoreIndex;
        }
        return -1;
      }
    }
  }
}

it uses this model.h file as well:
model.h (893.0 KB)

for reference this is the error message that I've been getting:

WARNING: library Harvard_TinyMLx claims to run on mbed_nano architecture(s) and may be incompatible with your current board which runs on mbed architecture(s).
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o): In function `tflite::MicroErrorReporter::~MicroErrorReporter()':
/Users/maxwelljohnson/Library/Arduino15/packages/arduino/hardware/mbed/3.3.0/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/hal/nrf_gpio.h:460: multiple definition of `nrf_gpio_cfg_out_with_input(unsigned long)'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/packages/arduino/hardware/mbed/3.3.0/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/hal/nrf_gpio.h:460: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o): In function `initializeShield()':
/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:22: multiple definition of `initializeShield()'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:22: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o): In function `readShieldButton()':
/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:29: multiple definition of `readShieldButton()'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:29: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:20: multiple definition of `tflOpsResolver'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:20: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o): In function `IMU_setup()':
/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:39: multiple definition of `IMU_setup()'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:39: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:29: multiple definition of `tensorArena'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:29: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o): In function `R_runthrough()':
/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:76: multiple definition of `R_runthrough()'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:76: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:32: multiple definition of `GESTURES'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:32: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:24: multiple definition of `tflOutputTensor'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:24: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:23: multiple definition of `tflInputTensor'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:23: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:22: multiple definition of `tflInterpreter'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:22: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:21: multiple definition of `tflModel'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:21: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:19: multiple definition of `tflErrorReporter'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:19: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:15: multiple definition of `samplesRead'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Library/Arduino15/RemoteSketchbook/ArduinoCloud/101804180118989382350/Final_one/model.cpp:15: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:19: multiple definition of `buttonState'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:19: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:18: multiple definition of `lastButtonState'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:18: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:17: multiple definition of `debounceDelay'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:17: first defined here
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(model.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:16: multiple definition of `lastDebounceTime'
/private/var/folders/6n/561pqyh97rl6y7mfsv_ygjs80000gn/T/arduino/sketches/5D7E323E3E77C04B9E374191667F84F4/sketch/objs.a(Final_one.ino.cpp.o):/Users/maxwelljohnson/Documents/Arduino/libraries/Harvard_TinyMLx/src/TinyMLShield.h:16: first defined here
collect2: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

If you guys have any input I'd really appreciate it. I'm nearing my deadline for this project and started the summer off with no knowledge of how to do anything related to this so I'm proud of how far I've come, but could definitely use some help in finishing it up. Thanks for all the help so far, and in advance for anyone who takes the time to comment!

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