Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No sound with es8388 #71

Closed
bergvdna opened this issue Oct 24, 2021 · 7 comments
Closed

No sound with es8388 #71

bergvdna opened this issue Oct 24, 2021 · 7 comments
Labels
bug Something isn't working good first issue Good for newcomers help wanted Extra attention is needed

Comments

@bergvdna
Copy link

Translated through Google. Below also in Dutch.

Dear Marcel,
First of all I want to say that I enjoy the videos you make.
It is impressive what is possible with limited resources.
So I thought, I want that too. So I bought an ESP32 Audio Kit and an ESP32 Dev module.
I received a version 2.2 3378 as ESP32 Audio Kit.
Also on the back is the WIFI antenna ESP32-A1S 2974.
The antenna is painted black.
I have read a lot of discussion about the audio chip that is on it and I understand that it will be an ES8388.
The LED flashes at D5. Also a indication?
I see that MIDI input works and in the dump the codes appear ....... but no sound at all.
Not through headphones and not through the speakers.
What am I doing wrong?
See my settings below.
See also the attachments.
If more information is needed, please let me know.
Your help is of course much appreciated.
musical regards,
Arie van den Berg.

In config.h (included) I have active:
#define ESP32_AUDIO_KIT
#define ES8388_ENABLED
#define MIDI_USE_CONST_VELOCITY
#define MIDI_RECV_FROM_SERIAL
#define ADC_TO_MIDI_LOOKUP_SIZE 8
Because ES8388_ENABLED is
#define BLINK_LED_PIN 19
#define I2C_SDA 33 // 18
#define I2C_SCL 32 // 23
where it doesn't matter whether 33 and 32 is chosen or 18 and 23.
#define MIDI_RX_PIN 22 /* U2RRXD */
#define SAMPLE_RATE 44100
#define SAMPLE_SIZE_16BIT
End of config.h settings

Then es8388.cpp:
NO #include <cdt.h>
Because ES8388_ENABLED says:
DO <Wire.h> and all #defines otherwise active
#define ES8388_ADDR 0x10 /!< 0x22:CE=1;0x20:CE=0/
#define ES8388_PIN_SDA 33 //18
#define ES8388_PIN_SCL 32 //23
ES8388_PIN_SDA on 18 triggers Serial.printf("Failed!\n");
ES8388_PIN_SCL on 23 triggers Serial.printf("Failed!\n");
#define ES8388_PIN_MCLK 0
#define ES8388_PIN_SCLK 5 // 27 // 5
#define ES8388_PIN_LRCK 25
#define ES8388_PIN_DIN 26
#define ES8388_PIN_DOUT 35
End of es8388 settings

Beste Marcel,
Allereerst wil ik je zeggen dat ik geniet van de video's die je maakt.
Het is indrukwekkend wat er mogelijk is met beperkte middelen.
Dus ik dacht, dat wil ik ook. Dus kocht ik een ESP32 Audio Kit en een ESP32 Dev module.
Ik ontving als ESP32 Audiokit een versie 2.2 3378.
Ook staat er achterop de WIFI antenne ESP32-A1S 2974.
De antenne is zwart gelakt.
ik heb heel wat discussie gelezen over de audio chip die er dan opzit en ik begrijp dat het een ES8388
zal zijn. Het ledje knippert bij D5. Ook een aanwijzing?
Ik zie dat MIDI input werkt en in de dump de codes verschijnen ....... maar totaal geen geluid.
Niet via hoofdtelefoon en ook niet via de speakers.
Wat doe ik fout?
Zie onderstaand mijn instellingen.
Zie ook de bijlagen.
Als meer informatie nodig is dan hoor ik dat graag.
Je hulp wordt natuurlijk zeer op prijs gesteld.
Muzikale groet,
Arie van den Berg.

In config.h (bijgesloten) heb ik actief staan:
#define ESP32_AUDIO_KIT
#define ES8388_ENABLED
#define MIDI_USE_CONST_VELOCITY
#define MIDI_RECV_FROM_SERIAL
#define ADC_TO_MIDI_LOOKUP_SIZE 8
Omdat ES8388_ENABLED staat
#define BLINK_LED_PIN 19
#define I2C_SDA 33 // 18
#define I2C_SCL 32 // 23
waarbij het nu niet uitmaakt of 33 en 32 wordt gekozen of 18 en 23.
#define MIDI_RX_PIN 22 /* U2RRXD */
#define SAMPLE_RATE 44100
#define SAMPLE_SIZE_16BIT
Einde config.h instellingen

Dan es8388.cpp:
GEEN #include <cdt.h>
Omdat ES8388_ENABLED staat:
WEL <Wire.h> en alle #defines verder actief
#define ES8388_ADDR 0x10 /!< 0x22:CE=1;0x20:CE=0/
#define ES8388_PIN_SDA 33 //18
#define ES8388_PIN_SCL 32 //23
ES8388_PIN_SDA op 18 activeert de melding Serial.printf("Failed!\n");
ES8388_PIN_SCL op 23 activeert de melding Serial.printf("Failed!\n");
#define ES8388_PIN_MCLK 0
#define ES8388_PIN_SCLK 5 // 27 // 5
#define ES8388_PIN_LRCK 25
#define ES8388_PIN_DIN 26
#define ES8388_PIN_DOUT 35
Einde es8388 instellingen

config - kopie h.txt
es8388 - kopie ino.txt
With 32_33_in es8388 cpp - Works
With 18_23_in es8388 cpp

@marcel-licence
Copy link
Owner

Hi Arie,

thank you I am very happy to hear that. I would recommend to try the I2C scanner first.
Different pin connections are known meanwhile:

  • 33/32
  • 18/23

There might be also another I2S pinning ref: marcel-licence/esp32_midi_sampler#50 (reply in thread)

Defines:
#define ES8388_PIN_MCLK 0 #define ES8388_PIN_SCLK 5 // 27 // 5 #define ES8388_PIN_LRCK 25 #define ES8388_PIN_DIN 26 #define ES8388_PIN_DOUT 35

Please ensure that pins on the header are left open for your test. You can also enable the NoteOn line in the setup routine.

The blinking is correct. I used this as indication that the application is still running. I think the assumption that the ES8388 is in use is correct. It may be the I2S connection which was reported a few days ago.

Best regards,
Marcel

@bergvdna
Copy link
Author

bergvdna commented Oct 24, 2021 via email

@marcel-licence
Copy link
Owner

Hi, yes the documentation is also fully confusing. It is really hard to sort out which documentation belongs to the different devices.

You will find the devices for the ES8388 in es8388.ino:

#define ES8388_PIN_MCLK 0
#define ES8388_PIN_SCLK 5 // 27 // 5
#define ES8388_PIN_LRCK 25
#define ES8388_PIN_DIN 26
#define ES8388_PIN_DOUT 35

In case the define ESP32_AUDIO_KIT and also ES8388_ENABLED is enabled it will be used for the I2S configuration in i2s_interface.ino:

#ifdef ESP32_AUDIO_KIT

#ifndef ES8388_ENABLED
#define I2S_BCLK_PIN IIS_SCLK
#define I2S_WCLK_PIN IIS_LCLK
#define I2S_DOUT_PIN IIS_DSIN
#define I2S_DIN_PIN IIS_DSOUT
#else
#define I2S_MCLK_PIN ES8388_PIN_MCLK
#define I2S_BCLK_PIN ES8388_PIN_SCLK
#define I2S_WCLK_PIN ES8388_PIN_LRCK
#define I2S_DOUT_PIN ES8388_PIN_DIN
#define I2S_DIN_PIN ES8388_PIN_DOUT
#endif

From my understanding the following setting could work:

#define ES8388_PIN_MCLK 0
#define ES8388_PIN_SCLK 27 /* <- this seems using IO27 instead of IO 5 on some devices */
#define ES8388_PIN_LRCK 25
#define ES8388_PIN_DIN 26
#define ES8388_PIN_DOUT 35

@bergvdna
Copy link
Author

bergvdna commented Oct 25, 2021 via email

@marcel-licence
Copy link
Owner

Perfect!!! I am very happy to hear that =)

@marcel-licence marcel-licence added help wanted Extra attention is needed bug Something isn't working good first issue Good for newcomers labels Oct 26, 2021
@GillesLACAUD
Copy link

Hi Marcel
Did you have try with a 2957 board ? .
I have a board 3378 with an ES8388 and now it is work, but when I try with a 2957 the I2C scanner find a chip at the I2C address 0x10 pin 32/33 but I can not read or write the ES8388 register (it is always fail).
It is very strange all these evolutions with no documentation.

@pabloresa
Copy link

Dear Marcel, it's great, it works!! The solution was: #define ES8388_PIN_SCLK 27 /* <- this seems using IO27 instead of IO 5 on some devices / The #defines are now: #define ES8388_PIN_SDA 33 // 18 #define ES8388_PIN_SCL 32 // 23 #define ES8388_PIN_MCLK 0 #define ES8388_PIN_SCLK 27 // 5 #define ES8388_PIN_LRCK 25 #define ES8388_PIN_DIN 26 #define ES8388_PIN_DOUT 35 I am very happy! Thanks a lot for your help. Musical greetings, Arie van den Berg. https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail Virusvrij. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> Op ma 25 okt. 2021 om 19:15 schreef Marcel @.*>:

Hi, yes the documentation is also fully confusing. It is really hard to sort out which documentation belongs to the different devices. You will find the devices for the ES8388 in es8388.ino: #define ES8388_PIN_MCLK 0 #define ES8388_PIN_SCLK 5 // 27 // 5 #define ES8388_PIN_LRCK 25 #define ES8388_PIN_DIN 26 #define ES8388_PIN_DOUT 35 In case the define ESP32_AUDIO_KIT and also ES8388_ENABLED is enabled it will be used for the I2S configuration in i2s_interface.ino: #ifdef ESP32_AUDIO_KIT #ifndef ES8388_ENABLED #define I2S_BCLK_PIN IIS_SCLK #define I2S_WCLK_PIN IIS_LCLK #define I2S_DOUT_PIN IIS_DSIN #define I2S_DIN_PIN IIS_DSOUT #else #define I2S_MCLK_PIN ES8388_PIN_MCLK #define I2S_BCLK_PIN ES8388_PIN_SCLK #define I2S_WCLK_PIN ES8388_PIN_LRCK #define I2S_DOUT_PIN ES8388_PIN_DIN #define I2S_DIN_PIN ES8388_PIN_DOUT #endif From my understanding the following setting could work: #define ES8388_PIN_MCLK 0 #define ES8388_PIN_SCLK 27 /
<- this seems using IO27 instead of IO 5 on some devices */ #define ES8388_PIN_LRCK 25 #define ES8388_PIN_DIN 26 #define ES8388_PIN_DOUT 35 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#71 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHCH3JEMICIP6RTFDXBVPRLUIWGCDANCNFSM5GTLJC6A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thank you very much! It worked for me like a charm!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants