Hey, je suis en train de coder un IDE Arduino pour faire de l'arduino avec un language visuel avec des nodes. Il arrive a générer un code correct et a correctement le compiler en hexa décimal (test avec l'arduino IDE).
Cependant pour televerser sur l'arduino j'essaye de "syncroniser" le bootloader de la carte pour s'assurer que la carte est bien prete a recevoir le code compilé, ca marche parfaitement sur Arduino Uno mais pas sur une Mega 2560 (elle marche et le cable aussi j'ai testé de téléverser un code depuis l'IDE)
Voici les commandes que j'envoie suivant la carte:
const STK_OK = 0x10;
const STK_INSYNC = 0x14;
const PROG_PAGE_SIZE = 128;
const SYNC_COMMANDS: Record<
string,
{ command: Uint8Array; expected: Uint8Array; timeout: number }
> = {
uno: {
command: new Uint8Array([0x30, 0x20]),
expected: new Uint8Array([STK_INSYNC, STK_OK]),
timeout: 300,
},
nano: {
command: new Uint8Array([0x30, 0x20]),
expected: new Uint8Array([STK_INSYNC, STK_OK]),
timeout: 500,
},
mega: {
command: new Uint8Array([0x30, 0x20]),
expected: new Uint8Array([STK_INSYNC, STK_OK]),
timeout: 1000,
},
};
Je me dis que c'est seulement le fait que la payload a envoyer est differentes celon les cartes mais je ne trouve pas de doc pour corriger cela.
Merci pour votre aide