• Hi Gordon

    I noticed that i get from time to time the following error in the console on the EspruinoWifi:

    "New interpreter error: FIFO_FULL"

    It happens, when i send socket data (small junk of JSON data) after a setWatch of a button is triggered.

    It is very difficult to reproduce.

    • process.memory shows more than 3500 free mem after the error
    • I think it never happens when i send data triggered by setTimeout or setInterval
    • It happens very rarely
    • It seams to be that it happens only after powerup, triggered by one of the first setWatches but well after the board is wifi connected.
    • After the error, everything is working as expected with additional setWatches and socket transfers.

    I use the following pins with setWatch:

    A1, A5, A6, A7, B9, B8, B4

    I think it's not dedicated to a special pin i used.

    Greetings

    Sacha

  • Hi,

    FIFO_FULL means that the input buffer (the one that receives data from WiFi) got so full it couldn't handle any more data and ended up losing some bytes. It almost certainly happened before, but it wasn't reported - 1v94 turned it on because it's something that'll almost certainly cause instability or broken data.

    Do you have some functions that could take a long time to execute? That's usually the problem.

    However, the input FIFO is shared with watch events, so I guess if you're:

    • Having a button which has a lot of mechanical bounces
    • Receiving data from WiFi
    • Printing out enough data to the console that it takes a long time to execute (eg. it might buffer on the output)

    ... then you could potentially have some problems.

    So it might be you can fix it just by trying to find some functions that take a long time to execute and splitting them up.

    Otherwise it is possible to turn on hardware flow control for the ESP8266. It's something I haven't enabled by default yet, but we could try that?

  • Thanks Gorden for the answer.
    It could be a button with bounces.

    Sacha

  • After upload and starting some function manually, I got this message on a ESP8266 device.

    Otherwise it is possible to turn on hardware flow control for the ESP8266. It's something I haven't enabled by default yet, but we could try that?

    How to enable and try this hardware controll?

  • I got this message on a ESP8266 device.

    You're running Espruino on the ESP8266? What I'm saying above is for the Espruino WiFi, where it's connected to the ESP8266 via serial - flow control won't be a problem when running directly on ESP8266.

  • Ups, mixed it up - sorry .....

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

EspruinoWifi: V1.94 - New interpreter error: FIFO_FULL

Posted by Avatar for Sacha @Sacha

Actions