{"id":6583,"date":"2024-11-30T20:53:14","date_gmt":"2024-11-30T19:53:14","guid":{"rendered":"https:\/\/olivier.hoarau.site\/?p=6583"},"modified":"2024-12-31T08:34:40","modified_gmt":"2024-12-31T07:34:40","slug":"montre-connectee-garmin-instinct-2-surf-et-son-sdk-connect-iq","status":"publish","type":"post","link":"https:\/\/olivier.hoarau.org\/?p=6583","title":{"rendered":"Montre connect\u00e9e Garmin Instinct 2 Surf Edition et son SDK Connect IQ"},"content":{"rendered":"\n<p>Ma montre Garmin Forerunner 735XT m&rsquo;a d\u00e9finitivement l\u00e2ch\u00e9 apr\u00e8s \u00e0 peine 4 ans d&rsquo;utilisation apr\u00e8s des <a href=\"https:\/\/olivier.hoarau.org\/?p=4456\">d\u00e9boires diverses<\/a>, je l&rsquo;ai \u00e9chang\u00e9e contre une autre <a href=\"https:\/\/www.amazon.fr\/Garmin-Instinct-Surf-Mavericks-connect%C3%A9e\/dp\/B09MTP4X6G?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;crid=1A2TK0BXWDAPK&amp;dib=eyJ2IjoiMSJ9.tJWSG7cZp21CsJ1VzQqjroFxBj58AdLSQ4aLHRmysMaCAmcLrOJuDxF6TVQ-uFqJnx4FTv4JdPh5NF-ze7cM4_wMaJ-p9l2vHGZvb1Wf-qNdQm7RV-h8EfQjjlaJ9SfOovvyb66Kd9ZS0mt7ChAjfM5XntTUtp8s1UJavAYqaLB86cD7Kw-HSjbOGSLU8Bpgj-b1-vlL0UawNZepY-U_PrnXws-fBdcXB4nfO8biBqSTG4K4m1FdIGBFseGRf0B3D1QTraxoaso10hpJCko6rLet8fiIvrpERYoLVhbXI4U1W2D8zO2lnzumdFyIr-xSTNWAIr_w4AVbHkwlFj78h_sknaebHH-3bOHzb0l9PB46z7krFLacEiyxwvamP8N2DwjOfE61nDGELTeCGf_zrU6JdbNR3A6cMQvTa2hxjUHL4PZV8OJkqr5QTp5gJcIc.xnJhDscCOqSdCZ-Og0-ntwTWWTejAU70_3SnGv-RWHQ&amp;dib_tag=se&amp;keywords=instinct%2Bsurf%2Bedition&amp;nsdOptOutParam=true&amp;qid=1735630013&amp;sprefix=instinct%2Bsurf%2Bedition%2Caps%2C107&amp;sr=8-1&amp;th=1&amp;linkCode=ll1&amp;tag=blog0d24-21&amp;linkId=f47931b82dd2e533b986efc26e26733b&amp;language=fr_FR&amp;ref_=as_li_ss_tl\">Garmin Instinct 2 Surf Edition<\/a> en phase avec mes activit\u00e9s nautiques. Comme la 735XT, il est possible de la programmer et elle dispose d&rsquo;un <strong>SDK<\/strong> pour la personnaliser, j&rsquo;avais fait <a href=\"https:\/\/olivier.hoarau.org\/?p=4083\">un post \u00e0 ce sujet<\/a>. Contrairement \u00e0 la 735XT qui est bas\u00e9e sur <a href=\"https:\/\/eclipseide.org\/\">Eclipse<\/a>, elle est bas\u00e9e sur <a href=\"https:\/\/code.visualstudio.com\/\">Visual Studio Code<\/a>.<\/p>\n\n\n\n<p>Tous les d\u00e9tails de l&rsquo;installation sont donn\u00e9es en anglais <a href=\"https:\/\/developer.garmin.com\/connect-iq\/connect-iq-basics\/getting-started\/#gettingstarted\">l\u00e0<\/a>. Pour r\u00e9sumer on r\u00e9cup\u00e9rera le <strong>SDK<\/strong> \u00e0 <a href=\"https:\/\/developer.garmin.com\/connect-iq\/sdk\/\">cette adresse<\/a>. Et on tapera les commandes suivantes pour l&rsquo;installer et le lancer la premi\u00e8re fois.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir connectiq-sdk\nunzip connectiq-sdk-manager-linux.zip\ncd connectiq-sdk\/\ncd bin\/\n.\/sdkmanager<\/code><\/pre>\n\n\n\n<p>Il va falloir d&rsquo;abord se loguer sur son compte Garmin ou le cr\u00e9er \u00e0 d\u00e9faut.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-login.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"342\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-login.jpg?resize=474%2C342&#038;ssl=1\" alt=\"\" class=\"wp-image-6587\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-login.jpg?w=601&amp;ssl=1 601w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-login.jpg?resize=300%2C217&amp;ssl=1 300w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p>Ensuite il y a une fen\u00eatre pour savoir si les mises \u00e0 jour du <strong>SDK<\/strong> doivent \u00eatre t\u00e9l\u00e9charg\u00e9es automatiquement quand il y a une nouvelle version. Puis vient une fen\u00eatre pour savoir si on effectue \u00e9galement les mises \u00e0 jour de p\u00e9riph\u00e9riques automatiquement. A ce moment vous pouvez s\u00e9lectionner les p\u00e9riph\u00e9riques concern\u00e9s, je vous conseille de s\u00e9lectionner strictement la cat\u00e9gorie de p\u00e9riph\u00e9rique utile car sinon \u00e7a prend de la place inutilement. <\/p>\n\n\n\n<p>Vient ensuite la fen\u00eatre suivante avec un onglet <strong>SDK<\/strong> et <strong>DEVICES<\/strong> (p\u00e9riph\u00e9riques), j&rsquo;ai cliqu\u00e9 sur la derni\u00e8re version du <strong>SDK<\/strong> et seulement les montres (watches and wearables). <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"218\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download.jpg?resize=474%2C218&#038;ssl=1\" alt=\"\" class=\"wp-image-6584\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download.jpg?resize=1024%2C470&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download.jpg?resize=300%2C138&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download.jpg?resize=768%2C352&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download.jpg?w=1125&amp;ssl=1 1125w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download.jpg?w=948&amp;ssl=1 948w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download2.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"310\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download2.jpg?resize=474%2C310&#038;ssl=1\" alt=\"\" class=\"wp-image-6585\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download2.jpg?w=690&amp;ssl=1 690w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-download2.jpg?resize=300%2C196&amp;ssl=1 300w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p>Le <strong>SDK Connect IQ<\/strong> est bas\u00e9 sur <strong>Visual Studio Code<\/strong> qu&rsquo;on t\u00e9l\u00e9chargera <a href=\"https:\/\/code.visualstudio.com\/\">ici<\/a>. On l&rsquo;installe et on le lance en tapant:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tar tar xvfz code-stable-x64-1731511985.tar.gz\ncd VSCode-linux-x64\/\nbin\/code<\/code><\/pre>\n\n\n\n<p>Il faudra maintenant installer l&rsquo;extension <strong>Monkey C <\/strong>qui inclut un \u00e9diteur, un compilateur et un d\u00e9bogueur. Pour cela dans <strong>Visual Studio Code<\/strong>, on ira sur <strong>View-&gt;Extensions<\/strong> et on tapera <strong>Monkey C<\/strong>. Puis on clique sur le bouton <strong>Install<\/strong> en bleu. Il faudra ensuite relancer<strong> Visual Studio Code<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/vscode-extension.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"352\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/vscode-extension-1024x761.jpg?resize=474%2C352&#038;ssl=1\" alt=\"\" class=\"wp-image-6586\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/vscode-extension.jpg?resize=1024%2C761&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/vscode-extension.jpg?resize=300%2C223&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/vscode-extension.jpg?resize=768%2C570&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/vscode-extension.jpg?w=1034&amp;ssl=1 1034w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/vscode-extension.jpg?w=948&amp;ssl=1 948w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p>On g\u00e9n\u00e8re maintenant une cl\u00e9 de d\u00e9veloppeur qui sera utile pour signer les applications, attention de bien la conserver dans un coin sans quoi, on ne pourra plus \u00e9diter les diff\u00e9rents projets ! Pour la g\u00e9n\u00e9rer, on tapera la combinaison de touches <strong>Ctrl+Shift+P<\/strong> et dans la liste d\u00e9roulante on choisit <strong>Monkey C: Generate a developper key<\/strong>.<\/p>\n\n\n\n<p>Tant qu&rsquo;\u00e0 fait avec la m\u00eame combinaison de touches on t\u00e9l\u00e9chargera des exemples de code<strong> Monkey C: Open Samples Folder<\/strong>. Ils se sont retrouv\u00e9s sous <strong>.Garmin\/ConnectIQ\/Sdks\/connectiq-sdk-lin-7.3.1-2024-09-23-df7b5816a\/samples<\/strong>. J&rsquo;ai donc fait un lien de ce r\u00e9pertoire vers mon r\u00e9pertoire de travail de<strong> Connect IQ<\/strong>.<\/p>\n\n\n\n<p>On peut passer \u00e0 sa premi\u00e8re application<strong> Hello Word <\/strong>! Pour le code, c&rsquo;est un peu la jungle, il faut naviguer \u00e0 vue sur la page<strong> Connect IQ<\/strong> et pas mal t\u00e2tonner, on pourra commencer par <a href=\"https:\/\/developer.garmin.com\/connect-iq\/connect-iq-basics\/your-first-app\/#yourfirstconnectiqapp\">la page <\/a>pour construire sa premi\u00e8re application.  La page donnant le d\u00e9tail de l&rsquo;<a href=\"https:\/\/developer.garmin.com\/connect-iq\/api-docs\/\">API<\/a> est un incontournable, pour mon Instinct 2, il y a une <a href=\"https:\/\/developer.garmin.com\/connect-iq\/user-experience-guidelines\/instinct-2022\/\">page sp\u00e9cifique<\/a> mais je n&rsquo;ai pas trouv\u00e9 de codes sp\u00e9cifiques m\u00eame dans les exemples t\u00e9l\u00e9charg\u00e9s. Le forum <a href=\"https:\/\/forums.garmin.com\/developer\/connect-iq\/\">d\u00e9di\u00e9<\/a> est \u00e9galement une bonne source d&rsquo;informations et d&rsquo;aide.<\/p>\n\n\n\n<p>Au final \u00e7a m&rsquo;a pris des heures pour essayer de comprendre comment coder tout \u00e7a et aboutir \u00e0 ce r\u00e9sultat, tout cela \u00e0 partir du projet originel <strong>Hello World<\/strong>. C&rsquo;est assez gal\u00e8re car il y a globalement assez peu d&rsquo;exemples comment\u00e9s.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-helloworld-1.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"273\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-helloworld-1.jpg?resize=474%2C273&#038;ssl=1\" alt=\"\" class=\"wp-image-6590\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-helloworld-1.jpg?resize=1024%2C589&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-helloworld-1.jpg?resize=300%2C172&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-helloworld-1.jpg?resize=768%2C441&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-helloworld-1.jpg?w=1336&amp;ssl=1 1336w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/connect-iq-helloworld-1.jpg?w=948&amp;ssl=1 948w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p>Une fois que l&rsquo;application fonctionne sur le simulateur, il faut construire le binaire, on y acc\u00e8de via la combinaison de touches <strong>Ctrl+Shift+P<\/strong> et on choisit <strong>Monkey C : Build for device<\/strong>. La compilation va g\u00e9n\u00e9rer un fichier <strong>.PRG<\/strong>, une fois la montre connect\u00e9e en USB, on le placera sous <strong>GARMIN\/APPS<\/strong>. Pour revenir en arri\u00e8re il suffira de supprimer le dit fichier.<\/p>\n\n\n\n<p>Et voil\u00e0 ce que \u00e7a donne avec la montre en fonctionnement.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"449\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf.jpg?resize=474%2C449&#038;ssl=1\" alt=\"\" class=\"wp-image-6593\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?resize=1024%2C969&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?resize=300%2C284&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?resize=768%2C727&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?resize=1536%2C1453&amp;ssl=1 1536w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?resize=2048%2C1938&amp;ssl=1 2048w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?w=948&amp;ssl=1 948w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/garmin-instinct2surf-scaled.jpg?w=1422&amp;ssl=1 1422w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Ma montre Garmin Forerunner 735XT m&rsquo;a d\u00e9finitivement l\u00e2ch\u00e9 apr\u00e8s \u00e0 peine 4 ans d&rsquo;utilisation apr\u00e8s des d\u00e9boires diverses, je l&rsquo;ai \u00e9chang\u00e9e contre une autre Garmin Instinct 2 Surf Edition en phase avec mes activit\u00e9s nautiques. Comme la 735XT, il est possible de la programmer et elle dispose d&rsquo;un SDK pour la personnaliser, j&rsquo;avais fait un &hellip; <a href=\"https:\/\/olivier.hoarau.org\/?p=6583\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Montre connect\u00e9e Garmin Instinct 2 Surf Edition et son SDK Connect IQ<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[5],"tags":[72,74],"class_list":["post-6583","post","type-post","status-publish","format-standard","hentry","category-logiciels-libres","tag-garmin","tag-gps"],"share_on_mastodon":{"url":"https:\/\/mastodon.social\/@funix\/113573651917577597","error":""},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/peOjJ-1Ib","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6583"}],"version-history":[{"count":4,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6583\/revisions"}],"predecessor-version":[{"id":6649,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6583\/revisions\/6649"}],"wp:attachment":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}