Fireflies ROT66 Flashlight

Comparison with the Q8 from steel_1024:

Barsil?

Is the ROT66’s code published anywhere? I’m not sure if I need to go bother someone about license compliance.

I sent Fireflies a message about it last month sometime, but I’ve been travelling and haven’t had time to follow up yet.

Those beamshot comparisons sure doesn’t look like 10k lumens. It looks less output than the q8.
I ordered a r0t66 anyways hehe

That’s because it’s the 5000 lumen 219B version.

I’m sure he meant Narsil as the B and the N are right next to each other.

Fireflies contacted me about a week ago if it was okay for them to use the videos I made on NarsilM. I said sure and pointed them to Vestureofblood as he has a better video. That was the first time I had heard of this light.

If you look at their website here you can see where there say it’s using NarsilM version 1.2. I don’t know if it’s been tweaked or not to fit this light.

Well isn’t this the strangest thing. Now after doing another runtime test at 7x7135, it does remember the mode configuration. Before this I tried it at least 10 times and it always reverted back to ramping after power loss. Now it doesn’t do it after several battery swaps.

It’s probably missing a call to SaveConfig() somewhere, so it only saves sometimes. Or maybe there was weird stuff in ROM and it needed to wear-level over some bogus values. It’s hard to say. In either case, it sounds like there’s a bug somewhere.

Thanks. I’ll try to follow up soon to clarify how the GPL works. Basically, it needs a conspicuous notice somewhere that it’s using free software, with a link to the code which shipped in the product. That’s usually the easiest method, anyway. If it’s modified from what is already published, things get a little more complicated… so I usually try to put an exact copy in the repo to make things easier.

Is this something that can be rectified on lights that were already sold or would that mean Fireflies needs to recompile everything and sell a new revision of their lights?

Hhmm. haven't heard of issues storing settings, but, anything is possible - there is wear leveling logic - think the "block" of settings is up to about 4 bytes now. I'm thinking it is saving, or attempting to save every time, just that something went wrong there with the addressing or something. Could be failing to load the setting,s then using defaults when this problem occurs.

I really wonder who is behind Fireflies - suppose Lexel knows because he had to be dealing with someone there. This is a one product company, they could be gone tomorrow. There sure ain't much info on their website. They want dealers but provide no info on who they are: http://www.ff-light.com/index.php?route=information/information&information_id=7

I agree with TK - I'd like to see a link to the source code since they are claiming NarsilM v1.2. There are tons of compile options in V1.2, so all depends on the exact v1.2 source code configuration.

Oh boy, might have to buy one or two of these just to see what's going on... Been debating spending the money. This is pretty weird.

seems a bit strange, we tried 11pcs ROT66 randomly today , all can remember Mode group without problem.

Good that it isn’t widespread. Let’s hope it doesn’t randomly appear on lights. Just something that everyone should try out though.

Been think'n bout it more - might have seen this... pm sent to Fireflies and TK. I guess the Q8 is the largest deployment of NarsilM and don't think I've heard of it happening with the Q8, though that was an earlier version. Dunno if I only saw it while in development/debug or what...

Waiting for more info before I order.

Well, I did trace NasilM to find out its step-down logic before, but… I tend to let the runtime curves speak for me this time :stuck_out_tongue:


(Note: the peak brightness at 0s is higher with VTC6s)


(The first 5 minutes)

Near 4 full hours of fully regulated 750 lumens of 9080 goodness! Very nice! The max output drops very fast, but I wonder how long it to drop if it starts at 1500 lumens?

4 hours at 700 lumens of 219B 9080 makes this an extremely practical light. When did you guys order? Howcome you got it so fast? I ordered mine on the first or second day it was announced but tracking status says “2018-08-10 06:02 - Origin Post is Preparing Shipment, We have received notice that the originating post is preparing to dispatch this mail piece”

Also Fireflies does not respond to my multiple emails. How did you guys get a hold of him?

I suppose those percentages are estimations, and may probably vary due to different LED/number of 7135 used in the bank/etc.

You may refer to the NarsilM source code, more specifically the mode-set definitions for 3 channels (OUT_CHANNELS == 3 in file ModeSets.h). The default mode-set (4) is defined as:

(EDIT: below are from Lexel’s numbers)
// 4 modes (1.2-10-50-max) ~1.2% ~10% ~60% max
PROGMEM const byte mode7135Set4 = { 25, 255, 255, 0};
PROGMEM const byte mode7135sSet4 ={ 0, 0, 255, 0};
PROGMEM const byte modeFetSet4 = { 0, 0, 0, 255};

So the first mode is 25/255 = ~10, while the others are indeed (7135 x1, 100) - (7135 x7, 100) - (FET only, 100) :wink:

Looking forward to seeing some xpl HI measurements

OUT_CHANNELS == 3 // Triple Channel
//———————————————————————————————————————————-

//—————————- MODE SETS (must be low to high) —————————————

// 1 mode (max) max
PROGMEM const byte mode7135Set1[] = { 0}; // for single 7135
PROGMEM const byte mode7135sSet1[] ={ 0}; // for 7135 bank
PROGMEM const byte modeFetSet1[] = { 255}; // FET only

// 2 modes (7135-FET) ~10% max
PROGMEM const byte mode7135Set2[] = { 255, 0};
PROGMEM const byte mode7135sSet2[] ={ 0, 0};
PROGMEM const byte modeFetSet2[] = { 0, 255};

// 3 modes (7135-7135s-max) ~10% ~50% max
PROGMEM const byte mode7135Set3[] = { 255, 0, 0};
PROGMEM const byte mode7135sSet3[] ={ 0, 255, 0};
PROGMEM const byte modeFetSet3[] = { 0, 0, 255};

// 4 modes (1.2-10-50-max) ~1.2% ~10% ~60% max
PROGMEM const byte mode7135Set4[] = { 25, 255, 255, 0};
PROGMEM const byte mode7135sSet4[] ={ 0, 0, 255, 0};
PROGMEM const byte modeFetSet4[] = { 0, 0, 0, 255};

// 5 modes (1.2-5-10-50-max) ~1.2% ~4,5% ~10% ~60% max
PROGMEM const byte mode7135Set5[] = { 25, 100, 255, 255, 0};
PROGMEM const byte mode7135sSet5[] ={ 0, 0, 0, 255, 0};
PROGMEM const byte modeFetSet5[] = { 0, 0, 0, 0, 255};

// 6 modes 0.8-2-5-10-50-max ~0.8% ~2% ~5% ~10% ~60% max
PROGMEM const byte mode7135Set6[] = { 17, 80, 255, 255, 255, 0};
PROGMEM const byte mode7135sSet6[] ={ 0, 0, 0, 100, 255, 0};
PROGMEM const byte modeFetSet6[] = { 0, 0, 0, 0, 0, 255};

// 7 modes (0.5-2.5-5-10-25-50-max) ~0.4% ~2% ~8% ~20% ~50% ~80% max
PROGMEM const byte mode7135Set7[] = { 8, 200, 255, 255, 255, 0, 0};
PROGMEM const byte mode7135sSet7[] ={ 0, 0, 40, 120, 255, 255, 0};
PROGMEM const byte modeFetSet7[] = { 0, 0, 0, 0, 0, 100, 255};

// 2 modes (all 7135s-FET) ~60% max
PROGMEM const byte mode7135Set8[] = { 255, 0};
PROGMEM const byte mode7135sSet8[] ={ 255, 0};
PROGMEM const byte modeFetSet8[] = { 0, 255};