Mp3 prehravac s Sdkarty

Povodny prehravac podporoval SdFat kniznicu 1.1.4. Tak som prepisal na kniznicu 2.2.2. Kedze podporuje uz diakritiku, a pridal som podoru pre id1 id2 a id3 tagy z mp3 suborov.
Zatial beta verzia.

Zdrojaky

Tak jsem to testnul a mě to nefunguje. 32gb kartu by to mělo zvládnout?

Konkretne co nefunguje?
Skusal som to na 256MB karte verziu 2_23 - bol tam nejaky problem ze neslo to na 2GB ani 32GB, Vyskusaj teda poslednu verziu na 32GB karte formatovanu ako Fat32, Skus verziu 2_24, nemal som cas sa tomu venovat, uz som si potreboval odychnut od toho. Nazov suboru a priecinku je obmedzeny na 75 znakov, tak bacha na pretecenie :smiley:

Nechce to načíst kartu. O víkendu to testnu znova.

Vo napise teda na twrminal? Mas to dobre pripojene na atmega2560? Zapoj piny ako na arduino uno, akurat mosi miso clk su zapojene inde

Mam to připojene k ESP32

F_CPU = 240000000
Free RAM = 0 Should be a base line of 1017, on ATmega328 when using INTx
begin() failed
Do not reformat the SD.
No card, wrong chip select pin, or wiring error?
SdError: 0X1,0XFF

Do setup jsem si přidal výpis

  Serial.begin(115200);
  Serial.print("MP3_DREQ:");
  Serial.println(MP3_DREQ);
  Serial.print("MP3_XCS:");
  Serial.println(MP3_XCS);
  Serial.print("MP3_XDCS:");
  Serial.println(MP3_XDCS);
  Serial.print("MP3_RESET:");
  Serial.println(MP3_RESET);
  Serial.print("SD_SEL:");
  Serial.println(SD_SEL);

abych věděl, jestli to mám připojené správně.

Nahrál jsem do to toho. To mě tu hraje 2 roky, tak SPI a VS1053 je zapojené dobře. PIN pro SD mám na 27.

najprv rozbehak kartu na nejakom priklade z kniznice sdfat a potom sa uvidi co dalej.
Pripoadne prehladaj forum su tam odpovede ohladom esp32

inak piny su definovane tu
else // otherwise use pinout of typical Sparkfun MP3 Player Shield. #define MP3_XCS 6 //Control Chip Select Pin (for accessing SPI Control/Status registers) #define MP3_XDCS 7 //Data Chip Select / BSYNC Pin #define MP3_DREQ 2 //Data Request Pin: Player asks for more data #if defined(__AVR_ATmega32U4__) #define MP3_DREQINT 1 //Corresponding INTx for DREQ pin #else // swapped between Uno and Leonardo. #define MP3_DREQINT 0 //Corresponding INTx for DREQ pin #endif #define MP3_RESET 8 //Reset is active low #if ( GRAVITECH == 1 ) #define SD_SEL 4 //select pin for SD card #else #define SD_SEL 9 //select pin for SD card #endif // GRAVITECH

Karta jede

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4
SD Card Type: SDHC
SD Card Size: 30436MB
Listing directory: /
  DIR : /System Volume Information
  FILE: /foo.txt  SIZE: 0
  FILE: /01.MP3  SIZE: 77995761
Creating Dir: /mydir
mkdir failed
Listing directory: /
  DIR : /System Volume Information
  FILE: /foo.txt  SIZE: 0
  FILE: /01.MP3  SIZE: 77995761
Removing Dir: /mydir
rmdir failed
Listing directory: /
  DIR : /System Volume Information
Listing directory: /System Volume Information
  FILE: /System Volume Information/WPSettings.dat  SIZE: 12
  FILE: /System Volume Information/IndexerVolumeGuid  SIZE: 76
  FILE: /foo.txt  SIZE: 0
  FILE: /01.MP3  SIZE: 77995761
Writing file: /hello.txt
File written
Appending to file: /hello.txt
Message appended
Reading file: /hello.txt
Read from file: Deleting file: /foo.txt
File deleted
Renaming file /hello.txt to /foo.txt
Rename failed
Reading file: /foo.txt
Failed to open file for reading
Failed to open file for reading
1048576 bytes written for 358 ms
Total space: 30427MB
Used space: 74MB

Daj sem vypis nastavenia pinov vs1053_sdfat_config. H

vs1053_sdfat_config.h

/**
\file vs1053Config.h

\brief Hardware dependent configuration definitions
\remarks comments are implemented with Doxygen Markdown format

This vs1053Config.h helps configure the vs1053 library for
various supported different base Arduino boards and shield's using the
VS10xx chip. It is possible this may support other VS10xx chips. But are
unverified at this time.

As the name vs1053 implies this driver was originally developed from
Sparkfun's MP3 Player Shield. Whereas it can and has been easily adapted
to other hardware, both base Arduino's and shield's using the VS10xx.

The default configuration of this library assumes the SFE MP3 Shield, on
an UNO/Duemilanove, when left un-altered.

\note
Support forArduino Mega's REQUIRES additional jumpers. As the SPI are not on the same
pins as the UNO/Duemilanove.
When using a mega with SFE compatible shields jump the following pings :
<tt>
\n Mega's 51 to the MP3's D11 for MOSI
\n Mega's 50 to the MP3's D12 for MISO
\n Mega's 52 to the MP3's D13 for SCK
</tt>
\n The remainder of pins may remain unchanged. Including INT0 as the Mega maps
INT0 to D2 as to support USE_MP3_INTx, as is. Like the Uno.
\n Where the default vs1053Config.h should not need changing.
\n Yes, SdFat's SoftSPI.h was tried, but has problems when used twice once with
Sd2Card.cpp and a 2nd time with vs1053.cpp.

\n

\note
Support for Arduino Leonardo is afflicted by having the SPI pins not routing the same pins as the UNO. This is similar to the Arduino Mega. Where as it appears it should simply work with additional jumpers, from the Leonardo's ICSP port, which has the SPI pins to the MP3 shields equivalent SPI pins.
<tt>
\n Leo's ICSP4 to the MP3's D11 for MOSI
\n Leo's ICSP1 to the MP3's D12 for MISO
\n Leo's ICSP3 to the MP3's D13 for SCK
</tt>
\n and remember to \b NOT use D10 as an input. It must be left as output.

\todo Please let us know if this works? I think it should.

\sa SEEEDUINO as to how to configure for Seeeduino's Music Shield.
\sa GRAVITECH as to how to configure for Gravitech's MP3-4NANO Shield.
 */

#ifndef vs1053Config_h
#define vs1053Config_h

//------------------------------------------------------------------------------

/**
 * \def SEEEDUINO
 * \brief A macro to configure use on a Seeeduino MP3 player shield
 *
 * Seeduino MP3 Players is supported. However, its DREQ is not connected to a
 * hard INT(x) pin, hence it MUST be polled. This can be configured, using
 * USE_MP3_SimpleTimer.
 * When using a Seeeduino MP3 Player shield set the below define of SEEEDUINO
 * to 1. As so the correct IO pins are configured MP3_XCS, MP3_XDCS and MP3_DREQ
 *
 * Along with USE_MP3_REFILL_MEANS should not be USE_MP3_INTx, unless extra
 * jumper wires are used.
 *
 * Set \c SEEEDUINO to \c 0 to use on a SparkFun MP3 player shield
 *
 * Set \c SEEEDUINO to \c 1 to use on a Seeeduino MP3 player shield
 */
#define SEEEDUINO 0 // set to 1 if using the Seeeduino Music Shield

/**
 * \def GRAVITECH
 * \brief A macro to configure use on a Gravitech's MP3-4NANO shield
 *
 * Gravitech's MP3-4NANO shield is supported. However, its chip select of the
 * SdCard connected to D4. This can be configured, simply by setting the below
 * define of GRAVITECH to 1.
 *
 * Set \c GRAVITECH to \c 0 to use on a Gravitech's MP3-4NANO shield
 *
 * Set \c GRAVITECH to \c 1 to use on a Gravitech's MP3-4NANO
 */
#define GRAVITECH 0 // set to 1 if using the Gravitech's MP3-4NANO shield

/**
 * \def TEENSY2
 * \brief Macro to configure pins for connecting the Sparkfun shield to a Teensy 2
 *
 * You can connect the Sparkfun Mp3 shield to a Teensy 2 with jumper cables on a
 * breadboard. Teensy SDI pins are CS=0, SCK=1, MOSI=2, MISO=3. If you are using
 * a Teensy 2 then set TEENSY2 to 1 below and scroll down for pin assignments.
 *
 * Set \c TEENSY2 to \c 0 to use on a Gravitech's MP3-4NANO shield
 *
 * Set \c TEENSY2 to \c 1 to use on a Gravitech's MP3-4NANO
 */
#define TEENSY2 0 // set to 1 if using the Sparkfun Mp3 shield with Teensy 2

/**
 * \def BARETOUCH
 * \brief A macro to explicitly configure use with the Bare Conductive Touch Board
 *
 * Bare Conductive's Touch Board is supported. However, its pin mapping is 
 * significantly different to the SparkFun MP3 player shield.
 *
 * If you are using Arduino 1.5.0+ then automatic pin remapping can be enabled
 * as follows:
 *
 * 1. Download the Bare Conductive board definitions file (boards.txt) from
 *    their Github (https://github.com/bareconductive).
 * 2. Extract the Bare Conductive folder into your Documents/Arduino/Hardware
 *    folder... My Documents\\Arduino\\Hardware on Windows. If the folder does
 *    not already exist, create it.
 * 3. Restart Arduino if it is currently running.
 * 4. In the Arduino menu, select Tools -> Board -> Bare Conductive Touch Board
 * 
 * This will automatically set up this library when the board is selected, and
 * revert back to the setting for the Sparkfun MP3 shield when it is not. If you
 * would like to override this, set the BARETOUCH value below: 0 to use the
 * Sparkfun MP3 shield, 1 to use the Bare Conductive Touch Board.
 *
 * If you are using an earlier version of Arduino, you will have to manage the
 * pin remapping manually. Setting BARETOUCH below to 0 will leave the pin map
 * as normal - i.e. for the Sparkfun MP3 shield. Setting it to 1 will map the 
 * pins correctly for the Bare Conductive Touch Board. If you decide to then
 * use a different board, you'll have to remember to come back here and adjust 
 * the settings accordingly.
 * 
 */
#define BARETOUCH 0 // set to 1 to force Bare Conductive Touch Board settings on

//------------------------------------------------------------------------------
/*
 * MP3 Player Shield pin mapping. See the appropiate schematic
 */

/**
 * \def MP3_XCS
 * \brief A macro to configure the XCS pin
 *
 * VS10xx's Control Chip Select Pin (for accessing SPI Control/Status registers)
 * as seen by the the Arduino
 *
 */

/**
 * \def MP3_XDCS
 * \brief A macro to configure the XDCS pin
 *
 * VS10xx's Data Chip Select Pin (for streaming data back and forth)
 * as seen by the the Arduino
 */

/**
 * \def MP3_DREQ
 * \brief A macro to configure the DREQ pin
 *
 * VS10xx's DREQ pin that indicates when it is clear to send more data.
 * aka Data REQuest.
 * as seen by the the Arduino
 */

/**
 * \def MP3_DREQINT
 * \brief A macro to configure the DREQINT pin
 *
 * The associated INT(X) pin name for the associated pin of DREQ, if used.
 * as seen by the the Arduino
 *
 * This may not be needed when USE_MP3_REFILL_MEANS is not equal to USE_MP3_REFILL_MEANS
 *
 * \sa USE_MP3_REFILL_MEANS
 */

/**
 * \def MP3_RESET
 * \brief A macro to configure the RESET pin
 *
 * VS10xx's RESET Pin
 * as seen by the the Arduino
 */

