I have read the library for arduino created by Maarten Pennings and I have tried to adapt it to Annex.
I still have a lot of work to do, I think that the huge tables that Maarten uses can be simplified, since with 7-segment modules we won't use more than 10 numbers and a few characters, but I wanted to tell you that the 303WIFILC01 is perfectly usable with Annex.
https://youtube.com/shorts/KZh0BYxIIec?feature=share
Code: [Local Link Removed for Guests]
' 303WIFILC01
colon = 4
noDot = 0
dim font(127)
for i = 0 to 127
READ font(i)
next i
dim remap(255)
for i = 0 to 255
READ remap(i)
next i
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA &B00000000,&B00101000,&B00100010,&B01100011,&B01001001,&B00100100,&B01111110,&B00000010,&B00111001,&B00001111,&B00000001,&B01000010,&B00001100,&B01000000,&B00010000,&B01010010
DATA &B00111111,&B00000110,&B01011011,&B01001111,&B01100110,&B01101101,&B01111101,&B00000111,&B01111111,&B01101111,&B00001001,&B00001010,&B01011000,&B01001000,&B01001100,&B01001011
DATA &B00111011,&B01110111,&B01111100,&B00111001,&B01011110,&B01111001,&B01110001,&B00111101,&B01110110,&B00110000,&B00011110,&B01110101,&B00111100,&B01010101,&B00110111,&B00111111
DATA &B01110011,&B01101011,&B00110011,&B01101101,&B01111000,&B00111110,&B01110010,&B01101010,&B00110110,&B01101110,&B01011011,&B00111001,&B01100100,&B00001111,&B00100011,&B00001000
DATA &B00100000,&B01011111,&B01111100,&B01011000,&B01011110,&B01111011,&B01110001,&B01101111,&B01110100,&B00000101,&B00001101,&B01110101,&B00111000,&B01010101,&B01010100,&B01011100
DATA &B01110011,&B01100111,&B01010000,&B01101101,&B01111000,&B00011100,&B01110010,&B01101010,&B00010100,&B00101110,&B01011011,&B01000110,&B00000110,&B01110000,&B01000001,&B01011101
DATA &H00,&H20,&H80,&HA0,&H04,&H24,&H84,&HA4,&H08,&H28,&H88,&HA8,&H0C,&H2C,&H8C,&HAC
DATA &H10,&H30,&H90,&HB0,&H14,&H34,&H94,&HB4,&H18,&H38,&H98,&HB8,&H1C,&H3C,&H9C,&HBC
DATA &H40,&H60,&HC0,&HE0,&H44,&H64,&HC4,&HE4,&H48,&H68,&HC8,&HE8,&H4C,&H6C,&HCC,&HEC
DATA &H50,&H70,&HD0,&HF0,&H54,&H74,&HD4,&HF4,&H58,&H78,&HD8,&HF8,&H5C,&H7C,&HDC,&HFC
DATA &H02,&H22,&H82,&HA2,&H06,&H26,&H86,&HA6,&H0A,&H2A,&H8A,&HAA,&H0E,&H2E,&H8E,&HAE
DATA &H12,&H32,&H92,&HB2,&H16,&H36,&H96,&HB6,&H1A,&H3A,&H9A,&HBA,&H1E,&H3E,&H9E,&HBE
DATA &H42,&H62,&HC2,&HE2,&H46,&H66,&HC6,&HE6,&H4A,&H6A,&HCA,&HEA,&H4E,&H6E,&HCE,&HEE
DATA &H52,&H72,&HD2,&HF2,&H56,&H76,&HD6,&HF6,&H5A,&H7A,&HDA,&HFA,&H5E,&H7E,&HDE,&HFE
DATA &H01,&H21,&H81,&HA1,&H05,&H25,&H85,&HA5,&H09,&H29,&H89,&HA9,&H0D,&H2D,&H8D,&HAD
DATA &H11,&H31,&H91,&HB1,&H15,&H35,&H95,&HB5,&H19,&H39,&H99,&HB9,&H1D,&H3D,&H9D,&HBD
DATA &H41,&H61,&HC1,&HE1,&H45,&H65,&HC5,&HE5,&H49,&H69,&HC9,&HE9,&H4D,&H6D,&HCD,&HED
DATA &H51,&H71,&HD1,&HF1,&H55,&H75,&HD5,&HF5,&H59,&H79,&HD9,&HF9,&H5D,&H7D,&HDD,&HFD
DATA &H03,&H23,&H83,&HA3,&H07,&H27,&H87,&HA7,&H0B,&H2B,&H8B,&HAB,&H0F,&H2F,&H8F,&HAF
DATA &H13,&H33,&H93,&HB3,&H17,&H37,&H97,&HB7,&H1B,&H3B,&H9B,&HBB,&H1F,&H3F,&H9F,&HBF
DATA &H43,&H63,&HC3,&HE3,&H47,&H67,&HC7,&HE7,&H4B,&H6B,&HCB,&HEB,&H4F,&H6F,&HCF,&HEF
DATA &H53,&H73,&HD3,&HF3,&H57,&H77,&HD7,&HF7,&H5B,&H7B,&HDB,&HFB,&H5F,&H7F,&HDF,&HFF
i2c.setup 13, 12 ' SDA and SCL connections on the 303WIFILC01 board
' brightness 1 to 8: 1 = min, 8 = max
brightness = 3
TM_init brightness
while 1
hour$ = left$(time$,2) + mid$(time$, 4, 2)
TM_show hour$, colon
pause 1000
TM_show hour$, noDot
pause 1000
wend
END
' ----------------------
SUB i2cWrite(address, value)
i2c.begin address
i2c.write value
i2c.end
END SUB
' ----------------------
SUB TM_init(brightness)
if brightness = 8 then
value = 1
else
value = 16*brightness + 1
endif
i2cWrite &H24, value
END SUB
' ----------------------
SUB TM_show(line$, dots)
LOCAL i, address, s$
LOCAL v1, v2, v3, v4, v5
for i = 1 to 4
s$ = mid$(line$, i, 1)
v1 = asc(s$) AND &H7F
v2 = asc(s$) AND &H80
v3 = font(v1)
v4 = v3 OR v2
if (dots AND (1 << i) ) then v4 = v4 OR &H80
v5 = remap(v4)
i2cWrite &H33+i, v5
next i
END SUB