Accueil / Arduino / Comment programmer la carte CJMCU ATTiny85 (LilyTiny / LilyPad)

Comment programmer la carte CJMCU ATTiny85 (LilyTiny / LilyPad)

La carte CJMCU est une petite carte destinée à des projets d’électronique vestimentaire (Wearable en anglais) basée sur le chipset ATTiny85 (documentation technique ATMEL). Dans cet article, nous allons simplement survoler l’ATTiny85 qui fera l’objet d’un prochain article. Cet article porte sur l’installation du drivers Digistump, la préparation de l’IDE Arduino et la programmation de la carte CJMCU à l’aide de l’IDE Arduino qui est très peu documentée.

Présentation de la carte CJMCU (LilyTiny)

La carte CJMCU est une carte miniature circulaire de 25mm de diamètre environ. Elle ne possède donc aucune broche de connexion, destinée aux application d’électronique vestimentaire, on viendra simplement relier les différents composants du projet (interrupteur, pile bouton, Led, accéléromètre, GPS…) à l’aide d’un fil conducteur cousu.

Par rapport à la carte LilyTiny de Sparkfun (page produit), la programmation est plus simple car on utilise un câble USB (lien vers le tuto Sparkfun) à la place d’un programmateur AVR.

Caractéristiques techniques de la carte CJMCU

  • Processeur : ATTiny85
  • 2 ko de mémoire disponible pour le programme Arduino
  • Dimensions : diamètre 25mm, épaisseur 4mm
  • GPIO : 5 (1 réservé pour le Reset nécessaire à la programmation)
  • Connecteur : micro USB
  • 1 Led rouge de mise sous tension
  • 1 Led rouge reliée au GPIO1
  • Bootloader : micronucleus (page github du projet)

LilyTiny vs LilyPad

Il peut y avoir confusion (entretenue par les sites marchants) entre le LilyTiny, le nom commercial de la carte Sparkfun basée sur le micro-contrôleur ATTiny et la carte LilyPad (lien vers le projet) qui est basée sur un ATmega328 ou l’Atmega32u4. La LilyPad a été initialement développée par Leah Buechley pour faciliter l’apprentissage du e-textile. La version commerciale a été lancée en collaboration avec SparkFun Electronics. Voici un petit aperçu des 3 cartes

cjmcu board wearable attiny85 arduino lilytiny lilypad_atmega32u4 lilypad_atmega328
CJMCU – ATTiny 85

Programmation via le port USB

LilyTiny – ATTiny85

Nécessite un programmateur AVR et une pince

IC Test Clip pour SOIC 8-Pin

LilyPad – ATmega 32u4

Programmation via le port USB

Documentation technique

LilyPad – ATmega 328

Programmation par liaison Série (FTDI)

Documentation technique

Comparaison entre l’ATTiny85 et l’ATmega328 d’un Arduino

L’ATTiny85 (et les autres membres de la famille) est un micro-contrôleur AVR tout comme l’ATmega328 qui équipe les cartes Arduino. Il est donc capable d’exécuter les programmes créés avec l’IDE Arduino moyennant quelques restrictions. Voici un tableau comparant les principales caractéristiques techniques des deux micro-contrôleurs

ATiny85 ATmega328
Nombre de broches 8 28
Taille Flash (ko) 8 32
Taille SRAM (octets) 512 2048
Taille EEPROM (octets) 512 1024
Canaux PWM 2 6
GPIO (en comptant les ADC et PWM) 6 (5 disponibles sans désactiver le fusible de reset*) 23 (dont 20 exposées sur Arduino Uno)
Connectivité I2C oui oui
Connectivité SPI oui oui
Connectivité UART non oui

*Désactiver le fusible de Reset permet d’utiliser la broche 1 comme canal analogique ou numérique, mais désactive par la même occasion la possibilité de programmer le micro-contrôleur. Voici un guide pour réactiver le fusible.

Programmer la carte CJMCU avec l’IDE Arduino

Il est tout a fait possible de programmer la carte CJMCU à l’aide de l’IDE Arduino (lien vers la page de téléchargement) comme n’importe quel Arduino.

Installer le driver DigistumpDrivers sous Windows

La première étape consiste à récupérer et à installer le driver pour les cartes Digistump. Vous pouvez le télécharger sur github (lien direct vers DigistumpDrivers.zip). Après avoir décompressé le Zip, allez dans le répertoire et exécutez le programme DPinst.exe (ou DPinst64.exe si vous possédez Windows 64 bits).

Branchez maintenant votre carte. Allez dans le gestionnaire de périphérique. Si votre carte a correctement été installée, vous devez avoir un nouveau périphérique appelé libusb-win32 devices dans lequel se trouve le Digispark Bootloader.

CJMCU ATTiny85 divers digistump digispark bootloader windows libusb-win32 devices

Sous Mac OX X

Sur Mac OS X (je n’ai pas testé sous Linux), vous n’avez pas besoin d’installer de drivers.

Ajouter la librairie des cartes Digistump

Ouvrez ensuite votre IDE Arduino. La procédure fonctionne à partir de la version 1.6.4 et au delà. Pour cet article, j’ai utilisé la version 1.6.8

Ouvrez les préférences et ajouter le chemin vers la librairie Digistump

http://digistump.com/package_digistump_index.json

CJMCU arduino board digistump digispark

Ensuite allez dans le gestionnaire de carte et ajoutez la librairie Digistump AVR Boards.
Sélectionnez maintenant la carte Digispark (Default 16Mhz).

CJMCU arduino link lien package digistump digispark

Téléverser le programme Blink sur la carte CJMCU

Tout est prêt, il ne nous reste plus qu’à téléverser notre premier programme. Nous allons simplement essayer le programme Blink Arduino en faisant clignoter une Led pour application e-textile sur la broche P3.

CJMCU Attiny85 led module cable pince alligator arduino

Pour réaliser ce montage, vous aurez besoin du matériel suivant (liens commerciaux)

cjmcu board wearable attiny85 arduino e-textile Carte CMJCU ATtiny85 x1 caddy
cable alligator Câble avec pince alligator x4 caddy
led module e-textile wearable lilypad Led pour application e-textile x1 caddy
e-textile fil conducteur cjmcu attiny85 project diy Fil à coudre conducteur optionnel caddy

A chaque fois que vous voulez téléverser un programme sur une carte Digispark, vous devrez débrancher celle-ci de l’ordinateur. Ensuite appuyez sur Téléverser. Après compilation du programme, un message vous invite à brancher votre carte. Vous avez 60 secondes pour la brancher. Dès que la carte est détectée, le flashage du programme commence. Le programme démarre dès la fin de l’opération.

CJMCU ide arduino televerser programme digistump digispark

Carte équivalentes

Si le micro-contrôleur ATTiny vous tente maintenant et que vous avez des projets sympas d’électronique vestimentaire, sachez que vous pouvez trouver des cartes similaires chez les principaux fabricants. Chez Adafruit, c’est la carte Gemma qui dispose d’un port USB pour la programmation ainsi qu’un connecteur JST pour ajouter une batterie LiPo. Sparkfun commercialise quant à lui la LilyTiny, une carte très compacte (diamètre 20mm) mais plus compliquée et plus couteuse à programmer. Il faudra acheter un programmateur AVR, une pince IC Test Clip pour SOIC 8-Pin ainsi que des câbles Dupont.

Programmation de l'ATtiny85 d'un carte LilyTiny de Sparkfun (source : Sparkfun)
Sparkfun LilyTiny : programmation de l’ATtiny85 (source : Sparkfun)

 

adafruit gemma attiny wearable e-textile Adafruit Gemma caddy
lilytiny Sparkfun LilyTiny caddy

Problème rencontré sur Mac OS X

Lors de mes essais sur Mac OS X, j’ai rencontré le message d’erreur suivant :

Board digispark-tiny (platform avr, package digistump) is unknown

J’ai commis l’erreur de penser qu’il manquait un drivers, mais grâce au commentaire de Julien (que je remercie par la même occasion), j’ai trouvé la solution sur ce forum. En fait, c’est juste un problème d’installation de la librairie des cartes Digistump. Voici comment procéder pour corriger le problème :

  1. Allez dans le gestionnaire de carte et désinstallez les cartes Digistump.
  2. Fermez l’IDE Arduino
  3. Ouvrez le Finder et aller dans le répertoire /Users/VOTRE_NOM/Library/Arduino15/packages (sur un Mac en Français, Library se nomme Bibliothèque
  4. Supprimez le répertoire digistump
  5. Relancez l’IDE Arduino
  6. Réinstallez les cartes Digistump

Et voilà, ça marche aussi sur Mac OS X !

La carte CJMCU est une petite carte destinée à des projets d'électronique vestimentaire (Wearable en anglais) basée sur le chipset ATTiny85 (documentation technique ATMEL). Dans cet article, nous allons simplement survoler l'ATTiny85 qui fera l'objet d'un prochain article. Cet article porte sur l'installation du drivers Digistump, la préparation de l'IDE Arduino et la programmation de la carte CJMCU à l'aide de l'IDE Arduino qui est très peu documentée. Présentation de la carte CJMCU (LilyTiny) La carte CJMCU est une carte miniature circulaire de 25mm de diamètre environ. Elle ne possède donc aucune broche de connexion, destinée aux application d'électronique vestimentaire, on viendra simplement…
Prix - 9
Programmation - 7
Qualité de fabrication - 7.5

7.8

/10

La carte CJMCU est un clone Asiatique très bon marché (moins de 3€ sur ebay) pour des applications e-textile. Elle dispose de 5 GPIO (dont 2 PWM) et se programme très simplement depuis l'IDE Arduino à l'aide d'un câble micro-USB. Dommage qu'elle soit réservée à l'environnement Windows (faute de drivers Mac OS X et Linux)

User Rating: Be the first one !
  • julienrat

    bonjour, Excellent tuto !
    cette carte semble etre similaire au digispark, elle utilise le bootloader micronucléus. Elle est donc compatible Linux et MACOSX ( http://digistump.com/wiki/digispark/tutorials/connecting ) non ?

    • Bonjour Julien et merci beaucoup pour ta remarque. C’est parfaitement exact, il est tout à fait possible de programmer cette carte sur Mac OS (et très certainement sous linux, mais je n’ai pas essayé). En fait j’avais un message d’erreur du à une mauvaise installation de la librairie Digistump sur mon IDE Arduino mais je n’ai pas cherché dans la bonne direction. J’ai trouvé la solution sur un forum. J’en ai profité pour corriger l’article. A très bientôt. Christophe