LED ticker
A customizable scrolling LED ticker for AWTRIX NG
| System | AWTRIX NG Scripts |
|---|---|
| Firmware | AWTRIX NG |
| Topic | Miscellaneous |
| Built by | BR4ND |
| File | o66MSE7nRJhe.ax · 3.7 KB |
| Icons | 1 |
| Published | 25 Aug 2026 |
| Downloads | 4 |
A simple and highly customizable LED ticker for AWTRIX NG.
Enter your own message and control the appearance directly from the AWTRIX NG settings.
Features:
Customizable text
Scrolling on/off
Small or large text
Solid color
Rainbow colors
Blink effect
Fade effect
Adjustable effect speed
Adjustable scrolling speed
Left/right scrolling
Multiple scrolling modes
Adjustable gap between messages
Adjustable pause
All settings can be changed from the app settings without modifying the script.
Designed for 32×8 LED matrix displays such as the Ulanzi TC001 running AWTRIX NG.
o66MSE7nRJhe.ax
# @name LED Ticker
# @desc A simple and customizable LED ticker for AWTRIX NG
# @version 1.1
# @config message text "Text" default="BR4ND LED TICKER" maxlen=256
# @config scrolling bool "Scrolling" default=true
# @config font select "Font size" default=small options=small,large
# @config colorMode select "Color mode" default=solid options=solid,rainbow,blink,fade
# @config color color "Text color" default=#FFFFFF
# @config background color "Background color" default=#000000
# @config effectSpeed number "Effect speed" default=1000 min=100 max=5000 unit=ms
# @config speed number "Scroll speed" default=100 min=0 max=300 unit=%
# @config direction select "Direction" default=left options=left,right
# @config scrollMode select "Scroll mode" default=loop options=static,wrap,loop,bounce
# @config gap number "Gap" default=8 min=0 max=32 unit=px
# @config hold number "Pause" default=1000 min=0 max=5000 unit=ms
class LEDTicker
var message
var scrolling
var fontName
var colorMode
var color
var background
var effectSpeed
var speed
var direction
var scrollMode
var gap
var hold
var rainbow
def init()
self.message = store.get("message")
self.scrolling = store.get("scrolling")
self.fontName = store.get("font")
self.colorMode = store.get("colorMode")
self.color = store.get("color")
self.background = store.get("background")
self.effectSpeed = store.get("effectSpeed")
self.speed = store.get("speed")
self.direction = store.get("direction")
self.scrollMode = store.get("scrollMode")
self.gap = store.get("gap")
self.hold = store.get("hold")
self.rainbow = []
var length = size(self.message)
if length > 0
for i : 0 .. length - 1
var hue = (i * 360) / length
self.rainbow.push([self.message[i], hsv(hue, 100, 70)])
end
end
end
def blinkColor()
var period = self.effectSpeed
if period <= 0
return self.color
end
var phase = now_ms() % period
if phase < (period / 2)
return 0x000000
end
return self.color
end
def fadeColor()
var period = self.effectSpeed
if period <= 0
return self.color
end
var phase = now_ms() % period
var brightness
if phase < (period / 2)
brightness = (phase * 255) / (period / 2)
else
brightness = ((period - phase) * 255) / (period / 2)
end
if brightness < 0
brightness = 0
end
if brightness > 255
brightness = 255
end
var r = (self.color >> 16) & 255
var g = (self.color >> 8) & 255
var b = self.color & 255
var rr = (r * brightness) / 255
var gg = (g * brightness) / 255
var bb = (b * brightness) / 255
return rgb(rr, gg, bb)
end
def draw()
clear(self.background)
font(self.fontName)
var mode = self.scrollMode
if !self.scrolling
mode = "static"
end
var opts = {
"mode": mode,
"direction": self.direction,
"entry": "offscreen",
"whenFits": "static",
"speed": self.speed,
"gap": self.gap,
"holdMs": self.hold
}
if self.colorMode == "rainbow"
scroll_text(
self.rainbow,
0xFFFFFF,
opts
)
elif self.colorMode == "blink"
scroll_text(
self.message,
self.blinkColor(),
opts
)
elif self.colorMode == "fade"
scroll_text(
self.message,
self.fadeColor(),
opts
)
else
scroll_text(
self.message,
self.color,
opts
)
end
end
end
return LEDTicker()
Install it on your AWTRIX NG
Your browser writes the script straight to the device on your network. It joins the app rotation right away.
Some browsers refuse to talk to a device on your network from a public page. Download the flow and paste it into the Scripts tab of your device, or install it from a terminal:
These icons belong on the device, in /ICONS. Each one is at
most 32×8
pixels — shown here magnified, at their real proportions.
32×8 px
More flows for AWTRIX NG Scripts or Miscellaneous
Something wrong with this flow? Report it.