oui, effectivement, j'ai vu le code pour détecter le type de carte, et j'avoue que je mets un peu de temps à comprendre la logique...
C'est un peu "confusant".
Les "settings" sont lu d'un fichier de conf, mais le AXP192 vient d'une fonction et se retrouve stocké dans une variable "status".
C'est un peu chaud de suivre dans quel ordre s'execute quoi...
J'admire tout le travail fait jusque là, c'est juste dingue et je comprends parfaitement que ce soit codé ainsi, au fil des avancés... mais pfff, c'est pas facile à suivre sans prendre un peu de temps.
au passage, d'après les logs, je rentre la dedans:
if (i2cDevices < 10){
i2cOLED.beginTransmission(AXP192_SLAVE_ADDRESS);
if (i2cOLED.endTransmission() == 0) {
//ok we have a T-Beam !!
//check, if we have an OLED
setting.boardType = eBoard::T_BEAM;
log_i("AXP192 found");
checkLoraChip();
setting.displayType = NO_DISPLAY;
i2cOLED.beginTransmission(OLED_SLAVE_ADDRESS);
if (i2cOLED.endTransmission() == 0) {
//we have found also the OLED
setting.displayType = OLED0_96;
log_i("OLED found");
}
log_i("Board is T-Beam V1.0 or V1.1");
write_configFile(&setting);
delay(1000);
esp_restart(); //we need to restart
}
Mais checkLoraChip() me fait aussi passer la dedans
log_i("Lora-Chip SX1262 found --> Board is a T-Beam with SX1262");
et comme checklorachip() est appellé au milieu de checkBoardType(), la suite de cette function me donne enfin:
Ah, j'ai un OLED, donc...
if (i2cOLED.endTransmission() == 0) {
//we have found also the OLED
setting.displayType = OLED0_96;
log_i("OLED found");
}
log_i("Board is T-Beam V1.0 or V1.1");
bref, j'ai bien AXP192 (d'après le code exécuté) donc j'ai Board is a T-Beam with SX1262
mais comme j'ai un oled, j'ai finalement Board is T-Beam V1.0 or V1.1
En fin de compte, on s'en fou un peu que ce soit moche, ce qui importe, c'est la fonction
qui elle fini par mettre
log_e("AXP192 error begin");
status.bHasAXP192 = false;
Ce qui veut dire que je ne rentre pas la dedans:
if (!axp.begin(i2cOLED, AXP192_SLAVE_ADDRESS))
A priori, j'ai un SX1276 et non un SX1262, mais en regardant sur la carte à la loupe, je vois AXP2101v1.2 et non AXP192 comme sur la spec de la page web de l'article que j'ai acheté.
Merci pour la suggestion de scan I2C, ca va surement m'aider.
Et aussi, je reprendrai le code à tête reposé, car dans la fonction AXP192.
Mais je pense que j'ai déjà une piste avec cette histoire de AXP192 et AXP2021
dans le fichier axp20x.h lignes 64 et 65
//! Chip Address
#define AXP202_SLAVE_ADDRESS (0x35)
#define AXP192_SLAVE_ADDRESS (0x34)