The Web Installer is now the recommended way to install, debug, maintain and upgrade FluidNC. See below if you want alternate methods.
In addition to installing FluidNC, Web Installer has an easy way to setup WiFi
L'objectif de ce projet est de supprimer la nécessité de compiler pour la plupart des utilisateurs.
E (38) SPIFFS : mount failed, -10025
lors de la première exécution du microprogramme. C'est normal. Il ne se produit qu'au premier démarrage et formate le système de fichiers flash. Cela peut prendre beaucoup de temps sur les ESP32s avec des mémoires flash plus grandes.Si vous obtenez une réponse étrange et répétitive comme celle-ci. Essayez d'utiliser le script erase dans les fichiers de version.
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
...
Fluidterm est une console série qui se charge automatiquement lorsque vous téléchargez un micrologiciel. Elle affiche les messages de démarrage et vous permet d'interagir avec FluidNC. Pour la fermer, vous pouvez envoyer CTRL+] ou fermer la fenêtre. Vous pouvez la lancer à tout moment avec le programme **fluidterm.bat (ou .sh) qui se trouve dans ce dossier.
Si vous disposez d'un Wifi et que l'interface WebUI est en cours d'exécution, vous pouvez effectuer la mise à jour via l'onglet FluidNC. Cela n'écrasera pas votre fichier de configuration. Cliquez sur l'icône de nuage jaune pour télécharger votre fichier binaire compilé (.bin). Les binaires compilés se trouvent dans les dossiers bt ou wifi des versions téléchargées.
Si la mise à jour affecte l'interface WebUI, vous devrez télécharger index.html.gz depuis le dossier FluidNC/data du repo en cliquant sur l'icône verte du dossier dans l'image ci-dessus.
VS Code & PlatformIO est la seule méthode que nous offrons pour la compilation. Elle nous permet de contrôler beaucoup plus de choses que quelque chose comme l'IDE Arduino. Nous devons contrôler les bibliothèques et les versions. Les utilisateurs avancés peuvent utiliser d'autres méthodes, mais ne vous attendez pas à recevoir une aide détaillée à ce sujet.
FluidNC supporte à la fois la connectivité WiFi et Bluetooth. Ces bibliothèques ont un impact important sur la taille du firmware. Par défaut, seul le WiFi est activé. Vous pouvez utiliser l'un ou l'autre, les deux ou aucun en modifiant le fichier platformio.ini.
Veuillez utiliser git pour acquérir les fichiers sources du firmware. Cela garantira que la version affichée est exacte et qu'il y a un moyen pour nous de voir tous les changements que vous avez pu faire. **Si vous n'utilisez pas Git, nous ne pouvons pas vous aider.
Il y a une ligne vers le haut deafault_envs = wifi Changez-la comme ci-dessous.
Utilisateurs avancés uniquement. Si vous avez besoin d'aide, vous n'êtes probablement pas encore un utilisateur avancé.
La méthode d'installation standard fonctionne bien pour toutes les puces de 4M et plus. Vous n'avez simplement pas accès à la mémoire supplémentaire.
La plupart des modules ESP32 ont 4Meg de mémoire. Nous utilisons un schéma de partition standard pour allouer cette mémoire. FluidNC s'attend à certaines sections dans la table de partition, nous avons donc quelques types recommandés pour les modules avec des mémoires plus grandes.
La seule façon de le faire est de compiler soi-même en modifiant le fichier platformio.ini. Nous devrions apporter des changements majeurs à notre système de distribution et à nos scripts d'installation pour permettre aux utilisateurs de choisir la taille de la mémoire. Nous ne considérons pas cela comme une priorité plus importante que beaucoup d'autres choses sur notre liste pour le moment.
Trouvez cette section du fichier platformio.ini et décommentez l'une de ces trois lignes.
board_build.partitions = min_spiffs.csv ; For 4M ESP32
; board_build.partitions = FluidNC/ld/esp32/app3M_spiffs1M_8MB.csv ; For 8Meg ESP32
; board_build.partitions = FluidNC/ld/esp32/app3M_spiffs9M_16MB.csv ; For 16Meg ESP32
Vous pouvez obtenir des informations sur la taille de votre mémoire en lançant esptool.exe flash_id
(syntaxe Win64). esptool est inclus dans les versions FluidNC et platformio avec le framework ESP32. Ces données sont également affichées lorsque vous utilisez nos scripts d'installation.
Detecting chip type... ESP32
Chip is ESP32-D0WD (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 4c:11:ae:ea:7a:8c
Uploading stub...
Running stub...
Stub running...
Manufacturer: 20
Device: 4016
Detected flash size: 4MB
Vous devez créer et télécharger un fichier de configuration pour adapter le micrologiciel à votre machine. Si vous ne le faites pas, vous verrez ce message [MSG:WARN : Cannot open config file:config.yaml]. Ce message indique qu'il ne peut pas trouver le fichier par défaut appelé config.yaml. Dans ce mode, vous pouvez jouer avec une machine virtuelle à 3 axes. Vous pouvez l'actionner et essayer plusieurs choses. Vous ne pouvez rien faire qui nécessite un retour d'information de la part d'une machine réelle, comme le homing, le probing ou la lecture d'une carte SD.
Si vous disposez d'une définition de machine fonctionnelle provenant de Grbl_ESP32, vous pouvez utiliser une méthode automatisée. Voir cette entrée de la FAQ.
La manière la plus simple de télécharger un fichier de configuration est de le faire via FluidTerm.
Vous pouvez également télécharger un fichier via l'interface WebUI. Veillez à envoyer $Config/Filename=<votrefichier.yaml> à la console et redémarrez FluidNC. Veillez à ce qu'il n'y ait pas d'espace devant le nom de fichier.
Vous pouvez voir tous les fichiers qui ont été téléchargés sur le système de fichiers local avec la commande $LocalFS/List. C'est un bon moyen de vérifier si les fichiers ont été téléchargés.
Lorsque vous compilez vous-même, la version n'a pas de sens car nous ne savons pas si des modifications ont été apportées. La chaîne de version ressemblera à ceci
[FluidNC v3.1.4 (Devt-a39e92c-dirty) (wifi) '$' pour l'aide]
Quelle que soit la valeur de v3.x.x
, elle ne signifie rien de significatif. (Devt-a39e92c-dirty)
indique la branche git et le dernier commit dont vous avez tiré le code source. dirty signifie qu'il y a eu un changement.
Quelles sont les directives de demande d'extraction qui doivent être suivies.
En cas de plantage, un rapport backtrace est généralement imprimé sur le port série avant le redémarrage avec une configuration par défaut. Ce rapport liste l'adresse mémoire où le crash s'est produit et toutes les fonctions appelantes sur la pile. Cela ressemble à ceci.
Backtrace:0x400EE971:0x3FFB2540 0x400E40D1:0x3FFB26C0 0x40081B4A:0x3FFB26F0 0x400FCC78:0x3FFB2710 0x400E05F2:0x3FFB2730 0x401A823B:0x3FFB2750 0x400DAA6B:0x3FFB2770 0x400DA48A:0x3FFB2790 0x400DA6CE:0x3FFB27B0 0x400DDAE7:0x3FFB27E0 0x4010BF1E:0x3FFB2820
Dans le paquet FluidNC, nous incluons des fichiers appelés wifi-firmware.elf (Executable and Linkable Format) et bt-firmware.elf qui peuvent décoder les adresses des fonctions, des fichiers et des numéros de ligne.
Vous avez besoin d'un programme appelé addr2line pour effectuer le décodage. Il est installé avec platformio et c'est la meilleure façon de l'obtenir.
Pour la plupart des gens, addr2line se trouve à l'endroit indiqué ci-dessous. Vous devrez peut-être le rechercher s'il ne se trouve pas dans ce dossier.
..\Users\<user>\.platformio\packages\toolchain-gccmingw32/bin/
Dans le dossier qui contient le fichier elf, envoyez cette ligne de commande avec <user> remplacé par votre nom d'utilisateur et <addresses> remplacé par les adresses de backtrace
C:\Users\<user>\.platformio\packages\toolchain-gccmingw32/bin/addr2line.exe -a <addresses> -e wifi-firmware.elf
Dans mon cas, la ligne de commande ressemblerait à ceci.
C:\Users\barto\.platformio\packages\toolchain-gccmingw32/bin/addr2line.exe -a 0x400EE979:0x3FFB2540 0x400E40D1:0x3FFB26C0 0x40081B4A:0x3FFB26F0 0x400FCC80:0x3FFB2710 0x400E05F2:0x3FFB2730 0x401A8243:0x3FFB2750 0x400DAA6B:0x3FFB2770 0x400DA48A:0x3FFB2790 0x400DA6CE:0x3FFB27B0 0x400DDAE7:0x3FFB27E0 0x4010BF26:0x3FFB2820 -e firmware.elf
addr2line does not come packaged with the macOS PlatformIO installer, but it is available via both macports and brew as part of the GNU Binutils package.
brew install binutils
port install binutils
Veuillez noter où binutils est installé car cela peut varier entre les deux outils d'empaquetage. Brew l'installe dans /usr/local/opt/binutils/bin/
.
En suivant l'exemple backtrace montré ci-dessus, la syntaxe pour exécuter addr2line ressemblerait à ceci (en supposant que votre cwd est le répertoire racine de FluidNC et que vous exécutez un build wifi) :
/usr/local/opt/binutils/bin/addr2line -a 0x400EE979:0x3FFB2540 0x400E40D1:0x3FFB26C0 0x40081B4A:0x3FFB26F0 0x400FCC80:0x3FFB2710 0x400E05F2:0x3FFB2730 0x401A8243:0x3FFB2750 0x400DAA6B:0x3FFB2770 0x400DA48A:0x3FFB2790 0x400DA6CE:0x3FFB27B0 0x400DDAE7:0x3FFB27E0 0x4010BF26:0x3FFB2820 -e .pio/build/wifi/firmware.elf
Une trace de retour ressemble à ceci. La première ligne a provoqué l'erreur. La ligne suivante est ce qui a appelé la ligne précédente. Vous pouvez remonter l'erreur jusqu'au début.
Dans ce cas, l'erreur commence à Main.cpp et se termine par strlen. Vous pouvez consulter le code source pour voir ce que fait chaque ligne.
/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/machine/xtensa/strlen.S:43
0x4010f61a
C:/Users/barto/.platformio/packages/framework-arduinoespressif32/cores/esp32/Print.h:67
0x40119511
C:/Users/barto/.platformio/packages/framework-arduinoespressif32/cores/esp32/Print.cpp:89
0x400e4662
C:\Users\barto\Documents\GitHub\FluidNC/FluidNC/src/Configuration/../MyIOStream.h:33
0x400e481d
C:\Users\barto\Documents\GitHub\FluidNC/FluidNC/src/Machine/Macros.cpp:15
0x400f1e61
C:\Users\barto\Documents\GitHub\FluidNC/FluidNC/src/Protocol.cpp:1110
0x400f1ee9
C:\Users\barto\Documents\GitHub\FluidNC/FluidNC/src/Protocol.cpp:805
0x400f2266
C:\Users\barto\Documents\GitHub\FluidNC/FluidNC/src/Protocol.cpp:339
0x400f2515
C:\Users\barto\Documents\GitHub\FluidNC/FluidNC/src/Protocol.cpp:269
0x400e55ed
C:\Users\barto\Documents\GitHub\FluidNC/FluidNC/src/Main.cpp:147
0x4011af91
C:/Users/barto/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:50