This little addition really provides a lot of added information to your LiveSecitonal including the following…
- Airports are displayed by:
- Highest wind values on your map (user defined threshold)
- or all airports can be displayed
- or an Exclusive list of local area airports can be displayed
- Wind Speed and Direction
- A graphical arrow can depict the wind direction at each airport based on 8 cardinal positions on a compass
- or the actual numbers can be displayed, i.e. 180@15g20.
- Custom Welcome Message displays on boot and when weather is refreshed
- Local Time
- Zulu Time
- Local Time of when last weather update occurred
- A border can be displayed around the outside edge of each OLED if desired.
- The display can be inverted, in other words instead of the normal white text on black background the OLED can have black text on a white background.
The settings can be set so that the OLED’s can be mounted upside down, and/or wired backwards in order. This allows for build constraints and gives more flexibility.
The builder can use a single OLED without the need of a multiplexer, or up to 8 OLED’s can be incorporated with the use of a multiplexer. The addition of the multiplexer is not much more difficult than wiring a single OLED and provides for a greater amount of information to be displayed.
Shopping List
- OLED’s (Up to 8) – 5 pack $22.99
- Adafruit TCA9548A I2C Multiplexer – $8.95
- PCB Welding Board – $12.99 (If you want to solder this together for final mounting)
- Solid Wire Kit– $15.99 To solder components together
Steps
We recommend initially wiring this up using a bread board using a single OLED display without the multiplexer to ensure all of the wiring is properly set up. Once you verify this, then connect all your OLED’s to the multiplexer and verify all is working properly. Remember to update your settings to reflect the number of OLED’s being used at any given moment otherwise an error will occur.
Let’s take a close up look at each component.
Each OLED has four pins that are used. Looking at the front reading from left to right they are as follows. Note: some OLED displays will have more than 4 pins, but still have the following 4. Be sure to purchase OLED displays capable of using the I2C protocol.
- Ground
- Power
- SCL
- SDA
I would recommend wiring up one OLED in a bread board as shown above and connect up the ground and power wires and the SCL and SDA wires to the pi. Then set up your Settings Editor to reflect 1 OLED. Boot things up and make sure the OLED is functional. There is a ‘Run OLED Test Script’ that is located under the ‘Utilities’ menu that can be used for this purpose.
We have found they are easily broken and rendered unusable if the lower corners of the glass cracks. It is possible to apply a small dab of glue under the bottom corners which will help re-enforce these fragile areas.
Switch out each OLED and run the test again. Do this for all of your OLED’s to ensure they are functional before starting up and soldering.
The multiplexer is what allows you to connect up to eight OLED displays into your project.
The pins that connect the multiplexer to the pi, power, and ground are on the top left of the chip as pictured above. You will connect as follows…
VIN <-> Power
GND <-> Ground
SDA <-> Pi Pin 3
SCL <-> Pi Pin 5
RST – Disregard
A0 – Disregard
A1 – Disregard
A2 – Disregard
SD0 <-> First OLED SDA
SC0 <-> First OLED SCL
SD1 <-> Second OLED SDA
SC1 <-> Second OLED SCL
SC7 <-> Eighth OLED SCL
SD7 <-> Eighth OLED SDA
SC6 <-> Seventh OLED SCL
SD6 <-> Seventh OLED SDA
SC5 <-> Sixth OLED SCL
SD5 <-> Sixth OLED SDA
SC4 <-> Fifth OLED SCL
SD4 <-> Fifth OLED SDA
SC3 <-> Fourth OLED SCL
SD3 <-> Fourth OLED SDA
SC2 <-> Third OLED SCL
SD2 <-> Third OLED SDA
So for this part of the project to wire up the OLED’s you’ll be using physical pins 3 and 5 on the pi which are the BCM 2 SDA and BCM 3 SCL pins respectively.
Here is a wiring diagram that includes all the other features along with the 8 OLED’s.
What we have found works best is to mount the OLED’s on a the PCB board and solder them all in place with the Multiplexer. Then run the four wires needed to control the setup back to 4 pins that protrude out the back of the PCB board which can then be connected via jumper wires to your power, ground, and the two pins on the pi. Here is an example of that…
You can see we have daisy chained the power and ground wires along the OLED’s to the Multiplexer and then carried them on from the Multiplexer to the pins that the jumpers will connect to. These are visible just above the red power wires.
The yellow and blue wires connect each OLED individually to the corresponding pins on the multiplexer. There is and SCL and SDA pin on each OLED and there are eight pairs of them on the Multiplexer. So the first OLED SCL will connect to SC0 and the first OLED SDA will connect to the Multiplexer SD0. You will connect the second OLED’s SCL to the Multiplexer SC1 and its SDA to SD1. You will continue this mapping for all of your OLED’s up to a max of eight OLED’s.
There will be only 4 wires that connect the OLED module to the map, and only 2 of the four are connected to the RPI as noted earlier in this post. The mounting of the finished module can be done by placing it on top of the map and creating a bezel to finish it off, or for a cleaner look, cut a properly sized opening into the map itself and mount the OLED’s from the back so the display remains flush with the front of the map. Again, a bezel would be needed to finish off the look.
Below is a list of sites that will help learn more about OLED Displays. (Subject to change)
- https://www.raspberrypi-spy.co.uk/2018/04/i2c-oled-display-module-with-raspberry-pi/
- https://github.com/adafruit/Adafruit_Python_SSD1306/blob/master/Adafruit_SSD1306/SSD1306.py
- https://buildmedia.readthedocs.org/media/pdf/ssd1306/latest/ssd1306.pdf
- https://www.newhavendisplay.com/appnotes/datasheets/OLEDs/SSD1306.pdf
- https://iotexpert.com/2019/08/07/debugging-ssd1306-display-problems/
- https://www.youtube.com/watch?v=kSd5U9VzI9U
- https://www.youtube.com/watch?v=aMgIxXwtHbw&feature=youtu.be
- https://www.youtube.com/watch?v=hFpXfSnDNSY