I had a problem with my Creemator getting stuck on high mode so I did some research and found this post from Milky in the Gotham thread. I tried it and it fixed the problem. I only had to tap it about 18 times to get it to come out of high mode. Here is the post:
Some Gothams seem to get stuck at max output every once in a blue moon. I've only ever seen it happen a couple times (not a couple BOARDS, but rather, a couple TIMES on all the boards combined) out of the 100 or so boards I've built with, so it's not exactly a high probability event!
Fortunately the fix, should you ever experience this, is simple: give the light 30 taps (that's an approximate number... 35, 40, whatever) and your light should change levels properly again. Note that you might have also switched to the other UI while doing this, so you might want to follow this by changing back to your user interface of choice.
Here's what seems to be happening: when Gotham is off, it's REALLY off... there is literally no connection whatsoever between battery and circuit, unlike most microcontroller-based lights out there. This in general is a good thing in that Gotham won't drain the cells while not in use, and long-life batteries will form the appropriate passivation layer internally to allow for extended shelf life.
The firmware interprets a tap (on then off within 1/2 second) as the signal to change brightness. Since Gotham supports a few multi-tap sequences, too, such as toggling UIs (20 taps) and jumping immediately to max output (2 taps in GenUI), it needs to remember how many taps have occurred... and does this by saving the count to onboard memory. It does take a short time for the hardware to accomplish this, maybe a few milliseconds... if the light happens to be turned off while the write is in progress, the counter will end up having some unknown garbage value in it... and the present firmware is coded to ignore invalid counter values, which seemed like a good idea at the time...
Anyway, point being that an incomplete write operation can cause Gotham's brightness selection code to stop running temporarily. The way to fix that is simply to tap 30+ times, which has the effect of clearing the counter and making things right again.
How likely is this to happen? In the grand scheme of things, not very! To trigger the stuck-on-max scenario, the light must be turned off during that few milliseconds window in which the memory write operation is taking place. That's most likely to happen if you're cycling through the levels VERY quickly... I would suggest as a matter of practice that you cycle through the levels at just a teensy more relaxed pace, not at frenzied-overcaffeinated speed! As mentioned above, I've seen this in the lights I've handled maybe twice ever out of 100 pieces (that covers the 50 Gothams, my personal lights, the prototype lights, and various mods I've completed in other hosts using the Acorn driver)... and you'll make it even less likely to occur if you tap a wee bit more slowly, not super fast.
In a way it's an interesting 'feature' though... if this functional oddity is most likely to occur when operating the light at frenzied pace, which might happen in a crisis situation (heard a bump in the night, got scared, tried to switch to max while the adrenaline was pumping) and the light responds to the internal write failure by latching itself into max output, that's probably exactly where you'd WANT the light to be!
I'm always looking to improve things and the Acorn driver is no exception, in an ideal situation the above quirk would have ZERO probability of ever happening. Unfortunately, the real world doesn't always play along with one's plans, especially not in the province of developing a completely new light. In the meantime, though, you can take heart in this being a particularly uncommon occurrence with an easy fix. Just wanted to mention its existence to let folks know what's happening if they encounter this, in the interest of full disclosure!
__________________
--Scott