OK ce n'est pas vraiment ce qu'on appelle un "firmware" (le terme est assez générique) c'est le programme complet qui tourne sur votre Arduino
Quand je regarde leur code je vois cela
void setup() {
Serial.begin(9600);
makeComInterface();
initHardware();
}
et je me dis donc que ça ne correspond pas trop à
Le moniteur série est paramétré en nouvelle ligne et 115200 bauds.
vous avez essayé à 9600?
Vous noterez que juste après avoir initialisé la communication série ils appellent makeComInterface()
dont le code est le suivant:
void makeComInterface(){
SCmd.addCommand("v",sendVersion);
SCmd.addCommand("EM",enableMotors);
SCmd.addCommand("SC",stepperModeConfigure);
SCmd.addCommand("SP",setPen);
SCmd.addCommand("SM",stepperMove);
SCmd.addCommand("SE",ignore);
SCmd.addCommand("TP",togglePen);
SCmd.addCommand("PO",ignore); //Engraver command, not implemented, gives fake answer
SCmd.addCommand("NI",nodeCountIncrement);
SCmd.addCommand("ND",nodeCountDecrement);
SCmd.addCommand("SN",setNodeCount);
SCmd.addCommand("QN",queryNodeCount);
SCmd.addCommand("SL",setLayer);
SCmd.addCommand("QL",queryLayer);
SCmd.addCommand("QP",queryPen);
SCmd.addCommand("QB",queryButton); //"PRG" Button,
SCmd.setDefaultHandler(unrecognized); // Handler for command that isn't matched (says "What?")
}
c'est ce qui définit les fonctions associées au langage de commande, et effectivement entrer v dans la console, ça appellera la fonction sendVersion() qui est définie comme cela:
void sendVersion(){
Serial.print(initSting);
Serial.print("\r\n");
}
en lisant le source on voit que le délimiteur de fin de commande est bien '\n' (new line)