General Category > Discussion - EVE

Cold start problem with Arduino


Hi there,

I have noticed that in many demo codes (martix-orbital, riverdi, generic, etc) eve works right after firmware being uploaded (or restart button pressed), but after Arduino board was powered off and we have just power it back then nothing is displayed.

I have no idea what exactly happens, but for sure at this state EVE does not respond to SPI transmissions...

Tested on Arduino Mega with EVE FT812.

Anyone have a clue what is the reason and a work around?

At least my code does a hard-reset thru the PowerDown pin of the FT81x/BT81x and this is true for the Arduino demo as well.

So the question is what your setup is and if you configured the software accordingly.

If you are not using the PD pin (which sometimes also is called Reset or similar), then the software needs to issue a CORERST command at the beginning of the init function.

Check for the ACTIVE command in the software, if there is no CORERST command before that the software probably drives a PD pin.

Edit: Damn I read that again today, slower.  :-[
So you are really having a coldstart issue, something I truly did not expect.

This sounds like an incorrectly implemented initialisation function that does not allow EVE to power up correctly.
Please still show how you wired the display to your Arduino, maybe also name what Arduino you have and provided a link to an example that you found to be not working as expected.

And well, please test my example as well.

Hi Rudolph,

thanks for your reply.

Maybe calling it a "cold start" is not best description for this problem, but this one came to my mind as first.

I use Riverdi setup ( + and oryginal arduino mega board.
and their demo sketch:
as well as Matrix orbital demo:
with mods of
function FT81x_Init:
  wr16(REG_HCYCLE + RAM_REG, 1056L);         // Set H_Cycle to 548
  wr16(REG_HOFFSET + RAM_REG, 46L);       // Set H_Offset to 43
  wr16(REG_HSYNC0 + RAM_REG, 0L);         // Set H_SYNC_0 to 0
  wr16(REG_HSYNC1 + RAM_REG, 10L);         // Set H_SYNC_1 to 41
  wr16(REG_VCYCLE + RAM_REG, 525L);         // Set V_Cycle to 292
  wr16(REG_VOFFSET + RAM_REG, 23L);       // Set V_OFFSET to 12
  wr16(REG_VSYNC0 + RAM_REG, 0L);         // Set V_SYNC_0 to 0
  wr16(REG_VSYNC1 + RAM_REG, 10L);         // Set V_SYNC_1 to 10
  wr8(REG_SWIZZLE + RAM_REG, 0L);        // Set SWIZZLE to 0
  wr8(REG_PCLK_POL + RAM_REG, 1L);      // Set PCLK_POL to 1
  wr16(REG_HSIZE + RAM_REG, 800L);           // Set H_SIZE to 480
  wr16(REG_VSIZE + RAM_REG, 480L);           // Set V_SIZE to 272

and pin defs:
#define EveChipSelect_PIN     10  // PB1
#define EveAudioEnable_PIN    1  // PD1
#define EvePDN_PIN           8  // PB2
#define SDChipSelect_PIN      5  // PD3
#define Button1_PIN           4  // PD5
#define Button2_PIN           3  // PD6
#define Button3_PIN           2  // PD7
#define SDCardDetect_PIN      6  // PD4

and one more demo sketch, but can't find it now...

a strange thing..
using the same code from Riverdi github (#define EVE_3 + #define RTP_43) with different hardware:
oryginal adruino Leonardo + ftf shield + gives opposite effect: it does not work after flashing, but works after disconnecting and then reconnecting of USB cable....

I am trying to check your code but it's not that straightforward to make adjustements for pin defs  and LCD type and can't find a good guide what and where to change...
pin def:
CS to D10 would be eve_target.h-> line 1148 -> #define EVE_CS       10
LDC type within eve_config.h -> line 151 -> #define EVE_RVT43H
still not working something else?

I do have an Arduino Mega2560, or at least a clone of one.
And I do have a RVT43ULBNWC00 ( ) which is close to the RVT43ALBFWR00.


    CS to D10 would be eve_target.h-> line 1148 -> #define EVE_CS       10

This is correct, I am using this as well now.


    LDC type within eve_config.h -> line 151 -> #define EVE_RVT43H

This is not correct, this is the one with the BT817.
The correct one is EVE_RiTFT43.


    still not working something else?

Actually yes, please be careful with the .
It is not compatible with the Arduino Mega2560 and could potentially damage it.
The Mega2560 does not have the SPI on pins 11/12/13 like the UNO.
And the shield is shorting the SPI from the ICSP connector with the I/O pins on pins 11/12/13.
I really do wonder why Riverdi connected the ICSP connector at all and then why they did it like this.

I am not using a shield, I am using one of my adapter boards with jumper-cables.
And right now my simple demo works just fine with the Mega2560.
Although it takes several seconds for the program to start when I plug in the USB, this is on the Arduino side.


[0] Message Index

Go to full version