{"id":2831,"date":"2026-08-21T18:50:31","date_gmt":"2026-08-21T16:50:31","guid":{"rendered":"https:\/\/coding4phone.com\/?p=2831"},"modified":"2026-08-21T18:56:06","modified_gmt":"2026-08-21T16:56:06","slug":"mogwai-nano-0-2-de-li2c-un-protocole-allege-et-une-base-plus-solide","status":"publish","type":"post","link":"https:\/\/coding4phone.com\/?p=2831","title":{"rendered":"MOGWAI NANO 0.2 : de l&rsquo;I2C, un protocole all\u00e9g\u00e9, et une base plus solide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>MOGWAI NANO 0.2<\/strong> est disponible sur le <a href=\"https:\/\/github.com\/Sydney680928\/MogwaiNano\" target=\"_blank\" rel=\"noopener\">d\u00e9p\u00f4t GitHub<\/a> \u2014 premi\u00e8re mise \u00e0 jour depuis l&rsquo;ouverture publique, et elle apporte du concret.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ce qui change<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>I2C fait son entr\u00e9e<\/strong>, avec sept primitives couvrant l&rsquo;essentiel \u2014 ouvrir\/fermer un device par son nom, lire et \u00e9crire des donn\u00e9es brutes ou des registres, scanner le bus pour d\u00e9couvrir ce qui y r\u00e9pond. Valid\u00e9 sur du vrai mat\u00e9riel : un module RTC DS3231, \u00e9criture et lecture confirm\u00e9es, y compris la conversion BCD que ce genre de puce utilise pour stocker l&rsquo;heure (deux nouvelles primitives, <code>-&gt;bcd<\/code>\/<code>bcd-&gt;<\/code>, s&rsquo;en chargent).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Le protocole r\u00e9seau a \u00e9t\u00e9 all\u00e9g\u00e9.<\/strong> Fini le JSON encapsul\u00e9 en Base64 \u00e0 chaque message \u2014 place \u00e0 un format \u00e0 s\u00e9parateur, bien plus simple et beaucoup moins gourmand en m\u00e9moire. Ce changement a directement r\u00e9gl\u00e9 un vrai bug de fond : une fuite de m\u00e9moire qui pouvait, sous forte charge, planter le device.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Skills et flags<\/strong> font aussi leur apparition, en reprenant fid\u00e8lement le m\u00e9canisme d\u00e9j\u00e0 \u00e9prouv\u00e9 du grand MOGWAI \u2014 un device peut d\u00e9sormais annoncer ses capacit\u00e9s (<code>'I2C' hasSkill<\/code>), et un script peut poser des marqueurs d&rsquo;\u00e9tat simples. Une pr\u00e9paration discr\u00e8te pour un futur syst\u00e8me de biblioth\u00e8ques de code r\u00e9utilisable, directement stock\u00e9es sur le device.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques primitives ont aussi \u00e9t\u00e9 renomm\u00e9es pour plus de clart\u00e9 (<code>nano.select<\/code> devient <code>nano.user.select<\/code>, <code>nano.view<\/code> devient <code>nano.user.view<\/code>) \u2014 le pr\u00e9fixe <code>user<\/code> signale d\u00e9sormais explicitement les commandes qui interagissent avec la console.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sous le capot<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cette version doit beaucoup \u00e0 des heures de tests d&rsquo;endurance pouss\u00e9s \u00e0 l&rsquo;extr\u00eame \u2014 des boucles sans la moindre pause, martelant le r\u00e9seau au d\u00e9bit maximal que le device peut soutenir, jusqu&rsquo;\u00e0 ce que quelque chose casse. \u00c7a a permis de mettre au jour et de corriger plusieurs bugs de fond, dont certains propres aux particularit\u00e9s du nanoCLR (un souci d&rsquo;initialisation de propri\u00e9t\u00e9 qui n&rsquo;existait que sur cette plateforme). Rien de tout \u00e7a n&rsquo;aurait \u00e9t\u00e9 visible sur un simple test de cinq minutes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La suite<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I2C ouvre la porte \u00e0 SPI, PWM et ADC \u2014 et surtout, valide un nouveau chapitre passionnant : le support d&rsquo;ESP32-S3 avec PSRAM, o\u00f9 les tout premiers essais montrent que cette m\u00e9moire suppl\u00e9mentaire (plusieurs m\u00e9gaoctets, contre quelques dizaines de kilo-octets habituels) est directement exploitable par le moteur MOGWAI NANO. De quoi envisager des scripts nettement plus ambitieux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tout est dans le <a href=\"https:\/\/github.com\/Sydney680928\/MogwaiNano\/blob\/main\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\">CHANGELOG<\/a> pour le d\u00e9tail complet, et dans le <a href=\"https:\/\/github.com\/Sydney680928\/MogwaiNano\/blob\/main\/docs\/getting-started.md\" target=\"_blank\" rel=\"noopener\">guide de d\u00e9marrage<\/a> mis \u00e0 jour avec un premier exemple I2C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Merci \u00e0 tous ceux qui suivent le projet, et comme toujours, <a href=\"https:\/\/github.com\/Ellerbach\">Laurent Ellerbach<\/a> pour son aide pr\u00e9cieuse sur plusieurs points \u00e9pineux de cette version. \ud83c\udf89<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MOGWAI NANO 0.2 est disponible sur le d\u00e9p\u00f4t GitHub \u2014 premi\u00e8re mise \u00e0 jour depuis l&rsquo;ouverture publique, et elle apporte du concret. Ce qui change I2C fait son entr\u00e9e, avec sept primitives couvrant l&rsquo;essentiel \u2014 ouvrir\/fermer un device par son nom, lire et \u00e9crire des donn\u00e9es brutes ou des registres, scanner le bus pour d\u00e9couvrir &#8230; <a title=\"MOGWAI NANO 0.2 : de l&rsquo;I2C, un protocole all\u00e9g\u00e9, et une base plus solide\" class=\"read-more\" href=\"https:\/\/coding4phone.com\/?p=2831\" aria-label=\"En savoir plus sur MOGWAI NANO 0.2 : de l&rsquo;I2C, un protocole all\u00e9g\u00e9, et une base plus solide\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":2803,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[185,177,48,50],"tags":[],"class_list":["post-2831","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net-nanoframework","category-mogwai-nano","category-rpn","category-scripting"],"jetpack_publicize_connections":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfoe4s-JF","jetpack-related-posts":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2026\/08\/img01.png?fit=300%2C239&ssl=1","_links":{"self":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2831"}],"version-history":[{"count":3,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2831\/revisions"}],"predecessor-version":[{"id":2839,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2831\/revisions\/2839"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/media\/2803"}],"wp:attachment":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}