/**
 * \def SD_SEL
 * \brief A macro to configure the SdCard Chip Select for vs1053 library
 *
 * This is the pin of the Arduino that is connected to the SdCards Chip select pin.
 * This pin should be the same pin assigned in SdFat Library.
 * as seen by the the Arduino
 */

/**
 * \def PERF_MON_PIN
 * \brief A macro to configure a Pin to analyze performance
 *
 * The output of this pin will be low, during the refill of the VSdsp, allowing measurement of the CPU utilization, required to sustain playing.
 *
 * Set value to any available digital output, including A0-5...
 *
 * Set value to negative to disable.
 */
#define PERF_MON_PIN          -1 //  example of A5

#include <pins_arduino.h>

#if defined(__BIOFEEDBACK_MEGA__)
  #define MP3_XCS             67      //PK5 Output, Active Low,  Control Chip Select Pin (for accessing SPI Control/Status registers)
  #define MP3_XDCS            68      //PK6 Output, Active Low,  Data Chip Select / BSYNC Pin
  #define MP3_DREQ            66      //PK4 Input , Active High, Data Request Pin: Player asks for more data
  #define MP3_RESET           65      //PK3 Output, Active Low,  Reset is active low
  #define SD_SEL              76      //PJ6 Output, Active Low
  #define MP3_DREQINT          5 //Corresponding INTx for DREQ pin
#elif ( SEEEDUINO == 1 ) // if SEEDUINO use the following pin outs
  #define MP3_XCS             A3 //Control Chip Select Pin (for accessing SPI Control/Status registers)
  #define MP3_XDCS            A2 //Data Chip Select / BSYNC Pin
  #define MP3_DREQ            A1 //Data Request Pin: Player asks for more data
  //#define MP3_DREQINT        0 // There is no IRQ used on Seeduino
  #define MP3_RESET           A0 //Reset is active low
  #define SD_SEL              10 //select pin for SD card
#elif ( TEENSY2 == 1 )
  #define MP3_XCS              7
  #define MP3_XDCS             8
  #define MP3_DREQ             4
  #define MP3_DREQINT          1
  #define MP3_RESET            9
  #define SD_SEL               0 // Teensy SDI CS on pin 0
  // Connect SDI pins as follows:
  // Sparkfun shield 11 -> Teensy 2 (mosi)
  // Sparkfun shield 12 -> Teensy 3 (miso)
  // Sparkfun shield 13 -> Teensy 1 (sck)
// if BARETOUCH or ARDUINO_AVR_BARETOUCH use the following pin map
#elif (( BARETOUCH == 1 ) || ( ARDUINO_AVR_BARETOUCH == 1 )) 	
  #define MP3_XCS             9  //Control Chip Select Pin (for accessing SPI Control/Status registers)
  #define MP3_XDCS            6  //Data Chip Select / BSYNC Pin
  #define MP3_DREQ            7  //Data Request Pin: Player asks for more data
  #define MP3_DREQINT         4  //Corresponding INTx for DREQ pin
  #define MP3_RESET           8  //Reset is active low
  #define SD_SEL              5  //select pin for SD card	
// otherwise use pinout of typical Sparkfun MP3 Player Shield.
#else // otherwise use pinout of typical Sparkfun MP3 Player Shield.
  #define MP3_XCS             25 //Control Chip Select Pin (for accessing SPI Control/Status registers)
  #define MP3_XDCS            14 //Data Chip Select / BSYNC Pin
  #define MP3_DREQ            26//2 //Data Request Pin: Player asks for more data
  #if defined(__AVR_ATmega32U4__)
    #define MP3_DREQINT       1 //Corresponding INTx for DREQ pin
  #else // swapped between Uno and Leonardo.
    #define MP3_DREQINT       0 //Corresponding INTx for DREQ pin
  #endif
  #define MP3_RESET           12 //Reset is active low
  #if ( GRAVITECH == 1 )
    #define SD_SEL            4 //select pin for SD card
  #else
    #define SD_SEL            27 //select pin for SD card
  #endif // GRAVITECH
