@@ -1607,7 +1607,7 @@ int bbepFullUpdate(FASTEPDSTATE *pState, int iClearMode, bool bKeepOn, BBEPRECT
1607
1607
break ;
1608
1608
}
1609
1609
bbepClear (pState, BB_CLEAR_NEUTRAL, 1 , pRect);
1610
- #ifdef SHOW_TIME
1610
+ #if defined( SHOW_TIME ) && defined( ARDUINO )
1611
1611
l = millis () - l;
1612
1612
Serial.printf (" clear time = %dms\n " , (int )l);
1613
1613
l = millis ();
@@ -1834,17 +1834,11 @@ int bbepPartialUpdate(FASTEPDSTATE *pState, bool bKeepOn, int iStartLine, int iE
1834
1834
bbepWriteRow (pState, d, (pState->native_width / 4 ), (i!=0 ));
1835
1835
iSkipped = 0 ;
1836
1836
} else {
1837
- if (iSkipped >= 2 ) {
1838
- gpio_set_level ((gpio_num_t )pState->panelDef .ioCKV , 1 ); // CKV_SET;
1839
- delayMicroseconds (35 );
1840
- bbepRowControl (pState, ROW_STEP);
1841
- } else {
1842
- // write 2 floating rows
1843
- if (iSkipped == 0 ) { // skip
1844
- memset ((void *)d, 0 , pState->native_width /4 );
1845
- }
1846
- bbepWriteRow (pState, d, (pState->native_width / 4 ), (i!=0 ));
1847
- }
1837
+ // write a neutral row
1838
+ if (iSkipped == 0 ) { // new skipped section
1839
+ memset ((void *)d, 0 , pState->native_width /4 );
1840
+ }
1841
+ bbepWriteRow (pState, d, (pState->native_width / 4 ), (i!=0 ));
1848
1842
iSkipped++;
1849
1843
}
1850
1844
dp += iDelta;
@@ -1853,10 +1847,9 @@ int bbepPartialUpdate(FASTEPDSTATE *pState, bool bKeepOn, int iStartLine, int iE
1853
1847
// delayMicroseconds(230);
1854
1848
} // for each pass
1855
1849
1856
- if (bKeepOn) {
1857
- // bbepClear(pState, BB_CLEAR_NEUTRAL, 1, NULL);
1858
- } else {
1859
- bbepClear (pState, BB_CLEAR_NEUTRAL, 1 , NULL );
1850
+ // This clear to neutral step is necessary; do not remove
1851
+ bbepClear (pState, BB_CLEAR_NEUTRAL, 1 , NULL );
1852
+ if (!bKeepOn) {
1860
1853
bbepEinkPower (pState, 0 );
1861
1854
}
1862
1855
int offset = iStartLine * (pState->native_width /8 );
0 commit comments