Version 0.92 - major rework

A project log for Microchip PIC Arduino based programmer

I love to program programmers. Yo dawg...

jaromir.sukuba 09/09/2016 at 11:140 Comments

I reworked the MCU selection code. The if-then structure was OK for dozen of devices, but with more than 200 supported MCUs, it became messy. So I rewrote it into simple plain text file database with entries like

# PP3 device database for version 0.92
# name   flash page  ID  mask family_type
# flash size and page size in bytes 1 WORD = 2 BYTES
# PIC16 family
16f1503   4096   32 2CE0 FFE0 CF_P16F_A
16lf1503  4096   32 2DA0 FFE0 CF_P16F_A
16f1507   4096   32 2D00 FFE0 CF_P16F_A
16f1508   8192   32 2D20 FFE0 CF_P16F_A
16f1509   16384  32 2D40 FFE0 CF_P16F_A
16lf1507  4096   32 2DC0 FFE0 CF_P16F_A
16lf1508  8192   32 2DE0 FFE0 CF_P16F_A
16lf1509  16384  32 2E00 FFE0 CF_P16F_A
16f1454   16384  64 3020 FFFF CF_P16F_A
16f1455   16384  64 3021 FFFF CF_P16F_A
so it is easy to edit (add new PIC devices or fix mistakes in existing) by hand without recompiling the code. The pp3 takes all the information about device to be programmed from here. The original source shrunk from 2700 to 900 lines of code.

I also added 67 more PIC18FxxJxx devices and one PIC16F, so it supports 273 devices in total. At last, I tested support for another 7 devices, all of them working on a first try. I feel like time for 1.0 release is near.

Everything is on github, as usual.