diff --git a/firmware/retro_tech_fw/user/src/31fl3729.c b/firmware/retro_tech_fw/user/src/31fl3729.c index 099b52a..f4f492e 100644 --- a/firmware/retro_tech_fw/user/src/31fl3729.c +++ b/firmware/retro_tech_fw/user/src/31fl3729.c @@ -54,7 +54,7 @@ uint8_t is31fl3729_get_addr(uint8_t adpin) void is31fl3729_set_scaling_current_multi(uint8_t i2c_addr, const uint8_t *current, uint8_t count) { if (!count) return; - count &= 0xf; + if (count > 16) count = 16; i2c_write_addr1b(i2c_addr, FL3729_REG_SCALING, current, count); } diff --git a/firmware/retro_tech_fw/user/src/led.c b/firmware/retro_tech_fw/user/src/led.c index 615faf3..dbd60bb 100644 --- a/firmware/retro_tech_fw/user/src/led.c +++ b/firmware/retro_tech_fw/user/src/led.c @@ -47,6 +47,15 @@ void led_init() uint8_t i; uint8_t buf[FL3729_CS_OUTPUTS] = {0xff}; + // reset LEDs + for (i = 0; i < 9; i++) { + rgb[i][0] = 0; + rgb[i][1] = 0; + rgb[i][2] = 0; + } + cursor[0] = cursor[1] = cursor[2] = 0; + + // configure matrix is31fl3729_init(FL3729_ADDR, FL3729_CONF_SSD_NRML | FL3729_CONF_OSDE_OFF | FL3729_CONF_MATRIX_2x16, LED_INIT_CURRENT);