mancata ricezione dati da esp12

Ciao a tutti,

è da giorni che sto tentando di far comunicare un esp12 (wemos d1) con un microcontrollore atmega328p, ma anche con tante altre schede senza riuscirci. Il mio piano originario era semplice: l'atmega tramite seriale richiede l'ora all'esp; l'esp tira giù l'orario da internet e lo comunica all'atmega sempre via seriale; l'atmega aggiorna l'orologio virtuale (utilizzo la libreria swRTC). Ma ovviamente non funziona come dovrebbe, perché nella prima trasmissione, ovvero quella dove l'atmega fa la richiesta all'esp, avviene correttamente senza alcun problema, l'esp risponde correttamente alla richiesta inviando l'orario alla seriale, ma l'atmega non riceve nulla, zero.
Allora mi sono messo alla ricerca del problema:
subito ho guardato i cavi e le velocità ma era tutto apposto.
Poi ho iniziato a pensare che fosse un problema software, ma dopo diversi tentativi non ho ottenuto nulla.
Quindi ho iniziato ha guardare l'hardware e scritto due semplicissimi codici, il primo di trasmissione e il secondo di ricezione

void setup() {
  Serial.begin(300);
  Serial.println("ciao");
}

void loop() {
}
#define led 13
void setup() {
  Serial.begin(300);
  pinMode(led, OUTPUT);
}

void loop() {
  while(Serial.available() > 0){
    char c = Serial.read();
    Serial.print(c);
    digitalWrite(led, HIGH);
  }
  digitalWrite(led, LOW);
}

e qui ho scoperto una cosa interessante sulla quale chiedo conferma:
Ho sostituito l'atmega328p con un arduino uno e mantenuto l'esp; carico il codice di trasmissione sul l'arduino e il codice di ricezione sull'esp, funziona, ma di questo ne ero già certo; faccio l'inverso e l'arduino mostra caratteri incomprensibili sul monitor seriale. Mantenendo la velocità impostata dei codici a 300 baud e cambiando la velocità del monitor seriale ricevo caratteri incompressibili fino a 2400 baud, poi monitor bianco.
Basandomi su un esperienza vecchia con la comunicazione canbus, può essere che i due micro, lavorando a frequenze tanto diverse, non riescono a sincronizzarsi con la velocità anche se impostata uguale e alla velocità minima? Oppure c'è qualcos'alto?

Attendo risposta, grazie mille

Hai interposto un adattatore 5/3,3V? Dicono che non serve e che i livelli pur essendo al limite vengono riconosciuti, ma non sono convinto (lavorare sui limiti è una porkeria)

adatt335.png

adatt335.png

Domanda banale: hai unito le 2 masse (GND)?

Ciao, Ale.

ilguargua:
Domanda banale: hai unito le 2 masse (GND)?

Ciao, Ale.

Confermo le masse sono sempre state collegate

Claudio_FF:
Hai interposto un adattatore 5/3,3V? Dicono che non serve e che i livelli pur essendo al limite vengono riconosciuti, ma non sono convinto (lavorare sui limiti è una porkeria)

adatt335.png

Io ho solo messo un partitore di tensione tra il tx dell'arduino uno e rx dell'esp, ma quando provavo direttamente con l'atmega328p che alimentavo a 3.3v facevo i collegamenti diretti