-- download at MT.QZX.COM (digit-upper.lua) local d = "a" -- digit = ab:cd local f = "d" -- side facing lights -- upper 3 segments of digit if event.channel == "off" then port.a = false port.b = false port.c = false port.d = false elseif event.channel == "digit" then local digit = event.msg[d] local segments = { -- BAC [0] = {[0] = true , [1] = true , [2] = true}, [1] = {[0] = false, [1] = false, [2] = true}, [2] = {[0] = false, [1] = true , [2] = true}, [3] = {[0] = false, [1] = true , [2] = true}, [4] = {[0] = true , [1] = false, [2] = true}, [5] = {[0] = true , [1] = true , [2] = false}, [6] = {[0] = true , [1] = true , [2] = false}, [7] = {[0] = false, [1] = true , [2] = true}, [8] = {[0] = true , [1] = true , [2] = true}, [9] = {[0] = true , [1] = true , [2] = true}, } segments = segments[digit] local sides = { a = {[0] = "d", [1] = "a", [2] = "b"}, b = {[0] = "a", [1] = "b", [2] = "c"}, c = {[0] = "b", [1] = "c", [2] = "d"}, d = {[0] = "c", [1] = "d", [2] = "a"}, } sides = sides[f] port[sides[0]] = segments[2] -- mirror port[sides[1]] = segments[1] port[sides[2]] = segments[0] -- mirror end