@@ -121,7 +121,9 @@ int Inkplate::einkOn()
121121 pinsAsOutputs ();
122122 LE_CLEAR;
123123 OE_CLEAR;
124+ #if !defined(ARDUINO_ESP32_DEV) && !defined(ARDUINO_INKPLATE6V2) // Not used on Inkplate6 anymore.
124125 CL_CLEAR;
126+ #endif
125127 SPH_SET;
126128 GMOD_SET;
127129 SPV_SET;
@@ -157,7 +159,11 @@ void Inkplate::einkOff()
157159 return ;
158160 OE_CLEAR;
159161 GMOD_CLEAR;
162+ #if !defined(ARDUINO_ESP32_DEV) && !defined(ARDUINO_INKPLATE6V2) // Not used on Inkplate6 anymore.
160163 GPIO.out &= ~(DATA | LE | CL);
164+ #else
165+ LE_CLEAR;
166+ #endif
161167 CKV_CLEAR;
162168 SPH_CLEAR;
163169 SPV_CLEAR;
@@ -176,6 +182,8 @@ void Inkplate::einkOff()
176182 WAKEUP_CLEAR;
177183#endif
178184
185+ pinsZstate ();
186+
179187 setPanelState (0 );
180188}
181189
@@ -233,11 +241,13 @@ void Inkplate::vscan_start()
233241 */
234242void Inkplate::hscan_start (uint32_t _d)
235243{
244+ #if !defined(ARDUINO_ESP32_DEV) && !defined(ARDUINO_INKPLATE6V2)
236245 SPH_CLEAR;
237246 GPIO.out_w1ts = (_d) | CL;
238247 GPIO.out_w1tc = DATA | CL;
239248 SPH_SET;
240249 CKV_SET;
250+ #endif
241251}
242252
243253/* *
@@ -258,14 +268,15 @@ void Inkplate::vscan_end()
258268 */
259269void Inkplate::pinsZstate ()
260270{
261- pinMode (0 , INPUT);
262271 pinMode (2 , INPUT);
263272 pinMode (32 , INPUT);
264273 pinMode (33 , INPUT);
265274 pinModeInternal (IO_INT_ADDR, ioRegsInt, OE, INPUT);
266275 pinModeInternal (IO_INT_ADDR, ioRegsInt, GMOD, INPUT);
267276 pinModeInternal (IO_INT_ADDR, ioRegsInt, SPV, INPUT);
268277
278+ // Set up the EPD Data and CL pins for I2S (only on Inkplate6).
279+ pinMode (0 , INPUT);
269280 pinMode (4 , INPUT);
270281 pinMode (5 , INPUT);
271282 pinMode (18 , INPUT);
@@ -274,21 +285,41 @@ void Inkplate::pinsZstate()
274285 pinMode (25 , INPUT);
275286 pinMode (26 , INPUT);
276287 pinMode (27 , INPUT);
288+
289+ #if defined(ARDUINO_ESP32_DEV) || defined(ARDUINO_INKPLATE6V2)
290+ // Disable clock for the EPD.
291+ myI2S->conf1 .tx_stop_en = 0 ;
292+ #endif
277293}
278294
279295/* *
280296 * @brief pinsAsOutputs sets all tps pins as outputs
281297 */
282298void Inkplate::pinsAsOutputs ()
283299{
284- pinMode (0 , OUTPUT);
285300 pinMode (2 , OUTPUT);
286301 pinMode (32 , OUTPUT);
287302 pinMode (33 , OUTPUT);
288303 pinModeInternal (IO_INT_ADDR, ioRegsInt, OE, OUTPUT);
289304 pinModeInternal (IO_INT_ADDR, ioRegsInt, GMOD, OUTPUT);
290305 pinModeInternal (IO_INT_ADDR, ioRegsInt, SPV, OUTPUT);
291306
307+ #if defined(ARDUINO_ESP32_DEV) || defined(ARDUINO_INKPLATE6V2)
308+ // Set up the EPD Data and CL pins for I2S.
309+ setI2S1pin (0 , I2S1O_BCK_OUT_IDX, 0 );
310+ setI2S1pin (4 , I2S1O_DATA_OUT0_IDX, 0 );
311+ setI2S1pin (5 , I2S1O_DATA_OUT1_IDX, 0 );
312+ setI2S1pin (18 , I2S1O_DATA_OUT2_IDX, 0 );
313+ setI2S1pin (19 , I2S1O_DATA_OUT3_IDX, 0 );
314+ setI2S1pin (23 , I2S1O_DATA_OUT4_IDX, 0 );
315+ setI2S1pin (25 , I2S1O_DATA_OUT5_IDX, 0 );
316+ setI2S1pin (26 , I2S1O_DATA_OUT6_IDX, 0 );
317+ setI2S1pin (27 , I2S1O_DATA_OUT7_IDX, 0 );
318+
319+ // Start sending clock to the EPD.
320+ myI2S->conf1 .tx_stop_en = 0 ;
321+ #else
322+ pinMode (0 , OUTPUT);
292323 pinMode (4 , OUTPUT);
293324 pinMode (5 , OUTPUT);
294325 pinMode (18 , OUTPUT);
@@ -297,6 +328,7 @@ void Inkplate::pinsAsOutputs()
297328 pinMode (25 , OUTPUT);
298329 pinMode (26 , OUTPUT);
299330 pinMode (27 , OUTPUT);
331+ #endif
300332}
301333
302334#endif
0 commit comments