MarlinFirmware / U8glib-HAL

Customized U8glib for use in Marlin 2.0
Other
45 stars 33 forks source link

Add support for SSD1306/SH1106 I2C displays and MKS MINI 12864 controller for STM32F1 and STM32F4. #5

Closed jmz52 closed 5 years ago

jmz52 commented 5 years ago

Description

Add support for SSD1306 and SH1106 I2C displays for STM32F1 and STM32F4. Fix compilation problem for LPC1768 introduced by initial pull request.

Add support for MKS MINI 12864 controller for STM32F1 and STM32F4.

Tested on STM32F103C8T6 board - works with both 1.3" SH1106 and 0.96" SSD1306 I2C displays Compiled successfully for LPC1768 (configuration files for MKS SBASE mainboard).

Tested on STM32F103C8T6 board - works with MKS Mini 12864 controller. http://3dtoday.ru/upload/main/f3d/f3dbf246eed88fd6276a0c5c5fd62105.jpg

Benefits

STM32F1-based systems can use I2C OLED displays based on SSD1306 and SH1106 controllers.

STM32F1-based systems can use MKS Mini 12864 controller (SPI interface).

Additional information

The binary.h file required by lcd/dogm/dogm_bitmaps.h is not present in stm32duino environment. Binary macro are defined in other file in stm32duino, so binary.h needs to be created in HAL_STM32F1 either empty or with following code #include "bit_constants.h"

Including Arduino.h from .c u8glib file causes compilation errors on stm32duino. Including Arduino.h from .cpp works just fine.

Related Issues

https://github.com/MarlinFirmware/Marlin/pull/11583 https://travis-ci.org/MarlinFirmware/Marlin/jobs/418816675

thinkyhead commented 5 years ago

Thanks! This should help move STM32 support forward.