TK's Emisar D4 review

Update 2019-06-19: The D4 has been replaced by the D4V2. My review for the new model may be more relevant now, but the info below is still useful since the two are very similar.

Emisar D4

This is the Emisar D4, produced by Hank Wang of Intl-Outdoor and purchased from Mtn Electronics.

The green one is the best. Obviously.

Disclaimer: Although I was not involved in creating the D4 and did not know it existed until recently, the code was written by BLF member Tom E and was partially based on some of my code. I also was contacted (just a few days ago) by Hank Wang to make some changes to it while Tom was busy. So I don’t count as an independent or impartial reviewer.

I bought two D4 lights from MtnElectronics as soon as the pre-order page went up. They arrived today, so here’s a review to provide answers about an exciting project which hasn’t yet had official specs published.

Update 2017-07-16: It looks like I’m also going to receive a sample unit or two without glue, and a couple extra drivers, to help with testing and further development.

Update 2017-07-27: Only the v2 version of this light is being sold now. V1 was only ever sold as part of Mtn’s pre-order, which ended weeks ago. If you order one now, it’ll be v2 or later.

Official Specs

None have been published yet.



  • Beam type: Spot plus wide pinwheel-shaped corona (not much spill)
  • Power: Edness measured 20.4A on the 219c model with a VTC6 cell — that’s about 75W!
  • LEDs: Nichia 219c 5000K
    • Lux: ~12.6 cd / 220 m
    • Min: 1.5 to 2.0 lm
    • Max: (measured at start, not at 30s)
      • 2128 lm (Efest 18350 @ 3.76V)
      • 2843 lm (Efest 18350 @ 4.18V)
      • 3517 lm (25R 18650 @ 4.17V)
      • 3826 lm (Efest 18650 @ 4.18V)
  • LEDs: XP-G2 (4000K or 5700K)
    • Lux: ~13.5 kcd / 232 m
    • Min: 2.3 lm
    • Max: 3343 lm (Efest 18650 @ 4.16V)
  • LEDs: XP-L HI (5000K or 6500K)
    • Lux: ~20.2 kcd / 284 m
    • Min: 1.3 lm
    • Max: 4322 lm (Efest 18650 @ 4.18V)


  • 18650 length: 93.7 mm
  • 18350 length: 63.3 mm
  • Bezel diameter: 28.0 mm
  • Head diameter: 30.0 mm (widest point)
  • Body diameter: 23.9 mm
  • Clip groove diameter: 22.5 mm
  • Clip groove width: 3.0 mm
  • MCPCB shelf: 4.5 mm thick :+1:
  • Driver: 22.3 mm diameter, 1.6 mm thick PCB, ~19.3 mm x ~2.5 mm space for components.
  • Maximum cell length: 67 mm
    (protected cells may not fit)

Host / Build:

  • Weight: 18650: 70 g without cell, ~118 g with cell
    (measured by zeroair)
  • Switch type: Momentary / electronic side switch
  • Body material: Hard anodized aluminum: black, grey, or green
    I accidentally scraped part of my light with a bastard file, and now I can’t even see where I scraped it. I even looked with a lighted jeweler’s loupe. So the anodizing seems pretty tough.
  • Lens: Glass, light or no AR coating (so, tint is pure)
  • Anti-roll and tail-standing capable
  • Waterproof to IPX-something (?) (not yet tested)
  • Premium BeCu (Beryllium Copper) springs capable of high current without sagging
  • Optic: Carclo 10622


  • Operating voltage: 2.8V to 4.35V
  • Battery: One 18650, 18500, 14500, 18350, or 16340 cell (with matching tube)
  • Parasitic drain: ~0.02 mA (17 years to drain a 3000mAh cell)
  • Low-voltage protection: Yes
  • Thermal protection: Yes
  • Power can be locked out by loosening the tailcap, or by entering a lock-out code on the button
  • Reverse polarity protection is on the driver, but it might not protect the cell. Don’t put the battery in backward, or it may permanently kill the battery.



