I am using the new 16F676. This is a neat little part, cheap as dirt, with lots of analog inputs, and a lot of other cool features. One item it has is an internal RC oscillator, just like the old 12C508 that I have specified millions of. (literally) "FINE!" I sez to myself, "THOSE ARE REALLY EASY TO USE" (famous last words). Now on the old 12C508, the calibration word for the oscillator calibration (OSCCAL) is located int he last byte of program memory, and appears in the W register at startup. You mov it into the OSCCAL register, and the oscillator is calibrated. You can't erase the oscillator calibration in the old OTP 12C508, so programming the part generates an warning (Calibraiton memory already programed), and you are off and running. Flash forward to 2002. The 16F676 is a Flash part. (pun intended) Programming it involves erasing it first, then dumping in the program. In development I can just read the part, write down the OSCCAL word, then scratch it into my program at the last minute. But in production, that's another thing entirely. How do they get this calibration word + program into a production part without erasing the calibration word first? --Lawrence -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu