[Review] 77 Outdoors D25 Headlamp (18650)

UI / MCU Mod

While the original UI isn’t terrible, it could be so much better. So… I tore down the headlamp (desolder LED wires from MCPCB and unscrew the button-end of the lamp, then push out the internals from the battery side) to prepare it for a brain transplant.

The driver itself is completely separate from the charging circuit, thankfully. Unfortunately though, the MCU wasn’t labelled and was probably PIC or something else I’m unfamiliar with (due to the pin layout with VDD and GND on opposing pins). Thankfully, that’s the same layout as the new attiny412 chips! But that brings it’s own set of difficulties: no firmware and scarce documentation on programming them.

Firmware: I started writing my own e-switch firmware mostly from scratch, but then I realized that what I was creating was almost identical to TomE and TK’s RampingIOS (found in the Emisar lights). So… I modified RampingIOS to accept compile-time switches for Attiny85 / 412 / 416 / 817 / etc. I also added compile-time switches for single channel vs dual-channel. All of this fit nicely onto the 4KB program space of the 412, which fit nicely onto the footprint of the old MCU. It’s running flawlessly… with the exception that I still need to dial in the temperature calibration. The AS-IS firmware can be found here.

Programming: the new AVR chips use UPDI (universal programming and debugging interface) instead of our old standby SPI interface (the 6 wire VDD/GND/RESET/SCK/MISO/MOSI). UPDI uses only 3 wires (VDD/GND/RESET), but the options for programming is a bit sparse. El Tangas has come up with a nice solution that I need to try. But for now, I bought a Attiny416 Xplained Nano development board and disconnected the onboard MCU. This allows it to be used as a programmer for other MCUs. AVRDUDE now has support for this, but you have to build it from scratch (it’s currently not in the pre-compiled versions). I installed Window (yuck) on an old laptop I had sitting around and installed Atmel Studio 7, which has great UPDI support and allows for in-system debugging (which has been extremely helpful).

Now the D25 runs RampingIOS, and I’ll say… it’s pretty great. Very intuitive interface. Well done, TomE and ToyKeeper!

Here’s the pin-out, and with the attiny412 in place. Note the hole drilled under the UPDI pad so that I can program the 412 while the headlamp is assembled.

1 Thank

I to have one of these . My charge indicator light turns green at 4.1 volts . It continues to charge after that to 4.22 volts and then stops.

I used mine this week to paint a room and it worked very well for cutting in the ceiling/wall line.

I to would prefer 5000k NW but it is not too cold.

Overall, a decent headlamp.

Beat me to it… I just got mine, was gonna review it here, too. :slight_smile:

I also noticed the same “D25” moniker for this, Boruit, and Xanes. It’s enough to get you dizzy trying to keep track of which ones came first. :laughing:

I thought you might be reviewing it too… Sue accidentally called me LightBringer in one email

I have the xanes version, but only able to get 700ish lumens out of mine. I have the same super cool 6500k+ twin xpl”s…guessing yours has a updated/different driver?

I plan on dismantling it soon. Based on pictures of the driver I’ve seen from other threads, I think I can swap out the MCU (current one is likely unlabelled). I’ll make sure to take pics while I’m in there.

:laughing:

Sweet :slight_smile: looking forward to it.

Just imagine a pair of 90+cri LEDs being pushed with 1300+ lumens and this will be one badaxx headlight.

Just chiming in to say I got my “rebate” from Sue, also. So they seem legit.

The Sofirn 2200 mAh battery tested at 2348 mAh on my Lii-500.

This light is exactly like the Boruit D10 in so many ways (UI, build, etc.) except with 2 no-name emitters.


But it does look a lot brighter and wider-beamed to me. The weight difference is negligible, but 1.87A to 2.49A max current will probably cause a noticeable drop in battery life for those who use the highest mode a lot.

I was wondering how long before I started seeing this light reviewed. I have been approached a few times by folks offering a rebate for a review and have passed. This time I bit, and they were pretty quick at providing the refund after my purchase. I have not even received the light yet, it’s due to arrive on Monday. I didn’t read the listing on amazon closely, but it was not clear if it came with a battery or not (now I know), and it it also seemed like it only had low, high, and a bunch of blinky modes, which I was not too excited about in a headlamp. Glad to hear it has a decent UI, we will see how I deal with the color, I’m not super fond of colors above 5K.

Yeah, it’s close to Angry Blue in CT, but it’s also pretty bright for a headlamp.

And I was all prepared to hate the UI, but it grew on me. When you figure that medium and well-done are likely gonna be the 2 most-used modes, you get ’em with 1 or 2 clicks from off. For all others, press’n’hold to step from medium to medium-rare, rare, then well, medium-well, back to medium, and repeat the cycle. And 1 click for off.

I already put up my review on Amazon, dunno if it’s “published” yet. Once it is, I’ll copy it here.

@gchart, are you sure about the 0.2mA current draw when the light is off? I did not measure that with my meter, I actually did not match any of the numbers you got. My meter is old and not calibrated, but I did see the current drop roughly at the same rate as you did. I measured 1.2a, 0.62A, 0.32A, 0.17A and 0.09A with my meter on the 10A scale. I measured 0.02mA on the mA scale, and 0.01 with my meter on the uA scale. I thought maybe those scales were not working, so I checked my d4 (which has an aux light board in it) and measured 0.7mA on both the mA and uA scales. This agrees with what I measured on a calibrated meter at my work.

Were you using a fully charged battery? That will make a big difference in this light since the driver is essentially a few current limiting resistors (in parallel) being PWM’ed by a couple small FETs. Following Ohms Law, if your voltage is lower than in my test, so would your current be.

If your battery was fully charged, then I scratch my head a bit. My amp readings seem to coincide with the lumen measurements pretty well.

I did not have a fully charged battery. I did charge it last night, and the higher intensity current values went up, but the bottom end was still 0.18A, 0.09A. But what I was mostly wondering was the off current. 0.2mA says the battery will be dead in a month and a half. I did not measure that much current, and I was able to measure 0.7mA on my D4, which I am sure is very close to accurate.

My measurements of the lower levels was 0.08A and 0.20A, which seems pretty close to your measurements of 0.09A and 0.18A… no?

Here’s my estimate for standby drain with included 2200mAh battery and my measurement of 0.2mA drain:

  • 2200mAh ÷ 0.2mA = 11,000 hours
  • 11,000 hours ÷ 24 hours/day = 458 days
  • 458 days ÷ ~30 days/month = 15 months

It’s entirely possible that I wrote down the figure incorrectly, but 0.2mA doesn’t seem unreasonable for standby drain. I remember it acting a bit odd, though. I feel like standby was near immeasurable until I turned the light on and off again, at which point it went up to ~0.2mA. Its as if some of the MCU peripherals (like perhaps a timer/counter, WDT, RTC, or BOD) didn’t get turned on until the light was turned on for the first time after a battery swap; but once enabled, they didn’t get shut off again for standby. Just a guess, but plausible.

Driver mod complete - now running RampingIOS! See Post 2

Thanks for the review and update on an excellent mod. :beer:

x2! wish I had the time a patience to fool around with doing this sort of thing.

Thanks guys! Oh, and if anyone isn’t up for flashing the firmware but is interested in doing this with their D25, I might be able to send a pre-flashed attiny412 to drop in (once I get the temp calibration straightened up… we’ll see how that goes though, because this thing doesn’t have a very good thermal path to the driver).