arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos_speed_test
This is an old revision of the document!
Nokia 5110 displays and Arduino Uno: speed test
I used U8g2 to see how quickly a Nokia 5110 display could be updated with an Arduino Uno (actually a 3.3V 8 MHz Pro Mini). The good news is that it is fast enough. The bad news is that it's still a bit of a memory glutton, consing 42% of program storage and 24% of dynamic memory. It's probably all the data for the lovely fonts.
Speed will probably roughly double with a 16 MHz board, but there are no 16 MHz 3.3V boards, so that means you'll have to complicate things a bit with level shifters.
- display_nokia_5110_u8g2_counter.ino
#include <U8g2lib.h> /* * display_nokia_5110_u8g2_counter.ino * * Test screen update speed with large solid fonts on * a Nokia 5110 screen that uses the PCD8544 controller. * * Notes: * Consumes 42% of program storage space and * 24% of dynamic memory on a Pro Mini. */ /* * Pin assignments: * RST: 8 * CE/CS/SCE: 10 * DC/"D/C": 9 * DIN/DN/MOSI/DATA: 11 * CLK/SCLK/SCK: 13 * VCC: 3.3V * LIGHT/LED: ground through 330 ohm resistor * GND: ground */ const unsigned int CLOCK_PIN = 13, DATA_PIN = 11, CS_PIN = 10, DC_PIN = 9, RESET_PIN = 8; //U8G2_PCD8544_84X48_1_4W_SW_SPI u8g2 = U8G2_PCD8544_84X48_1_4W_SW_SPI(U8G2_R0, CLOCK_PIN, DATA_PIN, CS_PIN, DC_PIN, RESET_PIN); // SW SPI U8G2_PCD8544_84X48_1_4W_HW_SPI disp = U8G2_PCD8544_84X48_1_4W_HW_SPI(U8G2_R0, CS_PIN, DC_PIN, RESET_PIN); // HW SPI unsigned int counter = 80; char dispStr[4]; // null terminated char array used to pass to renderer. void setup(void) { disp.begin(); disp.setContrast(145); disp.setColorIndex(1); } void loop(void) { counter = (counter + 1) % 1000; // picture loop disp.firstPage(); do { disp.setFont(u8g2_font_5x8_tr); disp.drawStr(0, 6, "PCD8544 u8g2"); disp.setFont(u8g2_font_logisoso38_tr); String(counter).toCharArray(dispStr, 4); disp.drawStr( 0, 47, dispStr); } while ( disp.nextPage() ); /* inherent frame rate is about 10 fps with 8MHz processor (without additional delay). */ delay(500); }
arduino/displays_for_classic_arduinos/nokia_5110_displays_and_classic_arduinos_speed_test.1517091612.txt.gz · Last modified: 2018/01/27 22:20 by mithat