GigaR1 + GigaDisplay on M4 Core

Good morning at all ,
I' have a question , GigaDisplay it's supported by M4 Core?
because I dividing my application on 2 skecth M4 Sketch used for GIGA Dispaly and M7 used for the other.
when M4 booting , the code stopping when the Initialized Display. why?

#include "Arduino.h"
#include <RPC.h>
#include "Arduino_H7_Video.h"
#include "lvgl.h"
#include "Arduino_GigaDisplayTouch.h"
//#include <SPI.h>
//#include <DigitalOut.h>
//Arduino Giga R1 Access Point UDP

//librerie Gestione USB



Arduino_H7_Video Display(800, 480, GigaDisplayShield);
Arduino_GigaDisplayTouch TouchDetector;

.....

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  RPC.begin(); // boot M4
  RPC.println("M4 Avviato");
  //Display.begin();
  //TouchDetector.begin();
  //setupDisplay();
 //InizializzaVariabili();

}


void setupDisplay(){
  RPC.println("SetupDisplayIN");
  //Display & Grid Setup
  lv_obj_t* screen = lv_obj_create(lv_scr_act());
  lv_obj_set_size(screen, Display.width(), Display.height());
  //Dimensoni Pulsanti 
  //int X_Pulsanti = 320;
  //int Y_Pulsanti = 170;


  static lv_coord_t col_dsc[] = {246 , 246,246, LV_GRID_TEMPLATE_LAST };
  static lv_coord_t row_dsc[] = { 215, 215, 215, 215,215,215, LV_GRID_TEMPLATE_LAST };

  lv_obj_t* grid = lv_obj_create(lv_scr_act());
  lv_obj_set_grid_dsc_array(grid, col_dsc, row_dsc);
  lv_obj_set_size(grid, Display.width(), Display.height());

  //top left
  lv_obj_t* obj;
  obj = lv_obj_create(grid);
  lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 0, 1,  //column
                       LV_GRID_ALIGN_STRETCH, 0, 1);      //row
     lv_obj_t * label; //label
     
  lv_obj_t * btn1 = lv_btn_create(obj);
  lv_obj_set_size(btn1, X_Pulsanti,Y_Pulsanti);
  lv_obj_center(btn1);
  lv_obj_add_event_cb(btn1, btn1_event_cb, LV_EVENT_CLICKED, NULL);

  label = lv_label_create(btn1);
  lv_label_set_text(label, "Configurazione Pista");
  lv_obj_center(label);


  //bottom left
  obj = lv_obj_create(grid);
  lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 0, 1,  //column
                       LV_GRID_ALIGN_STRETCH, 1, 1);      //row
  lv_obj_t * btn2 = lv_btn_create(obj);
  lv_obj_set_size(btn2, X_Pulsanti,Y_Pulsanti);
  lv_obj_center(btn2);
  lv_obj_add_event_cb(btn2, btn2_event_cb, LV_EVENT_CLICKED, NULL);

  label = lv_label_create(btn2);
  lv_label_set_text(label, "Sel DX/SX");
  lv_obj_center(label);

  //top right
  obj = lv_obj_create(grid);
  lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 1, 1,  //column
                       LV_GRID_ALIGN_STRETCH, 0, 1);      //row
    lv_obj_t * btn3 = lv_btn_create(obj);
  lv_obj_set_size(btn3, X_Pulsanti,Y_Pulsanti);
  lv_obj_center(btn3);
  lv_obj_add_event_cb(btn3, btn3_event_cb, LV_EVENT_CLICKED, NULL);

  label = lv_label_create(btn3);
  lv_label_set_text(label, "Dispositivi Connessi");
  lv_obj_center(label);


  //bottom right
  obj = lv_obj_create(grid);
  lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 1, 1,  //column
                       LV_GRID_ALIGN_STRETCH, 1, 1);      //row
   lv_obj_t * btn4 = lv_btn_create(obj);
  lv_obj_set_size(btn4, X_Pulsanti,Y_Pulsanti);
  lv_obj_center(btn4);
  lv_obj_add_event_cb(btn4, btn4_event_cb, LV_EVENT_CLICKED, NULL);

  label = lv_label_create(btn4);
  lv_label_set_text(label, "Misura");
  lv_obj_center(label);
  //Pulsante usb
  obj = lv_obj_create(grid);
  lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 2,1,  //column
                       LV_GRID_ALIGN_STRETCH, 0, 1);      //row
   lv_obj_t * btn5 = lv_btn_create(obj);
  lv_obj_set_size(btn5, X_Pulsanti,Y_Pulsanti);
  lv_obj_center(btn5);
  lv_obj_add_event_cb(btn5, btn5_event_cb, LV_EVENT_CLICKED, NULL);

  label = lv_label_create(btn5);
  lv_label_set_text(label, "USB");
  lv_obj_center(label);
  
  //Pulsante Vuoto
  obj = lv_obj_create(grid);
  lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 2,1,  //column
                       LV_GRID_ALIGN_STRETCH, 1, 1);      //row
   lv_obj_t * btn6 = lv_btn_create(obj);
  lv_obj_set_size(btn6, X_Pulsanti,Y_Pulsanti);
  lv_obj_center(btn6);
  lv_obj_add_event_cb(btn6, btn6_event_cb, LV_EVENT_CLICKED, NULL);

  label = lv_label_create(btn6);
  lv_label_set_text(label, "Vuoto");
  lv_obj_center(label);

  paginaAttiva = paginaHome;
RPC.println("SetupDisplayOUT");
}

1 Like

sorry I can't help you but I have the same problem, does anyone have any ideas?

Hello,

I have the same problem aswell but unfortunately not solution.

Hi!
With the newest update of the giga board library it boots the display from the M4, but the graphics look very bad, like interleaved layers. setting the display size to a smaller number like:

Arduino_H7_Video Display(799, 479, GigaDisplayShield);

helps the graphics, but there are still bugs.

Hope a quick solution for the issue will be available soon

HI!!
thanks for solution .
I will try