zx-spectrum-pico-interface-one
zx-spectrum-pico-interface-one copied to clipboard
Spurious LED lighting up
Just occasionally, when an LED should light up, one of the other LEDs also lights up. Just a quick flicker.
I'm pretty sure this is being caused by the Interface One's shift-register implementation of the motor control. It puts a 1 or 0 into the motor control for Microdrive 1, then shifts all those control values along the line 8 times.
I think the UI Pico is reading the status of the system as the shift is happening. On real microdrives the shift of a 1 along the line happens so quickly the LEDs don't get chance to light up before they're turned off again. On this system the status can be read just as the logic one is shifting along. An LED lights up and won't be turned off again until the next status read happens 100ms later, so the LED is turned on for 100ms before being turned off again.
I'm not quite sure what the solution is. Don't update status when motor control is happening is the obvious one. There's probably other ways to fix it.