First lcd display

A project log for WiFi Webradio with ESP8266 and VS1053

A wifi web radio player with only low costs boards. KaRadio, listen the world.

jp cocatrix 10/30/2016 at 21:4610 Comments

The very first prototype of the minimal display that Karadio will use.

It is made with a tiny lcd 84X48 84 * 48 Nokia Module 5110 Lcd

The next one (waiting for it) will be a 0.96" I2C IIC SPI Serial 128X64 White OLED LCD LED Display Module for Arduino

See it at:

Source and description (see define.h) at


ringokarner wrote 11/07/2016 at 19:39 point

Unable to edit sketch :( Arduino memory problem.

Sketch uses 7,012 bytes (22%) of program storage space. Maximum is 30,720 bytes.
Global variables use 2,408 bytes (117%) of dynamic memory, leaving -360 bytes for local variables. Maximum is 2,048 bytes.

  Are you sure? yes | no

jp cocatrix wrote 11/07/2016 at 19:43 point

In french, sorry

Linking everything together...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -w -Os -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p  -o "C:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp/karadioNokia5110.ino.elf" "C:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp\sketch\karadioNokia5110.ino.cpp.o" "C:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp/core\core.a" "-LC:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp" -lm
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0  "C:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp/karadioNokia5110.ino.elf" "C:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp/karadioNokia5110.ino.eep"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -R .eeprom  "C:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp/karadioNokia5110.ino.elf" "C:\Users\jp\AppData\Local\Temp\build68ab7b9c2bcb5b02978d33f4baa74706.tmp/karadioNokia5110.ino.hex"
Utilisation de la bibliothèque EEPROM version 2.0 dans le dossier: C:\Users\jp\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.14\libraries\EEPROM

Le croquis utilise 6 212 octets (20%) de l'espace de stockage de programmes. Le maximum est de 30 720 octets.
Les variables globales utilisent 1 608 octets (78%) de mémoire dynamique, ce qui laisse 440 octets pour les variables locales. Le maximum est de 2 048 octets.
La mémoire disponible faible, des problèmes de stabilité pourraient survenir.

  Are you sure? yes | no

jp cocatrix wrote 11/07/2016 at 19:53 point

Too many fonts?

Try to use PROGMEM with  _P version of call

  Are you sure? yes | no

ringokarner wrote 11/07/2016 at 20:24 point

Not so much education :D

  Are you sure? yes | no

jp cocatrix wrote 11/07/2016 at 23:04 point

I am studiing another version with the full font.

  Are you sure? yes | no

ringokarner wrote 11/06/2016 at 15:09 point

I add some baltic characters, like:

,{0x3D, 0x42, 0x42, 0x42, 0x3D} // 99 Ö

,{0x7D, 0x12, 0x13, 0x12, 0x7D} // 8E Ä

,{0x3D, 0x40, 0x40, 0x40, 0x3D} // 9A Ü
,{0x3C, 0x41, 0x40, 0x21, 0x7c} // 81 ü
,{0x38, 0x45, 0x45, 0x45, 0x38} // 93 õ
,{0x38, 0x45, 0x44, 0x45, 0x38} // 94 ö
,{0x20, 0x55, 0x54, 0x55, 0x78} // 84 ä

but do not show them?

Thank You

  Are you sure? yes | no

jp cocatrix wrote 11/06/2016 at 15:16 point

Look at ScrnFuncts.ino, i map some to ascii.

Change what you need (and send me the new file please)

Change these lines


void LcdCharacter(char character)
    if ((character > 0x7F)||(character < 0x20)) character = 0x20;


And may be also:

void removeUtf8(byte *characters)
  int index = 0;
  while (characters[index])
    if ((characters[index]) == 195)
      characters[index] = 'x';
//      Serial.println((characters[index]));
      characters[index+1] +=64;
      int sind = index+1;
      case 0xFF: case 0xFD:
        characters[sind] = 'y'; break;     
      case 0xDF:
        characters[sind] = 'Y'; break;  
      case 0xE7:  
        characters[sind] = 'c'; break;     
      case 0xC7:
        characters[sind] = 'C'; break;  
      case 0xF2: case 0XF3: case 0xF4: case 0xF5: case 0xF6:
        characters[sind] = 'o'; break;     
      case 0xD2: case 0XD3: case 0xD4: case 0xD5: case 0xD6:
        characters[sind] = 'O'; break;             
      case 0xEC: case 0XED: case 0xEE: case 0xEF:
        characters[sind] = 'i'; break;       
      case 0xCC: case 0XCD: case 0xCE: case 0xCF:
        characters[sind] = 'I'; break;   
      case 0xF9: case 0XFA: case 0xFB: case 0xFC:
        characters[sind] = 'u'; break;       
      case 0xD9: case 0XDA: case 0xDB: case 0xDC:
        characters[sind] = 'U'; break;       
      case 0xE8: case 0XE9: case 0xEA: case 0xEB:
        characters[sind] = 'e'; break;
      case 0xC8: case 0XC9: case 0xCA: case 0xCB:
        characters[sind] = 'E'; break;
      case 0xE3: case 0XE0: case 0xE1: case 0xE2: case 0xE4: case 0XE5: case 0xE6:
        characters[sind] = 'a'; break;
      case 0xC3: case 0XC0: case 0xC1: case 0xC2: case 0xC4: case 0XC5: case 0xC6:
        characters[sind] = 'A'; break;
      default: ;
      while (characters[sind]) { characters[sind-1] = characters[sind];sind++;}
      characters[sind-1] = 0;     


  Are you sure? yes | no

jp cocatrix wrote 11/02/2016 at 19:18 point


  Are you sure? yes | no

ringokarner wrote 11/02/2016 at 19:09 point

Nice work! I am interested in this sketch and wirning diagram. Thank You!

  Are you sure? yes | no

yo2ldk wrote 10/31/2016 at 09:39 point

nice made it !

  Are you sure? yes | no