I am trying to use Seeedstudio e-paper shield( Small e-Paper Shield | Seeed Studio Wiki ) with an Arduino Due.
It works fine with UNO and it is a 3,3v & 5v shield. When I upload the code (just standard example code) it has no uploading issues but the e-paper seems to hang. I have googled it and read a bunch of forums and found fixes for other e-papers, but none for this one. This is the first time working with Due, so I have no experience.
Anyone has any idea what I could do to fix it?
Possibly convert the library from avr to arm?
I just converted the seeedstudio e-paper libraries today.
Basically, you want to put in a header directive to wipe out any PROGMEM commands, and to add the DUE's processor to the if-defines.
Sort of like this:
#if defined(__MSP430_CPU__) || defined(__SAM3X8E__)
#define PROGMEM
#else
#include <avr/pgmspace.h>
#endif
// if more SRAM available (8 kBytes)
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)|| defined(__SAM3X8E__)
#define EPD_ENABLE_EXTRA_SRAM 1
#endif
I have a few more things to work out (such as the refresh rate being horribly slow) and then I'll upload it somewhere for sharing.
PS. Try the image flash sketch; that one worked for me with no changes.
I rewrote this thing a long time ago for a project because it was incredibly SRAM consuming and slow.
The rewritten version does not support chinese charaters and I haven't tested if it can even render images but it's definitely running fine for drawing shapes and writing Text on an Arduino Due.
I made a new fork for works with Arduino Due, made changes to include "defined(SAM3X8E)" and changed some delays from 250ms to 5ms, I tested and it got some speed up to library.
find #if defined(MSP430_CPU)
change to #if defined(MSP430_CPU) || defined(SAM3X8E)
All Delay_ms(XXX) where XXX Is greater then 5 changes to Delay_ms(5), look on EPD.cpp
All Delay(XXX) where XXX Is greater then 5 changes to Delay_ms(5)