Trying to run tutorial sketch on Seed Wio Terminal fales

Error I get trying to run a default tutorial sketch on Seeed Wio Terminal.
What could be wrong?
Here is an error I get:

libraries/Blynk/utility/BlynkDebug.cpp.o: In function `BlynkFreeRam()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug.cpp:104: multiple definition of `BlynkFreeRam()'
libraries/Blynk/utility/BlynkDebug 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug 2.cpp:104: first defined here
libraries/Blynk/utility/BlynkDebug.cpp.o: In function `BlynkReset()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug.cpp:110: multiple definition of `BlynkReset()'
libraries/Blynk/utility/BlynkDebug 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug 2.cpp:110: first defined here
libraries/Blynk/utility/BlynkDebug.cpp.o: In function `BlynkDelay(unsigned long)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug.cpp:300: multiple definition of `BlynkDelay(unsigned long)'
libraries/Blynk/utility/BlynkDebug 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug 2.cpp:300: first defined here
libraries/Blynk/utility/BlynkDebug.cpp.o: In function `BlynkMillis()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug.cpp:307: multiple definition of `BlynkMillis()'
libraries/Blynk/utility/BlynkDebug 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug 2.cpp:307: first defined here
libraries/Blynk/utility/BlynkDebug.cpp.o: In function `BlynkResetImplemented()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug.cpp:328: multiple definition of `BlynkResetImplemented()'
libraries/Blynk/utility/BlynkDebug 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug 2.cpp:328: first defined here
libraries/Blynk/utility/BlynkDebug.cpp.o: In function `BlynkFatal()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug.cpp:332: multiple definition of `BlynkFatal()'
libraries/Blynk/utility/BlynkDebug 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkDebug 2.cpp:332: first defined here
libraries/Blynk/utility/BlynkHandlers.cpp.o: In function `BlynkWidgetRead':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers.cpp:20: multiple definition of `BlynkWidgetRead'
libraries/Blynk/utility/BlynkHandlers 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers 2.cpp:20: first defined here
libraries/Blynk/utility/BlynkHandlers.cpp.o: In function `BlynkWidgetWrite':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers.cpp:25: multiple definition of `BlynkWidgetWrite'
libraries/Blynk/utility/BlynkHandlers 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers 2.cpp:25: first defined here
libraries/Blynk/utility/BlynkHandlers.cpp.o: In function `BlynkNoOpCbk':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers.cpp:15: multiple definition of `BlynkNoOpCbk'
libraries/Blynk/utility/BlynkHandlers 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers 2.cpp:15: first defined here
libraries/Blynk/utility/BlynkHandlers.cpp.o: In function `GetReadHandler':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers.cpp:388: multiple definition of `GetReadHandler'
libraries/Blynk/utility/BlynkHandlers 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers 2.cpp:388: first defined here
libraries/Blynk/utility/BlynkHandlers.cpp.o: In function `GetWriteHandler':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers.cpp:399: multiple definition of `GetWriteHandler'
libraries/Blynk/utility/BlynkHandlers 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHandlers 2.cpp:399: first defined here
libraries/Blynk/utility/BlynkHelpers.cpp.o: In function `dtostrf_internal(double, signed char, unsigned char, char*)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHelpers.cpp:11: multiple definition of `dtostrf_internal(double, signed char, unsigned char, char*)'
libraries/Blynk/utility/BlynkHelpers 3.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHelpers 3.cpp:11: first defined here
libraries/Blynk/utility/BlynkHelpers.cpp.o: In function `lltoa_internal(long long, char*, unsigned int, int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHelpers.cpp:84: multiple definition of `lltoa_internal(long long, char*, unsigned int, int)'
libraries/Blynk/utility/BlynkHelpers 3.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHelpers 3.cpp:84: first defined here
libraries/Blynk/utility/BlynkHelpers.cpp.o: In function `ulltoa_internal(unsigned long long, char*, unsigned int, int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHelpers.cpp:106: multiple definition of `ulltoa_internal(unsigned long long, char*, unsigned int, int)'
libraries/Blynk/utility/BlynkHelpers 3.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkHelpers 3.cpp:106: first defined here
libraries/Blynk/utility/BlynkTimeUtils.cpp.o: In function `blynk_gmtime_r(long long const*, blynk_tm*)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimeUtils.cpp:25: multiple definition of `blynk_gmtime_r(long long const*, blynk_tm*)'
libraries/Blynk/utility/BlynkTimeUtils 3.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimeUtils 3.cpp:25: first defined here
libraries/Blynk/utility/BlynkTimeUtils.cpp.o: In function `blynk_mk_gmtime(blynk_tm*)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimeUtils.cpp:48: multiple definition of `blynk_mk_gmtime(blynk_tm*)'
libraries/Blynk/utility/BlynkTimeUtils 3.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimeUtils 3.cpp:48: first defined here
libraries/Blynk/utility/BlynkTimeUtils.cpp.o: In function `blynk_compute_sun(signed char, signed char, double, double, bool)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimeUtils.cpp:143: multiple definition of `blynk_compute_sun(signed char, signed char, double, double, bool)'
libraries/Blynk/utility/BlynkTimeUtils 3.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimeUtils 3.cpp:143: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::BlynkTimer()':
/Users/scott/Library/Arduino15/packages/Seeeduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/std_function.h:565: multiple definition of `BlynkTimer::BlynkTimer()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:38: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::BlynkTimer()':
/Users/scott/Library/Arduino15/packages/Seeeduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/std_function.h:565: multiple definition of `BlynkTimer::BlynkTimer()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:38: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `std::function<void ()>::operator=(std::function<void ()>&&)':
/Users/scott/Library/Arduino15/packages/Seeeduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/move.h:200: multiple definition of `BlynkTimer::findFirstFreeSlot()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:121: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::changeInterval(unsigned int, unsigned long)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:197: multiple definition of `BlynkTimer::changeInterval(unsigned int, unsigned long)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:197: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::restartTimer(unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:235: multiple definition of `BlynkTimer::restartTimer(unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:235: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::executeNow(unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:243: multiple definition of `BlynkTimer::executeNow(unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:243: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::isEnabled(unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:251: multiple definition of `BlynkTimer::isEnabled(unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:251: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::enable(unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:260: multiple definition of `BlynkTimer::enable(unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:260: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::disable(unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:269: multiple definition of `BlynkTimer::disable(unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:269: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::enableAll()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:276: multiple definition of `BlynkTimer::enableAll()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:276: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::disableAll()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:285: multiple definition of `BlynkTimer::disableAll()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:285: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::toggle(unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:295: multiple definition of `BlynkTimer::toggle(unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:295: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::getNumTimers()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:305: multiple definition of `BlynkTimer::getNumTimers()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:305: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::deleteTimer(unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:211: multiple definition of `BlynkTimer::deleteTimer(unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:211: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::run()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:55: multiple definition of `BlynkTimer::run()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:55: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::init()':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:43: multiple definition of `BlynkTimer::init()'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:43: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::setupTimer(unsigned long, void (*)(void*), void*, unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:167: multiple definition of `BlynkTimer::setupTimer(unsigned long, void (*)(void*), void*, unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:167: first defined here
libraries/Blynk/utility/BlynkTimer.cpp.o: In function `BlynkTimer::setupTimer(unsigned long, std::function<void ()> const&, unsigned int)':
/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer.cpp:139: multiple definition of `BlynkTimer::setupTimer(unsigned long, std::function<void ()> const&, unsigned int)'
libraries/Blynk/utility/BlynkTimer 2.cpp.o:/Users/scott/Documents/Arduino/libraries/Blynk/src/utility/BlynkTimer 2.cpp:139: first defined here
collect2: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

@scottsky Please edit your post, using the pencil icon at the bottom, and add triple backticks at the beginning and end of your compiler error message so that it displays correctly.
Triple backticks look like this:
```

Copy and paste these if you can’t find the correct symbol on your keyboard.

Pete.

Which exactly example are you referring to?
What library version are you using? etc.

From the log, it looks like your library is modified / clobbered.
Please remove the library completely and install a fresh copy

Removed and reinstalled all libraries with dependencies. Problem remains.
I’m running a Blynk quick start sketch on Seeed Wio Terminal (esp32 stack) with no modifications to troubleshoot blynk side of my project. Here is the code i’m running:

/*************************************************************

  This is a simple demo of sending and receiving some data.
  Be sure to check out other examples!
 *************************************************************/

/* Fill-in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID           "TMPLAO796osv"
#define BLYNK_TEMPLATE_NAME         "Quickstart Template"
#define BLYNK_AUTH_TOKEN            "******************************" //It's populated in the code

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial


#include <rpcWiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleWioTerminal.h>

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "SafetyMeeting";
char pass[] = "***********"; //Same here

BlynkTimer timer;

// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
  // Set incoming value from pin V0 to a variable
  int value = param.asInt();

  // Update state
  Blynk.virtualWrite(V1, value);
}

// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
  // Change Web Link Button message to "Congratulations!"
  Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
  Blynk.setProperty(V3, "onImageUrl",  "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
  Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}

// This function sends Arduino's uptime every second to Virtual Pin 2.
void myTimerEvent()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V2, millis() / 1000);
}

void setup()
{
  // Debug console
  Serial.begin(115200);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  // You can also specify server:
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);

  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}
  • Arduino IDE 2.2.1
  • Blynk v1.3.2
  • Seeed SAMD Boards v1.8.3
  • Seeduino Wio Terminal selected.

Your code compiles without any issues.
You may have multiple copies of libraries installed, one of which was modified. Please do a clean install to resolve your issues

1 Like

Complete reinstall of IDE helped. Thank you.

Now problem is Wio Terminal hangs and does nothing upon successful firmware upload