Open
Description
Not sure if best to open new issues for this or add to others:
As mentioned in the WIKI version 0.3.0 release:
Giga Display shield supported (no wrapper library yet)
Is there example code that demonstrates the usage of the current code?
I see some information up at: https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/shields/arduino_giga_display_shield/doc/index.rst
My quick look at the board data, it appears like maybe it is setup for LVGL?
That index page shows some setup but hoping there is something more Arduino centric.
Metadata
Metadata
Assignees
Labels
No labels
Activity
mjs513 commentedon Apr 2, 2025
Been digging a bit this morning on this and looking at @facchinm giga_display_shield branch (easier to see changes) looks like:
[#include <zephyr/drivers/display.h>](https://github.com/facchinm/zephyr/blob/a4939539b1f7f7433afca15fd36bb4ffcd7b84a1/include/zephyr/drivers/display.h)
so the wrapper would have to get set up like the camera lib. Guessing here.
EDIT:
and would probably have to follow somthing like the sample driver for a Display:
https://github.com/zephyrproject-rtos/zephyr/blob/main/samples/drivers/display/src/main.c
mjs513 commentedon Apr 2, 2025
Right now working on a preliminary wrapper for the display shield. Slow going for me as its a bit different than what I am use to but making progress hopefully by end of day.
KurtE commentedon Apr 2, 2025
Sounds good, let me know when you have something to play with.
mjs513 commentedon Apr 2, 2025
Not pretty as I don;t really understand how its framebuffer works but have it drawing a rectangle - know its not right yet but at least got some of it working.
Still have to add but running out of steam. Here is the sketch
giga_display-250402a.zip
Am seeing warnings
mjs513 commentedon Apr 3, 2025
@facchinm - @KurtE
Been playing a bit more the driver for the display and am getting slightly confused.
In ST7701.c file I see the api defined as:
while the display.h has
Think missing from the st7701 driver, but that leads me to something else, why is the display even showing anything when I write to it - not sure where its going. Note not sure how init is getting called in the st7701 driver.....
mjs513 commentedon Apr 3, 2025
@facchinm
Need some help need I went ahead and started update display_st7701.c but noticed on rebuild
If I moded the config for the giga to add CONFIG_ST7701=y you can image what happens:
Looking at the giga overlay further I am not seeing where it is linking back to the display/shield so it knows about the st7701?
So guess goes back to @KurtE's original question - how to tell it to build with the display shield???
UPDATE: Just a quick follow after making some changes to the .c I rebuilt anyway and now even if I revert the changes I am seeing that = zephy_display is not defined anymore - yesterday it was - ARGH::::::
UPDATE2: My fault. Just doing a build.sh for the giga doesn't work have to do a
thanks @KurtE for pointing that out.
mjs513 commentedon Apr 4, 2025
@facchinm - @KurtE
Have been playing around with this some more and while I added somethings to the st7701.c driver I am begining to get the feeling that the display config is not using this driver nor display.h:
Hints:
showing using display_stm32_ltdc
And what I think should be working doesn't.
KurtE commentedon Apr 5, 2025
@facchinm @mjs513 - Mike, I played around a little with your first sketch/library you posted two days ago.
Wondered if maybe it was more or less working, except that it was not using it's buffer in 16 bit mode, so I modified your sketch slightly
GIGA_Display_first-250404a.zip
I figured that the buffer was like an image data, so I drew it in a 3x5 pattern...
And looks like might be working:
Tomorrow, may play with converting this to work with the Adafruit_gfx library.
@facchinm - I have it setup using your most recent zephyr branch in case it fixed some things
mjs513 commentedon Apr 5, 2025
Thanks @KurtE
You made me get up to play around with your sketch and see what I messed up - still can't rotate screen or do blanking since its using the ltdc driver.
New function added to your sketch - fill screen with a specified color.
notice do not have to specify setFrameDesc for some reason.
mjs513 commentedon Apr 6, 2025
@KurtE - @facchinm @pillo79
Been playing with this some more and just added the a getBuffer function to use stm32_ltdc_get_framebuffer to display your checkboard. Still using fillScreen using a stardard buffer approac. And added a fillRect function to just draw a single rectangle after displaying the checkboard.
GIGA_Display_first-250406a.zip
cheers
KurtE commentedon Apr 9, 2025
@mjs513 @pillo79 @facchinm:
Mike and I have been making some progress with displaying stuff on the GIGA Display shield
So far we have been building sort of libraries into sketch in order to make it easier for now.
Currently we (Mostly MIke) has a wrapper to be able to use Adafruit_GFX. There is lots we can probably do to improve the
performance, but not bad when we tell it to cache up the changes and update the display once...
I also have the DisplayRGB working, which my sketch which I will include below shows...
zephyr_GIGA_shield_touchpaint-250409a.zip
Currently I am playing around with trying to get the touch screen to work...
So I am converting the simple touch paint, that I had earlier converted to run on the MBED version (earlier ones were with many of the Adafruit display libraries),
I see that the PT911 device is defined in the device tree (in the shield/board overlay stuff). I know some stuff is in place as when I touch the screen I see lots of:
From some of the input examples I have code in the sketch (.cpp file) that does:
I know I need to probably not use these macros to define the callback. Question is how to define an input callback
that we can register at init time? Will also look some more through existing code...
But suggestions would be great
mjs513 commentedon Apr 13, 2025
@KurtE and others
Just to close the loop what has been done so far with the display. Modifing the graphics GFX library and generating a simple wrapper library we tested a few different sketches.
The standard graphics test sketch with the modified libraries embedded in the sketch and buffering when the whole display is finished updated:
Example:

The second complete sketch was modified @KurtE's picture viewer (displays bmps, jpgs, and pngs using @bitbang2 libraries) does work however thing its running out of room since can only the jpegdec and bmps to display. Did have to modify SD library since there is a Freemem function that will cause an error since it is geared to AVR only.

BMP example
JPG example

I am pushing up the graphics test sketches to @KurtE's giga library in sub folder for zephyr giga display
https://github.com/KurtE/Arduino_GIGA-stuff/tree/main/sketches/zephyr_giga_display_examples
mjs513 commentedon May 15, 2025
Quick update: See #117 (comment)
mjs513 commentedon Jun 5, 2025
@KurtE - @pillo79 - @facchinm
Started moving our graphics stuff to libraries so easier to test with and hopefully a starting point for when it gets officially incorported.
tested with out graphics test sketch and the touch screen test. As time permits have to test other sketches.
Also was looking at ArduinoGraphics lib but no clue how that gets linked to the display. Going to look more - was late when I started looking at that.
KurtE commentedon Jun 5, 2025
Thanks @mjs513,
It was also on my list of things I wanted to do! Glad you beat me to it!
@iabdalkader @pillo79 @facchinm
I synced up and then updated our simple touch paint... Ran into a few issues doing it,
like selecting tab going to the delete item, which comes up with a dialog which says something like moving to trashcan... But when it is done tab is still there... Exited IDE restarted and they were gone... Different topic for different ...
Right now I am thinking about creating a PR with our current Touch stuff, basically I added a Callback in the loader fixups.c
And an entry in the exports:
#if defined(CONFIG_BOARD_ARDUINO_GIGA_R1) && defined(CONFIG_VIDEO)
FORCE_EXPORT_SYM(getVideoTouchEvent)
#endif
Note; This is probably not a complete solution yet as it only supports one touch point, where as the device I believe
can support up to 5, and when > 1 supports gestures. But none of this is currently enabled within zephyr. Also
I don't know how this might interact with using LVGL with it.
At some point probably need try out LVGL here, but not sure how one would do that without updating the overlay
and config files... But that is true of many other things here, like how much stuff will be included on a GIGA build, especially
if for example if I don't even have a display shield...
11 remaining items