[[tinyclros:accueiltinyclr|{{ :iconemaison.jpg?nolink&30|Sommaire TinyCLR OS}}]]
{{ :tinyclros:tinyclr_os.jpg?nolink|}}
===== Les outils logiciels à installer pour programmer en C# sous TinyCLR-OS =====
[Mise à jour le 11/4/2020]
=== Sources ===
* Site de GHI Electronics : Getting Started
=== Lectures connexes ===
* [[brainpad:tclr_bp2pap|Premiers programmes en C# avec une carte BrainPad 2 "Étape par Étape"]]
===== 1. Préambule =====
Pour programmer sous TinyCLR OS, il est nécessaire d'installer (ou de mettre à jour) des outils logiciels sur le PC et sur la carte cible.
* **Sur le PC**, on doit disposer :
* de l'**IDE** Microsoft Visual Studio Community 2017 ou 2019,
* de l'**extension GHI** pour VS Community 2017 ou 2019,
* des **nugets** utiles au projet (bibliothèques de code).
* Sur la **carte cible**, le firmware doit être à jour et compatible avec l'extension GHI.
La procédure à suivre pour installer Visual studio community 2019, la dernière version de l'extension GHI pour VS2019 (**§2.1**), les bibliothèques de code (**§2.3**) et le firmware de la carte cible (**§3.2**) sont décrits dans les paragraphes ci-dessous. \\ La procédure à suivre est issue du site de GHI Electronics.
----
> **NB - INSTALLATION des Drivers des cartes BrainPad v1(G30), Panda3(G80), FEZCLR, BrainPad2 etc. **
> - sous **W10** : pas d'installation nécessaire
> - sous **W7** : voir le paragraphe 4 de cette page
----
===== 2. Les logiciels à installer sur le PC =====
{{ :tinyclros:visual_studio.jpg?nolink&150|}}
==== 2.1 L'environnement de développement ====
Sous **TinyCLR OS** les cartes sont programmables avec la version 2017 ou 2019 de Visual Studio (Community). TinyCLR OS ne fonctionne pas avec les versions précédentes de Visual Studio.
* **Télécharger** et **installer** l'environnement de développement intégré VISUAL STUDIO COMMUNITY 2019.
{{ :tinyclros:vsbetm.png?nolink |}}
==== 2.2 Le système de projet TinyCLR OS =====
> **Sources** : lien
> **Important** : Désinstaller la version en cours avant d'installer la nouvelle.
* **Solution 1 (à privilégier)** : Dans Visual Studio Community, sélectionner //Outils// -> //Extensions et mises à jour//. Entrer //TinyCLR// dans la barre de recherche et installer l'extension.
{{ :tinyclros:tclrext.png?nolink |}}
{{ :tinyclros:bandeaughi.png?nolink&300|}}
* **Solution 2 : télécharger** et **installer** la dernière version de l’extension **Visual Studio Project System** pour l'IDE Visual Studio 2017 ou 2019 à partir du lien [[http://docs.ghielectronics.com/software/tinyclr/downloads.html|{{:tinyclros:download-noborder.jpg?nolink&100|Site GHI}}]].
__Exemple__
{{ :tinyclros:exvsps.png?nolink |}}
* **Double-cliquer** sur le fichier **.vsix** téléchargé précédemment pour l'installer dans Visual Studio Community.
==== 2.3 Les bibliothèques GHI Electronics ====
>> Les bibliothèques de codes sont installées dans les projets sous la forme de **Nugets**. Il suffit de se rendre sur le site **nugets.org** à partir de Visual Studio comme cela est expliqué dans le tutoriel [[brainpad:tclr_bp2pap|Premiers programmes en C# avec une carte BrainPad BP2 "étape par étape"]].
> Les bibliothèques peuvent également être sauvegardées sur le PC ou sur un serveur local. Télécharger les bibliothèques disponibles ici
{{ :tinyclros:biblioghi.png?nolink |}}
==== 2.4 L'outil TinyCLR Config ====
TinyCLR Config est un outil de gestion des cartes de développement chargées avec TinyCLR OS. Il est connecté au cloud. A condition qu'un firmware soit déja présent dans la carte, l'outil **TinyCLR Config**, situé dans le menu GHI Electronics, permet de mettre à jour.
TinyCLR Config trouve et télécharge automatiquement les versions les plus récentes du firmware à partir d'une liste de sources fournies. Ces sources peuvent être sur Internet ou locales sur votre machine si vous n'avez pas ou ne voulez pas accéder à Internet.
{{:tinyclros:gpio:icone-attention_min.png?nolink&40|}} La fonctionnalité de mise à jour du micrologiciel ne fonctionne que pour les appareils équipés de GHI **Bootloader v2**.
* **Télécharger** la dernière version de **TinyCLR Config** sur le site de GHI Electronics et l'installer par un double clic sur le fichier .msi.
{{ :tinyclros:tinyclrconfig.png?nolink |}}
===== 3. Les logiciels à installer sur la carte cible =====
==== 3.1 Généralités ====
Une carte (BrainPad, FEZ T18, Panda III, etc.) est programmable sous **Visual Studio (Community)** si elle est préalablement chargée avec :
* un **firmware** (**TinyCLR OS**)
* un **bootloader**,
> Les cartes développées par GHI Electronics sont toutes chargées avec un bootloader. Elle sont également chargées avec un firmware TinyCLR OS à l'exception de la carte Brainpad 2 destinée à être programmée avec le logiciel Microsoft **MakeCode**.
==== 3.2 Mise à jour ou installation du firmware (TinyCLR OS)====
=== 3.2.1 La carte BrainPad 2===
Cette carte peut être programmée avec BrainPad Makecode ou **Microsoft Visual Studio Community**. Pour cela, elle est chargée avec le bootloader v1.0.2. L'action puis le relâchement du bouton-poussoir Reset ouvre une fenêtre dans laquelle il suffit de faire glisser le fichier produit par Makecode ou le firmware spécifique à cette carte (pour une programmation en C# sous Microsoft Visual Studio).
{{ :tinyclros:fez.png?nolink |}}
=== 3.2.2 Autres cartes - Cas le plus fréquent : mise à jour avec TinyCLR Config ===
> La mise à jour du firmware d'une carte, disposant d'un bootloader version 2, se fait avec **TinyCLR Config** (installation décrite dans le §2.4).
- **Lancer** {{:tinyclros:iconeclrconfig.png?nolink|}}.
- **Connecter** la carte au PC avec un câble USB, la **sélectionner** dans //Select a device// et clic sur //Connect// {{ :tinyclros:tclrconfig.png?nolink |}}
- **Télécharger** la nouvelle version du firmware sur la page download et l'installer dans le champ Firmware.
=== 3.2.3 Autres cartes : remplacement de .NETMF ===
> **Source** : Teck Talk #041 - **Vidéo** "Updating BrainPad's Firmware"
> La mise à jour du firmware d'une carte sous **.NetMF** (anciennes cartes BrainPad v1 (G30), Panda III (G80) etc.) se fait en suivant la procédure ci-dessous.
{{ :tinyclros:teraterm.png?nolink|}}
- **Télécharger** et **installer** le logiciel Tera Term 4.1 ou supérieur.
- **Télécharger** le firmware de la carte ciblée à partir de la page {{:tinyclros:download-noborder.jpg?nolink&100|}} lien.
* Pour la carte **BrainPad v1** (soc **G30**){{ :tinyclros:socg30.png?nolink |}}
* Pour la carte **Panda III** (soc **G80**) {{ :tinyclros:g80.png?nolink |}}
* Pour les cartes **FEZ T18**.{{ :tinyclros:fez.png?nolink |}}
- **Connecter** la carte au PC et la placer en mode **bootloader**.
* Pour la carte **BrainPad v1 ** : action simultanée sur les boutons-poussoirs **UP** et **Reset**, relâcher Reset puis UP. La carte doit être accessible par un port COMx (Ex : COM5) dans "Périphériques et imprimantes" ou "Gestionnaire de périphériques".
* Pour la carte **Panda III** : action simultanée sur les boutons-poussoirs **LDR0** et **LDR1**, suivi d'une action sur le bouton **Reset** puis relâcher LDR0 et LDR1. La carte doit être accessible par un port COMx (Ex : COM5) dans "Périphériques et imprimantes" ou "Gestionnaire de périphériques".
* Pour la carte **FEZ T18** : Action simultanée sur les boutons-poussoirs **BOOT0** et **Reset**, relâcher Reset puis BOOT0.
* __Remarque__ : Voir la vidéo Teck Talk #041 pour une autre carte.
- **Lancer Tera Term**{{ :tinyclros:teratermnc.png?nolink&300|}}
- **Sélectionner //Serial//** et le port sur lequel apparaît la carte. Puis OK.
- **Entrer v** puis **[Entrée]** dans la console qui vient de s'ouvrir **pour visualiser** la version du bootloader.
- Pour **effacer la mémoire**, entrer **e** puis **[Entrée]** puis **Y** et **[Entrée]** à la question "//Are you sure (Y/N)//". La console présente alors un message indiquant que l'effacement a été correctement réalisé comme dans la copie d'écran ci-dessous.{{ :tinyclros:teratermerase.png?nolink&300 |}}
- **Mettre** le firmware à jour. Pour établir la connexion avec la carte, entrez x (ou u, voir la vidéo !) puis [Entrée] puis Yes et [Entrée] à la question Are you sure (Y/N). Une série de CCCCCCCCCCC s'affiche sur l'écran indiquant que la connexion est établie. Il faut maintenant sélectionner le firmware à télécharger. Ceci est réalisé en sélectionnant le menu "Send…" comme ci-dessous.{{ :tinyclros:teratermxmodem.png?nolink |}}{{:tinyclros:gpio:icone-attention_min.png?nolink&40|}} Dans la fenêtre qui s'ouvre, sélectionner l'option **1K**.{{ :tinyclros:xmodem.png?nolink |}}
- **Sélectionnez** le firmware à télécharger à son emplacement sur le disque. Par exemple G30 Firmware.x.x.x.ghi pour la carte BraiPad v1.
- **Cliquez** sur Ouvrir. **Si tout se passe bien**, le chargement du firmware apparaît comme ci-dessous !{{ :tinyclros:teratermok.png?nolink |}}
>> Pour les autres cartes, par exemple la **Netduino 3** de Wilderness Labs, se reporter à la documentation.
==== 3.3 Le bootloader ====
{{ :tinyclros:bootloader-noborder.png?nolink&200|}}
> **Source** : Teck Talk #041 - **Vidéo** "Updating BrainPad's Firmware" et site de documentation Bootloaders Introduction
Un **chargeur de démarrage** (**bootloader**) est un petit logiciel qui démarre le système et exécute le micrologiciel. Il est également utilisé pour mettre à jour le firmware (ici TinyCLR OS). \\
Le bootloader est à réinstaller exceptionnellement (en cas de problème ou si une mise à jour est nécessaire). Un exemple de procédure pour la carte **BrainPad v2** est donné ci-dessous .
* **Télécharger** le binaire à transférer dans la carte BrainPad v2 à partir du site The BrainPad Documentation de GHI Electronics.
{{ :tinyclros:bootloaderbrainpad.png?nolink |}}
{{ :tinyclros:stm32boot.png?nolink&100|}}
* Pour **télécharger** le bootloader, il est nécessaire de passer la carte en **mode DFU**, pour cela :
- Appuyer sur le bouton BOOT0 de la carte BrainPad et le maintenir
- Appuyer sur le bouton Reset et le relâcher.
- Relâcher le bouton BOOT0.
> L'icône ci-contre doit apparaître dans "**Périphériques et imprimantes**".
* **Téléchargez** l'outil DfuSe v3.05 ou supérieur sur le site de ST Microélectronics et l'installer sur le PC.
{{ :tinyclros:stm32defuse.png?nolink |}}
* **Lancer** {{:tinyclros:defusedemo.png?nolink|}}
* **Réglez** "//Available DFU and compatible HID Devices//" comme ci-dessous.
{{ :tinyclros:availabledfu.png?nolink |}}
* **Cliquer** sur **Choose** pour sélectionner le fichier préalablement téléchargé sur le site de GHI Electronics comme dans l'exemple ci-dessous.
{{ :tinyclros:dfuchoose.png?nolink |}}
* Si tout se passe correctement !
{{ :tinyclros:dfucorrect.png?nolink |}}
* **Cliquer** sur **Upgrade** pour télécharger le bootloader.
{{ :tinyclros:dfuupgrade.png?nolink&400 |}}
* **Cliquer** sur Oui
> Une barre de téléchargement doit indiquer sa progression. Faire ensuite un reset de la carte.
* Si tout se passe correctement !
{{ :tinyclros:upgradeok.png?nolink |}}
===== 4. Drivers sous W7 =====
> **ATTENTION**
> Les drivers ne sont pas automatiquement reconnus sous W7 : voir le site GHI Electronics
{{ :tinyclros:driver7.png?nolink |}}
===== 5. Source GHI pour aller plus loin =====
**Vidéo de présentation ** : Updating BrainPad's Firmware - Tech Talk #041"