Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • 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
Code Project
  1. Home
  2. The Lounge
  3. There be dragons!

There be dragons!

Scheduled Pinned Locked Moved The Lounge
designhardwarecomgraphicsiot
3 Posts 3 Posters 0 Views 1 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.
  • H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #1

    I've been trying to spelunk through Espressif's RGB interface panel API. Some background: RGB interface LCD screens accept 1 wire per color bit. So 16-bit color takes 16 pins not including the sync and control pins. The framebuffer is on the MCU, not on a display controller. The MCU uses DMA to drive the color pins, essentially sending data to the display on every refresh cycle, using memory provided by the MCU. This isn't trivial to drive 16 pins via DMA, but the ESP32-S3 has hardware for doing so. They even provide an API for using that hardware, which is fortunate. However, I have *never* seen that API used in the wild without it being hacked to ribbons by whomever created their graphics libs to interface with it. In some cases I've even seen the i8080 interface hijacked and used to drive RGB screens! I don't know why, except that out of the box, I've never gotten the RGB interface to work with any display I have. Hacking it produces results, but that's the thing - I don't know how to hack it. All I've been able to do is copy from others who have done it. That said, others haven't updated their code to support changes in the latest version of Espressif's framework. Since that framework version is also tethered to Arduino, when they updated Arduino, they broke all those hacks. I've found a newer set of hacks that work with the newer framework on one RGB display, but I have had no luck getting it to work with other displays yet. If your API can only be used by hacking the utter life out of it, maybe it's time to rework your API. Just sayin'

    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

    Mike HankeyM D 2 Replies Last reply
    0
    • H honey the codewitch

      I've been trying to spelunk through Espressif's RGB interface panel API. Some background: RGB interface LCD screens accept 1 wire per color bit. So 16-bit color takes 16 pins not including the sync and control pins. The framebuffer is on the MCU, not on a display controller. The MCU uses DMA to drive the color pins, essentially sending data to the display on every refresh cycle, using memory provided by the MCU. This isn't trivial to drive 16 pins via DMA, but the ESP32-S3 has hardware for doing so. They even provide an API for using that hardware, which is fortunate. However, I have *never* seen that API used in the wild without it being hacked to ribbons by whomever created their graphics libs to interface with it. In some cases I've even seen the i8080 interface hijacked and used to drive RGB screens! I don't know why, except that out of the box, I've never gotten the RGB interface to work with any display I have. Hacking it produces results, but that's the thing - I don't know how to hack it. All I've been able to do is copy from others who have done it. That said, others haven't updated their code to support changes in the latest version of Espressif's framework. Since that framework version is also tethered to Arduino, when they updated Arduino, they broke all those hacks. I've found a newer set of hacks that work with the newer framework on one RGB display, but I have had no luck getting it to work with other displays yet. If your API can only be used by hacking the utter life out of it, maybe it's time to rework your API. Just sayin'

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

      Mike HankeyM Offline
      Mike HankeyM Offline
      Mike Hankey
      wrote on last edited by
      #2

      You'll get it, just cast your usual spell and it will happen. :)

      A home without books is a body without soul. Marcus Tullius Cicero PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com Latest Article: EventAggregator

      1 Reply Last reply
      0
      • H honey the codewitch

        I've been trying to spelunk through Espressif's RGB interface panel API. Some background: RGB interface LCD screens accept 1 wire per color bit. So 16-bit color takes 16 pins not including the sync and control pins. The framebuffer is on the MCU, not on a display controller. The MCU uses DMA to drive the color pins, essentially sending data to the display on every refresh cycle, using memory provided by the MCU. This isn't trivial to drive 16 pins via DMA, but the ESP32-S3 has hardware for doing so. They even provide an API for using that hardware, which is fortunate. However, I have *never* seen that API used in the wild without it being hacked to ribbons by whomever created their graphics libs to interface with it. In some cases I've even seen the i8080 interface hijacked and used to drive RGB screens! I don't know why, except that out of the box, I've never gotten the RGB interface to work with any display I have. Hacking it produces results, but that's the thing - I don't know how to hack it. All I've been able to do is copy from others who have done it. That said, others haven't updated their code to support changes in the latest version of Espressif's framework. Since that framework version is also tethered to Arduino, when they updated Arduino, they broke all those hacks. I've found a newer set of hacks that work with the newer framework on one RGB display, but I have had no luck getting it to work with other displays yet. If your API can only be used by hacking the utter life out of it, maybe it's time to rework your API. Just sayin'

        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

        D Offline
        D Offline
        Daniel Pfeffer
        wrote on last edited by
        #3

        If waving a dead chicken over the code doesn't work, try a live cat. :)

        Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

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


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups