reset asserted 3x (active low)
epdWrite(0x71, 1, 0xFF);
epdWrite(0x12, 0);
(busy goes high)
epdWrite(0x1B, 1, 0x7F);
epdWrite(0x74, 1, 0x54);
epdWrite(0x7E, 1, 0x3B);
epdWrite(0x2B, 2, 0x04, 0x63);
epdWrite(0x0C, 4, 0x8E, 0x8C, 0x85, 0x3F);
epdWrite(0x01, 3, 0x2B, 0x01, 0x00);
epdWrite(0x18, 1, 0x80);
epdWrite(0x21, 2, 0x08, 0x80);
epdWrite(0x22, 1, 0xB1);
epdWrite(0x20, 0);
(busy goes high)
epdWrite(0x1B, 0);
epdRead?(0x15, 0x00);
epdWrite(0x11, 1, 0x03);
epdWrite(0x44, 2, 0x00, 0x31);
epdWrite(0x45, 4, 0x00, 0x00, 0x2B, 0x01);
epdWrite(0x4E, 2, 0x00, 0x00);
epdWrite(0x4F, 3, 0x00, 0x00, 0x00);
epdWrite(0x24, 0);
<data>
epdWrite(0x11, 1, 0x03);
epdWrite(0x44, 2, 0x00, 0x31);
epdWrite(0x45, 4, 0x00, 0x00, 0x2B, 0x01);
epdWrite(0x4E, 2, 0x00, 0x00);
epdWrite(0x4F, 3, 0x00, 0x00, 0x00);
epdWrite(0x26, 0);
<data>
epdWrite(0x22, 1, 0xC7);
epdWrite(0x20, 0);
(refresh, busy goes high)
sleep?
epdWrite(0x10, 1, 0x01);