arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos_speed_test
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos_speed_test [2018/01/27 22:39] – mithat | arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos_speed_test [2018/01/28 05:35] – [Summary evaluation] mithat | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nokia 5110 displays and Classic | + | ====== Nokia 5110 displays and classic |
- | I used [[https:// | + | ===== Summary evaluation ===== |
- | Speed will probably roughly double | + | One might expect this 84×48 display with 1 bit color depth to be updateable pretty quickly even with a torpid Uno/ |
+ | character change artifacts are not objectionable. The frame update time is expected to halve 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. | ||
- | <file c++ display_nokia_5110_u8g2_counter.ino> | + | The bad news is that it's still a bit of a memory glutton, consuming 42% of program storage and 24% of dynamic memory. Most of that is probably the data for the lovely fonts. Lunches are never free. |
- | #include <U8g2lib.h> | + | |
- | /* | + | ===== Tests ===== |
- | | + | |
- | | + | |
- | * 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. | + | |
- | */ | + | |
- | /* | + | I used [[https://github.com/olikraus/u8g2/wiki | U8g2]] to see how quickly a Nokia 5110 display could be updated with a 3.3V 8 MHz Arduino Pro Mini. The module came from an Asian source. |
- | * Pin assignments: | + | |
- | * RST: 8 | + | |
- | * CE/CS/SCE: 10 | + | |
- | * DC/"D/C": 9 | + | |
- | * DIN/DN/ | + | |
- | * CLK/ | + | |
- | * VCC: 3.3V | + | |
- | * LIGHT/LED: ground through 330 ohm resistor | + | |
- | * GND: ground | + | |
- | */ | + | |
- | const unsigned int CLOCK_PIN = 13, | + | The glare on the edges is an artifact from the four LEDs used to backlight the display. In real life the arifact doesn' appear as glare, but it is clear on inspection that there are four sources of illumination. |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | // | + | FIXME video |
- | U8G2_PCD8544_84X48_1_4W_HW_SPI disp = U8G2_PCD8544_84X48_1_4W_HW_SPI(U8G2_R0, | + | |
- | unsigned int counter = 80; | + | [[display_nokia_5110_u8g2_counter.ino | source code]] |
- | 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, | ||
- | |||
- | disp.setFont(u8g2_font_logisoso38_tr); | ||
- | String(counter).toCharArray(dispStr, | ||
- | disp.drawStr( 0, 47, dispStr); | ||
- | } while ( disp.nextPage() ); | ||
- | |||
- | /* inherent frame rate is about 10 fps with 8MHz processor | ||
- | | ||
- | delay(500); | ||
- | } | ||
- | </ |
arduino/displays_for_classic_arduinos/nokia_5110_displays_and_classic_arduinos_speed_test.txt · Last modified: 2018/02/01 20:06 by mithat