How to dereference a Blob?

Thanks again. Indeed, that seems to work and it can also be used to restore the original pointer. A single complete frame can thus be catched with this:

def my_flush(drv, area, buf):
    print("Area:", area.x1, area.x2, area.y1, area.y2);
    espidf.ili9xxx_flush(drv, area, buf)
    # drv.flush_ready()   # use this if you don't need the screen update itself

lv.scr_act().get_disp().driver.flush_cb = my_flush;
lv.scr_act().invalidate()
lv.refr_now(lv.disp_get_default())        
lv.scr_act().get_disp().driver.flush_cb = espidf.ili9xxx_flush

The result is exactly one time the screen memory:

Area: 0 239 0 79
Area: 0 239 80 159
Area: 0 239 160 239
Area: 0 239 240 319

Now let’s see how fast this is and if I can build some kind of low FPS remote live view from this.