OSVR / OSVR-Docs

Unified documentation for the OSVR projects.
Apache License 2.0
91 stars 49 forks source link

HDK needs to be powered during "Upgrading the firmware on the HDK IR Board"? #89

Open toastedcrumpets opened 7 years ago

toastedcrumpets commented 7 years ago

I just updated the IR driver firmware on my HDK1.3 using a genuine ST link v2 programmer. When launching the programming tool, I would receive "tries exceeded" for the two programming stages and programming would fail.

On trying to use the OpenOCD debugger tool on Ubuntu it provides a warning that the tool reads a voltage of 0.84V and warns that debugging might fail. I tried disconnecting the IR board from the HDK mainboard, but the voltage remained at 0.84V. I'm guessing the forward bias voltage on the IR LED's is around 0.84 and what I'm seeing is the programmer trying to power the LED's as well as the chip itself, but not being able to provide the required current. I couldn't/wouldn't unpick the tape on the IR LED connector to test this as I've read from your ifixit this is a delicate connection so I can't confirm this though (unless you want to send me a new LEAP faceplate, then I might be motivated to try it ;-P).

However, reconnecting the IR driver board to the HDK mainboard, then powering the HDK up brought the voltage to >3V and allowed me to complete the reprogramming.

Perhaps you need to add a note to the guidance that programming can/should be done with the HDK powered on to prevent this?

rpavlik commented 7 years ago

Interesting, thanks for your investigation! I hadn't thought to try/realized I could use open ocd and that a voltage reading was available. I'd only seen "tries exceeded" messages from stm8flash when one of the connectors/wires was loose, in testing with a generic programmer (and one other case that the upstream project for the flash tool leads me to suspect was a timeout due to USB hubs).

However, I have heard of people only having success when the HDK is powered on - it would make more sense if HDK power was required iff the flat connector on the IR board (which goes to the bulk of the LEDs), since I know I've programmed bare boards. (Though it may also be that my generic programmer can source more current, since I know I've programmed boards while fully connected and I don't think they were always powered.)

The blue ribbon cable carries sync and power from the main board to the IR board, as well as signals for the rear LEDs from the IR board across the main board and out the connector at the top right (I forget the number offhand). The orange cable stuck to the surface of the IR board takes LED outputs, as well as power, ground, and shift register (spi) data, for the remaining LEDs and their shift register driver chips. I don't recall how much power regulation circuitry is in the IR board itself beyond the first few constant current LED drivers, so I'm not sure if you'd also be trying to power up a 3.3v rail used for other things in the HDK if the blue ribbon cable is left on. You might try the tool with no power connected and the orange ribbon cable disconnected, since that is the bulk of the "downstream" from the IR board. (Should be doable without touching the tape.) I'd be interested in your results.

toastedcrumpets commented 7 years ago

You might try the tool with no power connected and the orange ribbon cable disconnected....I'd be interested in your results.

I ended up removing the IR board from the HDK to make sure it was fully isolated, but unfortunately I'm still getting a low voltage problem. I guess my (original from ST) programmer can't even source the current to drive the LED driver circuit, let alone any LEDs!

I think this is may be by design. I think the original programmers are trying to avoid ground loops, so they don't aim to provide power to the target, but the generic programmers play a little more fast and loose with their devices? Certainly the ST-link v2 ISOL variant will not supply power. I'm not sure if it makes any difference, but I'm using the 4 pin ERNI connector which came with the programmer.