Po prvním nastvení zkompilování a narání Marlin FW vypadalo vše skvěle a radost byla veliká, protože to bylo moje první setkání s deskou arduino, od jaktěživa jsem byl spíše na Malinu. Ale ihned po prvním spuštěním jsem zjistil že displej nezobrazuje co má, vlastně zobrazuje co má ale špatně, veškerá grafika i písmena byla rozhozená a téměř nečitelná viz. tento obrázek obrázek.
S čím jsme pracoval
Arduino IDE 1.8.10
Adruino MEGA
RepRapDiscount 12864
RAMPS 1.6
TMC 2130
Po sestavení a zkompilování Marlinu jsem pripojil arduino a nahrál Marlin na desku.
Co tento problém spusobuje a ho napravit
Po delším googlení jsem se dočel názor že tohle spusobuje špatně napájený a přehozený konektor na desce dipleje. Jenže tohle nemusí být vždy náš problém. U některych desek je to možné ale ve vetšině případů se jedná o špatné časování //#define ST7920_DELAY_2 DELAY_NS(0)
- Najdeme v Arduino IDE soubor ultralcd_st7920_u8glib_rrd.h
- Vyhledáme sekvenci
// If you want you can define your own set of delays in Configuration.h
//#define ST7920_DELAY_1 DELAY_NS(0)
//#define ST7920_DELAY_2 DELAY_NS(0)
//#define ST7920_DELAY_3 DELAY_NS(0) - a odkomentujeme všechny tři řádky, takže to potom bude vypadat takto:
// If you want you can define your own set of delays in Configuration.h
#define ST7920_DELAY_1 DELAY_NS(0)
#define ST7920_DELAY_2 DELAY_NS(0)
#define ST7920_DELAY_3 DELAY_NS(0)
Nakonec přidáme hodnotu 188 do řádku #define ST7920_DELAY_2 DELAY_NS(0) takže vysledný blok úprav bude vypadat takto:
// If you want you can define your own set of delays in Configuration.h
#define ST7920_DELAY_1 DELAY_NS(0)
#define ST7920_DELAY_2 DELAY_NS(188)
#define ST7920_DELAY_3 DELAY_NS(0 - Nakonec uložíme, skompilujeme a nahrajeme do Arduina Mega. Restartujeme desku a pokud se nejedná o obráceně napajené piny na desce nebo nejaký jiny problém s displejem tak nám naskočí uvítací a hlavně dobře čitelná obrazovka Marlina