Toykeeper Appreciation Gift _ Hardware Upgrades

+1

I’ve been pointing my niece, a young programmer/software engineer, to your work.
She’s been liking it.


“ToyKeeper wrote:
The closest I’ve gotten is a modded Jax Z1 ….
Details, in the relevant thread, would be most welcome. I’d rather imitate than pioneer …

It’s a really easy mod. Or it was, back when the empty hosts were readily available. Take the empty host, add a de-domed XP-G2 or a XP-L HI, add a FET+1 driver, give it some firmware. Maybe bypass the springs if you’re feeling ambitious. It’s basically the same as the CPFi Cometa, only better and made at home.

There are other zoomies which work well too, or can end up even more intense, but I liked the Z1 for its simple compact form.

Cool, maybe she can help fix the gender imbalance in free software. Last survey I saw said the whole field is 97% male. :wink:

However, there have been some pretty awesome women in computing history. Margaret Hamilton, for example.

Ish. Over the course of several thousand posts about what people wanted, some patterns emerged. Some things, almost everyone agrees about. Other things, people were split pretty evenly. Two of the “agree” topics were visually-linear mode spacing and a “low” mode close to 10 lumens. However, the biggest “disagree” topics were moon mode, mode memory and how many total modes there should be. So BLF-A6 offered options for two of the most popular mode groups and a toggle for memory.

There were other things people couldn’t agree about, but not quite as much and there was no room left. So those things waited until a later project with a tiny25 chip for more space.

It probably would have been possible to fit a bit more using a guppydrv approach where all options are flattened into preset config packages, but I’ve been kind of trying to avoid duplicating DrJones’ closed-source work. He does this for profit, and it’d be awfully rude to go and make a free version of something he depends on for income.

Or one better. There is a large array to work with, and the user just sets the startPosition and endPosition.
Something like this hard coded, where numbers are percent of perceived output:
[1,100,50,1,25,50,75,100,60,40,10]

So if someone wants just high, med, moon (100,50,1) they set “2” for start, and “4” for end.
If they want to reverse that, they set “4” for start, and “2” for end.
For ‘moon, low, med1, med2, high’… they can set “4” and “8”.

Notice I eliminated the zero-based notation for user sanity. The array could be larger for even more choice, but the usage is exactly the same.
That sounds awesome to me. I take full credit for the idea :slight_smile:

So my ideal combo would be just moon and high, so I would set “1” and “2”. I have always wanted it. But also with the standard thermal protection that drops down to the highest safe level when it overheats.

FWIW, bistro lets you configure it for “moon, turbo” or “low, turbo”. :slight_smile:

The start/end array thing is interesting, but it’d add some pretty awkward complexity and might cost more bytes than it saves.

Instead, I’ve been kinda wanting to make a UI where you choose how many modes and then set the brightness for each mode individually. Would be easier with an e-switch. However, I’m not sure it would really be useful to many people. It might just make the config even more awkward. Like, a few people would probably think it’s the best UI ever while everyone else sees it as way too complicated. The few who like it could get better results by changing a line or two of the code and then reflashing.

Anyway, I think my next real project is to make a new e-switch code base where the UI is defined by state machine tables and a few simple hooks instead of defining it directly in code. Data-driven code is almost always easier and more robust than intricate logic flows. Hopefully it’d make new interfaces easy to create without having to modify much code.

I’ve been procrastinating (badly) about that project for like a year, but it looks like some of the relevant hardware will likely be on its way soon due to this thread…

It’s not awkward or complex at all. Check out my code plan:

I moved the discussion here:

So this thread can stay on topic.

This thread has a topic?

I mean, how would you document the interface so that people can easily understand and configure it without reflashing? And how much code would it take to make a runtime config system for setting the beginning and end? Bistro already sets a mode group, so I’d imagine the code for that could be copied or modified to let it load/save/configure two integer options instead of one, but it might use more space than the few bytes it would save in the mode group table.

Looking at bistro now, I think this approach could potentially reduce the mode group table by up to 45 bytes by removing “0” entries and reducing the number of low/turbo entries and zig-zagging the values instead of putting them all in low-to-high order. However, loading and saving another config variable and adding another config step plus numeric selection mode would likely eat up more than 45 bytes. The configuration might also be a bit harder to explain and understand.

It’d be something like…

I’m not sure if that made sense.

In any case, it’s not the button press logic I’m concerned about; that would be nearly identical to what it already uses. It’s the other parts which seem awkward or complex.

User instructions:
Enter programming mode. It will flash once to confirm. Enter the first number. It will flash once to confirm. Enter second number. It will flash twice to confirm and save.

Choose your numbers from below:
1,2 = 1,100
2,1 = 100, 1
1,3 = 100,50,1%
3,1 = 1,50,100%
4,8 = 1,25,50,75,100%
8,4 = 100,75,50,25,1%
8,11 = 100,60,40,10
11,8 = 10,40,60,100
3,4 = 50,1
4,3 = 1,50

The real beauty is offering the reverse sets, and the reduction of low and high recurrences.

If I got a flashlight with a driver like that Josh, it’d go in the bin in a matter of minutes. Too odd, not anywhere near a normal way of thinking and I could never remember it vs all the other lights I own. So it’d go in the trash and an A6 or Bistro driver would go in the light. If it was an e-switch light, then ToyKeepers ramping firmware would do it for me. No setting of modes, no remembering modes, just press and hold til you get the amount of light you want, BAM! Easy peasy.

No offense intended, but simple linear logic or I can’t remember it. Like Dr. Jones stuff, in the bin it goes. (that’s just me and my hundreds of lights though… and the hundreds I’ve made for others)

^This

What I described is like guppydriver, with the goal of more selection on the same tiny chip. It’s not meant to be ‘programmed’ daily. You find your dream combo, mine is 1,100. Once it’s set you never screw with it. It’s just a way to pack the wishes of hundreds on to the limited footprint. It’s crazy to say you like entering 1 number on guppydriver, but 2 numbers is beyond comprehension. Geez. Don’t read the programmer’s talk if you are confused. The effect is just like guppydriver.

I don’t use guppydrv.

I don’t even use Hyperion, although I do like that light from Matt.

About the only things I don’t read are the things people don’t write. :wink:

Don’t get a poor memory and confusion mixed up, different things.

Lost me......

“Alright class. For last week’s quiz I gave everyone an index card with a number. You were required to copy it to a sheet of paper to pass the quiz. You all passed. This week the index card will have TWO numbers. Stop crying Dale and jhalb! I am giving you unlimited time, unlimited tries, and an online forum to ask for the answer on! I have faith in you!” :person_facepalming:

What is the answer?

PM me....

I'll get it right I promise!

But seriously. This needs to happen.

What’s the status of this?