News:

Welcome to the Bridgetek Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ Bridgetek Support

Please refer to our website for detailed information on all our products - Bridgetek - Bridging Technology

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Nick

#1
Hi,

My success getting responses from this forum is not good so far so I might be wasting my time, but I'll try..

I believe there's a bug in one of the source modules for FT_Eve_Hal in ESD. When using display lists in ESD the following fail to compile due to unknown type argb32_t:

EVE_CoDl_colorArgb_ex and EVE_CoDl_clearColorArgb_ex. Other display lists that set color have the same issue.

I found an old thread probably related to this that refers to a change of type name.

I was able to fix compilation and get display lists correctly assigning colour with this change:

// Colour type fixed by Nick
//ESD_PARAMETER(c, Type = argb32_t, DisplayName = "Color")
ESD_PARAMETER(c, Type = ft_argb32_t, DisplayName = "Color")

That's in EVE_CoDl.h. Anyone who cares should be able to find the issue I'm referring to, and the several places where the same problem arises.

Nick
#2
Hi Paul,

I was really hoping for a general explanation of the points that I had asked about, having overcome the problem that I initially encountered.

Thanks,
Nick
#3
Hi,

I've a GUI design created in ESD which I'm targeting on my STM32H7 board using FT813. I've run into a few questions on target that are causing problems.

1. I have a custom widget+actor using a Scroll Layout with Scissor enabled. The wanted effect is animated opening of a side window (think of a drop-down menu on many PC apps). This works well in ESD simulator, but using generated & exported code on target the appearance is different. My question: if I put a Linear Layout within Scroll Layout and enable Scissor in the Scroll, how does scissoring work for the nested Linear Layout?

2. Related to the above, my general question is how do scissor/clip and overflow work in a HIERARCHICAL sense?  So far, I have seen that overflow and clip appear to make no difference to anything and I can't understand how these are supposed to work when apparently scissor is the accepted way to actually implement clipping?

3. On another topic, regarding asset loading. As a simple way to avoid the need for FATFS (which I'm using for other things), I have a plan to modify the HAL-abstraced FATFS file loader to return const initialised data, with a few .astc files defined as hex binary data there. In this case presumably I only need to convert the raw .astc to hex and can skip the generation of flash-initialisation .bin files? I think this should work - but have I missed anything?

Thanks in advance,
Nick
#4
Hi BRT Community,

Many thanks for your reply. I'm not sure how to upload pictures in order to show some example views that I'm aiming for, so I'll try to explain as briefly as I can.

My spectrogram data arrives at the GUI (software) as a vector of 128 pixel values - i.e. 128 different colour values, where this vector is updated at a rate of about 100 Hz. This is obviously faster than the supported frame rate, so my software will need to lower the rate, which I can do by grouping the data into chunks of 5 (columns) x 128 (rows) at 100/5 = 20 Hz. So the challenge is then to left-shift the current bitmap left by 5 columns, discarding the left-most 5 columns and filling the 5 right-most columns with my new data. The aim is a view that scrolls from right to left in real time. Given a width of 800 pixels and 100 columns per second, the view should hold 8 seconds of data at any instant. I have this working already on a very simple SPI display (128x240) using the ST7735 controller chip.

I have another type of view in which I'd like to update an entire bitmap, of roughly 256x256 pixels, at the full frame rate.

Just to make things more interesting, I would also like the above two to be supported concurrently.

I've been reading deeper into the ESD User Guide and have looked at more of the examples and I'm beginning to think that your suggestion of using a primarily code-based approach is going to work best. I find the logic flow way of "coding" quite confusing without having a good grip on all the tricks that are no doubt there, but not so easy to find when scrolling the library tree.

All that I really need, I think, is a top level screen that has a menu button at top left. I want to touch that and have a panel grow (animated over a few hundred ms) to reveal half a dozen further menu buttons and maybe some checkboxes. I then want those revealed buttons to enable about 4 different views on the main page: two of those views I've already mentioned, the third is just an panel where I want to print some text and the 4th is a floating widget very much like a compact audio-recorder (stop/pause/play buttons+progress bar). If I can create the basic containers and this menu animation in ESD, then perhaps everything else can be done in pure C code as you've suggested?

I tried to adapt one of the examples to animate the transition from one page to another, as a crude attempt to achieve the animation mentioned above, but so far this isn't working. The Animation example using Actor generation uses a lot of logic to do what seems to me a really simple thing?

Thanks again and any further advice would be great.

*STOP PRESS* I just got a linear-layout with buttons opening in animated fashion! I guess that animated page transitions may not be supported, whereas to achieve the same using layouts is the right approach?..

Nick

#5
General Discussion / FT813 GUI Development Workflow
June 24, 2025, 09:21:14 AM
Hi,

Following on from my introduction here a few months ago, I've now completed my STM32H755 PCB design (and bringup) and I want to start on the GUI development. My display is a Riverdi 800x480 capacitive touch with FT813 and I'm using SPI (1).

I've gone through several of the ESD tutorial videos on YouTube and have been looking at the documents. There's a lot of information to digest and without reading a lot more than I have already I'm not really getting the confidence that I want to know that I'm going in the right direction.

Firstly, my target platform is a custom PCB using STM32H7 with the display and EVE chip mentioned above. ESD wants me to define several aspects of my h/w: host processor, EVE platform, Flash memory etc.. whereas the only thing that seems relevant to me is that I'm using FT813 and I see now way to select a configuration that correlates well with my hardware. Should I worry about this? May I find in future that I can't generate code for my platform?

Secondly, is ESD the best place to start with my GUI, or should I firstly use ESE? I know what I want to implement and don't particularly feel the need to prototype screen layouts. I suppose I'm still unclear about how ESE fits into the development process.

In what I've read so far, the ESD tutorials and examples seem self contained and with no data input/output to/from the host applications. A key requirement of my system is to show real-time views of spectrograms 2D heat maps, so frame-by-frame updates of charts and bit-maps will be needed. Are there any examples that show these kind of data interactions with the GUI?

My overall impression is that GUI dev with the EVE tools that I've seen is quite far from my past experience of WYSIWYG design, with a considerably steeper learning curve. Any tips on how best to get up that curve would be very much appreciated.

Thanks in advance,
Nick
#6
Hi all, I'm new here and quite new to working with display drivers, although I've been working in embedded systems for quiet a long time.

My interest here is a personal project. I'm using one of ST's Nucleo boards, the H755, having started with their F429 but finding that I needed more processing power and RAM.

I settled on an EVE-based display because I want quite a large screen and need to reserve as much ram as possible on my ST system for my own use, and don't want the bother of adding more external RAM. I also know that I will be MIPs-constrained so want to off-load as much of the display driving load as possible to the EVE co-pro.

My chosen display is Riverdi's RVT50AQFFWC00, which is 800x480 with FT813 (EVE2).

So far, all I've done on the EVE side is to merge Bridgetek and Riverdi (and Rudolph's) code into a single STM32F429 Cube IDE project so that I can play with each of them - with a few #if 1/0's - to quickly rebuild from one code base for either of those libraries. This should help me to decide which API I like best and generally gain familiarity.

My application involves signal processing using data sampled from an array of ultrasonic MEMS sensors. I'll need a real -time scrolling spectrogram view (already working on a tiny LCD with ST7735, pending reimplantation on EVE2); I also need to display a 2D heatmap of approx 192x192 pixels and with my data updating at about 30fps.

I am hoping for a nice GUI with animated menu-bar opening etc so will be playing with ESD soon.

I'm sure that I will have questions and be very grateful for advice from this community!