The Fewest ESP8266 IO Pins to Drive a Large RGB Matrix?

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ย. 2024
  • RGB LED matrix displays intended for use in video walls are controlled using a dozen or so data and control input pins. Microcontrollers such as the ESP8266, these GPIO pins are in short supply. A popular method by which an ESP8266 can drive such a display is by using the PxMatrix library which required nearly every IO pin to be used to drive the matrix inputs. This includes the I2C pins (D1, D2) and the D4 data pin often used for 1-Wire protocol by Wemos shields. Currently it is not possible for an ESP8266 to drive a video wall matrix and use Wemos sensor shields at the same time.
    However by using a few 74xx ICs the number GPIO pins needed to drive the RGB matrix can be reduced to as little as 3. This potentially will allow an ESP8266 to drive a large RGB panel and still have the pins left free which can be used with many of the Wemos shields.
    Adafruit matrix library
    github.com/ada...
    Ray's Logic website on RGB matrix panels
    www.rayslogic.com/propeller/Programming/AdafruitRGB/AdafruitRGB.htm
    PxMatrix library
    github.com/2do...
    Brian Lough - hooking up an RGB Matrix
    • RGB LED Matrix with an...
    Brian Lough's D1 Mini Matrix Shield on Tindie
    www.tindie.com...
    Kris Cochrane - soldering the RGB matrix
    • A rat's nest! - Perman...
    Andreas Spiess - Wemos shields and pin assignements
    • #106 Wemos ESP8266 Min...
    Wemos shields and they pins they use
    wiki.wemos.cc/...

ความคิดเห็น • 17

  • @sargetester99
    @sargetester99 5 ปีที่แล้ว

    Very nice work. I would definitely like to see more on this.

  • @BrianLough
    @BrianLough 5 ปีที่แล้ว +3

    This video was amazing, well done! I think you already even have a v1.1 version of the board as well, but if you need anymore v1 boards for testing let me know, I should have some spares

  • @Davedarko
    @Davedarko 5 ปีที่แล้ว +1

    When I saw the title picture and thought you've spent money for nothing (and chicks for free)...
    God, I hope someone get's the Dire Straits lyrics I was going for :D

    • @bornach
      @bornach  5 ปีที่แล้ว +1

      It was meant to reference Dire Straits who in turn ripped off the tune from "Don't Stand So Close to Me"

  • @browaruspierogus2182
    @browaruspierogus2182 2 ปีที่แล้ว

    that's maxed out transfer for 4bit x3 = 12 bit colors. Still not sure how exactly data is transferred with single spi

  • @MaxintRD
    @MaxintRD 5 ปีที่แล้ว +2

    Hi bornach, interesting video! I liked your explanation of bitplanes, a subject new to me. Thank you! +1
    (I'll have to watch it once more to grasp your use of the logic gates..)
    Perhaps the I2C driven PCF8574 can be helpful here. Only two MCU pins (SDA/SCK) give 8 output pins (16 pins for the PCF8575). The ESP8266 allows for the high I2C rate. I made an Adafruit GFX compatible Arduino library to drive the Nokia 5110 display using the I2C backpack module which also uses a PCF8574 chip. In an earlier YT video I gave a demonstration and I included the pin-out of that module in that video as well as in my GitHub account.

  • @UnexpectedMaker
    @UnexpectedMaker 5 ปีที่แล้ว +2

    Yeah, super clever, well done!

  • @RoterFruchtZwerg
    @RoterFruchtZwerg 5 ปีที่แล้ว +1

    Interesting approach. But you could just chain one additional shift register (74hc595) in front of the matrix. That gives you 8 additional Outputs you can use for row selection in any order you want just by sending one additional byte for each row. No need for complicated v-sync :)

    • @bornach
      @bornach  5 ปีที่แล้ว

      Yup. That would work too.
      I wanted to leave open the possibility of latching in one row of pixels and then optionally incrementing the row more than once to easily create vertical bars or do the Gigatron TTL trick of skipping rows to trade resolution for computation time.

  • @chaoxin4138
    @chaoxin4138 3 ปีที่แล้ว

    sir, i see you can display text in multi colors, not single color as normal, how did you do that? thanks

  • @haxxx0rz
    @haxxx0rz 4 ปีที่แล้ว

    Glad I stumbled upon your video. Very helpful, thanks for sharing!

  • @milkehilton1934
    @milkehilton1934 3 ปีที่แล้ว

    does any one no how to do more then one screen on 64x32 led matrix the arduino ones a bit out dated you can only use one at a time

  • @TheTinkerDad
    @TheTinkerDad 5 ปีที่แล้ว

    Tbh had to watch it twice to properly comprehend it - not because the video was bad, but because I'm a noob - but I really wanted to understand how did you pull it off with a 8266. Nicely done!

    • @bornach
      @bornach  5 ปีที่แล้ว

      To be fair, I cut a lot out of the middle because it felt like it was dragging. Just me rambling on with nothing happening on screen. The detailed analysis I would leave to be expanded upon the project Web page.

  • @boyfinn6751
    @boyfinn6751 3 ปีที่แล้ว

    Could this be applied to the DMD2 library? I'm too short on I/O and my panels are only monochrome, so maybe i could save on program memory if a monochrome display library is used?

    • @bornach
      @bornach  3 ปีที่แล้ว

      I don't think so. The DMD row selection is done differently. A, B, C, D pins select 1/4 of panel. So I'd use a CD4017 instead of a binary counter.