MiniOled Text strings not shown correctly on 0.91" OLED display

I'm using this library because I haven't found other SSD1306 OLED libraries small enough to fit the very limited storage of STM32F030F4P6 (if you know other super lightweigth OLED lib alternative it is welcome).

miniOled library seems designed for 0.96" 128X64 OLED

However I want to use it on this 0.91" 128X32 OLED

And with this display if I try to print big numbers with Oled.printBigNumber method they are display correctly but if I try to print string with Oled.printString they are printed as unreadable pixel mess, maybe because the display resolution is too low.

I'm looking for a way to fix this

Checking the code the printBigNumber method uses this array to define numbers

const byte hugeFont [][72] = {   // 18x24 inside a 24x32 cell.
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	   0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
	    0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00,
	     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	      0x00, 0x00, 0x00, 0x00, 0x00}, // - minus

{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f,
	      0x0f, 0x00, 0x00, 0x00, 0x00}, // dot

{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
	 0xE0, 0xF0, 0xF0, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	  0x00, 0x80, 0xE0, 0xF0, 0xFC, 0x7F, 0x3F, 0x0F, 0x03, 0x01, 0x00,
	   0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFE, 0x3F, 0x1F, 0x07,
	    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F,
	     0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	      0x00, 0x00, 0x00, 0x00, 0x00}, // slash /

{0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
	  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
	   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00,
	    0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x07,
	     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
	      0x0F, 0x0F, 0x0F, 0x07, 0x03}, // 0

{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0,
	 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
	   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
	     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07,
	      0x07, 0x03, 0x00, 0x00, 0x00},  // 1

{0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x81, 0xC1, 0xC0, 0xC0, 0xC0,
	  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF,
	   0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x03, 0x03, 0x03, 0x03,
	    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x81, 0x00, 0x07, 0x0F,
	     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00}, // 2

{0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x81, 0xC1, 0xC0, 0xC0, 0xC0,
	  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF,
	   0x7F, 0x00, 0x81, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
	    0x03, 0x03, 0x03, 0x87, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x07, 0x0F,
	     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00},  // 3

{0xE0, 0xF0, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x30, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0,
	  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0xFF, 0xFF, 0xFF,
	   0xFF, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
	    0x03, 0x03, 0x03, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
	     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00},  // 4

{0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
	  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC1,
	   0x81, 0x00, 0x81, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
	    0x03, 0x03, 0x03, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x07, 0x0F,
	     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00},  // 5

{0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
	  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC1,
	   0x81, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x03, 0x03, 0x03, 0x03,
	    0x03, 0x03, 0x03, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x07, 0x0F,
	     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00},  // 6

{0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
	  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF,
	   0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
	     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00},  // 7

{0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xE1,
	  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF,
	   0x3F, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x87, 0x03, 0x03, 0x03, 0x03,
	    0x03, 0x03, 0x03, 0x87, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x07, 0x0F,
	     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00},  // 8

{0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
	 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
	  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF,
	   0xFF, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
	    0x03, 0x03, 0x03, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
	     0x00, 0x0c, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
	      0x0F, 0x0F, 0x0F, 0x07, 0x00},  // 9


{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	  0x00, 0x3C, 0x7E, 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00,
	   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xF8,
	    0xF8, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	     0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
	      0x00, 0x00, 0x00, 0x00, 0x00}  // ":"   
};

And the printString method this other

