Jump to content

Buse RGB LED Panel

From base48
Revision as of 21:46, 22 March 2026 by Thebys (talk | contribs) (TODO)


What it is

A segment of a panel with 768 RGB LEDs on one side driven by chains shift registers on the other side.

The PCB is marked:

BTC004.1
24x32_10
RGB

Not sure which city is it operated in. Brno has green only panels and Bratislava got RGB but of different size.

Theory of operation

Pixmap split into segments, like on the panel

LEDs are organized into 24 x 32 pattern on one side, drivers are organized into a grid of 18 x 16 drivers. Three lines of LEDs snake around and are driven by a line of drivers on the other side.

Rows do have common CLK and LE signals. This means both halves of the row must be fed in parallel, but rows are entirely independent of each other.

LED & driver layout
LED & driver layout

Mounting

Legs and mount that was used to hold Arduino Uno

Needs figuring out.

Panel got a plenty of mounting holes.

There's a diffuser (from an old LCD?).

TODO: Pics

Resources

Repository with sources to schematic, Arduino driver and ESPHome component: https://codeberg.org/lubko/buse004-1

Partial schematic of the panel: https://codeberg.org/lubko/buse004-1/src/branch/main/buse-btc004.pdf

Schematic of the 8-bit Arduino-based driver: https://codeberg.org/lubko/buse004-1/src/branch/main/arduino-adapter-buse-btc004.pdf

Schematic of the 4-bit (9 pins) ESP8266-based driver: https://codeberg.org/lubko/buse004-1/src/branch/main/esp8266-adapter-buse-btc004.pdf

Mounts: https://codeberg.org/lubko/buse004-1/src/branch/main/mounts-buse-btc004.FCStd

ESPHome integration

  external_components:
    - source:
        type: git
        url: https://codeberg.org/lubko/buse004-1
        path: ./
      components: [ btc004 ]
  
  image:
    - file: https://codeberg.org/lubko/buse004-1/raw/branch/main/tux.xpm
      type: rgb565
      id: tux
    - file: https://codeberg.org/lubko/buse004-1/raw/branch/main/48.gif
      type: rgb565
      id: base48
  
  display:
    platform: btc004
    le_pins: [ GPIO05 ]
    clk_pins: [ GPIO04, GPIO15, GPIO02, GPIO00 ]
    data_pins: [ GPIO16, GPIO14, GPIO12, GPIO13 ]
    update_interval: 10666ms
    lambda: |-
      static bool state;
      it.image(0, 0, (state = !state) ? id(tux) : id(base48));

Pictures

TODO

  • Port to ESP*
  • Hook to Home Assistant
  • Figure out physical mounting
  • hailsatan