#endif // none SEEEDUINO

//------------------------------------------------------------------------------
/**
 * \def USE_MP3_REFILL_MEANS
 * \brief The selection of DREQ'ss refilling method.
 *
 * The value is that of an enumerated list of possible methods, aka means.
 *
 * The VS10xx's DREQ requests more data from the host micro (the Arduino)
 * Where it can either be an input to an interrupt and corresponding ISR or
 * be polled by software.
 *
 * To enable MP3 Player to use OTHER than default INT0 on D2 for refilling
 * uncomment or change the define of USE_MP3_REFILL_MEANS and set to desired method,
 *
 * The default when left commented implements INT0 on D2.
 *
 * \note ALL base Arduino's should support timers and soft polled means of either
 * \n USE_MP3_Polled, USE_MP3_Timer1 or USE_MP3_SimpleTimer means.
 * \n Assuming resources are not committed else where.
 *
 * \warning Remember to restart Arduino IDE for new Libraries to be available.
 * Coping the file is not enough.
 */
#define USE_MP3_REFILL_MEANS USE_MP3_INTx

/*
 * Configure the implemented means of Refilling the VS10xx chip
 */
#if defined(USE_MP3_REFILL_MEANS)

/**
 *\brief defacto Interrupt on INTx, from DREQ
 * \brief A macro of the enumerated value used to select hard interrupt INTx as the means to refill the VS10xx
 *
 * Where the Interrupt Service Routine attached to INTx as per attachInterrupt(MP3_DREQINT, refill, RISING)
 * causes execution of vs1053::refill() as per the VS10xx need per DREQ.
 *
 * \note MP3_DREQINT corresponds the interrupt vector associated with the pin assigned to MP3_DREQ. As defined in WIterrupts.c
 *
 * \note INT(x) may be relocated or not be available on some base systems depending upon design.
 * Such as with the Lenoardo, which have pins D2/D3 and there corresponding INT0/INT1 swapped, versus the UNO.
 * See <a href="http://arduino.cc/en/Reference/AttachInterrupt"> attachInterrupt() </a>
 * Where SFE MP3 Player can use USE_MP3_INTx as DREQ is connected to D2 aka INT0.
 * Noting that MP3_DREQINT vector is defined above, in pin assignments.
 */
#define USE_MP3_INTx        0

/**
 * \brief A macro of the enumerated value used to select Software polling as the means to refill the VS10xx
 *
 * Where Main loop uses vs1053::available() to check if DREQ needs refilling on a periodic basis.
 *
 * \note In this means vs1053::available() is simply vs1053::refill()
 * and MP3_REFILL_PERIOD is \em NOT used with this means.
 */
#define USE_MP3_Polled      1

/**
 * \brief A macro of the enumerated value used to select Timer1's interrupt as the means to refill the VS10xx
 *
 * Where the Interrupt Service Route attached to Timer1 cause periodic execution of vs1053::refill()
 *
 * \note MP3_REFILL_PERIOD is required when using this means.
 *
 * \sa The use of USE_MP3_Timer1 interrupt requires the TimerOne.h library can be
 * downloaded from http://code.google.com/p/arduino-timerone/ for library.
 */
#define USE_MP3_Timer1      2

/**
 * \brief A macro of the enumerated value used to select Soft SimpleTimer period as the means to refill the VS10xx
 *
 * Where Main loop uses vs1053::available() to check if DREQ needs refilling on a periodic basis.
 *
 * \note In this means vs1053::available() is gating the excecution of vs1053::refill()
 * based on MP3_REFILL_PERIOD. Where MP3_REFILL_PERIOD is required when using this means.
 *
 * \note The associated <SimpleTimer.h> library is required and utilizes 170 more bytes.
 *
 * \sa The use of USE_MP3_SimpleTimer interrupt requires the TimerOne.h library can
 * be downloaded from
 * http://www.arduino.cc/playground/Code/SimpleTimer#GetTheCode for library.
 */
#define USE_MP3_SimpleTimer 3

#endif

