(I forgot the tag..) This is a generic question. I'm trying to wrap my head around thermal line printing, and I'm not seeing my way through the main printing operation. In order to print, I have to load the head with data, fire six print pulses, and step the motor. If I didn't care about speed, I would simply do this all in sequence, and be done with it. However, I do. So: I can load the head during the burn time, which is nice. My conundrum comes down to how to resolve the situation where the sum of the burn times may exceed the normal time between motor steps. Normally, I can complete all six burn pulses in less time than a motor step, so the obvious method would be to use a timer as a lockout, saying "you can't step the motor till I expire". In fact, it's very tempting to run the motor on a timer interrupt. However, as the temperature and battery voltage drops, the burn time increases, and I may not be able to complete all six burns before the timer expires. The first order solution seems to be to step the motor when burn is completed and timer expires, but that seems to have a problem too. If the motor is accelerated to some value, and I hit a "thick patch", then I'm likely to show down significantly, and the motor may not be able to track the change in speed. Also, on the other side, I may come out of a "thick patch" and need to accelerate rapidly. Additionally, I have to compensate for residual heat in the printing elements, so I have to alter the burn time dynamically, in response to the printed data as well. The problem seems deceptively simple at first, but the more I look at it, the more interesting it gets. Has anyone on the list worked through this before? Am I walking into a deep hole here? :) -- Dave's Engineering Page: http://www.dvanhorn.org Got a need to read Bar codes? http://www.barcodechip.com Bi-directional read of UPC-A, UPC-E, EAN-8, EAN-13, JAN, and Bookland, with two or five digit supplemental codes, in an 8 pin chip, with NO external parts. -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu