Arduino EVE2 / EVE3 Examples

FTDI/Bridgetek EVE2 & EVE3 & EVE4 SPI TFT Series by Matrix Orbital

Moderator: Mods

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Arduino EVE2 / EVE3 Examples

Post by amaul »

Hello Support,

We've developed an Arduino based application on the EVE(1) technology using Newhaven's development kits and are looking to port our application over the Matrix Orbital's either EVE2 or EVE3, most likely the later. We've picked up the development modules for both EVE2 and EVE3 along with the Scoodo EVE Shield. Unfortunately I have not been able to get any of the demo software to run correctly on the Arduino / shield / ribbon cable / display module assembly:

https://github.com/MatrixOrbital/EVE-School

https://github.com/MatrixOrbital/EVE3-BT81x-Flash

I've programmed with the original EVE so I'm familiar with the procedure. The EVE2 code seemed to me to be a little out of date and had a few errors. After some modification I can get a few things to display on the screen however it will flicker often and multiple widgets on the screen seem to force vertical lines on the screen. With some modification on EVE3 I can achieve slightly better performance but nothing I was able to get with out of the box examples on original EVE and Newhaven. On both displays the touch screen calibration routine from Bridgetek will not respond. Also, I can't seem to be able to draw anything past 512 pixels horizontally.

My question is what am I doing wrong trying to get the Arduino examples to work? I couldn't seem to find a clear instruction set on how to run these examples.

Thanks,

Alex

Edit: I've used the USB to SPI kit to verify displays and touch are working properly.

Henry
OMNIPRESENT
OMNIPRESENT
Posts: 3002
Joined: Tue Aug 14, 2001 6:00 pm
Contact:

Re: Arduino EVE2 / EVE3 Examples

Post by Henry »

Looking into it.
Henry J.
President
Matrix Orbital

Henry
OMNIPRESENT
OMNIPRESENT
Posts: 3002
Joined: Tue Aug 14, 2001 6:00 pm
Contact:

Re: Arduino EVE2 / EVE3 Examples

Post by Henry »

We are not sure what is going on with the example on GitHub, we think it's something to do with the touch or SDCard.

Try this example, I tested it here. When powered up you will see a FTDI logo, the S2 and S1 will cycle through screens with errors on them, but they should still cycle.

We will try to get another Arduino very basic example up soon.
Attachments
EveSchool.rar
(277 KiB) Downloaded 207 times
Henry J.
President
Matrix Orbital

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Re: Arduino EVE2 / EVE3 Examples

Post by amaul »

Thanks Henry! I will give this example a shot. I just need to get the basic architecture up and running. Once I have that, implementing GUI features has been fairly straight forward in the past on EVE original.

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Re: Arduino EVE2 / EVE3 Examples

Post by amaul »

Hey Henry,

Its funny cause this is exactly how far I made it pre posting. I disabled the SD and calibration and manually put up the FTDI logo. When I try to add more widgets or primitives (ie, a button underneath the FTDI logo) the screen flickers and will draw solid vertical lines. If I increase the size of the FTDI re circle I can see the colors flickering as well. Also, try placing the logo past 520 pixels in horizontally and it will wrap around. I don't necessarily need the SD, but I need the touch.

Thanks,

Alex

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Re: Arduino EVE2 / EVE3 Examples

Post by amaul »

Hey Henry,

Any luck with a fix on the examples?

Thanks,

Alex

Aniso
-=Beloved by all=-
-=Beloved by all=-
Posts: 286
Joined: Tue Aug 14, 2001 6:00 pm
Location: ...I could tell you my velocity...

Re: Arduino EVE2 / EVE3 Examples

Post by Aniso »

I just want to confirm. This "solid bar" thing you are talking about - is it that "uninitialized and not working" thing that Eve does? Like a flash and then fade?

If so, then the problem is probably quite near the start. Is your system power cycled between tries?

I have been looking at the library and EveSchool code and I did find an error (no excuse). In Arduino_AL.h, the definition for the PD pin is wrong. It is defined as B0, but it should be B2. I am working on updating it on Github, but go ahead and make the change on your end. It is irrelevant if you are power cycling.

The other piece of diagnostic info that is handy is printing out what Eve is pissed off about if that's the case. Wait4CoProFIFOEmpty() has that bit in the middle to pass through a error message from Eve to the debug serial. The error correction code is crap still and doesn't seem to actually work, but I am looking at that too. Once again - power cycle it before internalizing any "evidence" about whether what you just did changed anything.

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Re: Arduino EVE2 / EVE3 Examples

Post by amaul »

Hey Matrix Support

I've got a video and picture of the 'solid bar' thing along with the issue of text wrapping around. Attached is the code snippet to generate this issue in the provided example, which runs in the main while loop. It's possible I have the formatting incorrect, but this is the same stuff that worked on Newhaven's EVE original dev kits. I've tried restarts, resets, remove power and add power.

Regardless of that, it just doesn't seem right that I can't get the canned calibration routine to run after initialization. Running the provided initialization below there is no response on the touch screen:

GlobalInit();
FT81x_Init();
SelectScreen(SCR_Calibrate);

I did figure out the issue with PD pin early on and was hoping that was the issue but did not seem to help anything. It is update in later versions of the EVE3 code on Github. I'm very surprised and concerned these examples don't work out of the box, which is why we picked them up and have invested in this platform.

