Adxl345 - webusb: fenomeni di instabilità

sto creando alcune "webapp" con un arduino micro e un pro micro, in interazione con un accelerometro adxl345.
questa immagine mostra il buon funzionamento del sistema quando è attivo un singolo dispositivo. In particolare, il grafico sottostante, che rappresenta le deviazioni quadratiche dalla media (significatività) dimostra l'estrema stabilità del sistema, sia alla frequenza di 60 HZ sia alla frequenza di (circa) 250 Hz.

più complicata è la questione con due dispositivi in simultanea.
apparentemente, l'acquisizione funzionerebbe molto bene, ma il grafico della significatività è impietoso.

dopo qualche decina di secondi, il sistema comicia a sparare. Per fermare il fenomeno è necessario stoppare l'acquisizione e riavviarla.

quali possono essere le cause di questo comportamento?
cosa si può fare per ridurlo?

Certamente è qualcosa nel programma

O nel cablaggio

O nei sensori stessi

Oppure l'alimentazione non ci sta dentro e perde colpi

Oppure il PC che usi è inadeguato

Fammi sapere, grazie

ho scritto il software da solo, senza discuterlo o farlo controllare da nessuno.
ma penso che il programma sia corretto, anche perché il problema osservato assomiglia troppo a un comportamento fisico analogo a un surriscaldamento.

per quanto potevo, ho fatto dei controlli ulteriori.
per esempio ho verificato che i dati provenienti da ciascun dispositivo fossero stoccati dal programma in due vettori ben distinti e non avvenisse mai un mescolamento dei dati.

forse, un elemento critico del software può essere la dimensione della stringa di output restituita sul bus usb.
ho osservato che, evitando di acquisire e trasmettere i dati relativi alle coordinate y e z, che non vengono considerate nel grafico, la stabilità iniziale si manitene per un tempo considerevolmente più lungo. questa però non mi sembra un gran soluzione, perché significa rinunciare a utilizzare in futuro applicazioni che usano le tre coordinate.

la stringa di output è formattata in codice JSON. anche questo contribuisce a renderla più lunga. in compenso, posso effettuare un facile controllo di conformità lato web e scartare in ingresso le letture non convalidate. il numero di letture valide è molto elevato e non diminuisce in condizioni di stress. di conseguenza faccio fatica a pensare che la corruzione avvenga nella trasmissione usb.

il diagramma di cablatura è quello standard per l'adxl345, ed è visibile nella foto accessibile dal link sopra indicato.
ho aggiunto una coppia di resistori di carico, come nella figura 40 delle specifiche (dovrebbero essere da 10k, ma i miei occhi non vanno molto d'accordo con i simboli delle resistenze) sui dispositivi controllato dal pro micro, ottenendo qualche miglioramento. va però osservato che le specifiche indicano di aggiungere le resistenze solo nel caso in cui più dispositivi siano collegati sullo stesso bus I2C, e non è il mio caso.

forse il fatto che il pro micro disponga solo di un uscita VCC da 5V e non una da 3.3V, come sarebbe preferibile, può avere un effetto (ma non spiega come mai i surriscaldamenti avvengano su entrambi i dispositivi).

al momento possiedo tre accelerometri adxl345. cambiandone uno non ho ottenuto vantaggi sensibili.