I recently picked up a Fireflies PL47G2 and didn’t see a flashing how-to out there for it, so I figured I’d write something up. This may work on other Fireflies lights but the PL47G2 is the only one of theirs I have so far.
Before starting, read over the guide for flashing the Sofirn LT1 as the procedure and pin layout is essentially the same. The pin layout on the LT1 is 3 over 3, the PL47G2 is 3 over 4 but one of the pins on the bottom row isn’t used.
Adapt the Hank Flashing Kit
I used the flashing kit from Hank (4 over 2 pinout) so as with the LT1 method it requires adapting the connection to the different pin layout plus some method of connecting an extra pin. I used a multimeter lead with a thin probe on one end and alligator clips on the other, clipped to a similar jumper wire to the ones mentioned in the LT1 thread.
Since writing this originally, I ordered some pogo pins and figured out that they can push fit into a dupont connector, so when I updated the light again, I used that instead of a multimeter probe.
Here are the connectors on my flashing kit with the jumper wires in place. The red wire on the right is going to the multimeter lead.
Grab the latest Anduril build from http://toykeeper.net/torches/fsm/anduril2/
If the PL47G2 uses emitters other than Nichia 219, download
If the PL47G2 uses Nichia 219 emitters, use either the
pl47-219variant or compile a variation of the pl47g2 firmware with the lower FET PWM levels safe for use with the Nichia emitters.
pl47-219firmware disables low aux levels so it’s not ideal for use on the PL47G2.
See this commit on my fork of Anduril 2 for an example of the necessary changes to make a custom
pl47g2-219variant. I have also posted a pre-compiled version of the hex file for this variant.
I used zflasher AVR on Android to perform the update, but there are other ways (like avrdude or similar). I’ll stick to zflasher, though.
.hex file somewhere on the phone/tablet accessible to the app (e.g.
Connect the phone/tablet to the flash kit (e.g. using USB C to A Female adapter or OTG cable)
Open the app and set it up as follows:
- MCU: ATtiny85
- Memory: Flash
- Action: Write
- Load the hex file with the firmware
Connect the Pins
Line up pogo pins on the flashing kit such that one pin on the row of 4 is NOT touching anything. Should be like so:
P P O N P P P X
Pis a pad touched by a pogo pin
Ois an open pad which is where the extra lead goes (multimeter for me)
Nis a pogo pin not touching a pad
Xis an open pad that is not used
Test and Update Firmware
In the app, run a test first. If it fails, fix the error and try again. Most likely it wasn’t making contact with all the pins.
If the test succeeds, then write and wait for it to write and verify.
Bonus shot of the cobbled together setup to make it happen, with a guest appearance from a D4Sv2 and SC31 Pro working together as a little task light:
Adapted from my post on Reddit.