Thanks for your help
Attachments
Screen Shot 2020-06-19 at 7.24.03 AM.png
Screen Shot 2020-06-19 at 7.24.03 AM.png (1.05 MiB) Viewed 4985 times
IMG_4913.MOV.zip
(3.6 MiB) Downloaded 116 times
problemdisplaycode.zip
(1.16 KiB) Downloaded 129 times

Aniso
-=Beloved by all=-
-=Beloved by all=-
Posts: 286
Joined: Tue Aug 14, 2001 6:00 pm
Location: ...I could tell you my velocity...

Re: Arduino EVE2 / EVE3 Examples

Post by Aniso »

Wow, that's ugly. I have never seen anything remotely like that.

I will look at the code and I might see if I can run it here. At this point I have no idea what it is, but it doesn't look right, normal, or even familiar.

edit: The code is too basic to doubt. I could ask for your setup code, but it is of the nature that it works or doesn't work. It doesn't "act weird" if it is not set up correctly - it just doesn't do anything.

I only have 2 ideas right now:
1 - Are you running it at full speed? We have been informed by Bridgetech (a couple days ago) that they have a bug which limits speed to 72Mhz.
2 - A real manufacturing defect affecting the TFT interface.

I should probably look at all your code.

Rudolph
LCD Guru
Posts: 67
Joined: Wed Feb 28, 2018 11:09 am

Re: Arduino EVE2 / EVE3 Examples

Post by Rudolph »

I have an Arduino example as well, maybe give this a spin?
https://github.com/RudolphRiedel/FT800- ... PlatformIO

EVE2 and EVE3 displays are directly supported, you just need to select one in EVE_config.h.
The Arduino specific code is at the end of EVE_target.h, you only need to setup which pin is used for PowerDown and which is used for CS.
Aniso wrote:
Fri Jun 19, 2020 5:20 pm
1 - Are you running it at full speed? We have been informed by Bridgetech (a couple days ago) that they have a bug which limits speed to 72Mhz.
72MHz *is* the maximum speed for the core of the BT815/BT816 on an EVE3 as 60MHz is the maximum for FT81x.
So I guess you are referring to the samples for the EVE4 that are planned to clock higher than that?

Aniso
-=Beloved by all=-
-=Beloved by all=-
Posts: 286
Joined: Tue Aug 14, 2001 6:00 pm
Location: ...I could tell you my velocity...

Re: Arduino EVE2 / EVE3 Examples

Post by Aniso »

Rudolph,

You know me - I sometimes get confused. I was thinking it was the BT81x that went to 80. I have not even changed my own code from 60 yet...

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Re: Arduino EVE2 / EVE3 Examples

Post by amaul »

Thanks guys, I will take a look at this example.

It terms of the code I'm running, its the example provide above by Henry with the code addition I previously attached.

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Re: Arduino EVE2 / EVE3 Examples

Post by amaul »

Hey Rudolph,

Opened, compile, and downloaded the Arduino project with zero code modifications and got what appears to be a valid screen!? (image attached). Hardware is Arduino Uno, Matrix Orbital EVE2 Scoodo Shield and 5" 800x480 EVE2 Display.

I'm currently digging through the code and going to try a few more things, but is this what I should expect to see based on your work? The star is rotating in the upper left corner and I'm able to touch the 'Touch!' button and observer it press and depress. DL size changes between 640 and 784 between presses. Times 1 and 2 are also flickering (I'm guessing they are calculating something loop to loop). Blue bar on top, otherwise a white background.

Edit: EVE 3 Display draws the same screen but no touch response or rotating star.
Edit2: EVE 3 Display does actually perform the same if I change the screen type to EVE_EVE3_50G.

Thanks,

Alex
Attachments
IMG_5586.jpg
IMG_5586.jpg (668.19 KiB) Viewed 4949 times

Rudolph
LCD Guru
Posts: 67
Joined: Wed Feb 28, 2018 11:09 am

Re: Arduino EVE2 / EVE3 Examples

Post by Rudolph »

This is correct, this is all my small example does, just a couple of basic functions.
This is more to show how things work in general and how to get things going than a fance demonstration of what EVE can do.

>DL size changes between 640 and 784 between presses.

The display-list size changes because the button is changed from flat to 3D.
It is important to keep an eye on these sizes, the display-list can only hold 8k.
And the "Bytes" are what is send over the SPI for the command-fifo, this must be less than 4k.

>Times 1 and 2 are also flickering

Time1 is the time spend for building the display list.
And in case of not using DMA like with the Arduino, the time to transfer the data by SPI adds to this.

Time2 is the time spend for checking the touch.

EVE2 and EVE3 do use the same touch-controller but while the FT813 needs to be patched to make it work, it only has to be
activated for the BT815.

amaul
LCD Geek
Posts: 21
Joined: Mon Jun 08, 2020 5:29 pm

Re: Arduino EVE2 / EVE3 Examples

Post by amaul »

Hey Rudolph,

Back on this project. I tried compiling the latest in Arduino:

https://github.com/RudolphRiedel/FT800- ... PlatformIO

Right out of the gate it barfed, doesn't seem to want to link to functions defined in the application (pretty much repeats the same error for every function)

Compiling in Arduino IDE with Adafruit Feather nRF52840, which was compiling earlier this year for me. Is it seeing the target now somewhere in here and doesn't want to compile?

Any thoughts?

Thanks!

Alex
Attachments
Screen Shot 2021-01-06 at 1.40.22 PM.png
Screen Shot 2021-01-06 at 1.40.22 PM.png (65.6 KiB) Viewed 3855 times

Post Reply