//------------------------------------------------------------------------------
/*
 * When means other than Polled and INTx are used the following Libraries need to be loaded.
 */
#if defined(USE_MP3_REFILL_MEANS) && USE_MP3_REFILL_MEANS == USE_MP3_Timer1
  #include <TimerOne.h>
// strange if TimerOne.h is present but not selected it still consums 6 bytes, something to do with Arduino's pre-compiler and Linker.
#elif defined(USE_MP3_REFILL_MEANS) && USE_MP3_REFILL_MEANS == USE_MP3_SimpleTimer
  #include <SimpleTimer.h>
#endif


//------------------------------------------------------------------------------
/*
   When means are time based, need to define the period of update.
   100ms is recommened for 192K sample rate MP3. other rates may vary.
 */
#if defined(USE_MP3_REFILL_MEANS) && USE_MP3_REFILL_MEANS > USE_MP3_Polled // not needed if INTx is used or polled in loop.

/**
 * \brief A macro used to determine the number of milliseconds between software polls of the DREQ.
 */
#define MP3_REFILL_PERIOD 100
#endif

//------------------------------------------------------------------------------
/**
 * \def MIDI_CHANNEL
 * \brief A macro used to specify the MIDI channel
 *
 * Where used in the SingleMIDInoteFile array for sending quick beeps with function vs1053::SendSingleMIDInote()
 *
 * \note Where Ch9 is reserved for Percussion Instruments with single note
 */
#define MIDI_CHANNEL             9 

/**
 * \def MIDI_NOTE_NUMBER
 * \brief A macro used to specify the MIDI note
 *
 * Where used in the SingleMIDInoteFile array for sending quick beeps with function vs1053::SendSingleMIDInote()
 *
 * \note So for Ch9's the note is GM Bank Percussion Instrument, not actual note. e.g 56 is cowbell. This removes the necassasity to send other commands.
 */
#define MIDI_NOTE_NUMBER        56

/**
 * \def MIDI_NOTE_DURATION
 * \brief A macro used to specify the duration of the MIDI note
 *
 * Where used in the SingleMIDInoteFile array for sending quick beeps with function vs1053::SendSingleMIDInote()
 *
 * \warning format is variable length, must keep it small. As not to break hardcoded header format
 */
#define MIDI_NOTE_DURATION     100


/**
 * \def MIDI_INTENSITY
 * \brief A macro used to specify the intensity of the MIDI note
 *
 * Value ranges from 0 to 127(full scale). Where used in the SingleMIDInoteFile array for sending both the ON and off of the quick beep with function vs1053::SendSingleMIDInote()
 */
#define MIDI_INTENSITY         127 // Full scale.




#endif  // vs1053Config_h

Terminal píše

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4
MP3_DREQ:26
MP3_XCS:25
MP3_XDCS:14
MP3_RESET:12
SD_SEL:27
miso:19
mosi:23
sck:18
F_CPU = 240000000
Free RAM = 0 Should be a base line of 1017, on ATmega328 when using INTx
begin() failed
Do not reformat the SD.
No card, wrong chip select pin, or wiring error?
SdError: 0X1,0XFF

prisiel s ina nieco? nejde ti proste sd karta. toto na zaciatku mas takto?


// Try max SPI clock for an SD. Reduce SPI_CLOCK if errors occur.

#define SPI_CLOCK SD_SCK_MHZ(50)     //safe is 1MHz


const uint8_t SD_CS_PIN = SD_SEL;

//next pin defined in vs1053_SdFat_config.h


#define SD_CONFIG SdSpiConfig(SD_CS_PIN, SHARED_SPI, SPI_CLOCK)

 MP3_DREQ nesmie byt pin prerusenia

To bude u ESP asi problém.

Tak jsem to nerozběhal. SD karta v příkladu SDtest jede. VS1053 taky jede.

Objednal som esp32, aj nejake esp32 wroom som doma nasiel-to neviem ci bude fungovatv arduine.
Az budem mat cas, co je problem, tak sa na to poriem.

ESP32 - wroom - 32 mám taky. Na ali jiný koupit asi ani nejde.

#define SPI_CLOCK SD_SCK_MHZ(4)
Vyskusaj

Po aktualizaci knihoven a desek v Arduino IDE, ESP32 už nejde vůbec. Jediné co jde, jsou programy bez wifi, při pokusu o připojení dojde k resetu. esp32 core 0 panic'ed (loadprohibited). By mě zajímalo, co kdo kde zase do…l. Instalace nižší verze knihovny nepomahá. Máte někdo radu??? Mám tu 4 ESP32 a dělají to všechny, do upgrade knihovny bylo vše OK.
Doufám, že není chyba mezi klávesnicí a židlí.

Tak jsem zkusil nahrát přes OTA program do web rádia, co tu šlape cca 2 rok, a to samé. Jsem přišel o rádio. Chce se připojit na wifi a reset.

Můžeš vyzkoušet starší verzi toho prostředí (ani se to nemusí instalovat, stačí to vykopírovat z toho balíčku někam do pracovní složky a spustit odtamtud) a do něj si zkusit nainstalovat ty verze knihovem, se kterými ti to původně šlo… Jinak nevím.

Podle té chyby bych si tipl, že se to tváří jako poškozenej bootloader… Když to nezabere na ty čtyři co máš, zkus s tím starším prostředím pak novej kus.

Jinak ESP32 má JTAG, pokud je bootloader k dispozici měl by jít normálně nahrát (Segger J-Link + OpenOCD atd.), ale mám pocit že k dispozici asi nebudou, dokonce novější verze bootloaderů jsou secure boot (proč asi). K těm bootloaderům a OTA aktualizacím mají nějakej pokec, je potřeba dávat na to bacha co se verzí týče:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/bootloader.html
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/jtag-debugging/index.html

Edit: Tady jsem nějakej našel, ale kdyby sis s tím hrál, tak dej bacha, je to na C3 a navíc custom. Originální jsem nikde nenašel.

https://docs.espressif.com/projects/esptool/en/latest/esp32/esptool/entering-bootloader.html

Jinak do nich jde nahrát i Python UF2 bootloader (dole postup na S3), tak kdybys je nerozjel jinak tak by ses mohl naučit psát v Pythonu :smiley:
https://esp32s3.com/install_uf2.html

O víkendu na to mrknu. Mě to tak n…o, že jsem vše vypnul a musím vychladnout.

Stačí že sem se přemluvil na arduino a ten jejich wiring, ještě python, to v 51 do hlavy už nenarvu.

Neinstaloval si arduino verziu 2?

Vždyť je to jenom číslo :wink: Záleží hlavně jak se cítíš, hodně pomáhá nechlastat a sportovat :smiley: Třeba plavání je dost fajn :slight_smile:

Jestli zvládáš Wiring tak zvládáš i Python, ono se to zase tak moc neliší, a navíc nedávno se řešilo na Ebastlirně něco okolo MicroPythonu a tam jsem zjistil, že objektovej MicroPython je napsanej v procedurálním C… Obdivuju autora, je to hodně zdařilý dílko a zajímavej studijmí materiál. Mám z toho pocit že je to asi i lepší než Wiring, ostatně on není sebemenší důvod cpát do osmibitový ATmegy něco, co je psaný objektově (+ ty všeobecně známý storky s Arduino knihovnama - tím ovšem Arduino nezatracuju, je to silný prostředí, jen nám tu někdo ukazuje, že to jde i lépe).

Já si zrovna včera objednal dvě desky od Wemosu a jeden ESP32-C3-12F, ale kdybys to vůbec nerozjel tak od tebe nějakej odkoupím na pokusy (když do toho jde nahrát UF2 bootloader tak to má nejspíš bootstrap, takže to nikdy úplně nezmrtví, to je jedna věc, a pak by mě taky zajímalo jestli ten bootstrap či bootloader bere i přes serial port, což v konzoli uvidím a rozhodně to nebudu zkoušet na nových).

Jinak by mě taky zajímalo, jestli jsi náhodou nepokusničil s Arduino IDE verze 2.