Thank you.
Zoltan
PICStep now has a V2.0 firmware available.
It has a new 1/16 mode (1/16, 1/8, 1/4 and 1/2, lost full), a 5 1/2 minute auto shutdown and the direction line bug fix.
The motor should sound exactly the same in either direction.
http://www.fromorbit.com/projects/picstep/
Alan.
Thank you.
Zoltan
Where is the v.2 software listed on the site? all i can see is v1.1
i think something happened to his hosting.PICStep gets 1/16 stepping and a bug fix! 25/07/06
After deciphering what RadekCX from the Czech Republic was on about in numerous hard to understand posts on CNCZone, I finally figure out what he was talking about. He had found a bug in the firmware that was caused by a bug in the LMD18245 datasheet.
The LMD will not switch correctly if the direction of the energy flowing through the coil changes before the LMD DAC is told to go to 0 (it must be 0 before the direction change). A tweak of the firmware and some tidy-ups and this issue is now resolved. The motor should sound exactly the same in both directions of rotation (and may have less resonance at high speed).
I've also added 1/16 stepping because I was rewritting the DAC tables anyhow and it seems like a nice little upgrade. The mode switches now select from 1/2, 1/4, 1/8 and 1/16. So if you liked the 1/8 mode you will need to adjust you mode settings to keep it as it will now be 1/16 otherwise.
Also I've made two versions for the compiled HEX files. One with the auto 5 1/2 minute shutdown and one without for those that hated the shutdown feature.
Let me know if you find any more bugs!
* NEW Firmware V2.0 20MHz - Sources + HEX
* NEW Firmware V2.0 (No auto timeout) 20MHz - Sources + HEX
Cool thanks,
What setting is torque compensation on? 1/2 step?
A while back I ran into an issue with the 16F628A not programing properly.
I don't remember the issue. We were using firmware designed for the 16F627 as I recall and there was something different about the 16F628A that would not work.
Does this code work in the current 16F628A? Microchip is only offering samples on the A versions of the pdip package.
I'm currently running the 2.0 firmware on my 16F628A didn't have any programming issues, using mplab icd2
I do not seem to be able to get it to change micro step mode???
The jumpers hace no effect???
In the source there is only one dac table for 1/16 mode
I really need this thing to 1/4 step.
If the drive is in the correct mode a move of one inch should result in the same number of revolutions as the pitch of the lead screw and the carradge should move one inch.
on this machine a 1 inch move should result in 10 revolutins of the lead screw. I was only getting 2 1/2 revs.
As it turns out I was trying the "Non Auto Timeout" version. I tried the "Auto Timeout" version and it works properly, so possibly the "Non Auto Timeout" version is broken.
Thanks for your suggeston though.
Ted
Yes, I just tried with "Non Auto Timeout" and it didn't work. I.e. works, but has only one mode - 1/16 and jumpers has no effects.
ASM codes are the same for both SW, except line 23 #define TIMEOUT_ENABLED and it is normal.
In any case, I like "Auto Timeoutcode", but I will be really happy if Alan will be so kindly to tell me how to change timeout from 5.1/2 minutes. I didn't know assembler well so I can't find "magic value" in code.
I'll have a look at that, the defines are probably hiding something they're not suppose too. Since I never use the non-timeout version I don't really test it to fully
It's done using the 16 bit TMR and a few overflow registers. There isn't really a magic number to keep the code fast.
Comment out these lines to reduce the timeout to like 70secs or change "timeout_reg, 2" to some other bit field number (ie. 0-7) to increase the time. Experimentation is the key (else crack out the calculator and use the number of instructions versus the clock frequency to get an exact time)Code:incf timeout_reg, f ; Increase the timeout reg value btfss timeout_reg, 2 ; Check we've been around the 4 times of the 16 bit counter (~5 minutes 45 seconds @ 20MHz) goto Loop
-A.