Pages: [1]   Go Down
Author Topic: Due with Embedded Artists E-Paper Display 2.7"  (Read 892 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

I'm new to Arduino but I have some experience with developing hardware based on AVR MCUs.

I've been playing around with my Due and the Arduino IDE and tried out some of the examples. All worked just fine.

But then I tried to use the Embedded Artists E-Paper 2.7" E-Paper display (rev c) with the Due and I just can't get it to work. The display is suited for use with 3.3 volts. Embedded Artists provides an example Arduino sketch and the required libraries for the Uno here: http://www.embeddedartists.com/sites/default/files/support/displays/epaper/Epaper_arduino.pdf
I connected all PINs exactly like explained in the pdf. I just changed MISO, MOSI and SCK to the dedicated ICSP-connector of the Due (in contrast to the Uno, the Due seems to not pin out the SPI to the pins on the side of the board). I selected a SPI connection divider of 21 (84/21 = 4 MHz, which is the recommended SPI frequency).

When running the sketch on the due, the images on the display should change frequently. But nothing happens, except for the "power" lights on the back of the display's board being on.

Do I miss any differences between the Due and the Uno that could help here? Or does anyone have experience with the combination of the Due and the display?

Thanks!
Mitch.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have been experimenting with this display on the Due the last couple of days, but I haven't had much time to spend on it.  I'm hoping to work on it a fair bit this weekend.  If you come up with anything useful, post here--I will try to do the same so anyone else can see it.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,

Did you try to modify the library according to the settings from the last post of this topic  http://forums.adafruit.com/viewtopic.php?f=22&t=47571#p251348 ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes, tried that. It relates to the repaper customized code, not the original embedded artists.
Applied all the changes, but still doesn't work.

But thanks for the find!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I found a solution that seems to have gotten it working for me, at least on the demo code. I haven't had time to experiment much beyond that.

I found that the board would not run any code that had an instance of the LM75A class created. So, in addition to the changes mentioned by danimihalka, I also uncommented line 29 in EPD_GFX.h, which allows us to not use the LM75A temperature sensor. Then, whenever the EPD_GFX class is instantiated, you use a passed-in temperature instead, which means changing that line of code in the sketch. This got a couple of demo sketches working for me, but I have not tried anything else yet.

I hope this helps!
Logged

0
Offline Offline
Shannon Member
****
Karma: 200
Posts: 11730
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The Due SPI system is completely different from Uno style Arduinos, in particular you
_must_ use one of three or four pins as chip-selects, you have no choice (but you can
drive other pins too if needed).  A random Uno library using SPI may or may not conform
to the Due's expectations, so this is an area to check.
Logged

[ I won't respond to messages, use the forum please ]

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, after a bit more experimentation, I found that the problem is in the constructor for the LM75A class.  All it does is call Wire.begin(), and this seems to be the problem.  I commented out that line of code int the LM75A library and instead called Wire.begin() in setup(), and it now seems to function correctly.  Again, I have only tested a couple of demos, so it could still fail in some other way.
Logged

Pages: [1]   Go Up
Jump to: