Arduino SPI and TWI Libraries instead of custom code
Support for Unicode and UTF-8
Faster compilation
High speed text only API (U8x8)
Hardware 180 degree rotation for some displays available
Tested with AVR, SAM and ESP8266 boards
How to port U8g code?
Major Changes (Code rework required)
The name of the include file has changed: Use #include "U8g2lib.h"
The native type for pixel coordinates has changed to u8g2_uint_t.
Use the following line to redefine this at the beginning of your code
typedef u8g2_uint_t u8g_uint_t;
Old Arduino IDE 00xx (before 1.00) is not supported any more.
ARDUINO macro must be >= 100
begin() must be called (this was optional in U8glib)
Constructor contains name of communicaton interface and
also contains the display orientation as first argument.
u8g2.drawStr90 does not exist any more, use
u8g2_SetFontDirection()
"P" versions of the string functions are not yet implemented.
This includes drawStrP(), getStrWidthP(), etc
Use the print function with the F() macro instead. See also the
PrintHelloWorld and PrintProgmem examples.
In U8glib font transparency was defined in the begin() statement. This is now
handled by setFontMode().
U8G_PROGMEM is now called U8X8_PROGMEM.
Screen rotation is handled by the constructor in U8g2.
The functions undoRotation, setRot90, setRot180 and setRot270 are
replaced by the first argument of the U8g2 constructor.
Screen scaling is not there in u8g2.
This is completly removed, there are no corresponding function in u8g2
for undoScale() and setScale2x2().
setColorEntry(), setHiColor(), setHiColorByRGB(), setRGB: Not supported any more
(u8g2 focus are monochrome displays, use Ucglib instead)
getMode(): Is not available any more because there is only one monochrome mode.
setDefaultForegroundColor(), setDefaultBackgroundColor() and
setDefaultMidColor() are not required any more. These functions do not
exist in U8g2. Use setDrawColor() instead.
getFontLineSpacing() and setFontLineSpacingFactor() are not supported any more. Instead you can get the line spacing by calculating the difference getAscent()-getDescent().
getStrPixelWidth() is replaced by getStrWidth()
setHardwareBackup() not supported any more (and hopefully not required any more).
Cursor functions are not available. This includes:
setCursorFont(), setCursorStyle(), setCursorPos(), setCursorColor(),
enableCursor(), disableCursor(), drawCursor()
Virtual screen handling is not supported:
setVirtualScreenDimension(), addToVirtualScreen()
Minor Changes (Code update might be required)
U8g2 drawTriangle() expects signed arguments (u8glib expects unsigned arguments)
U8g2 has different font names. Some of the old font names are known to u8g2 and are
mapped automatically. If the font name is unknown, please choose a different font from the font list.
Change Notes (No code change required)
sleepOn(), sleepOff(): supported, but better use setPowerSave()
setColorIndex() and getColorIndex() are renamed to setDrawColor() and
getDrawColor(). The old names are still supported.
getFontAscent() and getFontDescent() are renamed to getAscent() and getDescent()
The old names are still supported.
Signal names are renamed in the constructor calls:
U8glib
U8g2
U8glib sck
U8g2 clock
U8glib mosi
U8g2 data
U8glib a0
U8g2 dc
getHeight() renamed to getDisplayHeight(), old name still exists
getWidth() renamed to getDisplayWidth(), old name still exists