     // All on for about 3 seconds
     frame[0] = 3;
     for (int j = 1; j < FRAME_SIZE; j++) frame[j] = 255;
+    saveFrame(12, frame);
+
+    setEndFlag(13);
+
+    digitalWrite(infoPin, LOW);
 }
 
 // ========

    frame[3] = 1 << 4;
    frame[4] = (1 << 6) + 1;
    saveFrame(5, frame);
    for (int j = 0; j < FRAME_SIZE; j++) frame[j] = 0; // Reset frame buffer

    frame[1] = (3 << 6) + (1 << 1);
    frame[2] = 1 << 3;
    frame[3] = 1 << 5;
    frame[4] = (1 << 7) + (1 << 1);
    saveFrame(6, frame);
    for (int j = 0; j < FRAME_SIZE; j++) frame[j] = 0; // Reset frame buffer

    frame[1] = (3 << 6) + (1 << 2);
    frame[2] = 1 << 4;
    frame[3] = (1 << 6) + 1;
    frame[4] = 1 << 2;
    saveFrame(7, frame);
    for (int j = 0; j < FRAME_SIZE; j++) frame[j] = 0; // Reset frame buffer

    frame[1] = (3 << 6) + (1 << 3);
    frame[2] = 1 << 5;
    frame[3] = (1 << 7) + (1 << 1);
    frame[4] = 1 << 3;
    saveFrame(8, frame);
    for (int j = 0; j < FRAME_SIZE; j++) frame[j] = 0; // Reset frame buffer

    frame[1] = (3 << 6) + (1 << 4);
    frame[2] = (1 << 6) + 1;
    frame[3] = 1 << 2;
    frame[4] = 1 << 4;
    saveFrame(9, frame);
    for (int j = 0; j < FRAME_SIZE; j++) frame[j] = 0; // Reset frame buffer

    frame[1] = (3 << 6) + (1 << 5);
    frame[2] = (1 << 6) + (1 << 1);
    frame[3] = 1 << 3;
    frame[4] = 1 << 5;
    saveFrame(10, frame);
    for (int j = 0; j < FRAME_SIZE; j++) frame[j] = 0; // Reset frame buffer

    // All off
    frame[1] = 3 << 6;

    // Render current line
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, MSBFIRST, curFrame[curLine]); // Shift in activated cols of the line
   
    shiftOut(dataPin, clockPin, MSBFIRST, 1 << (curLine + LINE_OFFSET)); // Shift in the current line
    digitalWrite(latchPin, HIGH);