const byte BasicFont[][5]  = {   // 5x8 in a 6x8 space.
	{0x00,0x00,0x00,0x00,0x00},
	{0x00,0x5F,0x00,0x00,0x00},
	{0x00,0x07,0x00,0x07,0x00},
	{0x14,0x7F,0x14,0x7F,0x14},
	{0x24,0x2A,0x7F,0x2A,0x12},
	{0x23,0x13,0x08,0x64,0x62},
	{0x36,0x49,0x55,0x22,0x50},
	{0x00,0x05,0x03,0x00,0x00},
	{0x1C,0x22,0x41,0x00,0x00},
	{0x41,0x22,0x1C,0x00,0x00},
	{0x08,0x2A,0x1C,0x2A,0x08},
	{0x08,0x08,0x3E,0x08,0x08},
	{0xA0,0x60,0x00,0x00,0x00},
	{0x08,0x08,0x08,0x08,0x08},
	{0x60,0x60,0x00,0x00,0x00},
	{0x20,0x10,0x08,0x04,0x02},
	{0x3E,0x51,0x49,0x45,0x3E},
	{0x00,0x42,0x7F,0x40,0x00},
	{0x62,0x51,0x49,0x49,0x46},
	{0x22,0x41,0x49,0x49,0x36},
	{0x18,0x14,0x12,0x7F,0x10},
	{0x27,0x45,0x45,0x45,0x39},
	{0x3C,0x4A,0x49,0x49,0x30},
	{0x01,0x71,0x09,0x05,0x03},
	{0x36,0x49,0x49,0x49,0x36},
	{0x06,0x49,0x49,0x29,0x1E},
	{0x00,0x36,0x36,0x00,0x00},
	{0x00,0xAC,0x6C,0x00,0x00},
	{0x08,0x14,0x22,0x41,0x00},
	{0x14,0x14,0x14,0x14,0x14},
	{0x41,0x22,0x14,0x08,0x00},
	{0x02,0x01,0x51,0x09,0x06},
	{0x32,0x49,0x79,0x41,0x3E},
	{0x7E,0x09,0x09,0x09,0x7E},
	{0x7F,0x49,0x49,0x49,0x36},
	{0x3E,0x41,0x41,0x41,0x22},
	{0x7F,0x41,0x41,0x22,0x1C},
	{0x7F,0x49,0x49,0x49,0x41},
	{0x7F,0x09,0x09,0x09,0x01},
	{0x3E,0x41,0x41,0x51,0x72},
	{0x7F,0x08,0x08,0x08,0x7F},
	{0x41,0x7F,0x41,0x00,0x00},
	{0x20,0x40,0x41,0x3F,0x01},
	{0x7F,0x08,0x14,0x22,0x41},
	{0x7F,0x40,0x40,0x40,0x40},
	{0x7F,0x02,0x0C,0x02,0x7F},
	{0x7F,0x04,0x08,0x10,0x7F},
	{0x3E,0x41,0x41,0x41,0x3E},
	{0x7F,0x09,0x09,0x09,0x06},
	{0x3E,0x41,0x51,0x21,0x5E},
	{0x7F,0x09,0x19,0x29,0x46},
	{0x26,0x49,0x49,0x49,0x32},
	{0x01,0x01,0x7F,0x01,0x01},
	{0x3F,0x40,0x40,0x40,0x3F},
	{0x1F,0x20,0x40,0x20,0x1F},
	{0x3F,0x40,0x38,0x40,0x3F},
	{0x63,0x14,0x08,0x14,0x63},
	{0x03,0x04,0x78,0x04,0x03},
	{0x61,0x51,0x49,0x45,0x43},
	{0x7F,0x41,0x41,0x00,0x00},
	{0x02,0x04,0x08,0x10,0x20},
	{0x41,0x41,0x7F,0x00,0x00},
	{0x04,0x02,0x01,0x02,0x04},
	{0x80,0x80,0x80,0x80,0x80},
	{0x01,0x02,0x04,0x00,0x00},
	{0x20,0x54,0x54,0x54,0x78},
	{0x7F,0x48,0x44,0x44,0x38},
	{0x38,0x44,0x44,0x28,0x00},
	{0x38,0x44,0x44,0x48,0x7F},
	{0x38,0x54,0x54,0x54,0x18},
	{0x08,0x7E,0x09,0x02,0x00},
	{0x18,0xA4,0xA4,0xA4,0x7C},
	{0x7F,0x08,0x04,0x04,0x78},
	{0x00,0x7D,0x00,0x00,0x00},
	{0x80,0x84,0x7D,0x00,0x00},
	{0x7F,0x10,0x28,0x44,0x00},
	{0x41,0x7F,0x40,0x00,0x00},
	{0x7C,0x04,0x18,0x04,0x78},
	{0x7C,0x08,0x04,0x7C,0x00},
	{0x38,0x44,0x44,0x38,0x00},
	{0xFC,0x24,0x24,0x18,0x00},
	{0x18,0x24,0x24,0xFC,0x00},
	{0x00,0x7C,0x08,0x04,0x00},
	{0x48,0x54,0x54,0x24,0x00},
	{0x04,0x7F,0x44,0x00,0x00},
	{0x3C,0x40,0x40,0x7C,0x00},
	{0x1C,0x20,0x40,0x20,0x1C},
	{0x3C,0x40,0x30,0x40,0x3C},
	{0x44,0x28,0x10,0x28,0x44},
	{0x1C,0xA0,0xA0,0x7C,0x00},
	{0x44,0x64,0x54,0x4C,0x44},
	{0x08,0x36,0x41,0x00,0x00},
	{0x00,0x7F,0x00,0x00,0x00},
	{0x41,0x36,0x08,0x00,0x00},
	{0x02,0x01,0x01,0x02,0x01},
	{0x02,0x05,0x05,0x02,0x00} 
};

But I don't know how to replace it with something suitable for this display.

Any help is very appreciated.

What is the font do you use with Oled.printString function?
Please show your code

The font used in printString is defined by BasicFont array that I have posted above, but rather that text appears some glitchy bunch of very small lines and dots and I don't understand the reason.
The code of library used is linked as well. Doesn't even the most basic hello world is printed correctly.


#include <miniOled.h>

void setup(){

	delay(700);

	Oled.init();  //initialze OLED display
	Oled.chrSpace=3;
	Oled.drawLine(3, 0xe0);
	Oled.printString("Hello",0,0); 
}

void loop(){
  
}

But as said If I print a big number with printBigNumber works...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.