Flashlight Firmware Repository

It is broken and the Launchpad team doesn’t want to fix it for some reason. Just use breezy to clone the repo.

What is breezy ?

It is the version control system used by Launchpad.

I downloaded 1 by 1 :smiley:

I used to post on here years back. This might be of use, it’s code for morse.

Edit: Should add, you have to go into the advanced menu 4 (adc) and hold the button down for awhile when you first flash it in, it’ll go through the adc options and if you keep holding, resets the light. This writes the necessary data in eprom. You can turn it off when it goes dark on the emitter and then it should work as written. I made quite a few of these lights, but in the end it was a fail. Noone really cares about morse. And the parts were expensive too. You need a decent inductor to safely put that much power into an emitter, and I figured out a neat trick on the tail cap to stop the arc. It turned out a fet and resistor simple. I ended up sourcing the inductor from isreal. The practical use turned out to be the usual. Guys were putting it on high and leaving it, burning out the emitters. It was all about high. Noone cared it was a morse code light with moonlight to blast. So that’s what I learned. I use it everyday for all sorts of things though.

Learned a lot here though. Some of you guys really know your stuff, couldn’t have created this without you.

If anyone is used to using Docker for development I have created a simple Dockerfile for spinning up a development environment with everything needed to compile.

It will download the source code from Launchpad if it hasn’t already. It also downloads the Atmel ATtiny Series Device Support pack but that doesn’t seem to enable compiling for Tiny1 series, I just get different errors :slight_smile:

I have recently modified Anduril 2 to include a (optional) visual low-battery-warning. I did my best to set it up in a way which gives clearly visible indications, while remaining as unobtrusive as possible. The notification is performed by the main emitters. The trigger is a combination of time, absolute voltage level, and voltage change.
You can read further details and download the source code via my GitHub repo:
https://github.com/madcrow/Anduril_LowBatteryWarning
(Yeah… I know, my videos are shitty :stuck_out_tongue: But they should be good enough to give you an idea of the default notification pattern.)

It also works during strobe modes:

Feel free to give it a try.
I included a bunch of compile-time-options, too, so its behavior can be easily customized.

Works reliably on my LT1.

Enjoy :slight_smile:

I’m not quite sure if this is the right thread, but does anyone got a 2-channel build of the Biscotti Firmware?

I would like to have it on my Fet+1 drivers like the mtn-electronics ones

I already looked at the Biscotti and Bistro source code but personally couldnt easily find what to change to make that happen

Is anybody having trouble downloading from firmware repository I’ve tried a couple times and its freezing halfway through…doing it on Android not cpu
Thanks

I know jon_slider was trying to download the tarball of a branch and has been getting HTTP 500 errors. I’m seeing the same thing.

it hasn’t worked for a very long time, on Windows you can use bazaar explorer : Bazaar

edit : Ah Android, you mean from a browser ?
edit : nope, doesn’t work either, some certificate error…

No my phone i have the Z flasher app it works really well its mostly the KR4 tintramp thats not working

I just found this post by TK
https://www.reddit.com/r/flashlight/comments/u16k31/sp10_pro_bug_when_turning_the_light_off_from/i4dn3t9/?context=3

it gives a link to her latest Hex

From what I’ve heard, Lumintop downgraded the driver and then used mismatched firmware. :person_facepalming:

I haven’t been in contact directly since 2019 though, so… I don’t know what they’re doing.

Canonical got rid of most of the Launchpad developers, so the site has been under-maintained for years. One of the consequences of this is, when the tarball function broke, nobody fixed it.

The recommended way to get the code is with bzr/brz (bazaar or breezy):

$ apt install brz
$ brz branch lp:flashlight-firmware
$ cd flashlight-firmware

The bazaar-vs-breezy thing is also a consequence of Canonical firing developers. They got rid of the Bazaar developers, but kept the name and the project ownership… so the developers forked it to a new name and kept working on it. The new one eventually replaced the old one, so now it’s Breezy (brz) instead of Bazaar (bzr).

After the code is branched locally, updates can be applied periodically with “brz pull”.

  • pull: apply upstream changes exactly, so the local branch will be an exact copy of the remote branch (may fail if local copy was changed)

If you made your own changes though, it’ll be necessary to use a more complex process: “brz commit ; brz merge ; brz commit”. This saves your local changes, merges in diffs from upstream, and then finalizes the merge. It’s generally a good idea to make sure the local and upstream changes don’t have any conflicts though, before doing the final commit. Breezy tells the user when it detects an obvious conflict, like when both branches changed the same file in different ways… but it can’t detect everything automatically. So, at minimum, it’s a good idea to do a sanity check by running the build script to make sure the code still compiles.

  • merge: apply upstream changes, but also preserve local changes
  • commit: check in local changes

To make things a little easier, I use a shell alias:

alias b=brz
alias g=git

Then I can use “b” or “g” to run these tools, like “b st” to see a list of changed files, or “b diff” to see exactly what was changed, or “b branch lp:~toykeeper/flashlight-firmware/anduril2” to download a local copy of the latest Anduril2 code.

@Nanuek Thanks for this. I have never used Docker but figured it out today and this worked for everything but downloading the source. Couldn’t download the tarball either so I grabbed it from somebody’s GitHub though it’s slightly out of date.
Anyways Anduril2 compiled for all but the 5 lights using the 1 series ATtiny boards on the first try. :slight_smile:

Is it possible to somehow enable a soft start in Biscotti? When I just uncomment it, I get errors like this:

Hi, is there already a PDF version of the Anduril 2 manual somewhere? I’m aware of Ivan’s HTML version which is great in the browser but AFAICS not when printing to PDF.

If not I’d be happy to make one… The current anduril-manual.txt is close to Markdown, and I guess Ivan has a Markdown version (to generate his website) which raises the next question:

ToyKeeper would you consider merging a branch that converts anduril-manual.txt to Markdown? (Any reason it hasn’t been done already with Ivan’s version?)

If it’s just a matter of someone needing to do some more work I would be happy to contribute.

Also curious if Ivan’s (or someone else’s) Markdown version is publicly available somewhere…

Are you on Linux or do you use Microchip studio on Windows ? I never managed to build Anduril with Microchip studio, with similar errors (”first use in this function”). I gave up and installed an Ubuntu VM, a few commands and done .

Edit : the message I replied to was deleted.

Sorry, I thought I’d move it to the Anduril 2 thread, and deleted the message, but here it is again.

Learning to make my own version of Anduril 2, and tried to build the downloaded Toykeeper branch before touching it, but the build fails with these errors.
Anyone want to help me out?

I’m building on linux.

Strange; my Linux Mint box must have some issues. Got it working on an Ubuntu VM.