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

^ that sounds very interesting
Could you elaborate slightly about which pin you used? Knowing your design a bit I doubt you had a free unused pin around. :slight_smile:
But where (and how) did you share this added feature with? And how you did set it to low (PortB command I presume)?
Thx

I’ve switched to the ATtiny841 MU so I do have a few pins laying around :slight_smile:

I had shared a version of my 841 driver here: Mike C drivers: v8 series, ATtiny1634 based. but as that design is obsolete I un-shared it. I will update that thread and share the new design shortly.

In my new design the negative side of the divider which normally goes to ground now goes to PB0. However, I’ve just ordered that board. My confirmed tests where with wires, loose resistors and the negative side of the divider connected to PA5. To test I set PA5 as output in DDRA register, set PA5 to low with PORTA to turn the divider on, and set PA5 to high to turn it off. With PA5 low (divider on) my ADC read returns correct voltage, with PA5 high (divider off) the ADC read returned about the same as for a floating pin.

This is getting more interesting all the time! I’m looking forward to seeing your new driver design.

I tried to change some modegroups
when i build the solution in Atmel Studio 7 I get 110.3% size of a Attiny25 error

I had the same issues, this is why I now only build it in linux. It was just not worth the hassle of getting atmel to work properly.

Make sure that the optimization is turned on is the first thing I would check.

Solution is what TA said probably :slight_smile:

I have serious problems with the TA Bistro on a Tiny85

when the driver rests at room temperature and I turn it on its working OK
but after a couple of seconds the long presses get extreemly short so the short presses dont work its like the long presses are way too short when like longer than 20milliseconds its registered as long press

MCU flashed with this
avrdude -c usbasp -p t85 -u -Uflash:w:TA_Bistro_85.hex -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Strange, I would have to look at the fuses I used but pretty sure they were the same as what narsil uses. I have not noticed any issues running bistro on the tiny85 but also not sure what lights have the tiny85 and which the tiny25.

The most likely candidate is the OTC cap. Are you using the same cap for the tiny25 and tiny85?

I can’t think of any reason why the timing would change over time except heat, is it getting hot?

I changed the OTC, no change
I tried the fuses in your TA Bistro file for 85 and Narsil fuses

it seems to be changing fast after I get it to power or it is above 27°C

Very strange, all the other components on the driver are the same as the tiny25 versions that work fine?

What do you mean it changes fast once you get it to power?

So if you keep the temperature low it works fine?

Are you using the included hex files from the TA bistro or one you compiled yourself?

I would try flashing the pre-made hex file and even the stock bistro from TK’s repo and see if the results are any different.

yeah I put that board to the side after an hour unhappy

I needed to compiule a hex, with modegroup 18 changed turbo in front of Strobe

just had one other strange board,
turned out on the top side below one AMC7135 the ground made contact to the hole going to MCU pin 5 and PWM of top side AMCs,
as there was not enough solder mask to cover it so the back of the AMC had made contact to it

Yeah, a short will cause issues. If you have the same issues with all the drivers that use your compiled version, try flashing the pre-made versions. I have tested and use those myself so I know they work.

I did flash your bistro hex on all other drivers
this one is different as I am out of Tiny 25 and have to change one modegroup and do a temp cal

it works fine with your hex premade files, so there must be an issue in my compiled version
could you mail me #your atmel studio 5 project containing Bistro?

I set the tk-attiny.h for attiny 85 and changed that one modegroup
added
#elif (ATTINY == 85)
// TODO: Use 6.4 MHz instead of 8 MHz?
#define F_CPU 8000000UL
#define EEPSIZE 512
#define V_REF REFS1
#define BOGOMIPS (F_CPU/3200)

fuses
avrdude -p attiny85 -c usbasp -u -Uflash:w:TA_Bistro_85.hex:a -U lfuse:w:0xe2:m -U hfuse:w:0xde:m -U efuse:w:0xff:m

Basically for next batch I want to have also more Tiny 85, so i can programm TA Bistro or Narsil on them

Voltage sag is another issue with OTCs. I had one that sagged so bad that once I put it in boost I couldn’t get it out. Almost every press, no matter how fast, resulted in so low values the light always did a cold start. When I finally got it out of boost, changing modes back and forth was fine, as long as I didn’t go back into boost.

Ah, if it works with the pre-made hex then it must indeed be in the atmel compile settings.

I would send you mine but like I said, I don’t use atmel anymore, it was just too much of a hassle to get it to work right.

I use linux to compile now and it never complains or has an issue and generally gives me smaller file sizes as well. I saw no reason to try atmel again.

You can setup a linux install on a USB flash drive to take care of flashing things or use a virtual machine, which is what I have been doing recently. It allows me to save the state of the machine and easily access it anytime without having to either reboot or have all the code up in my normal linux install.

I’ve now updated my 841 driver thread with some info about the new design: Mike C drivers: v8 series, ATtiny1634 based.

In that snippet of code above, I found the definition of BOGOMIPS there is not correct for 8 Mhz. A value of 2000, what it was originally, works perfect. It's used in the _delay_ms() function in tk-delay.h.

I fixed in my local latest version of NarsilTriple, but in Narsil it's correct.

I wrote a timing test loop to test/confirm this. NarsilTriple is slow in all delays by 25% - programmed delays of 10 seconds actually take 12.5 seconds. I first noticed it recently when battery status blink outs were noticeably slower on some of my lights, then traced it down to this.

I posted bout it here: https://budgetlightforum.com/t/-/32545/1348, but no one responded to this.

Not sure you guys are aware of this, or are having this issue. It's subtle, not easily noticeable.

This is the test code I added - 1 sec on, 1sec off loop:

   //----------------------------------
   // Timing Test
   //----------------------------------
   while (1)
   {
      if (rampState != 0)
         break;
  TurnOnBoardLed(1);
  
  if ((onboardLedEnable == 0) || (twoDigLedOnly == 0))
     SetOutput(BLINK_BRIGHTNESS);
  
  _delay_ms(1000);
  
  TurnOnBoardLed(0);

  SetOutput(0,0,0);
  _delay_ms(1000);
  
  if (rampState != 0)
     break;

}

So made some progress on merging Narsil 2 channel and 3 channel, so I have one source code base now with a header file called setups.h. In setups.h, you define all the board configuration settings and other compile time user option settings.

It's compiling now for 2 channel and 3 channel, with indicator LED enabled or disabled, and using R1/R2 or internal V1.1 ref for voltage monitoring.

Totally untested, but it compiles.

Next to do is actually try it...

Some Details:

It has the more advanced, simplified version of the configuration settings UI that's in the 2 channel latest version of Narsil, v1.3. One new feature is ability to set the temperature threshold for thermal stepdown. There's probably a couple more tweaks as well in LVP and thermal stepdown, results from more recent testing.

Testing will take some time - may need to actually build up a couple boards, etc.

Very nice, I was hoping this would happen.

Thanks! TK responded about the BOGOMIPS setting, and she sees it's been wrong. Said she just corrected it, updated in the source code control repository.