Attiny25/45/85 FW Development Thread

Have you shared your X6R firmware somewhere? I’m looking for something with temp monitoring that would work on a 25v for my 7g3cs (dual switch).

I’m also looking for a very simple (3-4 modes) clicky firmware with temp monitoring for a different project.

No - I've done nothing w/temp monitoring, and my adv. e-switch/brownout development is stalled til I can figure how to get the dnld working reliably.

So I had a attiny85 (not 85v) and did a couple tests. I don’t have any of wight’s boards. I do have a different 17mm fet + 7135 board. Beta test design meant for attiny45/85, so no bending legs.
Air clipped, flash verifies ok.
Tiny85 soldered onto the board (otherwise unpopulated)…. flash verifies ok!
Added the diode and 7135, flash verifies ok.

I did buzz out :smiley: all the soldered connections just to be sure all components so far are making contact to the board / soldered ok.

I’m afraid I have no insight into why mine is flashing fine while yours isn’t Tom. :ghost: Except the previously suggested… madness! I also don’t have any other tiny85s, just the one. My programmer is the common usbasp clone, blue (LC Technology) version. Clip from aliexpress $1.80 link (but the clip received actually matches this one instead).

Thanks Halo. Interesting... Ordered the $2 clip from your AliExpress link - for $2, it's worth to use it at least for a backup. I did order a similar one off of eBay, shipped from China and not here yet.

I got 2 other driver OSHPark boards with the widened footprint, but didn't want to try them since they are both new untested - one from PD68 for the X6R, one from Richard. I'm thinking of cutting traces 1 by 1 on the bare board (throw-away anyway) to see if the leg traces has anything to do with it.

Hoping I'll have more time today. Yesterday I had a couple hundred Habanero peppers form the garden to take care of - got a batch jarred up.

Could you provide what fuse settings you used, maybe the full AVRDude command to dnld? Thanks!

Oh yea, I did flash the fuses separately first. Fuses are just 8mhz; startup +64ms (default), SPI enabled, brown out detection disabled. Everything programmed at 3.3v.
sudo avrdude -c usbasp -p t85 -P usb -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
sudo avrdude -c usbasp -p t85 -P usb -U flash:w:./blf-a6.r155-85test.hex

Ohh - never did it that way - I'll try.

I usually do fuses separate out of habit, since you don’t necessarily need to change them each time. If different fuses aren’t called for then I don’t do fuses when flashing a new hex.
Just tested flashing fuses on my half populated board. Flashed and verified without error.

The problems I have had with not being able to flash the MCU on a board have been components, in particular capacitors. In my case the capacitor has been enough to screw up the flashing process. Took me a while to figure this out, but once that capacitor was removed I could flash fine.

So what components do you have on what pins? AMC7135s don’t appear to interfere with the flashing process, I’ve been able to have them on any pin, but not so with capacitors.

I have a 85V on a bare board - no components at all, accept the MCU, and it won't flash. The bare board is a wight FET+1 driver.

^

When reading about how to make ground plane polygons, one reference said certain configs can create capacitance in the PCB. I think wight used ground plane polys in some of his later boards. Not saying this is the issue, but it might be something to consider. I seems unlikely though as we all should be having the same issue (assuming our programming and computer equipment are working about the same).

I guess you could set your DMM to measure capacitance and then measure between pins. If you do this, short the pins (without power connected) to discharge and any stored charges that may be in the PCB before taking each measurement.

EDIT: Corrected typo

Ok, I "think" I fixed the problem. I'm not too excited cause time will tell... The apparent big major problem is the pinouts of the USBASP V2.0 is not as documented, maybe... flashlightwiki seems to be wrong, at least not matching my USBASP. Also the Protostack "AC-PG-USBASP USBASP AVR Programmer" manual seems to have it wrong, even though that's where I bought the USBAVR from! Also, the ProtoStack doc and flashlightwiki don't match each other for pins #3 and #4. Ground pins are #8 and #10, pins #3 and #4 are something else -- 8 and 10 check for continuity, #3 doesn't. Both my USBASP's are labeled Lcsoft Studio, one bought from FastTech, one from ProtoStack.com, and both show no ground continuity on pins #3 or pin #4.

Ok, so change the ground pin from #3 on the dongle to #10 -- all flash programming issues seemed to have gone away. So far I haven't bricked any MCU's also, and it works multiple times without a hitch. What I'm doing now is setting the fuses separately from doing firmware dnld - two different batch files, ala Halo (thanks!). This in itself though did not help, did not fix the problem, but somehow it recovered an 85V I thought might have been bricked (no longer programmed in air).

Someone please confirm, or not, this insanity -- if we all have been wiring this up wrong and getting away with it for the 13A's...

I'm really, really hoping this is legit. WinkSmileCool

I can confirm, no ground on pin 3 of my blue LC Technology version. Pin 10 and 8 are ground. By the way pin 4 is suppose to be txd, goes along with pin 6 rxd on the LC Technology / LCsoft version. It was broken out for future use or alternative use of the board.

Did a little more searching, and in Hoop's useful thread on how to flash a Nanjg (https://budgetlightforum.com/t/-/30672), he references the flashlightwiki page, which I have to assume is wrong for the USBASP's we are buying now, but in his Post #1 he lays out the wiring for ground to go to the proper pin #10 in one set of pics/info (the clearest defined one), so maybe lots of guys have it right. Back when I started, we used flashlightwiki as the ultimate guide/ref.

Here: http://www.protostack.com/accessories/usbasp-avr-programmer, is a link to Users Guide that shows pin #3 as ground, pin #4 as TXD, but it seems clearly the doc is wrong about pin #3.

Protoshack, $18 for a usbasp clone?! At least double check and fix your pinout for $18.

Yes - I bought mine before I knew of FastTech, and the "Perfect Modes" thread and flashlightwiki were the only sources of info, so it was posted there ProtoStack had them. I got my latest AVRDude version from their site - drivers that work under Win 10. They actually have manuals, support, etc. , but after we found them on FastTech for cheap, we all got them from there. My FastTech one though has a bent USB connector - poor mount on the board.

This is great btw... I'm off writing code, testing, debugging, etc. Already re-dnlded 3-4 times without a hitch !!

I’m cheap, I like searching ebay and now aliexpress. They sometimes have better prices than FT / BG. Plus it’s easier to get a refund on ebay if the item never arrives or is doa.

Ok - got my 8 * 2 * 2 mode configurations working. Didn't take long once I could dnld. Works awesome so far - 8 sets of modes in lo->hi or hi->lo order, and mode memory or not. Just under 2K of code space.

I like how it works so far. I can add a couple more options now.

Nice!
Are you running at 8mhz on the tiny85? Have you tried 4mhz? I think 4mhz should increase reliability for the tiny85 (non-v) at lower voltages than it’s official 2.7v min. Then we can use the cheaper non-v 85s.

I don’t know if there reallyis the need, I mean is anyone going to want a LVP cutoff below 2.7v anyway? And official specs are usually conservative anyway, jeelabs sells atmel boards that run outside of specs and have never had a problem. But still I’d idea of helping to keep it reliable at lower voltages, just in case.

Yes - 8 Mhz. No, didn't try 4, but tried 6.4 Mhz, and even though I set F_CPU for 6.4, the timing of _delay_ms() was way off, like a factor of 5 times slower. Not sure why...

Nice to see you’re on track again!

Making some progress myself. I’ve now got the off time cap, voltage monitoring and the E-switch all working on the same pin, and the temperature sensor working also. It requires quite a lot of adaption in the code to do things this way, so porting my 84 firmware to the 85 will be a bit more time consuming. But happy that it works though.