Oshpark Projects

If the code is not an issue then is it possible for it to be corrupted during the flashing process? What I mean is, Is the flashing process foolproof. If the hardware is right and the traces are right and the soldering is right then where else can you look? Could it be a faulty mcu even?

If it works with one, but not the other, it’s not the hardware

And when flashing, it writes, then reads, to verify…if there is a problem it will tell you

Could it be a layout issue? I mean everything is connected correctly, but perhaps the comparatively longer traces (given the size of the board) required to get everything on the PCB are screwing something up?

I have even done an A-B-A test, luxdrv (no worky), STAR v1.1 (worky), back to luxdrv (no worky again). I re-reflashed an older Nanjg-092 driver that's been running the same build of luxdrv, and it still worked just the same as it did before. So, that build of luxdrv works on the 105C board+FET, but not on the new board.

I just browsed over the the last pages, so I didn’t get all details, but: is it right that that reset pin on the attiny is floating?
If yes, please try tying it to vcc with a 4.7k …10k resistor. That can easily cause such strange behaviour.

The thing is every board I have ever created with an ATINY chip (13 or 25 for me) has been setup exactly the same way. I have never experienced any of the problems that are being described here. Not saying it's right or wrong, just saying it's weird that Dale/Comfy are having issues. Happy to pass my BRD files onto anyone who wants to double check my work; it's entirely possible that I've made some stupid mistake.

- Matt

I will say this, on my joule thief build the .brd file I uploaded to OSHPark I got from alxsmith, some of the traces just went away, he was using an older version of eagle, but he fixed it with the latest…I think you said you were running 6.5.0 right?

Sure, no doubt it might run forever without any problems that way. :wink:
Thing is, the reset input is not designed or supposed to be left floating. It can change it’s potential through coupled-in noise through parasitic capacitance or inductance on the board, esp. in high current switching environments like those drivers. Even some dirt or flux residue can cause troubles. That’s why one should tie it to a potential like vcc (but with a high enough pullup resistor that the programmer still can pull it down. )
I would strongly suggest to implement that in future designs, even if it is not the problem in this case.

It very well could be the problem (that random blinking stuff could be resets), a workaround costs a few cents at best, so I would say it is worth a try. If you can exclude it from the list of possible causes, it was worth the 5min work I think. :slight_smile:

This may be a long shot but have you tried checking the board for shorts? At this point I may also try measuring resistance of traces vs. the 105C. I think that dave_ may also be onto something.

I have never needed an external pull-up on the reset pin, the internal pull-up sufficed. However, in noisy circuits, an external pull-up (typically 10k, maybe even only 4.7k, but not less than that) is often recommended, because the internal one is quite weak (~50k). My guess is that the FET switches much quicker than the AMC7135, which indeed implies more noise. It might help to check the reset pin with an oscilloscope.

A resistor between MCU and gate is also often recommended.

I'm not into DD, so haven't tried.

Well, 50k actually would be a lot better than what I recalled, but could still be to high in this situation. I’d give it a try.

Would comparing the code that works to the code that doesn't help to nail down what the issue is? I don't understand it well enough to know what the differences translate into in actual use...

http://75.65.123.78/fw/luxdrv02.txt (doesn’t change modes reliably)

http://75.65.123.78/fw/starv1.1clicky.txt (works fine)



http://75.65.123.78/fw/minimoandFFK-6mode.txt (works, but very noisy)

http://75.65.123.78/fw/starv1.0momentary.txt (quiet)

I'm using fuses 0x75/0xff when flashing all of them.

Also, for a temporary test, I can use a plain jumper wire from Vcc to RST instead of a resistor, right? Just don't try to program it with that in place (it would block the clip anyway)...

Here's a mouseover of the 17DD showing what's underneath

The diode could be rotated about 30* CCW to free up a bunch of space for fatter traces in & out. Also looks possible to pop in a via near the RST pin and add a resistor on the spring side of the board, if it turns out that's needed.

That's actually a very good point. Every FET based circuit I've ever worked on prior to this (so um...one lol) has had a 100ohm resistor between the MCU and FET gate. I think the reason I skipped it here was because the original SRK board never used one either, and I was lead to believe it work fine? That being said I know what it's there for so I should have included one regardless.

10k pull up on the reset pin to VCC will now be included on all my boards by default.

When I get the time to update some of these boards (and some sort of testing prior would be good) I will update the OSHPark projects.

Anyone who has ordered any of my boards and is experiencing problems, can you please PM me?

- Matt

The JB driver with the single 2SK4212 FET didn't use a resistor to the gate, and worked fine with any of the right firmware versions and before any mods using the stock unknown MCU and also after the piggyback 105C was added... it still works without the resistor on the new 46mm version, the only issue with that one is the noise from certain versions of firmware. Lack of a resistor shouldn't affect the smaller board if it doesn't also affect the larger one, I would guess.

17DD shows no change with RST jumpered to Vcc, still erratic mode switching with the luxdrv code.

Is there a pull-down resistor on the FET gate? Without one the FET could come on between the time the processor is powered up and it initializes the state of the output pins. Try something around 1K to 10K from the FET gate to ground.

None of the other boards have needed a pulldown on the gate using the same components.

I've tried jumpering various stuff at random: from B+ to the diode, and from the diode to MCU's Vdd, neither made any difference. But I then moved the jumper to go straight from Vdd pin to B+, bypassing the diode, and it now changes mode like it should, doesn't do that weird random strobe/morse code crap, doesn't change 2 modes when it should only do 1, etc. The diode isn't on backwards, could it just be a bad diode? I doubt it, since the battmon mode in luxdrv gives the correct number of blinks that matches the input voltage.

Try the pull-down…