Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. Trying to bitbang i2c oled screen, using SSD1306Ascii library

Trying to bitbang i2c oled screen, using SSD1306Ascii library

Scheduled Pinned Locked Moved Development
12 Posts 4 Posters 2.4k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mfalkviddM Offline
    mfalkviddM Offline
    mfalkvidd
    Mod
    wrote on last edited by
    #3

    on the other hand, the SSD1306Ascii library seems unable to support software i2c.
    https://github.com/greiman/SSD1306Ascii/blob/master/src/utility/AvrI2c.h assumes hardware i2c

    1 Reply Last reply
    0
    • alowhumA Offline
      alowhumA Offline
      alowhum
      Plugin Developer
      wrote on last edited by
      #4

      @mfalkvidd Yes, that's what I ran into too.

      Screens that can be controlled through software serial might be an option. So far though it seems that most Aliexpress shops call I2C screens "serial"..

      1 Reply Last reply
      0
      • BartEB Offline
        BartEB Offline
        BartE
        Contest Winner
        wrote on last edited by BartE
        #5

        Hi @alowhum why using the SPI variant?

        This will require only one digital IO pen for the chip select (CS pin) the rest is shared with the radio SPI interface (MOSI, MISO, SCK, CE and power off course)

        1 Reply Last reply
        0
        • alowhumA Offline
          alowhumA Offline
          alowhum
          Plugin Developer
          wrote on last edited by
          #6

          I don't quite follow. Do you mean I should use the SPI version of the screen?
          Since I am using NRF24 as a radio I thought that might not be possible, since it already occupies the Arduino Nano's SPI interface?

          mfalkviddM 1 Reply Last reply
          0
          • R Offline
            R Offline
            reinhold
            Hardware Contributor
            wrote on last edited by
            #7

            Another idea might be to connect all analog sensors to I2C Analog-digital converters like the ADS1115:
            https://www.aliexpress.com/store/product/I2C-ADS1115-16-Bit-ADC-4-channel-Module-with-Programmable-Gain-Amplifier-2-0V-to-5/324775_32903062908.html

            As you can hook up multiple devices to the same i2c bus, simply attach the OLED and two of those ADS1115 boards (apparently you can assign up to 7 different I2C addresses to the ADC boards...) to the I2C bus.

            1 Reply Last reply
            1
            • R Offline
              R Offline
              reinhold
              Hardware Contributor
              wrote on last edited by
              #8

              If you insist on connecting the analog sensors to the arduino and switch to a software I2C implementation on non-hardware I2C pins, you might simply extend the SSD1306Ascii library. It currently has classes for the SSD1306 over the AVR hardware i2c, another class for generic Wire implementations (not tailored to atmel chips; e.g. I'm using it on nrf51822), and the SPI devices.

              Looking at the SoftwareI2CLibrary docs, it appears that they even provide a Wire interface (SoftWire.h), so you might even get away with the SSD1306AsciiWire class for the OLED.

              If that does not work, you'll have to write your own software I2C implementation for the SSD1306Ascii class (e.g. takt SSD1306AsciiWire, rename it to SSD1306AsciiSoftI2C and adjust it to use the SoftwareI2C library for all I2C communication).)

              1 Reply Last reply
              1
              • alowhumA alowhum

                I don't quite follow. Do you mean I should use the SPI version of the screen?
                Since I am using NRF24 as a radio I thought that might not be possible, since it already occupies the Arduino Nano's SPI interface?

                mfalkviddM Offline
                mfalkviddM Offline
                mfalkvidd
                Mod
                wrote on last edited by
                #9

                @alowhum SPI is a shared bus. Many devices can use it. Which device is active is controlled by the CS pin.

                1 Reply Last reply
                1
                • alowhumA Offline
                  alowhumA Offline
                  alowhum
                  Plugin Developer
                  wrote on last edited by
                  #10

                  Thanks everyone. That's a lot to think about.

                  1 Reply Last reply
                  0
                  • alowhumA Offline
                    alowhumA Offline
                    alowhum
                    Plugin Developer
                    wrote on last edited by
                    #11

                    This looks interesting: a completely serial screen for $4:
                    https://www.aliexpress.com/item/1-77-1-8-128-160-HMI-Intelligent-Smart-USART-UART-Serial-TFT-LCD-Module-Display/32908921322.html

                    1 Reply Last reply
                    1
                    • alowhumA Offline
                      alowhumA Offline
                      alowhum
                      Plugin Developer
                      wrote on last edited by
                      #12

                      For anyone finding this: I got that 'smart' LCD screen that can be controlled with serial commands. It's awesome!

                      The screen now displays a bar graph for all 6 moisture sensors (irrigation controller).

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      11

                      Online

                      11.7k

                      Users

                      11.2k

                      Topics

                      113.0k

                      Posts


                      Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • MySensors
                      • OpenHardware.io
                      • Categories
                      • Recent
                      • Tags
                      • Popular