If you compile the .asm file and then upload the resulting .hex file to a PIC16F1455 using a PICkit 4, you might get an error like the following from MPLAB IPE:


Verify failed.  [ Pgm ] at 0x802, expected 0x0000824e, got 0x0000024e
You have set the program speed to Normal. The circuit on your board may require you to slow the speed down. Please change the setting in the tool properties to low and try the operation again.
Programming did not complete.


This is not actually a programming error. It is due to the 15th bit of a memory value being set to 1 when the PIC only has 12 bits per address, so setting it to 1 is impossible. This does not cause a problem for program operation because it does not rely on the value of that top bit but it does cause the programming software to fail its verification step because the data read back does not match the data 'written'.

You will not get this error if using a PICkit 3 because apparently it masks out the top bits before doing verification.

The HEX file we supply has these 1 bits stripped out so it will program normally. If you need to recompile the source and only have a PICkit 4, you might need to use different software or manually edit the HEX file to remove these stray bits (there are several of them). Alternatively, program the chip with the supplied HEX file, plug it into the board, then use the serial port/XMODEM software update method to load your new HEX file.
