Toykeeper Appreciation Gift _ Hardware Upgrades

The closest I’ve gotten is a modded Jax Z1; it’s great as a light saber in the fog… especially when I go out in my wizard robe. :slight_smile:

I set my lux limit about there though, 250 kcd, roughly twice as intense as direct noon sunlight. I have a list of cool things which are too dangerous for me to own, and really intense lasers are on the list.

I honestly wish I could contribute to this but I’m currently in need of a 21mm or 22mm driver to replace the ld-29 in my convoy l5 because I’m not satisfied with the 3A out or l-m-h and l-m-h-strobe-sos. Upgraded the u2 1a to u3 2c and did spring bypasses but the limits remain. TK’s bistro is impressive in reading about it and I respect both her participation and work but why isn’t it more readily available? Surely with the influence or demand of this community it should be possible for more options to be available.

BLF-A6 is like, if you have a bunch of people together for an event and need to provide food, and nobody can agree on what they want, it’s usually safe to order a bunch of plain cheese pizza. It’s not great, but almost everybody is at least okay with it.

Bistro is pretty much the same, only you can opt for pepperoni if you want. Still pretty bland.

But apparently everyone seems to think both are really good because they’ve spent so long eating nothing but sauerkraut.

I’m hoping that the firmware repository can become more like one of those world food markets where everyone can get something they really like — a wide variety of things appealing to various tastes instead of a single bland dish people don’t mind.

Great. It’s 11:20pm in small town California, I just got home from work, and now I’m hungry for pizza.

Awwww, pics please :wink:

K.

Hmmm, was that the design theory behind sticking 7 brightness modes in the BLF-A6? Because nobody could agree on what brightness levels they wanted?

I think we are forgetting another important reason why it’s popular:

SIMPLICITY

It’s easy to learn
It’s easy to use
It’s easy to remember

+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