Starting a new display thread since it's a different display and the old thread is really long.
I finally got the reprap discount graphics display as directed. I installed it and have that display selected in Marlin. My problem now is that most of what's on the screen is unreadable garbage. I have the EXP1 cable the right direction obviously as it wouldn't power up the other way. The display doesn't seem to care if the EXP2 cable is connected at all. I've tried that cable both ways and disconnected and the display never changes. I know there's a pic in the wiki on how to set the cables and I tried that, and other variations. Any help?
that's strange! it's ok in myside. otherwise just change the value in the () like this
if I comment out the change I made to ultralcd_st7920_u8glib_rrd_AVR.cpp, it compiles fine but doesn't work in the printer. The changes I made are below. Did I miss something?
// Terri 3/2/22 This section added on advice of Yue Mark. https://www.pandapi3d.com/forum/pandapi-fdm-3d-printer/reprap-discount-screen-showing-garbled-mess/p-1/dl-621ed1f17d1e43001657ee45?origin=notification&postId=621e49f1cc9082001604460a&commentId=621ed1f17d1e43001657ee45 #define BOARD_ST7920_DELAY_1 DELAY_NS(251) #define BOARD_ST7920_DELAY_2 DELAY_NS(48) #define BOARD_ST7920_DELAY_3 DELAY_NS(1050) // End section
from the error message there are some wrong in the Delay.h or ultralcd_st7920_u8glib_rrd_AVR.cpp, check that files you have modified.
Thanks. I'm curious though as the image shows compile failed. :)
I'll definitely give it a try though
Unfortunately it fails to compile. It's going along fine then throws the following:
Compiling .pio/build/PANDA/src/src/lcd/dogm/ultralcd_st7920_u8glib_rrd_AVR.cpp.o
In file included from Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd_AVR.h:28:0,
from Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd_AVR.cpp:34:
Marlin/src/lcd/dogm/../../HAL/shared/Delay.h:216:41: error: missing binary operator before token "("
#define DELAY_NS(x) DELAY_CYCLES(_NS_TO_CYCLES(x))
^
Marlin/src/lcd/dogm/../../inc/../pins/esp32/pins_PANDA_ZHU.h:135:30: note: in expansion of macro 'DELAY_NS'
#define BOARD_ST7920_DELAY_1 DELAY_NS(251)
^
Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd_AVR.cpp:49:29: note: in expansion of macro 'BOARD_ST7920_DELAY_1'
#if LCD_ST7920_DELAY_1 || BOARD_ST7920_DELAY_1 || CPU_ST7920_DELAY_1
^
Marlin/src/lcd/dogm/../../HAL/shared/Delay.h:216:41: error: missing binary operator before token "("
#define DELAY_NS(x) DELAY_CYCLES(_NS_TO_CYCLES(x))
^
Marlin/src/lcd/dogm/../../inc/../pins/esp32/pins_PANDA_ZHU.h:136:30: note: in expansion of macro 'DELAY_NS'
#define BOARD_ST7920_DELAY_2 DELAY_NS(48)
^
Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd_AVR.cpp:65:29: note: in expansion of macro 'BOARD_ST7920_DELAY_2'
#if LCD_ST7920_DELAY_2 || BOARD_ST7920_DELAY_2 || CPU_ST7920_DELAY_2
^
Marlin/src/lcd/dogm/../../HAL/shared/Delay.h:216:41: error: missing binary operator before token "("
#define DELAY_NS(x) DELAY_CYCLES(_NS_TO_CYCLES(x))
^
Marlin/src/lcd/dogm/../../inc/../pins/esp32/pins_PANDA_ZHU.h:137:30: note: in expansion of macro 'DELAY_NS'
#define BOARD_ST7920_DELAY_3 DELAY_NS(1050)
^
Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd_AVR.cpp:81:29: note: in expansion of macro 'BOARD_ST7920_DELAY_3'
#if LCD_ST7920_DELAY_3 || BOARD_ST7920_DELAY_3 || CPU_ST7920_DELAY_3
^
cc1plus: warning: unrecognized command line option '-Wno-register'
*** [.pio/build/PANDA/src/src/lcd/dogm/ultralcd_st7920_u8glib_rrd_AVR.cpp.o] Error 1
Compiling .pio/build/PANDA/src/src/lcd/extui/ui_api.cpp.o
======================================== [FAILED] Took 188.40 seconds ========================================
Environment Status Duration
------------- -------- ------------
PANDA FAILED 00:03:08.404
==================================== 1 failed, 0 succeeded in 00:03:08.404 ====================================
The terminal process "platformio 'run', '--environment', 'PANDA'" terminated with exit code: 1.
Thanks!
Hi, this is the common problem of this screen that from different factory. the reason is that the frequency of the data signal on the screen wires are too high,the solution is lower the frequency by add increase the delay functions in source code. for example add the following code in the pins_PANDA_ZHU.h
#define BOARD_ST7920_DELAY_1 DELAY_NS(251) #define BOARD_ST7920_DELAY_2 DELAY_NS(48) #define BOARD_ST7920_DELAY_3 DELAY_NS(1050)
if still not fix this problem, just increase the number in the brackets. for example
#define BOARD_ST7920_DELAY_1 DELAY_NS(551) #define BOARD_ST7920_DELAY_2 DELAY_NS(148) #define BOARD_ST7920_DELAY_3 DELAY_NS(1050)