philpax/borealis

More consistent initialisation from cold boot

Opened this issue · 2 comments

Currently, whether or not the required I2C addresses are present on the bus is almost entirely dependent on whether they have been initialised by Aura Sync on Windows prior. While it sort of works right now, it'd be preferable to actually initialise them from Borealis.

Some RE on the Aura RAM code suggests that assigning addresses to the RAM sticks is a matter of write_register_byte(0xF8, desired_addr - 0x70) followed by write_register_byte(0xF9, enable_command) where enable_command is the stick's associated command in [0xE0, 0xE2, 0xE6, 0xE8, 0xEA, 0xEC, 0x9E, 0xCC].

Unfortunately, when I do this, I can only get two of my four sticks working. Will investigate further.

Temporarily worked around this by just attempting connection to everything 0x70..0x77. It works, but it's not great and it also sacrifices granular control. I'll look into this another time.