[retired] [WIP] 20mm single sided & 17mm double-sided ?-amp linear driver - surprisingly good!

Thanks for posting your code. I think there is what I would consider a minor regression redundancy of stuff in this version. I’ll take a closer look when I’m more on point.

Please comment out “#define FAST_PWM_START” and then change this line:

“TCCR0A = 0x23; // phase corrected PWM is 0x21 for PB1, fast-PWM is 0x23”

to read like this:

“TCCR0A = 0x21; // phase corrected PWM is 0x21 for PB1, fast-PWM is 0x23”

I fixed my link… I think… and fixed an obvious error in the FW, but now it appears as if moon is missing. The FW has Moon>L>M>T, but it I am only seeing three modes. It is lighting up on Medium and Turbo, but nothing on low.
So you’re saying to take it from :8 to :64?
………….
Oops, missed your last post

I tried the “TCCR0A = 0x21” and I upped moon from 3 to 5 pwm, and there appear to be no changes since my last post. 3 modes, one of them doesn’t light.
Rev 3 code

Update: I also just tried setting “TCCR0B = 0x03” and moon PWM to 8. Again, no changes.

Up the PWM levels a bit. The response curve isn't the same as 7135s or normal FETs.

Ah, sorry. I didn’t think about / notice the low moon mode you were using. That won’t work! :wink:

… Crap, that took forever. I couldn’t find where I posted on the subject! (Post #45.)

I’d start with around 10 to 15 and work from there.

Ok I tried it with this code.
Modes L>M>H>T with PWM levels at 20, 50, 100, 255
Still acts like there are three modes, but only two of them light up. very strange.

Well, just keep going upwards until you get something.

EDIT: I see now that you are saying that you’ve added a mode. Hmm.

My eyes need a break. I’ll take another stab at it tomorrow afternoon.

Good luck. Programming 4 modes and only getting 3 does not sound like a hardware problem. In fact, it kind of sounds like it didn’t flash at all…

Well, it has always had 4 modes, I just replaced moon with high. There has been no change in results from the last 3 fw revisions, so I thought maybe it wasn’t actually flashing it. This last time I erased it completely, then took the clip off and made sure the chip was actually clear before flashing rev5. Didn’t make any noticeable difference.

Maybe you are flashing the same hex file over and over?

I’m rebuilding it with each iteration, but if you don’t see something wrong with my code, that is still my best guess. Maybe there’s something weird going on with the avr tools cache. We’ll find out tomorrow.

I don’t see anything that would make either 4 mode config appear as 3 modes.

What procedure are you following? I do this:

  • build in AVR STudio
  • expand “output files”, double click on the hex -> save the hex file with a unique name
  • switch to the CLI (command prompt)
  • flash that particular hex file using a command formatted like this:
    avrdude -p t13 -c usbasp -u -Uflash:w:xxxxxxxxxxxxxx.hex:a -Ulfuse:w:0x75:m -Uhfuse:w:0xff:m

That’s exactly what I’ve been doing, except for the unique name. I have been overwriting “FW.hex” with each build so I can just copy/paste the same command line. I’ll try closing studio between builds to make sure it’s actually rebuilding it, then try unique names if that doesn’t work.

I don’t see why you should need to do the unique names part, I was just telling you exactly what I was doing. If you are actually opening the “save” or “save as” dialog box and overwriting the file each time I think we can be confident that you do not need to do anything different there.

My current suggestion is to add some more modes:

  • Define MODE_MOON again, leave the other modes defined.
  • Use 10/35/50/70/255

Sounds like fun :slight_smile:

If you’re unclear whether a firmware has been flashed correctly, and you’re using Phase correct PWM. Try simply changing the 8x divider fuse bit and reflashing. You can then tell by eye if the PWM frequency has changed, 1khz vs 9khz is easy to spot by waving your hand through the light. Of course you’d likely lose the lower modes as well so that should be even more obvious.
Just to quickly confirm it’s flashing correctly without having to recompile anything.

Here’s my recommendation- recompile and name the output file something different. Before flashing, open the new file, copy it’s content and paste it into a compare tool like diffchecker https://www.diffchecker.com

Then do the same with the old hex file to the other side of the diff checker. This will tell you that you’re correctly compiling (when I was new to avrstudio I had an issue editing the wrong file, using the diff checker on your hex files will verify you’re not making that same mistake).

You must edit the .c file asscosiated with the open project, if you open the wrong .c file, make changes to it, then recompile the project the freshly compiled hex file won’t reflect the changes you made to the non-project .c file because when you hit compile it will always huild off the project’s own .c, if you accidentally opened the wrong .file to edit those changes won’t change anything so verifying the new hex is different will show you that you definitely have a different file and that you have other issues.

That’s a good sanity check Cereal_killer. Doing diffs is never a bad idea.

Ok I started over from a virgin copy of STAR. I am now getting light on 4 closely-spaced modes. There are no “dead modes” in the UI, but according to the FW there should be a fifth mode. Is it possible it’s just entirely skipping over ‘moon’ for some reason?
This is where I am now. if I try to “build” it with “define Fast_PWM start” commented out, AVR studio gives an error that it is undefined.
At one point, I got a really nice firefly mode (as in you could stare directly at the die without hurting your eyes) but with all the confusion over the mode order I’m not sure what PWM setting produced it.

edit: I’ve been making my changes in wordpad starting a new project in AVRStudio with each revision to ensure they are actually taking affect. It seems to be working in that regard.