Salut Seba,
am o problema cu inputul 3 (adica pinul 13, ca ordonanta, cu ghinion)
il seteaza ca input dar nu pastreaza setarea
ciudat, m-am jucat week-endul asta cu (pana la) 8 porturi (cu Launchpad-ul, e drept) si de la versiunea
V0.53 - Changed the place for EEPROM indexes define.
- Fixed a bug (wrong index) in EEPROM write of the channel config data.
n-am mai avut nici o problema de genul asta. Pana atunci pateam ceva similar cu ce patesti tu, numai ca atunci cand incercam sa configurez iesirile ca servo-uri.
Ce e si mai ciudat e ca porturile sunt configurate implicit ca intrari.
O sa mai verific si eu, dar am sa te rog sa:
1. verifici si tu ca ai ultima varianta (sau o varianta mai noua de 0.53)
2. sa resetezi EEPROM-ul (
cum scrie si in wiki):
- faci true variabila
Cod:
boolean bForceInit = true;
- recompilezi
- reprogramezi
- pornesti modulul
- faci
Cod:
boolean bForceInit = false;
- recompilezi, reprogramezi, repornesti modulul.
N-am inteles ce vrei sa zici cu
daca s-ar declara din cod atat ID-ul (cel putin cel initial), IP-ul si starea pinilor?
Modulul are o stare "implicita"(
vezi si wiki-ul)- board ID = 11, toate porturile intrari cu pull-up. Numai ca initializarea asta e valabila pana la prima configurare din Rocrail, dupa care configuratia din Rocrail ramane chiar si la reprogramarea "normala"
Reprogramarea modulului fara o stergere prealabila (completa, cu esptool.py sau prin reinititalizarea fortata, ca mai sus) lasa EEPROMUL nemodificat, asa casi dupa
reprogramare "simpla" modulul isi pastreaza configuratia avuta inainte de reprogramare.
Referitor la IP pe post de board id, nu sunt inca sigur ca e mai bine, das sunt dispus sa ma razgandesc.
Pe de o parte vreau sa las libertatea de programare din Rocrail, pe de alta nu stiu ce se intampla daca iau IP-ul prin DHCP (cum e acum cu varianta pentru ESP).
Desi daca ma gandesc mai bine pare o modificare rezonabila. Ma mai gandesc.
Oricum, daca vrei poti s-o implementezi singur - modifici (ultima linie):
Cod:
/*
* No/wrong data in EEPROM or eeprom write forcing
*/
if(bEeProgrammingNeeded || bForceInit){
bEeProgrammingNeeded = false;
if(bSerialOk){
Serial.println(F("Write the eeprom"));
}
//write the boards parameters in the eeprom
RN.Init(); //init the board with the default address (11)
in
Cod:
/*
* No/wrong data in EEPROM or eeprom write forcing
*/
if(bEeProgrammingNeeded || bForceInit){
bEeProgrammingNeeded = false;
if(bSerialOk){
Serial.println(F("Write the eeprom"));
}
//write the boards parameters in the eeprom
RN.Init(subIpL); //init the board with the IP as the address
Cu iesirile te-ai jucat?
Spor,
Liviu