# PICkit

PICkit est une famille de programmeurs pour microcontrôleur PIC de Microchip Technology. Ils permettent de programmer les microcontrôleurs et de déboguer les programmes in situ, ainsi que de programmer certaines mémoires EEPROM. Certains modèles proposent également des fonctions d'analyseur logique et de terminal série.

## Versions
### PICkit 1

Le PICkit 1 était un programmateur USB rudimentaire pour les microcontrôleurs PIC. Il était intégré dans une carte de démonstration qui incluait 8 DELs, un interrupteur et un potentiomètre. Le programme de base (décrit dans la documentation) allume les DELs une à une en série. Le sens de défilement s'inverse en actionnant l'interrupteur et le potentiomètre agit sur la vitesse.

### PICkit 2

Le PICkit 2 remplace le PICkit 1. Il possède beaucoup plus de possibilités et c'est un outil de développement. Il sépare la partie programmation de la partie débogage sur la carte d'évaluation. Ceci élimine le besoin d'insérer le microcontrôleur à programmer dans une carte de démonstration à chaque fois. Le PICkit 2 contient un PIC18F2550 qui possède un bus USB FullSpeed. Le dernier firmware du PICkit 2 permet à l'utilisateur de programmer et de déboguer la plupart des PICmicro et des dsPIC 8 et 16 bits de la gamme de Microchip.
Le PICkit 2 est libre, le schéma interne est divulgué sur le site de Microchip ainsi que le code source du firmware (en langage C) et les programmes d'application (en langage C#). L'utilisateur final et les tiers peuvent facilement modifier la partie matérielle et la partie logicielle du PICkit 2 pour en augmenter les possibilités. Pour exemple : la version Linux du logiciel PICkit 2, le support de la programmation en ligne de commande (Windows, Mac OS X, Linux), etc.
Le PICkit 2 possède une fonction nommée Programmer-To-Go (PTG) qui permet de télécharger le fichier HEX et les instructions de programmation dans sa mémoire intégrée (128kB i2c EEPROM ou 256kB i2c EEPROM) donc aucun ordinateur n'est nécessaire lors de l'application finale.
La version standard du PICkit 2 de chez Microchip possède 128kB de mémoire mais on peut être disposer de 256kB en modifiant la partie matérielle.
Depuis la version 2.61, le logiciel pour PC du PICkit 2 supporte au maximum 4MB de mémoire pour la fonction Programmer-To-Go. Cette modification implique que le PICkit 2 supporte huit fois plus de mémoire que le PICkit 3. Cette amélioration a été développée par Au Group Electronics et le firmware a été soumis à l'équipe s'occupant du PICkit 2 chez Microchip courant mars 2009. Microchip distribue désormais cette version du logiciel.

### PICkit 3

Microchip continue sa gamme de programmateur avec le PICkit 3, une version améliorée du PICkit 2 avec les mêmes dimensions et un nouveau boitier translucide. Ce PICkit contient un processeur 16 bits PIC24F plus rapide et supporte une plage de tensions de programmation étendue. Le PICkit 3 tout comme le PICkit 2 possède des régulateurs de tension à découpage. Cela leur permet, dans le cas du PICkit 2, de générer des tensions de 2,5 a 5V, ou dans le cas du PICkit 3, de 2,5 a 5,5V à partir de l’entrée 5V USB (courant d'environ 100mA). Ces 2 programmateurs possèdent des options pour étalonner la sortie avec un multimètre pour une meilleure précision. De plus, pour certains PICs, une tension de programmation MCLR de 13-14V peut être générée. Cette tension est nécessaire pour reprogrammer la mémoire flash.

### PICkit 4

Depuis février 2018, Microchip a mis en vente la quatrième version du PICkit. Il ajoute le support de la programmation et du debug en JTAG. Pour l'instant (octobre 2018), tous les micro-controleurs ne sont pas supportés, mais une majorité des plus récents le sont.

## Clones

Pendant un temps (2004-2015?), on pouvait trouver des « clones » du Pickit 2 : moins chers et plus petits, ils étaient surtout utilisés dans les développements économiques, les amateurs, ou les hobbyistes.
Premier cloné en masse, les raisons en sont simples. Le PICkit 2 était un programmateur intéressant. Il pouvait programmer et déboguer la plupart des modèles proposés (en mai 2009, seule la famille des pics 32 n'était pas supportée pour le débogage). De plus, depuis sa sortie, tout le code source (côté embarqué dans le PICkit et côté applicatif ordinateur), ainsi que les schématiques du matériel sont à libre disposition de qui le souhaite. Cela a permis un portage relativement facile des programmes vers d'autres systèmes d'exploitations, notamment Linux et Mac OS. Cela a également créé un intérêt dans la communauté des amateurs et hobbyistes (DIY), et facilité la confection de clones.
L'ouverture du PICkit 2 à la communauté a permis d'ajouter des fonctionnalités utiles aux utilisateurs par d'autres utilisateurs. On peut notamment citer la fonction de programmation à la volée (Programmer to go : on charge le PICkit avec un code, puis on peut le placer de carte en carte pour les programmer sans devoir le rebrancher à l'ordinateur), des outils de débogage de liaison série (UART), ainsi qu'un mini analyseur logique. Côté matériel, la communauté a - entre autres - ajouté le support d'une mémoire embarquée 2 puis 4MiB pour le programmateur à la volée, un circuit buck/boost élévateur de tension pour étendre les modèles supportés, un port RJ12 pour la rétro-compatibilité.
Cette ouverture à même permis la programmation de certaines puces du concurrent de l'époque Atmel, en ajoutant un outil de programmation AVR ISP.
Il existait, et existe toujours (2018) de nombreux programmateurs compatibles mais non officiels pour les puces couvertes par les PICkits.

## Programme d'interface côté ordinateur
### Logiciels officiels Microchip

Disponible depuis 2009, le logiciel pour le PICkit 2 permettait de sobrement programmer les puces, sans fioriture ou configuration complexe. Cette sobriété permettait un gain de temps appréciable, et les divers outils ajoutés par la communauté (comme le moniteur série, ou le mini analyseur logique), couplé au grand nombre de puces supportés en on fait un outil utile et adapté à de nombreuses situations.
Disponible depuis 2012, le logiciel pour le PICkit 3 conservé la sobriété pour la programmation des puces. Mais le retrait des outils ainsi que le non support des puces non contemporaines en ont fait un outil bien moins apprécié de ses utilisateurs.
Le code est open source et pourrait en théorie être maintenu ou actualisé pour supporter des nouveaux systèmes d'exploitation. Mais aucun groupe n'a repris le développement, et Microchip n'offre pas de support officiel, ni n'ajoute de fonctionnalités à ces anciens outils.

### PICkit Plus Software

En 2018, le logiciel PICkit Plus est disponible au public et propose le support des micro-contrôleurs 8bits plus récents non supportés par les outils originaux (notamment les familles 16F18xxx et 18F2xKxx). Il permet donc à la fois de pouvoir continuer à utiliser son PICkit 2 ou 3 sur un système d'exploitation plus récent, mais permet également de programmer les puces plus récentes.