The interface is a simplified version of Narsil’s ramping UI:

From off:

  • 1 click: Turn on in the lowest mode. (Update 2017-07-27: Now turns on at the last-used level instead of moon)
  • 2 fast clicks: Turn on in the highest mode.
  • Press and hold: Ramp up from the lowest mode.
  • (v2 only) Loosen and tighten the tailcap, then click: Turn on at the highest regulated mode (~135-165 lm).

While on:

  • Press and hold: Ramp up or down in last-used direction. Release and quickly hold again to change direction.
  • 1 click: Turn off.
  • 2 fast clicks: Shortcut to highest level. (Update 2017-07-27: Now also can be used to go back from the highest level to whatever it was at before)

Other actions:

  • Loosen tailcap: Turn off completely, and lock out power.
  • 3 fast clicks: Battcheck mode. Blinks out volts, pauses, then blinks out tenths of a volt. So, 4.2V would blink 4 times, pause, then blink 2 times.
  • 4 fast clicks: Momentary mode. Light will run at highest level when the button is pressed, and will stay off otherwise. Enter 4 fast clicks again to exit.
  • 6 fast clicks: Soft lockout. Light won’t respond again until you do another set of 6 fast clicks.
  • 8 fast clicks: Beacon mode. Lights up at 30% for half a second, pauses for 2 seconds, then repeats. Click to exit.
  • 10 fast clicks then a long click (1 second or more): Toggle thermal protection. Thermal protection is on by default. (11 clicks total)
  • 10+ fast clicks then press and hold: Thermal config mode, added in v2. Hold the button until it gets to the action you want:
    • Blinks out current temperature limit. Release button to exit with no changes, or keep holding to continue.
    • “Buzzes” for 2 seconds. Release button to set temperature limit to maximum, or keep holding to continue.
    • Light goes to turbo. Hold button until the light feels hot enough, then let go to set a new temperature limit.

From battcheck mode:

  • 1 click: Off.
  • 2 fast clicks: Thermal readout. Shows current driver temperature (in C or something close to C, I think).

From thermal readout mode:

  • 1 click: Off.
  • 2 fast clicks: Turbo.

This driver also has low-voltage protection. At 3.0V it’ll drop to the lowest level, and at 2.8V it’ll shut itself off as far as possible. It still has a very small amount of parasitic drain though, so don’t leave it in post-LVP mode for months or years at a time. It would be a good idea to change the battery within a few days, or unscrew the tube to cut power.

Here is the UI in diagram form:

Update 2017-07-27: Firmware v2 is approved and now shipping. The UI has changed a little:


The Emisar D4 comes in a simple but nicely padded cardboard box with foam cutouts to hold the light and O-rings. The box could potentially get dented during shipping, but the light inside should be pretty safe.

The shorty tube is sold separately.

Comparison to other lights

There aren’t many lights which are directly comparable to the D4. The closest ones are the Manker E14 II and Astrolux S42, but I don’t have those since neither one looked very interesting to me.

Here are a few pictures of the D4 next to some other lights, for size reference:

D4 18650, Efest 18650 cell, D4 18350, Efest 18350 cell

Convoy S2, D4, CNQG Brass Beauty, D4, Convoy S2+

L3 L10C, D4, D4, L3 L10, ZL SC52, Jetbeam RRT01, Sunwayman V11R, Convoy S2 shorty

D4 18350, Noctigon Meteor M43, D4 18650

Reylight Pineapple (AA/14500), D4 18650, 18650 cell, 18350 cell, D4 18350, Reylight Ti 18350

Olight S-Mini, Olight S1, D4 18350, Olight S10, D4 18650 tube

Host, Components, and Build Quality

The body tube has square threads which come fully lubed.

The shorty tube is pretty much the same, except shorter and dry.

The tail PCB is either press-fit or glued. There is no retaining ring. This makes the light smaller but harder to modify. I doubt the tailcap will need mods though.

The driver PCB is glued in. This makes me a little grumpy. I like to take things apart, and I want to reflash the firmware.

The button sticks out a little. It can be activated accidentally, but there are two ways to lock the light to prevent issues when carried in a bag or a pocket. Use the lock-out features!

I’m not sure if the lens is AR-coated or not. If so, it’s the minimal sort of coating I like, and it doesn’t turn the beam green.

Left: D4, Right: bare BLF A6

The business end of the light has a quad optic (Carclo 10622) which spreads the light well but also obscures the insides a bit.

The bezel comes off easily enough, and it reveals two O-rings inside — one around the head of the light and one to seal the lens.

The optics pop out easily to access the emitter MCPCB. This should make emitter swaps and other changes easy.

Update: The optics came out of my grey one easily (just turn it upside-down and shake it), but the optics on my green one seem to be more stubborn. I’m not sure if it’s glued or just a tight fit. I’m not planning to take the green one apart until all the other changes are complete, so I only have to do it once.

The emitter MCPCB is a solid copper 4-emitter XP board with direct thermal path (DTP) for optimal heat dispersion. This one has four Nichia 219c 5000K emitters on it.

The MCPCB is not glued. This is what the shelf looks like under the MCPCB. It’s covered in thermal goo:

The driver comes out with a bit of force from the inside, and it still works afterward when held in place only by pressure. Here’s what it looks like:

To get the driver out:

  • Unscrew and remove the bezel.
  • Pop the optics out. Hopefully it isn’t glued to the MCPCB, but if it is, this step could be tricky.
  • Unsolder the red and black wires.
  • Pull the MCPCB out.
  • Carefully push on the driver with a plastic rod like a spudger.

To get the driver back in, you may need to file down the edges of the driver a tiny bit. I did, because the glue around the edge made it slightly too wide.

The driver is 22.3 mm in diameter.

The shelf under the MCPCB is 4.5mm thick. :+1:

I think it may be giving me the finger, to protest being separated from its home.


The D4 uses fast 3-level PWM at 15.6 kHz to adjust brightness. Low levels oscillate between 0 mA and ~350mA, while higher levels oscillate between ~350mA and full power. The PWM is far too fast to see during use, but a child with good hearing might be able to hear a faint high-pitched tone.

Thermal Protection

Update 2017-07-27: Firmware v2 is approved and now shipping. The light now has full thermal regulation. It’s not completely flat, but it’s close:

Beamshots, Output, and Runtime

This is how the D4 looks from the front in the lowest mode.

Note: The optic is not broken. It just has some oddly-shaped bits inside and I took a bad picture.

The beam is floody and good for illuminating a wide area. I measured about 3.3 to 3.5 candelas per lumen, which is typical for a compact multi-emitter TIR optic. For comparison, a “mule” pure flood light gets about 1 cd / lm, a common reflector-based EDC light typically gets about 5-8 cd / lm, a compact thrower gets more like 30 cd / lm, and dedicated throwers can get over 100 cd / lm. So the D4 is close to the floody end of the spectrum.

Tint on the 219c version is a very pure daylight white at 5000K.

Update: Beamshots, finally.

I’m not very good at beamshots, but I hope these show what to expect. It has a round hotpot and a pinwheel-shaped corona, and not much spill outside that.

Shortest to longest exposure:


Based on my min/max lumen measurements and the ramping table, the following is a rough estimate of how bright each level should be on a fully-charged 18650 cell with Nichia 219c emitters:

1: 1.70 lm
2: 1.99 lm
3: 2.31 lm
4: 2.67 lm
5: 3.05 lm
6: 3.48 lm
7: 3.94 lm
8: 4.44 lm
9: 4.99 lm
10: 5.57 lm
11: 6.20 lm
12: 6.88 lm
13: 7.60 lm
14: 8.37 lm
15: 9.19 lm
16: 10.06 lm
17: 10.99 lm
18: 11.97 lm
19: 13.01 lm
20: 14.11 lm
21: 15.27 lm
22: 16.49 lm
23: 17.77 lm
24: 19.12 lm
25: 20.54 lm
26: 22.02 lm
27: 23.57 lm
28: 25.19 lm
29: 26.89 lm
30: 28.66 lm
31: 30.51 lm
32: 32.43 lm
33: 34.44 lm
34: 36.52 lm
35: 38.69 lm
36: 40.94 lm
37: 43.28 lm
38: 45.70 lm
39: 48.21 lm
40: 50.82 lm
41: 53.51 lm
42: 56.30 lm
43: 59.19 lm
44: 62.17 lm
45: 65.25 lm
46: 68.43 lm
47: 71.71 lm
48: 75.10 lm
49: 78.59 lm
50: 82.18 lm
51: 85.89 lm
52: 89.70 lm
53: 93.63 lm
54: 97.67 lm
55: 101.82 lm
56: 106.09 lm
57: 110.48 lm
58: 114.98 lm
59: 119.61 lm
60: 124.36 lm
61: 129.23 lm
62: 134.23 lm
63: 139.36 lm
64: 144.61 lm
65: 150.00 lm  (highest fully-regulated level)
66: 159.46 lm  (FET turns on here)
67: 170.39 lm
68: 181.81 lm
69: 193.74 lm
70: 206.17 lm
71: 219.12 lm
72: 232.61 lm
73: 246.63 lm
74: 261.21 lm
75: 276.36 lm
76: 292.07 lm
77: 308.38 lm
78: 325.27 lm
79: 342.78 lm
80: 360.90 lm
81: 379.65 lm
82: 399.04 lm
83: 419.07 lm
84: 439.77 lm
85: 461.14 lm
86: 483.19 lm
87: 505.93 lm
88: 529.37 lm
89: 553.52 lm
90: 578.40 lm
91: 604.02 lm
92: 630.37 lm
93: 657.49 lm
94: 685.37 lm
95: 714.03 lm
96: 743.48 lm
97: 773.72 lm
98: 804.78 lm
99: 836.65 lm
100: 869.36 lm
101: 902.91 lm
102: 937.30 lm
103: 972.57 lm
104: 1008.70 lm
105: 1045.72 lm
106: 1083.64 lm
107: 1122.46 lm
108: 1162.19 lm
109: 1202.86 lm
110: 1244.46 lm
111: 1287.01 lm
112: 1330.51 lm
113: 1374.99 lm
114: 1420.45 lm
115: 1466.90 lm
116: 1514.35 lm
117: 1562.81 lm
118: 1612.30 lm
119: 1662.82 lm
120: 1714.38 lm
121: 1767.00 lm
122: 1820.69 lm
123: 1875.45 lm
124: 1931.30 lm
125: 1988.25 lm
126: 2046.30 lm
127: 2105.48 lm
128: 2165.78 lm
129: 2227.23 lm
130: 2289.82 lm
131: 2353.58 lm
132: 2418.52 lm
133: 2484.63 lm
134: 2551.94 lm
135: 2620.45 lm
136: 2690.18 lm
137: 2761.14 lm
138: 2833.33 lm
139: 2906.77 lm
140: 2981.47 lm
141: 3057.44 lm
142: 3134.68 lm
143: 3213.22 lm
144: 3293.06 lm
145: 3374.21 lm
146: 3456.68 lm
147: 3540.48 lm
148: 3625.63 lm
149: 3712.13 lm
150: 3800.00 lm

This curve is what spits out when configured for a 1500 lm ceiling, so on a 4000 lm light the curve has a bit of an elbow at the channel transition point. This dedicates a disproportionate amount of the ramp to the low levels, but I like that. I think it was a good choice. It also means the ramp should remain pretty decent on a low battery, instead of ascending too slowly on the high levels.

The ramp takes about 2.5s from one end to the other. It goes at a rate of one ramp step per timer tick, and the timer ticks happen every 16ms. This is a pretty comfortable speed during use, fast enough to quickly reach any desired level, but slow enough for reasonably precise control.


Runtimes will be approximate because the ramp is too smooth to be able to stop reliably at any particular level.

With a 3000mAh cell:

  • Standby: 0.02mA / 17 years
  • Lowest mode: 1.7 lm / 9.6mA / 13 days
  • Medium mode (lvl 65): ~150 lm / 350mA / 8.5 hours
  • Highest mode: 2000 to 4000 lm / TBD / maybe 15 minutes

The output on the low levels (from moon to ~150 lm) should be fairly stable as the battery drains. The lowest mode might sag over time though, due to the brand of 7135 chip used. I’ve informed Hank about this, and I hope future batches will use one with better moon-mode performance.

The output on turbo will drop quite a bit over time due to heat, voltage sag, and thermal regulation.

On the medium and high modes, from ~150 lm to maximum, output will drop over time proportionate to how bright it is. For levels like 200 lm, the graph should still be pretty flat, but for 2000 lm it will sag quite a bit. Performance in these modes is a hybrid between current-controlled and direct-drive, so the typical direct-drive sag becomes more prominent as the light goes into higher and higher levels.

[TBD] [approximate table based on ramp and amperage measurements]

Source Code

I have been assured that the sources will be available to the public very soon. Out of respect for Hank, I have not published the sources yet in my repository, but I plan to host a branch specifically for the D4 and its upcoming siblings.

So, it seems Hank has been having some difficulty accessing BLF lately, probably due to the Great Firewall of China. Probably an ongoing issue, which is why he doesn’t post very often. He has been trying to post to let everyone know the sources are available, but the firewall keeps getting in the way.

The source code is now available from Intl-Outdoor’s D4 page:

He links to a zip file with the D4’s current code in it.

I also added the code to my repository and created a new D4-specific branch which will only contain stable releases:

Within both of those, you probably want to click “Browse the code”, “Tom_E”, then “RampingIOS”.

The D4 can also be reflashed with Tom E’s fantastic Narsil firmware, which is available here: Narsil

This means the D4 has two available firmwares at launch time, and I’m planning to write more.

I flashed NarsilM.hex from the repository, and it Just Works. Moon appears to be significantly lower, too — about the same as my ZL SC52, or 0.1 lm. I don’t recommend relying on its thermal regulation though, because it is calibrated for a much larger light with more thermal mass. It will get too hot.

Potential Issues

This light is currently the hottest of hotrods. And I do mean hot. Use the lock-out features to avoid accidental pocket activation!

The driver has reverse polarity protection, but I’ve seen two reports that it can hurt the battery. Don’t put the battery in backward, or it might get the light very hot and permanently kill the battery.

The driver is glued in. I’d much prefer a retaining ring for easier access and modifications. In practice though, I find this hasn’t been a big issue. The leads would need to be unsoldered to remove the driver anyway, and the driver pops out relatively easily by pressing from the inside.

No clip is included. However, in 18650 form it works with Convoy’s deep-carry clip:

The default firmware has no mode memory, so it’s missing one of my favorite features for e-switch lights. Fixed in v2.

Accidental activation could happen in a pocket or bag, but you can always put it in lock-out mode or loosen the tailcap to make sure this won’t happen.

Some people may not like the smooth body tube. I find it pretty and a nice change from the usual diamond knurling on most lights, but it might be a little slippery in some situations.

The driver seems to use about 4.5mA even without the LEDs on, so the absolute longest it could possibly run is about 28 days on a 3000 mAh cell. I’m not sure if this baseline level can be lowered without sacrificing critical functions. Tiny13 drivers have a floor of about 2.2mA, if I recall correctly, so the extra power may simply be due to having a bigger and fancier control chip. (Update: this is greatly improved in one of my newer firmwares called “Anduril”)

Upgrade Options

The D4 is pretty nice in stock form, but there are still ways to upgrade it:

  • Add a clip, such as the Convoy deep-carry clip.
  • The quad MCPCB could be upgraded to Mtn’s nice quad XP MCPCB to improve the beam shape. Each pad is rotated by 11.25 degrees, which gives it a round corona instead of a square corona. NOTE: This will require a thicker lens O-ring, or an O-ring on both sides of the lens, or some other way to make up for the reduced MCPCB thickness. The MCPCB needs to be held firmly against the pill shelf for good thermal conductivity, or it’ll risk frying the emitters.
  • The Carclo 10622 optic could be swapped out for a 10623 or other same-size optic to change the beam shape. (edit: this is now an option at Intl-Outdoor)
  • It could easily be modded to put glow paint inside, or tritium vials, if anyone wants it to glow while off. Be careful to only use materials which can stand a lot of heat! Typical glow stickers will generally just burn, which makes an awful mess.
  • The driver has an unused pad for an indicator LED. The switch PCB doesn’t appear to be easy to access, but this could be an interesting mod. The pad could also be used for other purposes, like a dedicated heat sensor, a light sensor, an “optic nerve”, etc.
  • Replace the tailcap PCB with a magnet?
  • The O-ring between the optic and the glass lens can be moved to the front side of the glass, to improve waterproofing, and/or replaced with a glow-in-the-dark O-ring.

And, of course, changing the firmware is already possible:

  • RampingIOS v1
  • RampingIOS v2
  • Narsil (Just Works :+1: )
  • STAR momentary (may need small changes first)
  • STAR dual switch (may need small changes first)
  • Ferrero Rocher (3 UIs) (needs FET+1 support first)
  • dthoang (needs FET+1 support first)
  • … and my entire suite of FSM / e-switch light firmwares, including Anduril.


Emitter differences:

219c XP-G2 XP-L HI
Colors 83+ CRI 70+ CRI 70+ CRI
Tints 5000K 4000K
Max Lumens ~3800 ~3300 ~4300
Throw ~12.2 kcd / ~220 m ~13.5 kcd / ~232 m ~20.2 kcd / ~284 m
cd / lm 3.2 4.1 4.7
Corona Shape square-ish least square-ish most square-ish
100% 7135 level 138 lm 161 lm 145 lm
Voltage Sag Least sag Most sag 2nd most sag
Price $40 $40 $58

What I liked:

  • Massive range of output from very dim to blindingly bright.
  • Smooth ramp covering all 150 levels.
  • Simple and intuitive UI with a few hidden extras like battcheck mode and lock-out.
  • Direct access to min and max.
  • Compact high-quality host similar to a ZL SC63 or SC600.
  • Choice of several tints and emitter types from 4000K to 6500K.
  • Costs only a fraction of a Zebralight.
  • Open-source code means it can be customized extensively.
  • Choice of three tube lengths and battery types.
  • Nice floody beam. Candela-to-lumen ratio of ~3.3 cd/lm.
  • Square threads on the body tube.
  • Good tint, not colored by a bad AR lens coating.
  • The size and shape feel good.
  • Rather small (short) for its battery type.
  • Anodizing feels tough and thick, but I haven’t seriously attempted to scratch it.
  • The springs are fantastic and don’t seem to have any trouble with the ~15 amps they’re carrying on turbo.
  • The head design is very effective at spreading heat, so the light is unlikely to damage itself.

Things I feel neutral about:

  • There is no built-in option for a UI with discrete levels. This doesn’t bother me, but some people might prefer it.
  • The beam could be slightly nicer with the emitter pads rotated a few degrees from each other, but this is only noticeable on the XP-L HI version. It makes sort of a pretty 4-petal flower shape in the corona.
  • The tail spring PCB appears to be press-fit or glued.
  • My 18350 tube is a slightly different shade of green. Only noticeable under good lighting.
  • Long protected cells do not fit. I tried a Panasonic NCR18650A with protection (69.5 mm), and the tail cap would not tighten. It stopped with the O-ring still exposed. This is probably okay though, since the highest mode would just trip the protection circuit anyway.
  • The driver is glued in. Fortunately, it wasn’t very hard to pop out from the inside.
  • LVP steps down all the way to moon in one step when the battery goes under 3.0V, instead of dropping in smaller steps. Fixed in v2.

What I didn’t like:

  • Click from off goes to moon instead of mem, so you can’t just dial in a nice brightness level and then use it for a whole evening. Instead, it must ramp up each time. Fixed in v2.
  • No clip.
  • The lowest level could be lower. Fixed in v2.
  • Thermal step-down doesn’t work well, so the light gets way too hot and then steps down too far and doesn’t recover. Fixed in v2.

It’s worth mentioning again — use the lock-out features for safe carrying. This light could probably start fires if mis-used, and that’s no fun in a pants pocket! And be careful not to put the battery in backward; that could cause problems too.

The End

Blame Foy _the_, it’s his pun.

Updates since initial release

Between the small first batch and second batch:

  • Firmware updated to V2

Since the second batch:

  • XP-G2 3D tint added (now available in ~3900K, ~4900K, ~5800K)
  • Screws added to hold down MCPCB tighter
  • AR coating added to lens (not the purple type, doesn’t make the beam turn green)
  • XP-L HI 5D tint added (now available in ~3900K, ~5100K, ~6600K)
  • Green finish changed to a grainy texture
  • Cyan finish added (with grainy texture like a garden pot or chalkboard)
  • Pocket clip option added (clip-on type, very very firm)
  • Throwy versions (D1 and D1S) now available
  • Frosted optic available as an option for a smoother floodier beam
  • 219c changed from 80CRI (somewhat cold and slightly green) to 90CRI (looks warmer and more rosy)
  • MCPCB updated to rotate emitters for a round corona instead of a pinwheel pattern
  • Titanium + copper version added

Firmware upgrades (old; v1 -> v2)


I tested the thermal behavior today. It gets way too hot. I don’t think it will damage itself, but it could burn skin. For now, I would recommend regulating the temperature manually. And I think I will be replacing the thermal regulation code.

This brightness-over-time graph is the behavior I measured on my grey light. It took almost 4 minutes to reach a level which did not exceed the thermal ceiling, which is far too slow. So I plan to make that a lot faster, and to make the thermal limit configurable.

(graph is from zak.wilson’s ceilingbounce app)


Better thermal regulation. Not perfect, but a big improvement. It responds faster and it doesn’t over-shoot the equilibrium point.
(this would make more sense if it also had a temperature graph, but it certainly felt a lot less scorching on my fingers!)

On a related note, the attiny85v has a thermal sensor and 10-bit ADC. For this project, I managed to get it to provide about 11 or 12 bits of precision. :smiley:
(it’s over-sampling and using noise to slightly increase the resolution… which may sound silly, but it improved the results so I’m keeping it that way)


After a couple minor tweaks, I tried a runtime test with a full 25R cell until LVP kicked in.

I had the thermal limit set to 45 C (ish) for this test and pointed a fan at it the whole time. Output stayed fairly close to a stable level after the initial peak, but it actually got slightly brighter over time overall. I suspect this might be due to the cell voltage getting closer to the emitter Vf, so there may have been less heat. Toward the end it also becomes very clear that the thermal regulation is fighting against the typical direct-drive sag curve.

So… aside from being a little bumpy, thermal regulation seems to be working pretty well.

Additionally, I made LVP drop in smaller steps, I added mode memory, and I calibrated moon to a range of 0.2 to 0.4 lm. It’ll need to be tested with other emitters to make sure it works on all of them though.


I think it’s nearly ready. Here’s the new UI so far:

Changes from the original version include:

  • added full thermal regulation with user-calibrated ceiling
  • added mode memory on click-from-off (default 100% 7135)
  • made beacon use current ramp level
  • made double-click toggle turbo (not just one-way any more)
  • made LVP drop down in smaller steps
  • calibrated moon to ~0.3 lm on Emisar D4-219c hardware
    (somewhat higher on Cree emitters)
  • blink when passing the 100% 7135 level, for reference
  • fixed display of “zero” digits
  • fixed/cleaned misc internal things


It seems Hank has been having some difficulty accessing BLF lately, probably due to the Great Firewall of China. Probably an ongoing issue, which is why he doesn’t post very often. He has been trying to post to let everyone know the sources are available, but the firewall keeps getting in the way.

The source code is now available from Intl-Outdoor’s D4 page:

He links to a zip file with the D4’s current code in it.

I also added the code to my repository and created a new D4-specific branch which will only contain stable releases:

Within both of those, you probably want to click “Browse the code”, “Tom_E”, then “RampingIOS”.

Thanks for the review TK the output numbers look awesome!

Are both the D4s you bought Nichia?

Yes, both pieces are Nichia 219c 5000K. I like it better than the other tint options. :slight_smile:

Very detailed review! :+1:

Now I’m even more psyched about my Nichia-filled D4 that should arrive on Monday. :smiley:

Damn that green looks good I wasn’t quick enough ended up going for the black Nichia D4 can wait for it to arrive

Thanks for the info. Saved me some money. I’ll wait for mode memory, perhaps unglued board etc.

Very interested in light output of other emitters. Really want to scoop one of these up.

Thanks for the nice review. It’s a nice looking light and all but it is sadly enough not for me :cry: . Without the option of presets, and always starting on low or turbo this light lost much of it’s appeal for me. I need to be able to roughly guess how long I can run the light and with only ramping mode this is impossible. Any reason why the config mode was taken out?

Damn I honestly was looking forward to his light, checking intl-outdoors site and the thread everyday. It’s a pity cause I’ve looking for a quad for some time now. I almost bought the S42 but the nichia version was out of stock when I tried to order it and then the reviews came in before it was in stock again. Then there was the deal for the S41 but I held out because of the D4. A quality build light like this for such a low price. Aaaaaaaah I really hope future version will have the config mode.

LOTS of output, should be tons of fun. I’m really hooked on those 18350 lights. Between these, Astrolux and the BLF A6 I’m hoping some of the parts LEGO. Lord knows I’ve got a few of every part possible. Please some one put the Copper idea in his head. Those pure beautiful Copper heads could really prolong step downs. Great work ToyKeeper I look forward to your improved tinkering.

Green tube and bezel + copper head + unglued boards = I’d buy it NOW!

Top shelf review. Looks very interesting….

I forgot to mention, awesome review!

Thanks for the great review!

This one would be a huge turn off for me, but I will probably end up making my own variant of the FW anyways.

Ps. Was it really Foy? Note the “The” in the “The end”. :innocent:

Thanks for the review! Looks like what the S42 should have been. And the green is realy nice too.

Pffft, whatever. I’d never make a mistake like that!

Or maybe you just wanted to underline the undermine the joke? :smiley:

Thanks for the review
Cute light for sure

Dammit, fuming I missed out on getting the green one. Or any LOL.

Thanks for the review! This is another must-have, despite all the driver-related bashing. Who needs flat regulation when you can have 3,800 lumens instead? :slight_smile:

Just one question… how long does the full ramping take, and can the ramping speed be adjusted?

Thanks for the awesome review :slight_smile: ,
looks hard to beat for the $ right now(ok pretty much impossible to beat!). Only down side for me, would be no level memory and having to ramp up a bit for a usable level(dont use sub lumen levels 99% of time). Still, very tempting…………… :slight_smile: