RemoteSign ESP

Here is how you can build a functional RemoteSign client using your own ESP8266 hardware.

Newsflash!  You can now order them pre-assembled!

Here is a 64x256 pixel display

a 32x128 pixel display:  (The actual display area of the sign is 21mm x 6mm)


and a 64x128 display:     (The actual display area of the sign is 14mm x 12mm)

(Note: this animation was made from a series of still images and the scan of the digital camera and the scan lines of the actual display produce some fading in the text that is not really there)

Materials needed

  • OLED screen, either of these:
    • 128x64 OLED 0.96" screen with SSD1306 controller and I2C interface (22mm x 11mm  actual display area on a 27mm x 27mm circuit board)
    • 128x32 OLED 0.91" screen with SSD1306 controller and I2C interface (21mm x 6mm actual display area on a 38mm x12mm circuit board)
    • NewHaven 256x64 OLED screen with SSD1322 controller and SPI interface (67mm x 13mm actual display area on a 97mm x 32mm circuit board)
  • 5 Volt DC power supply (such as an old USB charger)
  • Wifi network with internet access
These items are readily available around the world. Your favorite online shopping web site is likely to have NodeMCU ESP8266 units as well as the 0.96" OLED screens.
Physical sizes may vary slightly.


Tools needed

Steps

1. Connect the OLED screen to your ESP8266 (see connection details below)

2. Install the Arduino IDE

3. Connect your ESP8266 to a USB port of your computer. You may need to install a driver.

4. Set up the board manager in File-> Preferences and enter:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
in the field: Additional Boards manager URLs

4. Open Boards Manager from Tools -> Board menu and install esp8266 platform. Then select "NodeMCU 1.0 (ESP-12E Module), under Tools->Board
Set the upload speed, & Flash size, as shown above and pick the serial port to which your ESP8266 is connected, in the Port submenu.

5. Install WiFiManager library
Download the zip file at https://github.com/tzapu/WiFiManager by clicking on the green button and the clicking "Download ZIP"
In the Arduino IDE, goto Sketch-> Include library->Add .ZIP Library...
Navigate to the downloaded library ZIP file and select it.

6. Install ESP8266httpUpdate library (I think is is part of the ESP8266 stuff already)

7. Download the RemoteSign loader sketch, place it in a folder called RemoteSignLoader, and open it in the Arduino IDE (double click on the file RemoteSignLoader.ino)

8. Open the serial monitor (click the magnifier icon at extreme top right in IDE) so that you can see any error conditions (such as incorrect wifi password, etc.)

9. Compile and download the sketch to your ESP8266
To compile and download, click here:

Note, initially the compiler will stop with this display:
This is where you select the type of display you are using. Place // at the start of the line highlighted in pink and remove the // from the line that matches your display. Then compile and download again:

10. You can also add your WiFi network name and password by editing these lines:

// if you wish to skip the phone setup, you can enter your wifi credential here:
char ssid[] = "your wifi name"; // name of your wifi network
char password[] ="your wifi password"; // password for your wifi network


Note: nothing will display on the screen yet... but the serial monitor will tell you you need to reset the ESP8266 when it is ready for the next step.

11. Once the sketch has completed downloading, reset the ESP8266
(unplug it and plug it in again)

Nothing can appear on the screen until it has loaded the software, so wait a minute or so until it updates itself and reboots. Once it reboots it should turn the screen on.

12. After installing RemoteSign, it will reboot and your RemoteSign should be ready. It should display its name and IP address that you can use to connect to it from another RemoteSign, such as the Windows version.
In the example above, it indicates its network name is remotesignc6cf88
You can enter that name into a copy of RemoteSign that needs to connect to it. If the connection fails add .lan or .local to its end;  remotesignc6cf88.lan If that still fails use its IP address (192.168.86.172 in this example). (Note fuzzy screen is because it still has its protective cover on!)

If the wifi name and password changes so it cannot get back on-line, it will create a wifi access point called "RemoteSign". You can connect to that with a phone to configure the wifi again.

Licence

The library used to support the screens is the u8g2 library which is Copyright (c) 2016, olikraus@gmail.com

Hookup details

Here are the connection details for the OLED screens

0.96" 128x64 SSD1306 I2C 

NodeMCU  display
3V VCC
GND GND
D1 SCL or SCK
D2 SDA

See here for how to connect it up.

0.91" 128x32 SSD1306 I2C




NodeMCU  display
3V VCC
GND GND
D1 SCK or SCL
D2 SDA

NewHaven 256x64 OLED SPI

NodeMCU  display
GND      1 VSS
3V3      2 VDD
         3 NC
D2       4 D/C
GND      5 R/W W/R
GND      6 E/RD
D5       7 CLK
D7       6 SDIN
         9 NC
GND      10 GND
GND      11 GND 
GND      12 GND
GND      13 GND
GND      14 GND
D1       15 /RES
D8       16 /CS
GND      17 BS1
GND      18 BS0