Wiznet makers

lawrence

Published April 19, 2026 ©

143 UCC

9 WCC

32 VAR

0 Contests

0 Followers

0 Following

Original Link

dakbot

Converts Daktronics AllSport 5000 serial RTD into JSON/MQTT over wired W5500 Ethernet (< 12 ms RTT), powering live graphics, signage and smart-arena automations

COMPONENTS Hardware components

Espressif - ESP32

x 1


WIZnet - W5500

x 1


PROJECT DESCRIPTION

 

Project Overview

Dakbot Gateway turns the proprietary RTD stream from a Daktronics AllSport 5000 scoreboard into open, IP-friendly JSON and MQTT. Thanks to the on-board WIZnet W5500 Ethernet controller the link is hard-wired, immune to stadium Wi-Fi congestion and guarantees a sub-12 ms end-to-end delay—fast enough for frame-accurate broadcast graphics and real-time arena automation.

Daktronics AllSport 5000 Series | NESC Timekeeping Wiki | Fandom
Outdoor Video Scoreboards

Key Features

  • RTD → JSON/MQTT – decodes position/value packets into a human-readable, sport-agnostic schema.
  • Deterministic Ethernet (W5500) – 1–2 ms network jitter vs. dozens on crowded Wi-Fi.
  • Hardware TCP/IP offload – frees the ESP32-S3 to parse RTD and serve the web UI without drops.
  • OTA & Web UI – pick sport mode, DHCP/static, MQTT broker, or upload new firmware from any browser.
  • PoE ready – a single UTP run provides both power and data, perfect for press-table installs.

Hardware Setup

AllSport 5000 RTD (DB-25) ─► MAX3232 ─► UART RX (ESP32-S3-ETH)
ESP32-S3-ETH ↔ W5500 (SPI) ─► RJ-45 ─► Stadium LAN

Core Code Snippet

import network, uasyncio as aio
nic = network.LAN(mdc=23, mdio=18, phy_type=network.PHY_W5500)
nic.active(True); nic.ifconfig_dhcp()

from daktronics import SerialReader
from webserver  import serve

async def main():
    aio.create_task(SerialReader().run())   # RTD → dict
    await serve()                           # JSON & MQTT endpoints
aio.run(main())
{
    "HomeTeamName": "HOME",
    "AwayTeamName": "GUEST",
    "HomeTeamScore": "9",
    "AwayTeamScore": "4",
    "Inning": "9",
    "InningText": "9TH",
    "InningDescription": "BOT of 9TH",
    "TB": "▼",
    "top": "",
    "bottom": "▼",
    "Ball": "0",
    "Strike": "0",
    "Out": "0",
    "Count": "0-0",
    "Outs": "⚪⚪⚪"
}
Network Architecture
[AllSport 5000] --RS-232--> [ESP32-S3-ETH + W5500] --Ethernet--> LAN
                                                |--> HTTP  /status.json
                                                |--> MQTT  /scoreboard/status

Performance Results

MetricValue
RTD-to-JSON round-trip≤ 12 ms (wired LAN)
Link reliability72-h soak test: 0 packet loss
MCU load< 25 % @ 20 RTD pkt/s + HTTP

Lessons Learned

Stadium Wi-Fi’s variable latency made precise graphics impossible—swapping to W5500 Ethernet delivered rock-solid timing. Hardware TCP/IP offload kept MicroPython responsive even under high serial and web traffic.

Future Improvements

  • PoE HAT for true single-cable deployment
  • TLS/HTTPS API
  • Parser for AllSport 7000 & soccer mode

Challenges & Solutions

ChallengeSolution
RTD frame errorsCheck-sum validation, discard corrupt frames
Wi-Fi jitter & dropsMigrated to W5500 wired Ethernet

Why Choose W5500 Ethernet over Wi-Fi?

  1. Predictable latency – graphics update within 1–2 video frames.
  2. RF-noise immunity – unaffected by crowded 2.4/5 GHz channels, metal bleachers or LED scoreboards.
  3. Hardware offload – socket handling in silicon, leaving cycles for RTD parsing.
  4. PoE support – power and data through the same cable, reducing install cost.

Potential Applications

DomainExample
Live streaming & broadcastAuto-update OBS/vMix score-bug via JSON or direct plug-ins
Sports analyticsFeed real-time numbers to Python notebooks (win-prob models, shot charts)
Digital signageLED ribbon boards, concourse displays subscribe to MQTT
Smart-venue automationHome-Assistant triggers lights, sounds on score change
Fan mobile appsPublish through HiveMQ → WebSocket → instant score push
 

About the Creator
https://chrissabato.com/#about

Chris Sabato is the Director of Athletic Communications at Willamette University and a longtime creative technologist in college athletics. His work spans live sports production, video, graphics, photography, web management, and digital storytelling, and he is especially known for building practical in-house tools that improve efficiency and simplify real-time media workflows. That blend of creative production and engineering-minded problem solving is clearly reflected in Dakbot, a compact system designed to turn scoreboard data into reliable JSON and MQTT feeds for live graphics and venue automation.

 

Q 1. What is Dakbot Gateway?
A plug-and-play device that converts the RS-232 “Real-Time Data” (RTD) stream from a Daktronics AllSport 5000 scoreboard into JSON and MQTT over wired Ethernet.

Q 2. Do I have to modify the AllSport 5000 console?
No. Dakbot only plugs into the factory RTD port on the back of the console; the scoreboard hardware and firmware remain untouched.

Q 3. What hardware does Dakbot use?
A Waveshare ESP32-S3-ETH board with an on-board WIZnet W5500 Ethernet controller and a MAX3232 level-shifter for safe RS-232 ↔ 3.3 V conversion.

Q 4. What is RTD?
RTD (Real-Time Data) is a continuous serial feed—19200 baud, 8-N-1—that the AllSport 5000 transmits to mirror the live scoreboard state (scores, clock, period, etc.).

Q 5. How fast is the JSON round-trip?
End-to-end latency from RTD byte arrival to JSON or MQTT publish is under 12 milliseconds on a wired LAN.

Q 6. Why choose W5500 Ethernet instead of Wi-Fi?
W5500 provides hardware TCP/IP offload, 1–2 ms network jitter, and zero packet loss—even in RF-noisy stadiums where Wi-Fi drops or stalls.

 
Documents
Comments Write