Home / Work / Case study

Beanfield · Jul to Nov 2026

TV wall and wall bot

A wall of 8 screens shows 72 live channels at once, so a reported outage is confirmed against the real picture in seconds. I mapped the controller, built a Webex bot that changes the wall in plain words, made the reset safe, and put a live view of the wall into the monitoring GUI.

My roleOwner of the wall, bot and guides
Wall8 screens, 72 tiles, 5 GPUs
Channels193 in the source list
ResetVerified in 38 seconds

The problem

The wall was driven through the vendor's controller portal, one tile at a time by hand. The old bot needed exact commands such as wall panel 3 606. On 16 Aug 2026 the CTO asked for plain commands.

What I did

  1. Documented the wall end to end: source, transport, lab, controller and the 8 displays, in one script-built diagram.
  2. Mapped the controller: one server with five GPUs, 8 panels by 9 tiles = 72 tiles, decoding pinned two panels per GPU; channel list of 193 rows.
  3. Chose the 72 channels on purpose: the most-ticketed channels, the biggest audiences, complaint-sensitive sports and the French channels carried under CRTC rules.
  4. Built a Webex bot: status, help, channel list, set one panel, hero channel, five themes (news 16, sports 18, movies 20, lifestyle 19, french 19 channels) in small or medium layouts, and reset.
  5. Made every wall write go through a named function: snapshot, write, restart, verify. Reset back to normal applies and verifies in 38 seconds, all 8 panels active.
  6. Fixed a silent failure: the old bot container looked up while 97% of its polls (53,670 of 55,241) failed. That led to the rule "running is not working".
  7. 3 Nov 2026: one channel shown as a single picture across all 8 panels, and a Wall View page in the monitoring GUI with a live picture every 15 s and a 3-minute live video on request.
  8. Made remote access to the controller dependable, with self-healing every 5 minutes. Published the bot guide and the setup guide as knowledge articles.

Plain-word commands, a design decision

Two options: a language model to read commands, or a smarter rule-based reader. I chose the rule-based reader: no outside calls, testable offline, no extra security review. It accepts "put tsn 4 on monitor 3", "cp24 on 1, cnn on 2 and bbc world on 3" and place names such as "top left", never guesses, and offers a "did you mean" list. Built, tested offline and deployed on 23 Sep 2026; live check passed the same afternoon.

What was hard

  • Display numbers do not follow wall order (top row 5, 2, 3, 4; bottom row 1, 6, 7, 8).
  • A 4 by 4 rebuild was blocked, so the wall stays at 72 tiles.
  • Four satellite channels share one receiver on a different port.

Stack

Nextologies controller and portalWebex botsPythonDockerffmpeg with NVENCIPMI / BMCMesh VPNgit monorepo