Any Arduino + ESP8266 (AT firmware) to be deprecated?

We’ve been working on this cool thing called Blynk.NCP, which is now available for a set of Dual-MCU boards.

In fact, this gives us a way to stop using BlynkESP8266_Lib altogether. Instead, with the next Blynk Library v1.3.0, you should be able to replace the AT firmware of your ESP8266/ESP32 with the Blynk.NCP firmware, then upload a simple sketch to your Arduino and use the full power of Blynk.Edgent + even more cool features baked into the NCP.

Let me know your thoughts about this potential shift.

5 Likes

The most common combination of boards when using the existing AT communication system is the original Uno and an ESP-01 or ESP-01S
The original Mega is also a commonly used board with the ESP-01/S.

The topic title says “Any Arduino + ESP8266” but you don’t mention, or have examples for these common combinations of boards.
Are they supported?
Do you have plans to release examples for them if they are supported?

Pete.

2 Likes

So yeah, we’re not quite there yet. At least some improvements are needed to deliver NCP to the classical UNO + ESP01 combo:

  1. optimize the NCP Driver library so it fits in ~512 Bytes of RAM - should be doable
  2. provide an NCP firmware for ESP8266 with 1MB Flash - done, will be released soon

At the moment, NCP works just fine for any Arduino boards with > 4KB RAM.
For sure there will be an example for this use case (probably in a form of Blynk Blueprint)

2 Likes

Great - thanks.

Pete.

Volodymyr, did you test the Uno R4 WiFi?
the datasheet says

When programming the UNO R4 WiFi, the RA4M1 MCU is programmed via the ESP32-S3 module by default.

which I understand as the fw in esp32 is a SWD programmer to upload to the main MCU

Unfortunately, UNO R4 WiFi has not been tested yet. The device is on the way.

UNO R4 WiFi has both software (gpio P408) and hardware (SJ1 pads) means of connecting it directly to USB.

Also, here’s an interesting finding: GitHub - arduino/uno-r4-wifi-usb-bridge

Looks like it’s a complete DAP debugger.

A version of NCP for ESP-01, ESP-01S is now available: https://github.com/blynkkk/BlynkNcpDriver/releases/latest/

1 Like

So, I have some preliminary Arduino UNO results

With a (non-minimal) example, I was able to go from this:

RAM:   [==========]  247.1% (used 5060 bytes from 2048 bytes)
Flash: [=====     ]  46.6% (used 15024 bytes from 32256 bytes)

to this:

RAM:   [======    ]  59.6% (used 1220 bytes from 2048 bytes)
Flash: [====      ]  43.0% (used 13864 bytes from 32256 bytes)

And, when using the BlynkNcpDriver directly, we can strip it down to:

RAM:   [===       ]  32.9% (used 674 bytes from 2048 bytes)
Flash: [==        ]  22.9% (used 7394 bytes from 32256 bytes)

It can definitely be further optimized.

3 Likes

Volodymyr, then it is feasible to add OTA for Arduino Mega ?

This can be done. In theory, it can even be done for UNO, but OTA update for these boards is not on our roadmap.
BTW, your https://github.com/jandrassy/ArduinoOTA library is used to provide the default/reference OTA implementation for the Primary MCUs.

1 Like

Is it possible to replace the serial wire by Bluetooth Classic, BLE or ESP-now on ESP32? This would create a low power IoT solution at home

:slight_smile: you know it is my library. :slight_smile: and it supports classic ATmega with more than 64kB flash. so the EdgentNCP sketch working for SAMD could work for the the Mega too

2 Likes

@Juraj yeah, I edited the post to better express this :wink:

Now, regarding Uno R4 WiFi. I was able to port the CDC Bridge and DAP functionality to Blynk.NCP. Looks working fine so far, including the debugger!
This will require a separate NCP build/variant for UNO R4 WiFi, but I’m ok with that (it was needed anyway)

We didn’t try it, but it’s a cool experiment!
For a prototype, you can connect an external Bluetooth to Serial converter module.

@PeteKnight it actually works!

Have no ESP01 atm, so verified with the Witty Cloud top boards.

3 Likes

It required one more significant change: the initial baud rate of ESP8266 had to be lowered to 38400.

This and all the optimizations mentioned above are now publicly available:

1 Like

@Juraj looks like you might be interested:

Woah, connecting a bare ESP01 to an ordinary Arduino is quite challenging:

Wondering why this connection type got so popular?!

3 Likes