Page 1 of 2

Arduino EVE2 / EVE3 Examples

Posted: Mon Jun 08, 2020 5:50 pm
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.

Re: Arduino EVE2 / EVE3 Examples

Posted: Wed Jun 10, 2020 3:12 pm
by Henry
Looking into it.

Re: Arduino EVE2 / EVE3 Examples

Posted: Wed Jun 10, 2020 6:01 pm
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.

Re: Arduino EVE2 / EVE3 Examples

Posted: Thu Jun 11, 2020 10:52 am
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.

Re: Arduino EVE2 / EVE3 Examples

Posted: Thu Jun 11, 2020 5:02 pm
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

Re: Arduino EVE2 / EVE3 Examples

Posted: Mon Jun 15, 2020 4:41 pm
by amaul
Hey Henry,

Any luck with a fix on the examples?

Thanks,

Alex

Re: Arduino EVE2 / EVE3 Examples

Posted: Tue Jun 16, 2020 3:26 pm
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.

Re: Arduino EVE2 / EVE3 Examples

Posted: Fri Jun 19, 2020 8:22 am
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

Re: Arduino EVE2 / EVE3 Examples

Posted: Fri Jun 19, 2020 5:20 pm
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.

Re: Arduino EVE2 / EVE3 Examples

Posted: Sat Jun 20, 2020 9:46 am
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?

Re: Arduino EVE2 / EVE3 Examples

Posted: Sat Jun 20, 2020 11:15 am
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...

Re: Arduino EVE2 / EVE3 Examples

Posted: Wed Jun 24, 2020 11:49 am
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.

Re: Arduino EVE2 / EVE3 Examples

Posted: Wed Jun 24, 2020 12:40 pm
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

Re: Arduino EVE2 / EVE3 Examples

Posted: Sat Jul 04, 2020 11:04 am
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.

Re: Arduino EVE2 / EVE3 Examples

Posted: Wed Jan 06, 2021 1:41 pm
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