User Tools

Site Tools


arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos [2018/01/27 22:20] – ↷ Links adapted because of a move operation mithatarduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos [2018/01/28 21:36] (current) – [Libraries] mithat
Line 1: Line 1:
-====== Nokia 5110 Displays and the Arduino Uno ======+====== Nokia 5110 displays and classic Arduinos ======
  
 ===== Summary opinions ===== ===== Summary opinions =====
Line 13: Line 13:
   * The displays are sourced either as surplus or have been harvested from old phones. You can't be certain what you'll get, but whatever you get will probably not be pristine.   * The displays are sourced either as surplus or have been harvested from old phones. You can't be certain what you'll get, but whatever you get will probably not be pristine.
   * The main electrical contact between the display and the PCB is through a compressible foam material that was once pretty cool s***. The main issue this presents is that small shifts in pressure on the display housing seem to muck up the connections --- at least they did on my sample. The contrast control in particular seems to be sensitive to housing pressure. Nokia obviously figured out how to work with this interface, but board suppliers might be missing some important know how here.   * The main electrical contact between the display and the PCB is through a compressible foam material that was once pretty cool s***. The main issue this presents is that small shifts in pressure on the display housing seem to muck up the connections --- at least they did on my sample. The contrast control in particular seems to be sensitive to housing pressure. Nokia obviously figured out how to work with this interface, but board suppliers might be missing some important know how here.
-  * The LCD contrast is set in software. At first this seems like something totally cool, but if you're going to build more than one of whatever you're building, it means you'll have to tweak the code for each one you build or write software that allows the contrast to set at runtime. (And don't forget you'll need to save that to persistent memory.)+  * The LCD contrast is set in software. At first this seems like something that might be cool. But if you're going to build more than one of whatever you're building, it means you'll have to tweak the code for each one you build or write software that lets the contrast be set at runtime. And save that to persistent memory. That's not a small amount of overhead.
  
-One of the best sources of information on these displays is SparkFun's [[https://learn.sparkfun.com/tutorials/graphic-lcd-hookup-guide | Graphic LCD Hookup Guide]]. Note that the order of the pins will vary from supplier to supplier of these.+The order of the pins on these will vary from supplier to supplier. One of the best sources of information on these displays is SparkFun's [[https://learn.sparkfun.com/tutorials/graphic-lcd-hookup-guide | Graphic LCD Hookup Guide]].
  
 ===== Libraries ===== ===== Libraries =====
  
-These are libraries I know about that let you interface to a Nokia 5110 display. My tests were conducted with a 3.3V 8MHz Arduino Pro Mini equivalent and a display I bought off eBay from a vendor in China.+These are libraries I know about that let you interface to a Nokia 5110 display. The demo code here was built around 8MHz 3.3V Arduino Pro Mini equivalent and a display I bought off eBay from a vendor in China
 + 
 +These are just tests using static text to demonstrate code setup and the most basic functionality. I've also done some [[arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos_speed_test|dynamic updating]] tests.
 ==== U8g2 ==== ==== U8g2 ====
 Oli Kraus' [[https://github.com/olikraus/u8g2/wiki | U8g2]] is intended to be a common platform for interfacing to a whole bunch of different monochrome displays. It supports the Nokia 5110 display's PCD8544 controller chip out of the box. Oli Kraus' [[https://github.com/olikraus/u8g2/wiki | U8g2]] is intended to be a common platform for interfacing to a whole bunch of different monochrome displays. It supports the Nokia 5110 display's PCD8544 controller chip out of the box.
Line 30: Line 32:
  
 /* /*
 + * Basic test a Nokia 5110 display and the U8g2 library.
 + *
  * Notes:  * Notes:
  * Program storage space and dynamic memory are the same whether you use HW or SW SPI.  * Program storage space and dynamic memory are the same whether you use HW or SW SPI.
Line 77: Line 81:
 ==== U8glib ==== ==== U8glib ====
  
-Before there was U8g2, there was [[https://github.com/olikraus/u8glib/wiki | U8glib]]. While this version of the library is no longer maintained, it doesn't mean it doesn't have value. It'code interface is a little less bewildering than U8g2 and so may be better suited to beginners. It also seems to be a bit lighter in resource consumption, as you can see from the comments in my test case below. (Compare these to the results for U8g2 above.)+Before there was U8g2, there was [[https://github.com/olikraus/u8glib/wiki | U8glib]]. While this version of the library is no longer maintained, it doesn't mean it doesn't have value. It'constructors are a little less bewildering than U8g2 and so may be better suited to beginners. It also seems to be a bit lighter in resource consumption, as you can see from the comments in my test case below.
  
 <file c++ display_nokia_5110_u8glib.ino> <file c++ display_nokia_5110_u8glib.ino>
 +// Modified by Mithat Konar from
 // Henry's Bench // Henry's Bench
 // Arduino Nokia 5110 U8Glib Tutorial // Arduino Nokia 5110 U8Glib Tutorial
-// From http://henrysbench.capnfatz.com/henrys-bench/arduino-displays/arduino-nokia-5110-with-u8glib-tutorial/ +// http://henrysbench.capnfatz.com/henrys-bench/arduino-displays/arduino-nokia-5110-with-u8glib-tutorial/
-// Modified by mfk.+
  
 #include "U8glib.h" #include "U8glib.h"
Line 150: Line 154:
   code as you see fit. If you find it useful, and we meet someday,   code as you see fit. If you find it useful, and we meet someday,
   you can buy me a beer.   you can buy me a beer.
-*/+ */
  
 /* /*
- Modified by mfk: minimal test, different pins used, different contrast.+ Further modifications by Mithat Konar: minimal test, different pins, different contrast.
    
  * Notes:  * Notes:
  * This minimal version uses 6% of program storage space and 26% of dynamic memory.  * This minimal version uses 6% of program storage space and 26% of dynamic memory.
- * Different fonts can be experimented with+ * Different fonts can be experimented with.
  */  */
      
-/* mfk pin assignments (set in LCD_Functions.h:+/* Mithat'pin assignments (set in LCD_Functions.h):
  * RST: 8  * RST: 8
  * CE/CS/SCE: 10  * CE/CS/SCE: 10
Line 191: Line 195:
  
 ==== Rinky-Dink Electronics ==== ==== Rinky-Dink Electronics ====
-Rinky-Dink Electronics has a number of libraries for working with the Nokia 5110: a [[http://www.rinkydinkelectronics.com/library.php?id=44 | basic version]] that let you write text and render bitmaps, a version that ads [[http://www.rinkydinkelectronics.com/library.php?id=47 | graphics]] capabilities, and and add-on that lets you load images from an [[http://www.rinkydinkelectronics.com/library.php?id=69 | SPI flash chip]].+Rinky-Dink Electronics has a number of libraries for working with the Nokia 5110: a [[http://www.rinkydinkelectronics.com/library.php?id=44 | basic version]] that let you write text and render bitmaps, a version that ads [[http://www.rinkydinkelectronics.com/library.php?id=47 | graphics]] capabilities, and an add-on that lets you load images from an [[http://www.rinkydinkelectronics.com/library.php?id=69 | SPI flash chip]].
  
 I have not yet tested any of these, but I like the two-tiered and modular approach to functionality. I have not yet tested any of these, but I like the two-tiered and modular approach to functionality.
arduino/displays_for_classic_arduinos/nokia_5110_displays_and_classic_arduinos.1517091613.txt.gz · Last modified: 2018/01/27 22:20 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki