Texas Avenger "TA" Driver series - Triple channel + Bistro or Narsil + Clicky or E-switch - The Ultimate open source driver!

It's aiming toward being able to use the clicking switch like a normal clicky bistro at the same time as an eswitch yes. Since OTSM is broken, for the moment, to do this either requires the noinit trick or just shorting the OTC with the eswitch, preferable with a little series resistance, to squeeze both on. These combinations are all very untested.

One thing that may lead to an issue is as I have the forward switch, what happens when I use this with mode memory and use the switch tactical to give light sighns quickly

Will this also affect the OTC so modes changes when using the forward switch?

Yes, in all versions of bistro, with or without OTC, short presses change modes. Furthermore, many short presses rapidly enters the configuration menu. I think you should read the bistro documentation a bit. bistro-HD has some new features, but the operation is still bistro. I can't even think how to make a light that does what you want. I suppose a medium length press could be used for all mode changes. Otherwise, you'd have to just lock out all control, and then you only need a one-mode driver. Is that what you're going for?

I guess it's possible to have just one of the switches work that way, especially easy to arrange with the click switch. But I thought you wanted the click switch to not be just a dumb lockout. I'm confused about what you want.

I was hoping to get a light that has a mode switch and a seperate forward clicky, like Nitecore P12 or other lights, just turning light on and off with forward clicky
Mode memory always on
So the forward clicky can be used tactical

and having everything else managed with the eswitch including fast taps for programming

You can still do it with a fet-only driver (without any 7135) and STAR firmware .

Ok, but you were just complaining that in narsil the click switch is "just a lockout". Doesn't that mean it just turns the light on and off? Or does it reset the mode to some default at the same time?

Anyway,ok, it's easy to add an option to bistro-HD for this. I'll continue in that thread.

Re-installed Atmel Studio 7 today , but i still get the same thing…

So , if anyone can compile Narsil Triple V1.3 (with 3x 7135 option) for me it would help me a lot .

Narsil is build for eswitch only

If you cut the battery voltage the light resets and starts up with 2 blinks to say its ready, unusable as momentary forward switch

An I got the problem strobe and config runs too slow

Strobe and config runs too slow where? on bistro? Too slow subjectively, or like way way too slow? HD is set a little slower than TA-bistro I think. If it's way way slow though it's probably because your fuses have set your clock frequency too low. If all else fails there's a BLINK_SPEED setting that adjusts it.

I've never seen that. Probably better find a narsil thread to ask in. I don't know if Tom E watches this thread.

I compiled the Narsil triple v1.3.c with this method from this thread

I think it does not accept the preprocessor and other configs files

I learned a lot last 2 days getting into Amtel a bit, so i tried to compile your 3*7135 version
Compiling the whole project gives me an error in Amtel 5 that some tool is missing

Opening the Narsil triple v1.3 solution I need a newer version of Amtel studio than my 5

Watching it today... I've never seen/heard of this problem. Been using 7.0 since it came out on 3 different computers - Win 7 and Win 10, probably for a short time on Win 8.

Does the error occur only when you call up the properties page? You shouldn't have to open it - the defaults already in the .atsln and .cproj files should be good to go. What happens when the error is up? Can you close that properties window or do anything?

Looked around and can't find the local file for your local project settings. Think'n if I could find that file, might be worth trying deleting it.

There's some config files in the \AppData\Local\Atmel\AtmelStudio\7.0 folder (under your user name), but nothing I could find specifically on the NarislTriple project.

Under the roaming folder there is a log file called: ApplicationStatus.log. it's in the "\AppData\Roaming\Atmel\AtmelStudio\7.0" folder. Might be worth looking in there.

My log file is below. Seems like it's just for this or last session.

19:39:58.834: Constructing a new instance of Status Report Service
19:39:58.835:
19:39:58.835: Providing a new reference to the instance of Status Report Service
19:39:58.886: Entering constructor for: Atmel.VsIde.AvrStudio.Services.BackendService.BackendServicePackage
19:39:58.887: Entering Initialize() of: Atmel.VsIde.AvrStudio.Services.BackendService.BackendServicePackage
19:39:58.930: 19:39:58: [INFO] Starting local Backend Agent atbackend.exe 127.0.0.1:0
19:39:58.979: 19:39:58: [INFO] Process: C:\Program Files (x86)\Atmel\Studio\7.0\atbackend\atbackend.exe /connection-port=63576
19:39:59.179: Entering constructor for: Atmel.VsIde.AvrStudio.Debugging.DataBreakpoint.DataBreakpointPackage
19:39:59.181: Entering Initialize() of: Atmel.VsIde.AvrStudio.Debugging.DataBreakpoint.DataBreakpointPackage
19:39:59.274: Entering constructor for: Atmel.VsIde.AvrStudio.Debugging.DebugCommands.DebugCommandsPackage
19:39:59.296: Entering constructor for: Atmel.VsIde.AvrStudio.Services.DeviceService.DeviceServicePackage
19:39:59.297: Entering Initialize() of: Atmel.VsIde.AvrStudio.Services.DeviceService.DeviceServicePackage
19:39:59.319: Entering constructor for help about Atmel.VsIde.AvrStudio.Branding.HelpAbout.HelpAboutPackage
19:39:59.321: 19:39:59: [INFO] Initializing help package Atmel.VsIde.AvrStudio.Branding.HelpAbout.HelpAboutPackage
19:39:59.366: Entering constructor for: Atmel.VsIde.AvrStudio.LanguageServices.Packages.ServiceProviderImplementations
19:39:59.367: Entering Initialize() of: Atmel.VsIde.AvrStudio.LanguageServices.Packages.ServiceProviderImplementations
19:40:00.339: Entering constructor for: Atmel.VsIde.AvrStudio.Services.TargetService.TargetManagerPackage
19:40:00.341: Entering Initialize() of: Atmel.VsIde.AvrStudio.Services.TargetService.TargetManagerPackage
19:40:00.587: Entering Initialize() of: Atmel.VsIde.AvrStudio.AsfPackage.AsfPackage
19:40:00.983: Entering constructor for: Atmel.VsIde.AvrStudio.Asf.Service.AsfServicePackage
19:40:00.985: Entering Initialize() of: Atmel.VsIde.AvrStudio.Asf.Service.AsfServicePackage
19:40:01.003: Entering constructor for: Atmel.FDK.FDKPackage
19:40:01.036: Entering Initialize() of: Atmel.FDK.FDKPackage
19:40:01.162: Entering constructor for: Atmel.AtmelKits.AtmelKitsPackage
19:40:01.162: Entering Initialize() of: Atmel.AtmelKits.AtmelKitsPackage
19:40:01.221: Entering constructor for: ToolchainProvider.AvrStudioToolchainExtensionPackage
19:40:01.222: Entering Initialize() of: ToolchainProvider.AvrStudioToolchainExtensionPackage
19:40:01.281: Entering constructor for: Atmel.VsIde.AvrStudio.Extensions.AvrAssembler.AvrAssemblerToolchainPackage
19:40:01.282: Entering Initialize() of: Atmel.VsIde.AvrStudio.Extensions.AvrAssembler.AvrAssemblerToolchainPackage
19:40:09.422: Entering constructor for: Atmel.VsIde.AvrStudio.Services.ToolService.ToolServicePackage
19:40:09.423: Initializing Atmel.VsIde.AvrStudio.Services.ToolService.ToolServicePackage
19:40:09.502: 19:40:09: [INFO] Added ToolInfo: Atmel-ICE
19:40:09.507: 19:40:09: [INFO] Added ToolInfo: AVR Dragon
19:40:09.511: 19:40:09: [INFO] Added ToolInfo: AVRISP mkII
19:40:09.515: 19:40:09: [INFO] Added ToolInfo: AVR ONE!
19:40:09.521: 19:40:09: [INFO] Added ToolInfo: EDBG
19:40:09.534: 19:40:09: [INFO] Added ToolInfo: EDBG MSD
19:40:09.547: 19:40:09: [INFO] Added ToolInfo: EDBG
19:40:09.554: 19:40:09: [INFO] Added ToolInfo: Atmel FLIP
19:40:09.559: 19:40:09: [INFO] Added ToolInfo: J-Link
19:40:09.564: 19:40:09: [INFO] Added ToolInfo: J-Link over IP
19:40:09.569: 19:40:09: [INFO] Added ToolInfo: J-Link ARM-Pro
19:40:09.574: 19:40:09: [INFO] Added ToolInfo: J-Link Ultra
19:40:09.577: 19:40:09: [INFO] Added ToolInfo: JTAGICE3
19:40:09.582: 19:40:09: [INFO] Added ToolInfo: JTAGICE3
19:40:09.586: 19:40:09: [INFO] Added ToolInfo: JTAGICE mkII
19:40:09.592: 19:40:09: [INFO] Added ToolInfo: mEDBG
19:40:09.598: 19:40:09: [INFO] Added ToolInfo: Atmel Mega DFU
19:40:09.604: 19:40:09: [INFO] Added ToolInfo: Power Debugger
19:40:09.608: 19:40:09: [INFO] Added ToolInfo: QT600
19:40:09.612: 19:40:09: [INFO] Added ToolInfo: SAM-ICE
19:40:09.616: 19:40:09: [INFO] Added ToolInfo: Simulator
19:40:09.620: 19:40:09: [INFO] Added ToolInfo: STK500
19:40:09.624: 19:40:09: [INFO] Added ToolInfo: STK600
19:40:09.868: 19:40:09: [INFO] Connected to backend at 127.0.0.1:63576
19:40:10.359: Tool:getAttachedTools 489.429 msecs
19:40:10.372: 07 40 10 372: msg send(8):R 1
19:40:10.373: Stream:setLogBits 10.0781 msecs
19:40:10.386: 07 40 10 386: msg recv(8):E Locator peerAdded {"Port":"63576","Host":"127.0.0.1","ID":"LocalHIL0","Name":"Local HIL","OSName":"Windows","TransportName":"TCP"}
19:40:16.532: Entering constructor for: Atmel.VsIde.AvrStudio.Project.Gcc.AvrGccPackage
19:40:16.534: Entering Initialize() of: Atmel.VsIde.AvrStudio.Project.Gcc.AvrGccPackage
19:40:16.599: Entering constructor for: Atmel.VsIde.AvrStudio.LanguageServices.AvrAssemblerLanguage.AVRAssemblerLanguagePackage
19:40:16.600: Entering Initialize() of: Atmel.VsIde.AvrStudio.LanguageServices.AvrAssemblerLanguage.AVRAssemblerLanguagePackage
19:40:16.621: Entering constructor for: Atmel.AvrStudioCommands.AvrStudioCommandsPackage
19:40:16.623: Entering Initialize() of: Atmel.AvrStudioCommands.AvrStudioCommandsPackage
19:40:16.677: Entering constructor for: Atmel.VsIde.AvrStudio.Debugging.TraceView.TraceViewPackage
19:40:16.679: Entering Initialize() of: Atmel.VsIde.AvrStudio.Debugging.TraceView.TraceViewPackage
19:40:16.782: Entering constructor for: Percepio.TraceForAtmelStudio.TraceForAtmelStudioPackage
19:40:16.789: Entering Initialize() of: Percepio.TraceForAtmelStudio.TraceForAtmelStudioPackage
19:40:16.859: Entering constructor for: Atmel.VsIde.AvrStudio.MakeBuilderService.MakeBuilderServicePackage
19:40:16.860: Entering Initialize() of: Atmel.VsIde.AvrStudio.MakeBuilderService.MakeBuilderServicePackage
19:40:16.921: Entering constructor for: Atmel.VsIde.AvrStudio.Services.DataBreakpointService.DataBreakpointServicePackage
19:40:16.921: Entering Initialize() of: Atmel.VsIde.AvrStudio.Services.DataBreakpointService.DataBreakpointServicePackage
19:40:18.955: 19:40:18: [INFO] Found Toolchain Factory Atmel.VsIde.AvrStudio.Extensions.AvrAssembler.Toolchain.AssemblerToolchainsProvider:
19:40:18.956: 19:40:18: [INFO] Found Creatable Toolchain Name com.Atmel.AVRAssembler from Factory Atmel.VsIde.AvrStudio.Extensions.AvrAssembler.Toolchain.AssemblerToolchainsProvider
19:40:18.956: 19:40:18: [INFO] Found Toolchain Factory Atmel.VsIde.AvrStudio.Extensions.AVRGCC.AVRGCCToolchainFactory:
19:40:18.956: 19:40:18: [INFO] Found Creatable Toolchain Name com.Atmel.AVRGCC32.C from Factory Atmel.VsIde.AvrStudio.Extensions.AVRGCC.AVRGCCToolchainFactory
19:40:18.956: 19:40:18: [INFO] Found Creatable Toolchain Name com.Atmel.AVRGCC32.CPP from Factory Atmel.VsIde.AvrStudio.Extensions.AVRGCC.AVRGCCToolchainFactory
19:40:18.956: 19:40:18: [INFO] Found Creatable Toolchain Name com.Atmel.AVRGCC8.C from Factory Atmel.VsIde.AvrStudio.Extensions.AVRGCC.AVRGCCToolchainFactory
19:40:18.956: 19:40:18: [INFO] Found Creatable Toolchain Name com.Atmel.AVRGCC8.CPP from Factory Atmel.VsIde.AvrStudio.Extensions.AVRGCC.AVRGCCToolchainFactory
19:40:18.956: 19:40:18: [INFO] Found Toolchain Factory Atmel.VsIde.AtmelStudio.Extensions.ARMGCC.ArmGcc32BitToolchainProvider:
19:40:18.956: 19:40:18: [INFO] Found Creatable Toolchain Name com.Atmel.ARMGCC.C from Factory Atmel.VsIde.AtmelStudio.Extensions.ARMGCC.ArmGcc32BitToolchainProvider
19:40:18.957: 19:40:18: [INFO] Found Creatable Toolchain Name com.Atmel.ARMGCC.CPP from Factory Atmel.VsIde.AtmelStudio.Extensions.ARMGCC.ArmGcc32BitToolchainProvider
19:40:20.530: 19:40:20: [INFO] QueryAttribute: [Cclass, Device];[Cgroup, Startup];[Cvendor, Atmel];[compiler, GCC];[Dname, ATtiny85];[Output, exe]

In NarsilTriple (same as Narsil), the tail switch should work to change modes w/memory, but only if in mode sets, not ramping.

So in ramping -- yes, the tail switch simply cuts power and acts as a mechanical lockout - same as loosening the tailcap on many lights. I thought of using it to go to max output as a default instead of the 2 blinks and default to OFF - it's a simple change really. Downside is if you have the switch off and simply want to power up the light without getting blasted w/max, you can't do that anymore. I could make it a compile time option, or configuration setting as well, but others want to go further with this simple change, and also change how the e-switch basically works - that's where it gets complicated.

here you go
http://www.metronixlaser.de/bilder/flashlight/NarsilTriple_v1.3_7135x3.hex

I thought about this turn on the light at max brightness
Its basically what the Klarus XT11GT does so no problem there for me

On the other hand if you want turn it on on moon from Off, why not programm it to hold eswitch while turning on to avoid blasting your night vision?

Could do that - good idea, but again, TA doesn't want it working this way, so didn't bother any further.

Thanks a lot :beer:

I can state success for the Narsil build with the E-switch plus forward switch

Tom E changed the code so that the light gets always in turbo mode when the battery is conected here

This is the same as it was in the Klarus XT11GT light.

the normal narsil is running on my mopdded Skilhunt H03R
also adjusted the thermal calibration, works perfectly

black and white goes to swich with indicator LED which is feed by pin 7 over a 4.7kOhms resistor


left with TA 21mm driver, on the right stock with TIR both with identical high drain cell
left 4.55A right 2.45A

Glad that worked out. I'll be adding that into the mainline code for both Narsil versions. Right now I got another driver project to work on - might be tied up with it for a week or two.