CJMCU-5102 DAC and MKR zero

Salve a tutti,
scusate, posso usare un DAC come questo per leggere dei file audio da una scheda SD di un arduino MKR zero? Vorrei semplicemente far suonare dei file lineari stereo.
Non ho trovato niente su questo DAC nel forum, mi viene il dubbio che non siano compatibili.

Grazie

Antonio

non entro nel dettaglio della connessione elttrica
ma come gestiresti i file lato file system?
e come "apriresti" il file e troveresti le info per indirizzare il flusso dati sull'uscita
anche solo il formato WAV prevede preamboli, metadati e codec alternativi, compressione eventuale e altri ammeniccoli
non parliamo di mp3 o roba più moderna

tutto questo per dire che la vedo dura
prendi una schedina dedicata

:grin: ok, ok, Grazie @Salvorhardin, come non detto. Pensavo fosse tutto gestito dalle librerie SD.

Epperò io invece sono riuscito a farlo funzionare, con questo tutorial e collegandolo così:

VCC > 5v
GND > GND
FLT > GND
DMP > GND
SCL > GND
BCK > 2~
DIN > A6
LCK > 3~
FMT > GND
XMT > 5v

La qualità è molto buona, ma ogni tanto fa qualche click, forse è una questione di clock? (sparo, eh.. d'altra parte è una sperimentazione empirica... )
E soprattutto un'occhiata ai collegamenti, magari.. secondo voi sono corretti?

Grazie mille

I collegamenti sono quelli, diversamente non funzionerebbe trattandosi di audio digitale.

L'esempio che hai usato è pensato per il MAX98357, ma questo non dovrebbe comportare differenze poiché di default viene usato il protocollo I2S che è uno standard.

Prova a giocare con il "sampling rate" e con il "bit per sample". In particolare io proverei ad impostarli esattamente come lo sono per il tuo file wave.
Se ancora hai click, significa che il buffer dei dati audio non viene "riempito" con velocità sufficiente, magari il collo di bottiglia è la lettura dalla SD. In tal caso potresti provare con la libreria SdFat invece della classica SD.h

grazie mille @cotestatnt! e scusa il ritardo, non avevo ricevuto notifica della tua risposta. Provo subito.

Con la libreria SD mi continua a dare dei click ogni tanto. Ma non solo. Fino ad ora sono riuscito solamente a leggere file audio 16bit 44.1KHz. Tutti gli altri non vengono letti, almeno a me.

Prova a giocare con il "sampling rate" e con il "bit per sample". In particolare io proverei ad impostarli esattamente come lo sono per il tuo file wave

non so come fare. le poche linee di codice

 // setup the I2S audio input for 44.1 kHz with 32-bits per sample
 if (!AudioInI2S.begin(44100, 16)) {
    Serial.println("Failed to initialize I2S input!");
    while (1); // do nothing
  }

mi danno problemi, producono solo una serie di glitches rumorosi.

In tal caso potresti provare con la libreria SdFat invece della classica SD.h

Proverei a sostituire la libreria SD con la SdFat, ma non riesco a trovare la reference delle funzioni, e non essendo un programmatore faccio fatica a sostituire i comandi corrispondenti.

Le poche funzioni che utilizzo sono SD.begin() e SDWaveFile() ma non trovo un corrispondente per la Fat.

Ho trovato questo repository dove ci sono anche degli esempi di player con files lineari e gestiti con la SdFat, ma tutti i files RAW degli esempi sono convertiti in C. :thinking:
Inizio a pensare che un file lineare wav gestito tramite scheda SD sia troppo pesante...

Grazie mille per qualsiasi considerazione potete condividere a riguardo.