⭐ Merci de mettre des étoiles si vous aimez ce logiciel, ça compte !

English · Español · 中文
Attention Nouveauté : Les nouveaux composants sont téléchargeables via le bouton « gérer les composants ».
Kablix
Une application Gauloise de simulation de microcontrôleurs (Arduino Uno/Raspberry Pi Pico) directement dans VS Code,
- 100 % Offline
- 100 % Gratuit
- 100 % Libre
- 100 % Sans télémétrie
La simulation s’appuie sur trois moteurs open-sources embarqués dans l’extension : avr8js (ATmega328P), rp2040js (RP2040) et rp2350js (RP2350), tous sous licence MIT.
Tests
Ma bilothèque de test est disponible : TestKablix
Utilisation
- Pour démarrer, cliquer sur l’icône
dans la barre d’activité à gauche ;
- Ou dans un dossier de projet, double cliquer sur un fichier projix ;
- Ou si vous avez fait l’association, dans l’explorateur Windows double cliquer sur un fichier projix.

- Construire son montage : Glisser/poser un composant à partir de la bibliothèque à gauche. Relier les broches en direct et clique sur le bouton autoroutage (route les composants sélectionnés ou tout le montage si aucun n’est sélectionné).

- Exécuter son code : Associer un fichier de code (attention les codes ino doivent être dans un dossier de même nom) puis ▶ « démarrer» :
.ino/.c/.cpp → compilation via la toolchain locale ;
.py → MicroPython sur le Pico simulé (firmware .uf2 requis, voir ci-dessous) ;
.hex / .uf2/.elf / .bin → chargé directement sans compilation.
- Enregistrer son montage : « Kablix : Enregistrer le projet (.projix) » ; un
.projix se rouvre ensuite d’un double-clic dans l’explorateur.
Import/export au format Wokwi (diagram.json) également disponibles.

Fonctionnalités
- ✅ Atelier visuel : routage automatique.
- ✅ Créateur de composants : Possibilité de créer des composant « Perso » via ce créateur ou mieux, faire un fork, utiliser la doc pour ajouter le composant et faire une PR (demande de publication) il sera dans la version suivante pour tout le monde et merci de fournir aussi le fichier de test (pico + arduino).
- ✅ Export SVG.
- ✅ Bibliothèque de 76 composants rangés par familles, chacun avec sa fiche d’aide illustrée (bouton ❔) et ses deux montages de test, Arduino et Pico — liste complète.
- ✅ Gestionnaire de composants (bouton ⚙ en bas de la palette) : un composant tient dans un seul fichier
.kompix — dessin, brochage, simulation et fiche d’aide comprises. Installez-le d’un clic depuis un dépôt, ou déposez le fichier dans le dossier du projet.
- ✅ Éclairage DMX512 : univers décodé depuis l’UART matériel ou depuis une broche bit-bangée (DmxSimple), projecteurs pilotés en direct.
- ✅ Cartes de développements prises en charge : Arduino Uno, Nano, Mega 2560 et Raspberry Pi Pico/Pico W/Pico 2/Pico 2 W, enfichables sur platine d’essai.
- ✅ Flash RP2040 réel.
- ✅ Chargement direct d’artefacts :
.hex, .uf2, .elf, .bin compilés ailleurs, chargés sans recompilation
- ✅ Compilation du code réel C/C++
- ✅ Moniteur série bidirectionnel : sortie temps réel + champ d’envoi vers le microcontrôleur.
- ✅ Traceur de courbes : tracé en direct, plus des sondes posées sur une broche pour visualiser sa tension
- ✅ Piles, batteries et autonomie : consommation réelle de la carte au traceur (veille profonde comprise), Piles 4 × AA, 9 V, CR2032 et LiPo à installer depuis la bibliothèque
- ✅ Simulation physique : luminosité selon la résistance série, les LED sans résistance grillent, les servomoteurs ne démarrent pas, l’alimentation tient compte du courant, la résistance rougit avant de griller…
- ✅ Relecture du code face au schéma : à chaque ▶, Kablix signale
analogWrite sur une broche sans PWM, broche lue sans pinMode ou sans rien de branché, composant câblé sur une broche que le code n’utilise jamais ; une entrée en l’air oscille, une boucle d’attente bloquante est signalée. Jamais bloquant, et Kablix se tait au moindre doute.
- ✅ Succès (badges) : 16 badges qui attestent d’une compétence mesurée dans la simulation (loi d’Ohm, niveau logique, bus I²C décodé…) ou récompensent la manière de travailler (premier composant grillé, pas à pas, schéma au propre…). Jamais pour du temps passé.
- ✅ Capteurs interactifs : curseurs et boutons pour flamme, gaz, son, lumière, température et mouvement, pilotant l’entrée du montage en direct.
- ✅ Appareils de mesure : Multimètre, oscilloscope, GBF et analyseur logique.
Les aides sont dans le dossier docs/code de pays/.
📖 Guide complet : USAGE.md — interface, câblage, création de composants personnalisés (avec prompt IA), format .kompix, gestionnaire de composants, sources de composants existants.
Ajouter un composant à Kablix (contributeurs, sur GitHub uniquement) : Creating-components.md — du dessin dans Composants2D.svg au composant simulé, testé et documenté, à la main ou avec une IA.
Dessiner les systèmes en volume (araignée, pattes — contributeurs, sur GitHub uniquement) : Drawing-systems.md — vous tracez le contour d’une pièce, le moteur isométrique la met en volume.
🌍 Interface en quatre langues : français, anglais, espagnol et chinois simplifié, selon la langue de VS Code (anglais pour toute autre langue). Aides et fiches existent dans les quatre langues.
Le mécanisme est extensible à d’autres langues — voir Internationalisation.
Bibliothèque de composants
76 composants posables à la souris, rangés dans l’ordre de la palette (plus leurs variantes : condensateur polarisé, transistors PN2222A/NPN/PNP, claviers 3×4 et 4×4, platines d’essai mini/half/full…). Chacun a sa fiche d’aide illustrée (bouton ❔ de l’inspecteur, hors-ligne, en français, anglais, espagnol et chinois) et deux montages de test prêts à simuler dans testkablix — un en C sur Arduino, un en MicroPython sur Pico.
| Catégorie |
Composants |
| Cartes et platines (9) |
Arduino Uno · Arduino Nano · Arduino Mega 2560 · Raspberry Pi Pico · Raspberry Pi Pico W · Raspberry Pi Pico 2 · Raspberry Pi Pico 2 W · Grove Shield (Pico) · Platine d’essai |
| Composants discrets (11) |
Résistance · Condensateur (polarisé ou non) · Diode · Transistor (PN2222A, NPN, PNP — boîtier TO-92) · LED · LED RGB · Thermistance CTN · Thermistance CTP · Photorésistance (LDR) · Photodiode · Phototransistor |
| Voyants et afficheurs (8) |
Barre de 10 LED · Afficheur 7 segments (1 à 4 digits) · NeoPixel · Matrice NeoPixel · Anneau NeoPixel · LCD texte 16×2 / 20×4 (I²C ou parallèle) · Écran OLED SSD1306 · Écran TFT ILI9341 (SPI) |
| Commandes (10) |
Bouton poussoir · Bouton poussoir 6 mm · Interrupteur à glissière · Interrupteur DIP ×8 · Clavier matriciel 3×4 / 4×4 · Potentiomètre · Potentiomètre à glissière · Potentiomètre ajustable · Relais OMRON G5V · Joystick analogique |
| Capteurs (12) |
Capteur de lumière · Capteur de gaz (MQ) · Capteur de flamme · Capteur de son · Détecteur de mouvement PIR · Capteur d’inclinaison · Capteur à effet Hall · Capteur de pouls · Capteur de température CTN · Capteur à ultrason (HC-SR04) · Température/humidité DHT22 · Température/humidité DHT11 |
| Actionneurs (4) |
Buzzer · Servomoteur · Ventilateur · Moteur à courant continu |
| Systèmes (2) |
Robot araignée · Patte d’araignée |
| Appareils de mesure (5) |
Alimentation de laboratoire · Multimètre de table · Oscilloscope de table · Générateur BF · Sonde logique (analyseur logique, expérimental) |
| Piles / Batteries (1) |
Batterie externe (plus 4 × AA, 9 V, CR2032 et LiPo 1S dans la bibliothèque téléchargeable) |
| Divers (2) |
Carte microSD (SPI) · Pilote PWM 16 canaux (PCA9685) |
| Circuits intégrés (12) |
CMOS 4000 : CD4081 (4 × ET) · CD4071 (4 × OU) · CD4070 (4 × OU exclusif) · CD4011 (4 × NON-ET) · CD4001 (4 × NON-OU) · CD40106 (6 × NON, trigger de Schmitt) — TTL/HC 74 : 74xx08 · 74xx32 · 74xx86 · 74xx00 · 74xx02 · 74xx14 (mêmes fonctions, la famille choisie décide de la plage d’alimentation) |
À quoi s’ajoutent les composants de bibliothèque (.kompix), installés par le gestionnaire ou déposés dans le dossier du projet, et les composants personnalisés dessinés dans le créateur intégré.
📦 Bibliothèque publique : la liste illustrée des composants téléchargeables est dans kablix_components/README.md.
Internationalisation
L’interface suit la langue de VS Code (vscode.env.language) : français (fr), anglais (en), espagnol (es) ou chinois simplifié (zh-cn), anglais pour toute autre langue (langue de repli). La traduction repose sur trois registres indépendants, parce qu’ils traduisent des choses de nature différente :
| Quoi |
Fichier |
Forme |
| Chaînes de la webview (barre d’outils, palette, inspecteur, catalogue…) |
src/webview/i18n.mts |
dictionnaire clé (anglais) → traduction (DICTS) ; t() retombe sur la clé anglaise si absente |
| Chaînes de l’extension (commandes, notifications, dialogues) |
package.nls.<lang>.json + l10n/bundle.l10n.<lang>.json |
mécanisme natif VS Code (%clé% dans package.json, vscode.l10n.t() dans le code) ; le fichier sans suffixe est l’anglais |
| Aide : guide utilisateur (❔) et fiches de composants |
docs/<lang>/*.md et docs/<lang>/composants/*.md |
Markdown versionné, rendu hors-ligne dans une webview (src/markdown.ts → src/guide.ts / src/partHelp.ts) |
L’aide n’est plus une copie HTML figée dans le code : c’est le guide lui-même qui s’affiche, images comprises — donc jamais en retard sur la documentation. Les captures lourdes (GIF de démo, logo) restent hors du .vsix et sont servies depuis GitHub ; toutes les autres sont embarquées, donc lisibles sans connexion.
Les trois registres utilisent la même résolution : le code base de la langue (fr-FR → fr) sélectionne l’entrée correspondante, et l’anglais sert de repli quand elle est absente.
Ajouter une langue (ex. allemand, de)
À faire aux trois registres — une langue déclarée à un seul endroit ne sera traduite qu’en partie :
- Webview — créer
src/webview/i18n-de.mts sur le modèle de i18n-es.mts (export const DE = { … }, mêmes clés anglaises que FR), puis l’ajouter à DICTS dans src/webview/i18n.mts → { fr: FR, es: ES, zh: ZH, de: DE }. Les clés non traduites retombent automatiquement sur l’anglais.
- Extension — copier
package.nls.json en package.nls.de.json et l10n/bundle.l10n.fr.json en l10n/bundle.l10n.de.json, puis traduire les valeurs (les clés restent identiques). VS Code choisit le fichier tout seul.
- Aide — créer
docs/de/ : le guide USAGE.md et le dossier composants/ (mêmes NOMS de fichiers que docs/fr/, seul le contenu est traduit ; les images sont mutualisées dans docs/img/). Ajouter ensuite la langue à DOC_LANGS dans src/partHelp.ts — une fiche absente retombe déjà sur l’anglais, puis sur le français.
Aucune autre modification de logique n’est nécessaire : la sélection et le repli sont gérés par initLocale() (webview) et docLang() (aide). npm run verify:docs contrôle que les guides et les fiches restent complets, illustrés et embarqués dans le paquet.
Crédits
Kablix est développé par Frank SAURET et s’appuie sur les bibliothèques open sources suivantes :
| Bibliothèque |
Rôle |
Licence |
| avr8js |
Moteur de simulation ATmega328P (Arduino Uno) |
MIT |
| rp2040js |
Moteur de simulation RP2040 (Raspberry Pi Pico) |
MIT |
| rp2350js |
Moteur de simulation RP2350 (Raspberry Pi Pico 2) |
MIT |
| @wokwi/elements |
Composants visuels (cartes, LED, capteurs…) |
MIT |
| JSZip |
Lecture/écriture des archives .projix |
MIT/GPLv3 |
| Bootrom B1 du RP2040 |
Démarrage du RP2040 simulé |
© Raspberry Pi (Trading) Ltd — BSD-3-Clause |
| Visuels officiels des cartes Raspberry Pi |
Dessins des cartes Pico, Pico W, Pico 2 et Pico 2 W |
© Raspberry Pi Ltd |
| MicroPython |
Firmware .uf2 exécuté sur le Pico simulé (fourni par l’utilisateur) |
MIT |
| Police LED Board-7 © Sizenko Alexander (Style-7) |
Texte façon afficheur LED des écrans LCD simulés |
Freeware (usage libre, crédit requis) |
Le format de projet et les composants importés sont compatibles avec Wokwi (format ouvert diagram.json).
Licence
MIT — le bootrom RP2040 embarqué est © Raspberry Pi (Trading) Ltd, licence BSD-3-Clause.
| |