BLYNK
HOME       📲 GETTING STARTED       📗 DOCS       ❓HELP CENTER       👉 SKETCH BUILDER

Terminal buffer on ESP32

Hello everyone,
i need advice on how to increase the buffer for a terminal.
My program is written to print things in setup (when initializing WiFi and Blynk) using terminal.print ().
After connecting to the server (BLYNK_CONNECTED ()), I update all the text to the terminal in the application using terminal.flush ().

The terminal shows only a few characters from the bottom up.

It would be best for me if it could be changed directly in my .ino file. But if that doesn’t work, I can then change WidgetTerminal.h.

PS: I use my own server and I have set: terminal.strings.pool.size = 10

Can anyone advise me please?

Have you experimented with BLYNK_MAX_SENDBYTES ?

Pete.

Thanks to Pete for the answer.

I tried it, but the result is the same.

Do you have any other ideas?

Personally, I think it’s limited by the kind of variable in WidgetTerminal.h
private:
uint8_t mOutBuf [64];
uint8_t mOutQty;

I changed the value from 64 to 5000. This gave me a better result, but I still didn’t get nearly 5000 characters. From this I conclude that this is a limitation of the variable uint8_t, which has, if I’m not mistaken only 255 characters.

Will overwriting something in WidgetTerminal.h solve my problem, or is there a problem on the server as well?

Maybe just go for standard Blynk.virtualWrite(vPin, stringdata)

Have a read of this…

Pete.

Thank you for your advice.
I rewrote the code according to myself.

String terminalBuf;
bool blynkConect;
....
BLYNK_CONNECTED(){
  terminal();
}
....
void terminal(String text= ""){
    if(text.length()>0){
      terminalBuf= terminalBuf + text;
    }
    if(blynkConect){
      Blynk.virtualWrite(100, terminalBuf);
      terminalBuf= "";
    }
}
....
void setup() {
  terminal("test");
  blynkConect = Blynk.connect(10000);
}

void loop() {
  blynkConect = Blynk.run();
}

Is it programmed correctly?

Not sure about the logic behind this bit, but the virtualWrite looks okay.

Pete.