Fireflies ROT66 Flashlight

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};

I’m curious how long it takes to heat up if you disable the thermal stepdown. I don’t really like the behaviour with the Q8 because it never steps back up, so I just have it disabled and can generally get pretty decent usage out of turbo before it gets too hot to hold (i.e. high 50s C). Certainly more than 24 seconds.

Good! This is taken from the last version used in ROT66, right? The mode configurations appear slightly adjusted. Will this modified NarsilM become available for download?

If anyone should receive one for free, it’s you.

Mostly I just want to make sure people understand and follow the license, which requires publishing the code used in the product. I wouldn’t complain about a free light, and if I had one I’d probably port other code to run on it, but my main concern is that everything stays open.

ROT66 heated up really quickly. If you don’t like the default thermal step-down, you may set it to a higher value, or pick one of those NarsilM pre-defined step-down timers (60secs, 90secs, 2 mins, 3 mins, 5 mins, 7 mins). But do not disable it completely. I once tried to disable the step-down and cooled the light with two fans. However the surface temperature still went up and up, to 108°C, when Turbo was on. That’s dangerous…