Blynk Library v0.4.4 is released [Arduino, Energia, Particle, MBED]

Steady, as she goes…

In this release

  • New hardware:
  • Energia BLE
  • TI LaunchPad MSP432
  • New features:
  • Example Browser
  • Support overriding BLYNK_RUN_YIELD
  • New RTC mechanism
    (things changed, please update your existing code according new examples)
  • Preparation for OTA support
  • Bugs fixed:
  • Fix Photon hanging, improve Particle cloud responsiveness
  • Less workarounds all over the code
  • Better usb-ser script
  • LED color example fixed
  • Updated IDE tools

Grab the update here: https://github.com/blynkkk/blynk-library/releases/latest

If you like Blynk, don’t forget to give us a github star! :star2:

5 Likes

@vshymanskyy
Actual I´m already using “ArduinoOTA.handle();” to upload my sketch
together with blynk and wemos D1 mini pro.

Question what do you mean with

Is there any difference?
Will “ArduinoOTA.handle();” still work or are there any constraints?

There is, indeed :wink: We will allow to perform OTA through our cloud even for non-LAN devices.

3 Likes

Hey great :sunglasses:
I´m curious on that. :heart_eyes:

@vshymanskyy
But
Will “ArduinoOTA.handle();” still work ??
I worked hard on it to get it to run even if my sketch uses ISR in the background.
I found a solution and would prefer to keep it unchanged.

Can’t say - if it doesn’t work we can always improve, if you managed to do it!

“non-LAN” being WiFi, GSM and Bluetooth?

No, you’re just dreaming. We talk only about ESP8266 and probably few other later :wink:

1 Like

@vshymanskyy so just WiFi for ESP’s to start with?

As pointed out by @Brummer it will not be very pleasant if it breaks Blynker’s existing implementations of OTA. Another reason we recommend automatic updates of the app to your Smartphone is disabled until such time as the potential damage has been quantified.

Has any testing been done alongside regular OTA procedures and is the Blynk OTA disabled by default i.e if a Blynker doesn’t opt-in to use it that their own OTA system should still work?

1 Like

One additional question
Is the manual update a must ?

You need to copy them manually to your sketchbook folder.
Find exact sketchbook location in File -> Preferences.

I tried to use the" Blyynk: check for updates" within the tool box
and get thees results below.
@vshymanskyy
Is this o.k. ?? ore must I delete it and update manualy ???

Downloading ‘https://raw.githubusercontent.com/blynkkk/blynk-library/master/library.properties
… done.
Latest version: 0.4.4
Installed version: 0.4.3
Downloading ‘https://github.com/blynkkk/blynk-library/releases/download/v0.4.4/Blynk_Release_v0.4.4.zip
… done.
Unpacking to C:\Users\Brummer\AppData\Local\Temp\arduino_911788
Updating Adafruit_NeoPixel
Updating Blynk
Updating BlynkESP8266_Lib
Updating SimpleTimer
Updating Time
Updating TinyGSM
Updating BlynkUpdater
Updating BlynkUsbScript

I confirm that I was able to compile my sketch and updated it OTA using blynk v 0.4.4 and arduino V 1.8.0
But because I´m using timer interrupt I have to disable it .
I´m doing my OTA in this way:

BLYNK_WRITE(V0)  // provide a push button to send the secret number to start the update
{
  MY_OTA = (param.asInt()); // send #123 to start the update procedure
  Serial.println(F("please start UPLOAD at IDE "));
  timer0_detachInterrupt(); // interrupt will block the OTA
  while (MY_OTA == 123)  // <<<<<<<<< this is to avoid unintended  dead loop caused by V0
  {
    ArduinoOTA.handle(); 
    delay(10); // I observed that there should be a short delay
  }
}
1 Like

@Brummer thanks for that.

Few questions:

What does timer0 do and are you sure it affects OTA? It’s normal for the handle to be in loop() and it doesn’t normally cause any problems AFAIK.

What’s the relevance of this to a common ESP8266 project?

In my final application I´m running a stepper motor up to 2kHz IRQ

Yes for testing I set up a timer interrupt 1/sec.
This will break OTA for sure
But OTA performed well when no interrupt occurs.

void loop()
{
  Blynk.run();
  ArduinoOTA.handle();
}

// for testing only
void timer0_ISR (void) {
  if (toggle)
  {
    digitalWrite(LED, HIGH);
    toggle = false;
  }
  else
  {
    digitalWrite(LED, LOW);
    toggle = true;
  }
  timer0_write(ESP.getCycleCount() + 80000000L); // 80MHz == 1sec
  Serial.println("timer0_ISR  ");

}

1 Like

You guys are machines! Thanks for more updates.

Just wanted to note that on the RTC change it looks like pin assignment is going away, so:

OLD:

BLYNK_ATTACH_WIDGET(rtc, V5);```

NEW:
`WidgetRTC rtc;`

Cleaner! Thank you.
1 Like

In the RTC example, the BLYNK_ATTACH_WIDGET has been removed entirely.

1 Like

Gah you’re right… fixed! Thanks.

Question:
Is there any documentation about this OTA support ?

No, It is a planned feature (not available,so no docs )

1 Like

Can’t wait for that! :smiley: