Menu
JAQForum Ver 19.10.27

Forum Index : Microcontroller and PC projects : Which is the latest Micromite driver for Nokia 5110 LCD

   Page 1 of 2    
Posted: 02:10pm
05 Jan 2022
Copy link to clipboard
Pluto
Guru

Nokia 5110 is included in the firmware for PicoMite. I got it working on Picomite after some difficulties. Peter updated also the PicoMite firmware yesterday. THANKS.

In the past I used an old driver (anno 2014 by Peter) for standard Micromite (28-pin) successfully. When I recently tried to use that procedure on Micromite 5.0504, i run into difficulties.

Wondering now if there is any newer driver version for the standard MicroMite?

-fred
 
Posted: 06:10pm
05 Jan 2022
Copy link to clipboard
matherp
Guru

There was a change in one of the MM versions that required a small change to all loadable drivers. Unfortunately I've lost the source for the 5110 driver so can't make the change. The only solution would be to use an earlier version of the MM firmware if you need this display - sorry
 
Posted: 08:45pm
05 Jan 2022
Copy link to clipboard
Pluto
Guru

Thanks for checking.
Got this code from 2015 working on Micromite 5.0504:

https://www.thebackshed.com/forum/ViewTopic.php?TID=10183&PID=114241#114241#114241

Initially I tried to change the ports used for rs, cdand cs for the SUB LCD.Init(rs,cd,cs,wi,ht,nr) w/o success.  Going back to the ports originally used in the program was more fruitful.

LCD.Init 17,18,16


It will still leave some room for my own programs:

> memory
Flash:
 34K (56%) Program (846 lines)
  9K (15%) 3 Embedded C Routines
  4K ( 6%) Library
 13K (23%) Free

RAM:
  4K ( 8%) 40 Variables
  0K ( 0%) General
 46K (92%) Free
>



I think I can manage with this for my applications. THANKS!
-Fred
 
Posted: 08:52pm
05 Jan 2022
Copy link to clipboard
Pluto
Guru

Noticed that I had some earlier attempts stored in library. Deleting that and this is the memory usage:
> library delete
> memory
Flash:
 34K (56%) Program (846 lines)
  9K (15%) 3 Embedded C Routines
 17K (29%) Free

RAM:
  0K ( 0%) 0 Variables
  0K ( 0%) General
 50K (100%) Free


I believe that the stuff in library prevented me from chanching the rs, cd and cs pins!!
-Fred
 
Posted: 05:23am
31 Jan 2026
Copy link to clipboard
WJSMarine
Newbie

  Pluto said  Nokia 5110 is included in the firmware for PicoMite. I got it working on Picomite after some difficulties.
-fred


Hi Fred, I'm fumbling my way trying to get subject LCD to work on a PICO-W without success. I've had good success using 8bit PICs to do this task previously but new to MMBasic and the RP2040 environment.

Can I ask if you could share some of your PICO code to drive the Nokia lcd please? Just a snippet or two would be appreciated, I'm not asking for anyone to write my code, just a kickstart. I've had no problem with the other GLCD's, but the monochrome 5110 has me scratching my head. The only code I've found on TBS didn't help (MX170).

Many thanks,
Bill (Perth, Australia)
 
Posted: 07:16am
31 Jan 2026
Copy link to clipboard
phil99
Guru


On Geoff's site latest firmware is MicroMite Firmware V5.05.05, 12/2021.
It has a few useful extras.

Edit.
I have a couple of Nokia 5110 phones in the junk box that may have usable displays but don't know how the 9 pads connect to the pins on the carrier board version.
Does anyone have a circuit for the carrier board?
Edited 2026-01-31 17:50 by phil99
 
Posted: 08:09am
31 Jan 2026
Copy link to clipboard
WJSMarine
Newbie

Hi Phil, thanks for the response. I'm looking for PICO examples and it looks like Fred has his working, so would be my best shot at it.
With the old Nokias you mention, do you mean the red eBay modules or the phone pcb itself? The red module I have has 8 pins (1 Rst, CE, DC, DIN, CLK, VCC, LED, GND). I can't help with the phone's pcb, unfortunately.

Cheers,
Bill
 
Posted: 09:15am
31 Jan 2026
Copy link to clipboard
phil99
Guru


  Quote  do you mean the red eBay modules or the phone pcb itself?
