I've discovered two more things, but not resolved anything yet... This from the Microchip Knowledge Base, ticket 1-10799 "If the device has an internal RC oscillator, and (possibly) an OSCTUNE register but no OSCCAL register, it has most likely been pre-calibrated at the factory before shipping and you do not need to do anything to calibrate it - you are however permitted to tweak the frequency using the OSCTUNE register when running your code. To make sure your part works this way, read about the oscillator design in the data sheet." - OK, the PIC16F88 has an OSCTUNE register but no OSCCAL register, therefore the calibration is done in the factory and I am not required to do anything to calibrate it. Cool, guess that's why the data sheet is so brief. Therefore some of my parts must be out of spec, or at least extremely close to being out of spec (hedging!). Also discovered the following, from "PIC16F87/88 Rev. B1 Silicon Errata", DS80171K... Issue 3. Module: Internal RC Oscillator (on page 3): "...it is possible for the oscillator to overshoot the selected frequency:..." "When it is required for the application to run at 8 MHz, it is recommended that the application does not start executing code at 8 MHz until the 60 ms firmware delay (see issue 2) has completed. During the 60 ms settling period, the application can execute code up to 4 MHz. Upon completion of the 60 ms firmware delay, the 8 MHz can be selected via the IRCF bits." - OK, so I was immediately selecting 8MHz after reset. Changed this now so immediately select 4MHz, wait 60ms, then select 8MHz. No change in running requency. Have tested this with only one chip so far. -- Brent Brown, Electronic Design Solutions 16 English Street, St Andrews, Hamilton 3200, New Zealand Ph: +64 7 849 0069 Fax: +64 7 849 0071 Cell: 027 433 4069 eMail: brent.brown@clear.net.nz -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist