Pourquoi un noyau : naissance de µcBlockly
Si vous suivez mon travail depuis un moment, vous avez croisé BlocklyDuino, Blockly@rduino, parfois Studio4Education. Derrière ces interfaces, une même question revient : comment faire vivre un moteur de blocs Arduino sans le recoller à chaque nouveau logiciel ?
La réponse, en 2026, s’appelle µcBlockly : un noyau open source, basé sur Blockly 13, qui transforme des blocs en C++ Arduino — et qui peut s’embarquer dans une démo, dans BlocklyDuino, dans une Factory, ou dans votre propre application.
Démos vidéo (chaîne PeerTube Sciences & Technologies) : https://tube-sciences-technologies.apps.education.fr/c/ucblockly/videos
Le problème : un moteur collé à l’appli
Pendant des années, la programmation visuelle pour microcontrôleurs a progressé par produits complets : une UI, des blocs, un générateur, parfois un moniteur série. Chaque avancée (accessibilité, typage, nouvelles cartes) risquait d’être recopiée ou forkée d’un outil à l’autre.
Résultat typique :
- un correctif dans BlocklyDuino n’arrive pas tout de suite ailleurs ;
- un fork pédagogique diverge silencieusement ;
- mettre à jour Blockly (Google) devient un chantier monumental à chaque dépôt.
Autrement dit : on inventait souvent plusieurs fois le même moteur, au lieu d’inventer plusieurs interfaces.
L’idée du noyau
µcBlockly inverse la logique. On sépare volontairement trois couches :
- Blockly — le moteur visuel générique (workspace, toolbox, sérialisation) ;
- µcBlockly — les blocs Arduino typés, le générateur C++, l’API d’intégration ;
- les produits — BlocklyDuino, Factory, démo, vos projets.
Le noyau ne doit pas embarquer toute la coque pédagogique (Monaco « produit », barre d’outils métier, choix de carte « marque »), il fournit ce qui est commun et réutilisable, le reste appartient à chaque application.
Cette idée n’est pas née en 2026 : dès 2021, on parlait déjà d’un noyau commun pour µcBlockly, BlocklyDuino et Studio4Education. La v3, sur Blockly 13, en est la forme aboutie et publiable.
Ce que change Blockly 13
µcBlockly 3.x s’aligne sur Blockly 13 et les plugins @blockly/* de la même génération. Ce n’est pas un détail de version :
- accessibilité et navigation clavier plus cohérentes ;
- écosystème de plugins maintenu ;
- base saine pour les années à venir.
Conséquence claire : un projet encore en Blockly 12 reste sur µcBlockly 2.x. La rupture est assumée pour ne pas traîner deux générations dans le même dépôt.
Héritage Blockly@rduino — sans tout jeter
Blockly@rduino reste une référence pédagogique (instances, niveaux, packs de blocs…). µcBlockly reprend des idées fortes (typage, instances nommées, structure de programme) dans une architecture moderne.
Les projets existants ne sont pas abandonnés : documentation legacy et guide de conversion sont là pour migrer quand vous le souhaitez.
Pourquoi publier le noyau maintenant ?
Parce qu’il fallait une source de vérité technique claire pour mon travail — et pour ceux qui s’appuient dessus :
- code sur GitHub (AGPL-3.0-or-later) — https://github.com/A-S-T-U-C-E/ucBlockly ;
- doc sur le wiki LibrEduc ;
- entraide sur le forum — https://forum.libreduc.cc/ ;
- démos vidéo — https://tube-sciences-technologies.apps.education.fr/c/ucblockly/videos ;
- produits dérivés qui s’appuient dessus au lieu de le forker en silence.
Sans noyau partagé, chaque « nouveau Blockly pour Arduino » recommence à zéro. Avec µcBlockly, on recommence surtout l’expérience utilisateur — là où l’innovation pédagogique a le plus de sens.