The phone  itself.
  Quote  The red module I have has 8 pins (1 Rst, CE, DC, DIN, CLK, VCC, LED, GND).
I need to map those 8 pins to the 9 pads on the LCD.
If I can identify Vcc and Gnd I could use trial and error for the others without destroying it.
 
Posted: 09:48am
31 Jan 2026
Copy link to clipboard
matherp
Guru

The 5110 is supported on the Pico-W. OPTION SYSTEM SPI then
  Quote  OPTION LCDPANEL N5110, OR, DC, RESET, CS [,contrast] [,INVERT]
Initialises a LCD display using the Nokia 5110 controller. This supports 84 * 48 resolution. An additional
parameter ‘contrast’ may be specified to control the contrast of the display. Try contrast values between &HA8
and &HD0 to suit your display, default if omitted is &HB1

manual page 63
I admit, this hasn't been tested recently, but it certainly used to work
 
Posted: 12:08pm
31 Jan 2026
Copy link to clipboard
Pluto
Guru

I just connected a NOKIA 5110 LCD and tested with a standard PicoMite (green with Raspberry logo).
> option list
PicoMite MMBasic RP2040 V6.02.00
OPTION SYSTEM SPI GP10,GP11,GP8
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 200000
OPTION LCDPANEL N5110, LANDSCAPE,GP13,GP14,GP15, 177


A few observations:

A. The LCD functions as "normal".
B. Tried to use the INVERT mode:
    OPTION LCDPANEL N5110, OR, DC, RESET, CS [,contrast] [,INVERT]
by setting the INVERT to 1. The display is not inverted. . Was my INVERT setting 1 correct?

C. When changing to invert mode I had to first set OPTION LCDPANEL DISABLE.
  After that the Pico is no more accessible. Tried to disconnect the LCD, but it did not help. Reloading the firware was required. Unexpected behaviour!

'Connection:
'PicoMite     Nokia5110
'GP8 (MISO)   Not connected. N5110 has no data out.
'GP10 (CLK)   SCLK
'GP11 (MOSI)  DIN(MOSI)
'GP13 (DC)    D/C      
'GP14 (RESET) RST
'GP15 (CS)    SCE
'3.3V         VCC
'GND          GND


Pluto

EDIT:
Invert seems to be OK!
Edited 2026-02-01 00:16 by Pluto
 
Posted: 07:54am
01 Feb 2026
Copy link to clipboard
WJSMarine
Newbie

Hi folks, my problem was the default contrast at 177, when changed to 168 all was visible, doh!

@ Pluto, I tried setting invert (not accepted) and INVERT (accepted) but no change. Also tried as 1, accepted but still no change - can you give more info on how you achieved screen inversion please? Is it possible to invert only certain areas or characters? If so then so much more useful.

Also, CLS has no effect, I can only erase by writing spaces at the particular pixel locations - am I missing something here?

This is a very handy, if limited, LCD running off almost nothing. I'd be interested if any other TBS members have hints or features to share on these displays.

Kind regards,
Bill
 
Posted: 08:33am
01 Feb 2026
Copy link to clipboard
matherp
Guru

The INVERT parameter does not apply to the 5110. The manual needs correcting. To use white on black try COLOUR 0,1. CLS should work. If it doesn't try the command RERRESH after the CLS command. Let me know what happens.
 
Posted: 09:34am
01 Feb 2026
Copy link to clipboard
WJSMarine
Newbie

Thanks Peter, put a star up against your name...

CLS does work, no idea why it didn't before. Inversion also works a treat and I expect with judicious placement I'll be able to invert small sections as required.

Thanks and regards,
Bill
 
Posted: 09:47am
01 Feb 2026
Copy link to clipboard
Pluto
Guru

When I have the LCD initialised with INVERT=1:
CLS rgb(white) clears the screen and the screen is black.
CLS rgb(black) clears the screen and the screen is white.
text 0,0,"TESTING",LT,1,1,rgb(white),rgb(black) gives black text on white background.

=> THE SCREEN IS INVERTED. But option list does not show that INVERT is choosen.
OPTION LCDPANEL N5110, LANDSCAPE,GP13,GP14,GP15, 177


> COLOUR 0,1
> cls
clears the screen and the screen is black. Just as CLS rgb(white).

> cls
> refresh
has no visible effect. Screen still cleared and black (as it should be).

According to my tests the INVERT=1 seems to work as intended?

EDITED: Initialized the display WITHOUT setting INVERT.
OPTION LCDPANEL N5110, LANDSCAPE,GP13,GP14,GP15,177
. The display behaves now also exactly as described above for INVERT=1.
Seems to me that the display is inverted regardless of what is set for the INVERT parameter (none or 1).

The display should be capable of both normal and inverse modes. Can it be that the E parameter is by mistake always at E=1?:
  Quote  PCD8544 datasheet page 14:
Display control 0 0 0 0 0 1 D 0 E sets display configuration
D and E
00 display blank
10 normal mode
01 all display segments on
11 inverse video mode

Edited 2026-02-01 20:33 by Pluto
 
Posted: 11:38am
01 Feb 2026
Copy link to clipboard
matherp
Guru

This is the N5110 initialisation code for 6.02.00. INVERT is not implemented. It could be, but it isn't.
case N5110:
ResetController();
spi_write_command(0x21); // LCD Extended Commands.
uSec(20000);
spi_write_command(Option.LCDVOP); // Set LCD Vop (Contrast). //0xB0 for 5V, 0XB1 for 3.3v, 0XBF if screen too dark
uSec(20000);
spi_write_command(0x04); // Set Temp coefficient. //0x04
uSec(20000);
spi_write_command(0x14); // LCD bias mode 1:48. //0x13 or 0X14
uSec(20000);
spi_write_command(0x20); // We must send 0x20 before modifying the display control mode
uSec(20000);
spi_write_command(0x0C); // Set display control, normal mode. 0x0D for inverse, 0x0C for normal
uSec(20000);
break;

Maybe your screen is wired differently. As I understand the post from WJSMarine. His screen is now working correctly using the colour command
 
Posted: 01:49pm
01 Feb 2026
Copy link to clipboard
mozzie
Senior Member

G'day All,
Peter, sorry to report it looks like Pluto may have stumbled on a bug. As he reported, if you use OPTION LCDPANEL RESET it:
Resets the PicoMite
Shows the startup banner
No further interaction at the console is possible.
Only re-downloading the firmware will fix it.

This is with N5110 and SSD1306SPI displays, haven't had time to test others.

PicoMite MMBasic RP2040 V6.00.02 is OK
PicoMite MMBasic RP2040 V6.00.03 is NOT OK
PicoMite MMBasic RP2040 V6.01.00 is NOT OK
PicoMite MMBasic RP2040 V6.02.00 is NOT OK

Same option list with all versions

> option list
PicoMite MMBasic RP2040 Edition V6.00.02
OPTION SYSTEM SPI GP2,GP3,GP4
OPTION COLOURCODE ON
OPTION LCDPANEL N5110, LANDSCAPE,GP5,GP6,GP7, 177
>


Also a big thanks for all the work on V6.02.00, haven't yet had a chance for some further testing due to this mad fire season here in VIC AUS.

Regards,
Lyle.
Edited 2026-02-01 23:53 by mozzie
 
Posted: 02:15pm
01 Feb 2026
Copy link to clipboard
mozzie
Senior Member

G'day WJSMarine,
These displays are great for low power and daylight readable applications.

I use the following connections and settings:
SCLK=GP2, DIN(MOSI)=GP3, D/C=GP5, RES=GP6, SCE=GP7
OPTION SYSTEM SPI GP2,GP3,GP4
OPTION LCDPANEL N5110,L,GP5,GP6,GP7

And this to test the display with the temp from a TMP36 sensor on GP28

' Program to display temps on N5110 Display
' TMP36 sensor on GP28
' Deg C symbol is "(" in font 9

Option vcc 3.23
Option default integer
SetPin gp28,ain

CLS

Do
 Settext
 For i = 1 To 5
   Settemp
   Pause 1000
 Next
 Box 0,0,28,24,,1,1
 Text 3,4,"SET",,7,1,0,1
 Text 0,12,"TEMP",,7,1,0,1
 For i = 1 To 6
   fgc=1:bgc=0
   If i Mod 2 = 0 Then fgc=0:bgc=1
   Text 28,0,Str$(20+i)+".0(",,9,1,fgc,bgc
   settemp
 Pause 1000
 Next
Loop while inkey$=""

Sub Settext
 Box 0,0,28,24,,0,0
 Text 3,4,"CAB",,7,1
 Text 0,12,"TEMP",,7,1
 Text 3,52,"EXT",,7,1
 Text 3,28,"EXT",,7,1
 Text 0,36,"TEMP",,7,1
 Text 28,0,"25.4(",,9,1
'  Text 28,24,"41.2(",,9,1
End Sub

Sub Settemp
 Ctmp$=Str$(100*(Pin(gp28)-0.5),2,1)+"("
 Text 28,24,Ctmp$,,9,1
End Sub

End

' brutal_s_12x24.bas
DefineFont #9
 1A20180C 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 7EC00300 07666006 00003CE0 7EE00700 06600006 E0076000 0000007E
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 F0000FF0 0000000F 00000000
 F0000F00 00F0000F 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 1F000000 801FF881 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 00000FF0
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 7F000000 E77FFEE7 0EE7700E 700EE770 E7700EE7 0EE7700E 700EE770
 E77F0EE7 00E07FFE 07000000 011FF000 70011FF0 07700007 00077000 70000770
 07700007 C11F7000 00C01FFC 7F000000 E77FFEE7 0EE0700E 000EE000 E77FFEE7
 000770FE 70000770 E77F0007 00E07FFE 7F000000 E77FFEE7 0EE0700E 000EE000
 E00FFEE0 0EE000FE 700EE000 E77F0EE7 00E07FFE 70000000 E7700EE7 0EE7700E
 700EE770 E77FFEE7 0EE000FE 000EE000 E0000EE0 00E0000E 7F000000 E77FFEE7
 00077000 70000770 E77FFE07 0EE000FE 700EE000 E77F0EE7 00E07FFE 7F000000
 E77FFEE7 00077000 70000770 E77FFE07 0EE770FE 700EE770 E77F0EE7 00E07FFE
 7F000000 E77FFEE7 0EE0700E 000EE000 E0031EE0 7080077C 07700007 00077000
 00000770 7F000000 E77FFEE7 0EE7700E 700EE770 E77FFEE7 0EE770FE 700EE770
 E77F0EE7 00E07FFE 7F000000 E77FFEE7 0EE7700E 700EE770 E77FFEE7 0EE000FE
 000EE000 E77F0EE0 00E07FFE
End DefineFont

And it looks like this when you change the backlight LEDS to green:


This font is designed to be easy for a blind old fart like me to read  

Regards,
Lyle.
Edited 2026-02-02 00:27 by mozzie
 
Posted: 02:40pm
01 Feb 2026
Copy link to clipboard
mozzie
Senior Member

G'day,
A few more notes:

The units here have a RED PCB and there are a few issues with these LCD's:
The PCB is too thin and warps away from the zebra strip, losing connection.
The PCB is not gold plated and the connections for the zebra strip will tarnish, losing connection.
The displays are either second hand / NOS or a second, I have a couple with odd pixels around the display area always black. (See previous post)
A few have been dead on arrival but repairable, occasionally they cannot be revived  

Good luck  

Regards,
Lyle.
 
Posted: 02:57pm
01 Feb 2026
Copy link to clipboard
matherp
Guru

  Quote  Peter, sorry to report it looks like Pluto may have stumbled on a bug. As he reported, if you use OPTION LCDPANEL RESET it:

I assume you mean OPTION LCDPANEL DISABLE. I'll fix the issue but in the meantime you can probably use OPTION RESET to get rid of the N5110 (and everything else) then reload the other options
 
Posted: 12:31am
02 Feb 2026
Copy link to clipboard
WJSMarine
Newbie

Hi Lyle, many thanks for sharing, the fog is lifting and it's good to see different ways of achieving a result.

Yes, great little displays and excellent for apps where mA's are precious, as most of my designs (predominately weather and ocean related), are. To date I've not had any issues with these displays from eBay using 12F/16F/18F PICs, but will be on the lookout now that you have mentioned it.

I'd just like to add here, that maestro Peter and Geoff have created an excellent platform and it is obvious there are countless hours invested to get this far and continue into the future with further development. A very big THANK YOU to both and other, long-established contributors for keeping the ball rolling.

Kind regards,
Bill
 
   Page 1 of 2    
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026