Balise : retour aux sources minimalistes

Robert-67

Membre actif
Bonjour à tous !
Le fil de discussion "si nous fabriquions nos balises" est devenu trop complexe et trop long pour un usager lambda qui veut une balise minimaliste.

Si nous fabriquions Notre balise?

Je vous propose ici un retour aux sources, la balise telle que décrite initialement par :

http://icnisnlycee.free.fr/index.ph...ignalement-pour-aeronefs-sans-personne-a-bord

qui n'est pas tout à fait conforme au décret.

J'ai simplement ajouté 4 lignes magiques qui sont apparues dans le premier fil cité ci-dessus, pour que la balise soit un peu mieux conforme au décret :

Emettre avec une largeur de bande de 20 MHz
Emettre la trame à 6 Mbit/s.
Emettre avec une consommation minimale.

La discussion de la conformité est sans fin, avec des contradicteurs infatigables :semi-twins:

En résumé, plusieurs professionnels m'ont indiqué que la trame doit être émise avec la modulation OFDM, et que celle-ci sera assurée si elle est émise à 6 Mbit/s
J'ai moi-même vérifié qu'un Drone récent DJI, ayant reçu la mise à jour française, émet bien la trame à 20MHz de largeur de bande, et 6 MBit/s.

J'ai donc 3 avis de professionnels vendant des balises (chères !!!) qui convergent.

Ce serait sympa de consacrer ce fil à ce code simple, et pas à une Nième controverse sur la conformité et sur la modulation OFDM :tranquillity:

Voici le fichier "ino" que vous pouvez utiliser tel quel avec un chipset ESP32 mini D1 en y ajoutant vos identifiant Alpha Tango:

Code:
/*
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
    
    Used with ESP32 + BN220, modified by Julien Launay 14/09/2020
    Using https://github.com/khancyr/TTGO_T_BEAM/tree/master/src. Thanks to Pierre Khancyr the original author of this project.
    With https://github.com/f5soh/balise_esp32/blob/droneID_FR_testing/droneID_FR.h
    Connect ESP32 Pin16 (Rx)-> BN220 white wire (Tx)
    Connect ESP32 Pin17 (Tx)-> BN220 green wire (Rx)
     
    Les lignes permettant la basse consommation sont de Robert-67
    Les lignes correction largeur de bande sont de Tr@nquille
    Les lignes correction de débit 6Mbit/s sont de Tr@nquille 
 */
#include <Arduino.h>
#include <WiFi.h>
#include <TinyGPS++.h>
#include "droneID_FR.h"
extern "C" {
#include "esp_wifi.h"
esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq);
esp_err_t esp_wifi_internal_set_fix_rate(wifi_interface_t ifx, bool en, wifi_phy_rate_t rate);
}
#define UBLOX_GPS_OBJECT()  TinyGPSPlus gps
#define GPS_BANUD_RATE 9600
#define GPS_RX_PIN 16
#define GPS_TX_PIN 17
#define PMU_IRQ             35
#define GPS_POWER_CTRL_CH   3

UBLOX_GPS_OBJECT();
droneIDFR drone_idfr;

/********************************************************************************************************************
 * MODIFIEZ LES VALEURS ICI
 ********************************************************************************************************************/
//Le nom du point d'acces wifi CHANGEZ LE par ce que vous voulez !!!
const char ssid[] = "0000000000000";
// Mot de pass du wifi
const char *password = "123456789";
//CHANGEZ l'ID du drone par celui que Alphatango vous a fourni (Trigramme + Modèle + numéro série) !
const char drone_id[] = "000000000000000000000000000000";

//********************************************************************************************************************/
// NE PAS TOUCHEZ A PARTIR D'ICI !!!
// Le wifi est sur le channel 6 conformement à la spécification
static constexpr uint8_t wifi_channel = 6;
// Ensure the drone_id is max 30 letters
static_assert((sizeof(ssid)/sizeof(*ssid))<=32, "AP SSID should be less than 32 letters");
// Ensure the drone_id is max 30 letters
static_assert((sizeof(drone_id)/sizeof(*drone_id))<=31, "Drone ID should be less that 30 letters !");  // 30 lettres + null termination
// beacon frame definition
static constexpr uint16_t MAX_BEACON_SIZE = 40 + 32 + droneIDFR::FRAME_PAYLOAD_LEN_MAX;  // default beaconPacket size + max ssid size + max drone id frame size
uint8_t beaconPacket[MAX_BEACON_SIZE] = {
        0x80, 0x00,                                        // 0-1: Frame Control
        0x00, 0x00,                                        // 2-3: Duration
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff,                // 4-9: Destination address (broadcast)
        0x24, 0x62, 0xab, 0xdd, 0xb0, 0xbd,                // 10-15: Source address FAKE  // TODO should bet set manually
        0x24, 0x62, 0xab, 0xdd, 0xb0, 0xbd,                // 16-21: Source address FAKE
        0x00, 0x00,                                        // 22-23: Sequence / fragment number (done by the SDK)
        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,    // 24-31: Timestamp (GETS OVERWRITTEN TO 0 BY HARDWARE)
        0xB8, 0x0B,                                        // 32-33: Beacon interval: set to 3s == 3000TU== BB8, bytes in reverse order  // TODO: manually set it
        0x21, 0x04,                                        // 34-35: Capability info
        0x03, 0x01, 0x06,                                // 36-38: DS Parameter set, current channel 6 (= 0x06), // TODO: manually set it
        0x00, 0x20,                                     // 39-40: SSID parameter set, 0x20:maxlength:content
                                                        // 41-XX: SSID (max 32)
};
bool has_set_home = false;
double home_alt = 0.0;
uint8_t program = 0;
uint64_t dispMap = 0;
String dispInfo;
char buff[5][256];
uint64_t gpsSec = 0;
bool pmu_irq = false;

#define ARRARY_SIZE(a)   (sizeof(a) / sizeof(a[0]))
String baChStatus = "No charging";
String recv = "";
int8_t P1;
uint64_t beaconSec = 0;
const byte led_gpio = 2; //port number of the LED on the ESP32 GPIO2
bool stat_led = false;
//Phase de configuration.
void setup()
{
    Serial.begin(115200);
    delay(1000);
    //initialisation du BN220. Bien penser à croiser Rx et Tx entre ESP32 et le BN220!
    Serial2.begin(GPS_BANUD_RATE, SERIAL_8N1, GPS_RX_PIN, GPS_TX_PIN);
    pinMode(led_gpio, OUTPUT);
/********************************************************************************************************************
 * ICI ON INITIALISE LE WIFI
 */
    /**
     * Pour mon exemple, je crée un point d'accés. Il fait rien par defaut.
     */
    Serial.println("Starting AP");
    WiFi.softAP(ssid, nullptr, wifi_channel);
    IPAddress myIP = WiFi.softAPIP();
    Serial.print("AP IP address: ");
    Serial.println(myIP);
    Serial.print("AP mac address: ");
    Serial.println(WiFi.macAddress());
    wifi_config_t conf_current;
    esp_wifi_get_config(WIFI_IF_AP, &conf_current);
    // Change WIFI AP default beacon interval sending to 1s.
    conf_current.ap.beacon_interval = 1000;
    drone_idfr.set_drone_id(drone_id);
    ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &conf_current));
    delay(2000);
    //défini la largeur de bande à 20MHz
    ESP_ERROR_CHECK(esp_wifi_set_bandwidth(WIFI_IF_AP, WIFI_BW_HT20));
    //la vitesse
    //esp_wifi_internal_set_fix_rate, WIFI_PHY_RATE_6M 
    ESP_ERROR_CHECK(esp_wifi_internal_set_fix_rate(WIFI_IF_AP, true, WIFI_PHY_RATE_6M));
    // Puissance d'émission
    esp_err_t r = esp_wifi_get_max_tx_power(&P1); 
    Serial.print("Tx power Value (dBm)=");
    Serial.println(P1*0.25);
    //check if Tansmit power is at his max (20 dBm -> 100mW)
    if (P1>77) {
      byte i;
      for(i=0;i<10;i++){
        digitalWrite(led_gpio, HIGH);   
        delay(50);                      
        digitalWrite(led_gpio, LOW);   
        delay(50);
      }
    }
}
//Début du code principal. C'est une boucle infinie.
void loop()
{
    static uint64_t gpsMap = 0;
    
    switch (program) {
    case 0:
        // Ici on lit les données qui arrive du GPS et on les passes à la librairie TinyGPS++ pour les traiter
        while (Serial2.available())
            gps.encode(Serial2.read());
        // On traite le case ou le GPS a un probleme
        if (millis() > 5000 && gps.charsProcessed() < 10) {
            snprintf(buff[0], sizeof(buff[0]), "T-Beam GPS");
            snprintf(buff[1], sizeof(buff[1]), "No GPS detected");
            
            Serial.println(buff[1]);
            digitalWrite(led_gpio, HIGH);
            return;
        }
        // On traite le cas si la position GPS n'est pas valide
        if (!gps.location.isValid()) {
            if (millis() - gpsMap > 1000) {
                snprintf(buff[0], sizeof(buff[0]), "T-Beam GPS");
                snprintf(buff[1], sizeof(buff[1]), "Positioning(%llu)", gpsSec++);
                
                Serial.println(buff[1]);
                digitalWrite(led_gpio, HIGH);
                
                gpsMap = millis();
                delay(10);
                digitalWrite(led_gpio, LOW);
            }
        } else {
            // On traite le case si la position GPS est valide.
            // On renseigne le point de démarrage quand la précision est satisfaisante
            if (!has_set_home && gps.satellites.value() > 6 && gps.hdop.hdop() < 2.0) {
                Serial.println("Setting Home Position");
                //drone_idfr.set_home_lat_lon(gps.location.lat(), gps.location.lng());
                has_set_home = true;
                home_alt = gps.altitude.meters();
                Serial.println("Altitude de départ="+String(home_alt));
                drone_idfr.set_home_position(gps.location.lat(), gps.location.lng(), gps.altitude.meters());
                digitalWrite(led_gpio, HIGH); //Blue Led onbord ON fixe, all is ok!
            }
            // On envoie les données a la librairie d'identification drone pour le formattage.
            drone_idfr.set_current_position(gps.location.lat(), gps.location.lng(), gps.altitude.meters());

            drone_idfr.set_heading(gps.course.deg());
            drone_idfr.set_ground_speed(gps.speed.mps());
            drone_idfr.set_heigth(gps.altitude.meters() - home_alt);
            // Ici on ecrit sur le port USB les données GPS pour visualisation seulement.
            if (millis() - gpsMap > 1000) {
                
                snprintf(buff[0], sizeof(buff[0]), "UTC:%d:%d:%d", gps.time.hour(), gps.time.minute(), gps.time.second());
                snprintf(buff[1], sizeof(buff[1]), "LNG:%.4f", gps.location.lng());
                snprintf(buff[2], sizeof(buff[2]), "LAT:%.4f", gps.location.lat());
                snprintf(buff[3], sizeof(buff[3]), "satellites:%u", gps.satellites.value());
               
                Serial.println(buff[0]);
                Serial.println(buff[1]);
                Serial.println(buff[2]);
                Serial.println(buff[3]);
                
                gpsMap = millis();
            }
        }
        break;
    }
    /**
     * On regarde s'il temps d'envoyer la trame d'identification drone: soit toutes les 3s soit si le drones s'est déplacé de 30m en moins de 3s.
     *  - soit toutes les 3s,
     *  - soit si le drone s'est déplacé de 30m en moins de 30s soit 10m/s ou 36km/h,
     *  - uniquement si la position Home est déjà définie,
     *  - et dans le cas où les données GPS sont nouvelles.
     */
    if (drone_idfr.has_home_set() && drone_idfr.time_to_send()) {
        Serial.println("Send beacon");
        // toggle the LED to see beacon sended
        if (stat_led) {
          digitalWrite(led_gpio, LOW);
          stat_led = false;
        }
        else {
          digitalWrite(led_gpio, HIGH);
          stat_led = true;
        }
        float time_elapsed = (float(millis() - beaconSec) / 1000); 
        beaconSec = millis();
        
        Serial.print(time_elapsed,1); Serial.print("s Send beacon: "); Serial.print(drone_idfr.has_pass_distance() ? "Distance" : "Time");
        Serial.print(" with ");  Serial.print(drone_idfr.get_distance_from_last_position_sent()); Serial.print("m Speed="); Serial.println(drone_idfr.get_ground_speed_kmh()); 
        /**
         * On commence par renseigner le ssid du wifi dans la trame
         */
        // write new SSID into beacon frame
        const size_t ssid_size = (sizeof(ssid)/sizeof(*ssid)) - 1; // remove trailling null termination
        beaconPacket[40] = ssid_size;  // set size
        memcpy(&beaconPacket[41], ssid, ssid_size); // set ssid
        const uint8_t header_size = 41 + ssid_size;  //TODO: remove 41 for a marker
        /**
         * On génère la trame wifi avec l'identfication
         */
        const uint8_t to_send = drone_idfr.generate_beacon_frame(beaconPacket, header_size);  // override the null termination
        // Décommenter ce block pour voir la trame entière sur le port usb
        /* Serial.println("beaconPacket : ");
        for (auto i=0; i<sizeof(beaconPacket);i++) {
            Serial.print(beaconPacket[i], HEX);
            Serial.print(" ");
        }
        Serial.println(" ");*/

        /**
         * On active le Wifi, on envoie la trame, on coupe de Wifi.
         */
        WiFi.softAP(ssid, nullptr, wifi_channel);
        ESP_ERROR_CHECK(esp_wifi_80211_tx(WIFI_IF_AP, beaconPacket, to_send, true));
        WiFi.softAPdisconnect(true);
        /**
         * On reset la condition d'envoi
         */
        drone_idfr.set_last_send();
    }
}
 
Et voici le "zip" de la balise si vous préférez cette façon de télécharger :



Pour le récepteur de contrôle, un ESP32 sera également nécessaire et le fichier est joint en bas de ce post:

Il faut téléverser ce fichier dans un ESP32.
Après téléversement on laisse cet ESP32 branché en USB, on met en marche une balise, puis on active la lecture (la petite raquette en haut à droite dans l'IDE Arduino).

On obtient lecture de la balise, qui montre les paramètres importants:

Code:
11:02:46.814 -> --------------------------
11:02:49.823 ->  80 00 00 00 FF FF FF FF FF FF 24 62 AB DD B0 BD

11:02:49.823 ->               24 62 AB DD B0 BD 70 00 00 00 00 00 00 00 00 00
11:02:49.823 ->               B8 0B 21 04 03 01 06 00 0D 52 52 41 32 30 30 30
11:02:49.823 ->               54 4F 34 30 30 30 DD 4E 6A 5C 35 01 01 01 01 02
11:02:49.823 ->               1E 30 30 30 53 43 48 30 30 30 30 30 30 30 30 30
11:02:49.823 ->               30 30 52 52 41 32 30 30 30 54 4F 34 30 30 30 04
11:02:49.823 ->               04 00 4A 18 00 05 04 00 0B 9E DF 06 02 00 A4 07
11:02:49.823 ->               02 00 1D 08 04 00 4A 18 00 09 04 00 0B 9E E3 0A
11:02:49.823 ->               01 00 0B 02 00 00",
11:02:49.823 ->         "latitude actuelle": "48.xxxxx",

11:02:49.823 -> RSSI=-67
[COLOR=#ff0000]11:02:49.823 -> Largeur=20MHz
11:02:49.823 -> Rate=6_Mbps
11:02:49.823 -> Canal=6[/COLOR]
11:02:49.823 -> ID=[COLOR=#ff0000]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [/COLOR]
lat=48.xxxxx long=7.xxxx alt=164 hauteur=29 lat_dep=48.xxxxx long_dep=7.xxxxx Vitesse=0 Dir=0
RSSI=-67[COLOR=#ff0000] Largeur=20MHz Rate=6_Mbps Canal=6[/COLOR]
 
Dernière édition:
Bonjour Robert.

Très très bonne initiative que d'alléger le post : " si nous fabriquions nos balises "

Retour aux sources mais avec modifications pour passer à 6Mbits, 20MHz et faible consommation
Cela veut il dire que le fichier " sdkconfig.h " revient à son état initial ou bien doit il aussi être modifié comme ci-dessous?

> #define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 1
>
> remplacer le 1 par 0
>
> #define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 0

Dans ce cas , n'oublies pas de le préciser.

En tout cas Bravo, ce post devrait ravir des personnes qui ont du mal à suivre toutes les évolutions (y compris moi)

Patrick
 
papy-dep;2708902 à dit:
Cela veut il dire que le fichier " sdkconfig.h " revient à son état initial ou bien doit il aussi être modifié comme ci-dessous?
> #define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 1
>
> remplacer le 1 par 0
>
> #define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 0
Patrick

Exact, voilà lcomment modifier le fichier SDK !
(merci à Tr@nquille !)
_______________________________________________________
via l'IDE arduino, suivre le menu :

-fichier/préférences.

repérer dans la fenêtre affichée la localisation du fichier preferences.txt tout en bas de la fenêtre, pour moi par exemple c'est:

C:\Users\monnomutilisateur\AppData\Local\Arduino15

Cliquer sur le lien, on est alors dans ce dossier et aller dans:

packages\esp32\hardware\esp32\1.0.5\tools\sdk\include\config

faire une copie du fichier sdkconfig.h quelque part ailleurs (sauvegarde),

ouvrir le fichier sdkconfig.h

rechercher cette ligne:

#define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 1

remplacer le 1 par 0

#define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 0

enregistrer

Recompiler le logiciel "ino" de la balise et téléverser le code ino dans l'ESP32
_________________________________________________________________________
Voici le fichier sdkconfig.h modifié qui peut remplacer l'ancien :

Code:
/*
 *
 * Automatically generated file; DO NOT EDIT.
 * Espressif IoT Development Framework Configuration
 *
 */
#define CONFIG_GATTC_ENABLE 1
#define CONFIG_ESP32_PHY_MAX_TX_POWER 20
#define CONFIG_TRACEMEM_RESERVE_DRAM 0x0
#define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16
#define CONFIG_MQTT_TRANSPORT_SSL 1
#define CONFIG_BLE_SMP_ENABLE 1
#define CONFIG_SPIRAM_TYPE_AUTO 1
#define CONFIG_STACK_CHECK 1
#define CONFIG_MB_SERIAL_TASK_PRIO 10
#define CONFIG_MQTT_PROTOCOL_311 1
#define CONFIG_TCP_RECVMBOX_SIZE 6
#define CONFIG_LWIP_ETHARP_TRUST_IP_MAC 1
#define CONFIG_BLE_SCAN_DUPLICATE 1
#define CONFIG_STACK_CHECK_NORM 1
#define CONFIG_TCP_WND_DEFAULT 5744
#define CONFIG_PARTITION_TABLE_OFFSET 0x8000
#define CONFIG_SW_COEXIST_ENABLE 1
#define CONFIG_SPIFFS_USE_MAGIC_LENGTH 1
#define CONFIG_ESPTOOLPY_FLASHSIZE_4MB 1
#define CONFIG_IPC_TASK_STACK_SIZE 1024
#define CONFIG_FATFS_PER_FILE_CACHE 1
#define CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY 1
#define CONFIG_ESPTOOLPY_FLASHFREQ "40m"
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_UDP_RECVMBOX_SIZE 6
#define CONFIG_ARDUHAL_PARTITION_SCHEME_DEFAULT 1
#define CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE 0
#define CONFIG_MBEDTLS_AES_C 1
#define CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED 1
#define CONFIG_A2DP_SINK_TASK_STACK_SIZE 2048
#define CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN 752
#define CONFIG_MBEDTLS_GCM_C 1
#define CONFIG_ESPTOOLPY_FLASHSIZE "4MB"
#define CONFIG_SPIFFS_CACHE_WR 1
#define CONFIG_SPIRAM_CACHE_WORKAROUND 1
#define CONFIG_BROWNOUT_DET_LVL_SEL_0 1
#define CONFIG_D0WD_PSRAM_CS_IO 16
#define CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER 1
#define CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE 1
#define CONFIG_BTDM_CONTROLLER_MODEM_SLEEP 1
#define CONFIG_SPIFFS_CACHE 1
#define CONFIG_INT_WDT 1
#define CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL 1
#define CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN 3
#define CONFIG_MBEDTLS_SSL_PROTO_TLS1 1
#define CONFIG_BT_STACK_NO_LOG 1
#define CONFIG_ESP_GRATUITOUS_ARP 1
#define CONFIG_MBEDTLS_ECDSA_C 1
#define CONFIG_ESPTOOLPY_FLASHFREQ_40M 1
#define CONFIG_HTTPD_MAX_REQ_HDR_LEN 512
#define CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE 0
#define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1
#define CONFIG_MBEDTLS_ECDH_C 1
#define CONFIG_SPIRAM_USE_CAPS_ALLOC 1
#define CONFIG_FRMN1_QUANT 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE 1
#define CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM 16
#define CONFIG_MBEDTLS_SSL_ALPN 1
#define CONFIG_MBEDTLS_PEM_WRITE_C 1
#define CONFIG_BT_SPP_ENABLED 1
#define CONFIG_BT_RESERVE_DRAM 0xdb5c
#define CONFIG_CXX_EXCEPTIONS 1
#define CONFIG_D2WD_PSRAM_CLK_IO 9
#define CONFIG_FATFS_FS_LOCK 0
#define CONFIG_IP_LOST_TIMER_INTERVAL 120
#define CONFIG_SPIFFS_META_LENGTH 4
#define CONFIG_ESP32_PANIC_PRINT_REBOOT 1
#define CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE 20
#define CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED 1
#define CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED 1
#define CONFIG_CAMERA_CORE1 1
#define CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL 5
#define CONFIG_MB_SERIAL_BUF_SIZE 256
#define CONFIG_CONSOLE_UART_BAUDRATE 115200
#define CONFIG_SPIRAM_SUPPORT 1
#define CONFIG_LWIP_MAX_SOCKETS 10
#define CONFIG_LWIP_NETIF_LOOPBACK 1
#define CONFIG_EMAC_TASK_PRIORITY 20
#define CONFIG_TIMER_TASK_STACK_DEPTH 2048
#define CONFIG_TCP_MSS 1436
#define CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED 1
#define CONFIG_BTDM_CONTROLLER_MODE_BTDM 1
#define CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF 3
#define CONFIG_TCPIP_TASK_AFFINITY_CPU0 1
#define CONFIG_FATFS_CODEPAGE 850
#define CONFIG_SPIRAM_SPIWP_SD3_PIN 7
#define CONFIG_ULP_COPROC_RESERVE_MEM 512
#define CONFIG_LWIP_MAX_UDP_PCBS 16
#define CONFIG_ESPTOOLPY_BAUD 921600
#define CONFIG_INT_WDT_CHECK_CPU1 1
#define CONFIG_ADC_CAL_LUT_ENABLE 1
#define CONFIG_FLASHMODE_DIO 1
#define CONFIG_ESPTOOLPY_AFTER_RESET 1
#define CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED 1
#define CONFIG_LWIP_DHCPS_MAX_STATION_NUM 8
#define CONFIG_TOOLPREFIX "xtensa-esp32-elf-"
#define CONFIG_MBEDTLS_ECP_C 1
#define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024
#define CONFIG_MBEDTLS_RC4_DISABLED 1
#define CONFIG_FATFS_LFN_STACK 1
#define CONFIG_CONSOLE_UART_NUM 0
#define CONFIG_ARDUINO_EVENT_RUNNING_CORE 1
#define CONFIG_ESP32_APPTRACE_LOCK_ENABLE 1
#define CONFIG_PTHREAD_STACK_MIN 768
#define CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC 1
#define CONFIG_TCP_OVERSIZE_MSS 1
#define CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS 1
#define CONFIG_CONSOLE_UART_DEFAULT 1
#define CONFIG_A2DP_SOURCE_TASK_STACK_SIZE 2048
#define CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN 16384
#define CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS 4
#define CONFIG_ESPTOOLPY_FLASHSIZE_DETECT 1
#define CONFIG_AUTOSTART_ARDUINO 1
#define CONFIG_ARDUINO_RUNNING_CORE 1
#define CONFIG_PPP_CHAP_SUPPORT 1
#define CONFIG_LOG_DEFAULT_LEVEL_ERROR 1
#define CONFIG_TIMER_TASK_STACK_SIZE 4096
#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE 1
#define CONFIG_SPIRAM_BANKSWITCH_ENABLE 1
#define CONFIG_MBEDTLS_X509_CRL_PARSE_C 1
#define CONFIG_HTTPD_PURGE_BUF_LEN 32
#define CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR 1
#define CONFIG_MB_SERIAL_TASK_STACK_SIZE 2048
#define CONFIG_MBEDTLS_PSK_MODES 1
#define CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO 1
#define CONFIG_LWIP_DHCPS_LEASE_UNIT 60
#define CONFIG_SPIFFS_USE_MAGIC 1
#define CONFIG_OV7725_SUPPORT 1
#define CONFIG_TCPIP_TASK_STACK_SIZE 2560
#define CONFIG_BLUEDROID_PINNED_TO_CORE_0 1
#define CONFIG_FATFS_CODEPAGE_850 1
#define CONFIG_TASK_WDT 1
#define CONFIG_MTMN_LITE_QUANT 1
#define CONFIG_MAIN_TASK_STACK_SIZE 4096
#define CONFIG_SPIFFS_PAGE_CHECK 1
#define CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0 1
#define CONFIG_LWIP_MAX_ACTIVE_TCP 16
#define CONFIG_TASK_WDT_TIMEOUT_S 5
#define CONFIG_INT_WDT_TIMEOUT_MS 300
#define CONFIG_SCCB_HARDWARE_I2C 1
#define CONFIG_ARDUINO_EVENT_RUN_CORE1 1
#define CONFIG_ESPTOOLPY_FLASHMODE "dio"
#define CONFIG_BTC_TASK_STACK_SIZE 8192
#define CONFIG_BLUEDROID_ENABLED 1
#define CONFIG_NEWLIB_STDIN_LINE_ENDING_CR 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA 1
#define CONFIG_ESPTOOLPY_BEFORE "default_reset"
#define CONFIG_ADC2_DISABLE_DAC 1
#define CONFIG_HFP_ENABLE 1
#define CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_NUM 100
#define CONFIG_ESP32_REV_MIN_0 1
#define CONFIG_LOG_DEFAULT_LEVEL 1
#define CONFIG_TIMER_QUEUE_LENGTH 10
#define CONFIG_ESP32_REV_MIN 0
#define CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT 1
#define CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE 0
#define CONFIG_MAKE_WARN_UNDEFINED_VARIABLES 1
#define CONFIG_FATFS_TIMEOUT_MS 10000
#define CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM 32
#define CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS 1
#define CONFIG_MBEDTLS_CCM_C 1
#define CONFIG_SPI_MASTER_ISR_IN_IRAM 1
#define CONFIG_ARDUHAL_PARTITION_SCHEME "default"
#define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER 20
#define CONFIG_ESP32_RTC_CLK_CAL_CYCLES 1024
#define CONFIG_ESP32_WIFI_TX_BA_WIN 6
#define CONFIG_ESP32_WIFI_NVS_ENABLED 1
#define CONFIG_MDNS_MAX_SERVICES 10
#define CONFIG_ULP_COPROC_ENABLED 1
#define CONFIG_HFP_AUDIO_DATA_PATH_PCM 1
#define CONFIG_EMAC_CHECK_LINK_PERIOD_MS 2000
#define CONFIG_BTDM_LPCLK_SEL_MAIN_XTAL 1
#define CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED 1
#define CONFIG_LIBSODIUM_USE_MBEDTLS_SHA 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_PSK 1
#define CONFIG_DMA_RX_BUF_NUM 10
#define CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_PSK 1
#define CONFIG_TCP_SYNMAXRTX 6
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA 1
#define CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF 0
#define CONFIG_HEAP_POISONING_LIGHT 1
#define CONFIG_PYTHON "python"
#define CONFIG_SPIRAM_BANKSWITCH_RESERVE 8
#define CONFIG_MBEDTLS_ECP_NIST_OPTIM 1
#define CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1 1
#define CONFIG_ESPTOOLPY_COMPRESSED 1
#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv"
#define CONFIG_MB_CONTROLLER_STACK_SIZE 4096
#define CONFIG_TCP_SND_BUF_DEFAULT 5744
#define CONFIG_GARP_TMR_INTERVAL 60
#define CONFIG_LWIP_DHCP_MAX_NTP_SERVERS 1
#define CONFIG_TCP_MSL 60000
#define CONFIG_MBEDTLS_SSL_PROTO_TLS1_1 1
#define CONFIG_LWIP_SO_REUSE_RXTOALL 1
#define CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT 20
#define CONFIG_ESP32_WIFI_MGMT_SBUF_NUM 32
#define CONFIG_PARTITION_TABLE_SINGLE_APP 1
#define CONFIG_XTENSA_IMPL 1
#define CONFIG_ESP32_WIFI_RX_BA_WIN 16
#define CONFIG_MBEDTLS_X509_CSR_PARSE_C 1
#define CONFIG_SPIFFS_USE_MTIME 1
#define CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN 0
#define CONFIG_LWIP_DHCP_RESTORE_LAST_IP 1
#define CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN 2
#define CONFIG_PICO_PSRAM_CS_IO 10
#define CONFIG_EMAC_TASK_STACK_SIZE 3072
#define CONFIG_MB_QUEUE_LENGTH 20
#define CONFIG_SW_COEXIST_PREFERENCE_VALUE 2
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA 1
#define CONFIG_OV2640_SUPPORT 1
#define CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_PSK 1
#define CONFIG_PPP_SUPPORT 1
#define CONFIG_SPIRAM_SPEED_40M 1
#define CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE 2048
#define CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V 1
#define CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY 2000
#define CONFIG_BROWNOUT_DET_LVL 0
#define CONFIG_BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_PCM 1
#define CONFIG_MBEDTLS_PEM_PARSE_C 1
#define CONFIG_SPIFFS_GC_MAX_RUNS 10
#define CONFIG_ARDUINO_RUN_CORE1 1
#define CONFIG_ESP32_APPTRACE_DEST_NONE 1
#define CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC 1
#define CONFIG_MBEDTLS_SSL_PROTO_TLS1_2 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA 1
#define CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM 32
#define CONFIG_HTTPD_MAX_URI_LEN 512
#define CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED 1
#define CONFIG_ARDUHAL_ESP_LOG 1
#define CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED 1
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 240
#define CONFIG_MBEDTLS_HARDWARE_AES 1
#define CONFIG_FREERTOS_HZ 1000
#define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE 1
#define CONFIG_ADC_CAL_EFUSE_TP_ENABLE 1
#define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1
#define CONFIG_BROWNOUT_DET 1
#define CONFIG_ESP32_XTAL_FREQ 0
#define CONFIG_MONITOR_BAUD_115200B 1
#define CONFIG_LOG_BOOTLOADER_LEVEL 0
#define CONFIG_D2WD_PSRAM_CS_IO 10
#define CONFIG_MBEDTLS_TLS_ENABLED 1
#define CONFIG_LWIP_MAX_RAW_PCBS 16
#define CONFIG_SMP_ENABLE 1
#define CONFIG_SPIRAM_SIZE -1
#define CONFIG_MBEDTLS_SSL_SESSION_TICKETS 1
#define CONFIG_SPIFFS_MAX_PARTITIONS 3
#define CONFIG_ESP_ERR_TO_NAME_LOOKUP 1
#define CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_0 1
#define CONFIG_MBEDTLS_SSL_RENEGOTIATION 1
#define CONFIG_ESPTOOLPY_BEFORE_RESET 1
#define CONFIG_MB_EVENT_QUEUE_TIMEOUT 20
#define CONFIG_ESPTOOLPY_BAUD_OTHER_VAL 115200
#define CONFIG_PPP_MPPE_SUPPORT 1
#define CONFIG_ENABLE_ARDUINO_DEPENDS 1
#define CONFIG_WARN_WRITE_STRINGS 1
#define CONFIG_SPIFFS_OBJ_NAME_LEN 32
#define CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT 5
#define CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF 2
#define CONFIG_LOG_BOOTLOADER_LEVEL_NONE 1
#define CONFIG_PARTITION_TABLE_MD5 1
#define CONFIG_TCPIP_RECVMBOX_SIZE 32
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_240 1
#define CONFIG_ESP32_XTAL_FREQ_AUTO 1
#define CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST 1
#define CONFIG_TCP_MAXRTX 12
#define CONFIG_ESPTOOLPY_AFTER "hard_reset"
#define CONFIG_TCPIP_TASK_AFFINITY 0x0
#define CONFIG_LWIP_SO_REUSE 1
#define CONFIG_ARDUINO_UDP_RUN_CORE1 1
#define CONFIG_DMA_TX_BUF_NUM 10
#define CONFIG_LWIP_MAX_LISTENING_TCP 16
#define CONFIG_FREERTOS_INTERRUPT_BACKTRACE 1
#define CONFIG_WL_SECTOR_SIZE 4096
#define CONFIG_ESP32_DEBUG_OCDAWARE 1
#define CONFIG_MQTT_TRANSPORT_WEBSOCKET 1
#define CONFIG_TIMER_TASK_PRIORITY 1
#define CONFIG_PPP_PAP_SUPPORT 1
#define CONFIG_MBEDTLS_TLS_CLIENT 1
#define CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI 1
#define CONFIG_BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_EFF 1
#define CONFIG_BT_ENABLED 1
#define CONFIG_D0WD_PSRAM_CLK_IO 17
#define CONFIG_SW_COEXIST_PREFERENCE_BALANCE 1
#define CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED 1
#define CONFIG_MONITOR_BAUD 115200
#define CONFIG_ESP32_DEBUG_STUBS_ENABLE 1
#define CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT 30
#define CONFIG_TCPIP_LWIP 1
#define CONFIG_REDUCE_PHY_TX_POWER 1
#define CONFIG_BOOTLOADER_WDT_TIME_MS 9000
#define CONFIG_FREERTOS_CORETIMER_0 1
#define CONFIG_IDF_FIRMWARE_CHIP_ID 0x0000
#define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv"
#define CONFIG_MBEDTLS_HAVE_TIME 1
#define CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY 1
#define CONFIG_TCP_QUEUE_OOSEQ 1
#define CONFIG_GATTS_ENABLE 1
#define CONFIG_CXX_EXCEPTIONS_EMG_POOL_SIZE 0
#define CONFIG_ADC_CAL_EFUSE_VREF_ENABLE 1
#define CONFIG_MBEDTLS_TLS_SERVER 1
#define CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT 1
#define CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED 1
#define CONFIG_FREERTOS_ISR_STACKSIZE 1536
#define CONFIG_SUPPORT_TERMIOS 1
#define CONFIG_CLASSIC_BT_ENABLED 1
#define CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_PSK 1
#define CONFIG_OPENSSL_ASSERT_DO_NOTHING 1
#define CONFIG_WL_SECTOR_SIZE_4096 1
#define CONFIG_OPTIMIZATION_LEVEL_DEBUG 1
#define CONFIG_FREERTOS_NO_AFFINITY 0x7FFFFFFF
#define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 0
#define CONFIG_MB_TIMER_INDEX 0
#define CONFIG_SCAN_DUPLICATE_TYPE 0
#define CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED 1
#define CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED 1
#define CONFIG_HFP_CLIENT_ENABLE 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA 1
#define CONFIG_SPI_SLAVE_ISR_IN_IRAM 1
#define CONFIG_SYSTEM_EVENT_QUEUE_SIZE 32
#define CONFIG_BT_ACL_CONNECTIONS 4
#define CONFIG_FATFS_MAX_LFN 255
#define CONFIG_ESP32_WIFI_TX_BUFFER_TYPE 1
#define CONFIG_ESPTOOLPY_BAUD_921600B 1
#define CONFIG_BOOTLOADER_WDT_ENABLE 1
#define CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED 1
#define CONFIG_LWIP_LOOPBACK_MAX_PBUFS 8
#define CONFIG_A2DP_ENABLE 1
#define CONFIG_MB_TIMER_GROUP 0
#define CONFIG_SPI_FLASH_ROM_DRIVER_PATCH 1
#define CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE 1
#define CONFIG_SPIFFS_PAGE_SIZE 256
#define CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED 1
#define CONFIG_ESP32_DPORT_WORKAROUND 1
#define CONFIG_PPP_MSCHAP_SUPPORT 1
#define CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0 1
#define CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT 2048
#define CONFIG_LWIP_SO_RCVBUF 1
#define CONFIG_MB_TIMER_PORT_ENABLED 1
#define CONFIG_DUPLICATE_SCAN_CACHE_SIZE 20
#define CONFIG_ARDUINO_UDP_RUNNING_CORE 1
#define CONFIG_MONITOR_BAUD_OTHER_VAL 115200
#define CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF 1
#define CONFIG_ESPTOOLPY_PORT "/dev/cu.usbserial-DO00EAB0"
#define CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS 1
#define CONFIG_TASK_WDT_PANIC 1
#define CONFIG_OV3660_SUPPORT 1
#define CONFIG_BLE_ADV_REPORT_DISCARD_THRSHOLD 20
#define CONFIG_BLUEDROID_PINNED_TO_CORE 0
#define CONFIG_BTDM_MODEM_SLEEP_MODE_ORIG 1
#define CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR 1
#define CONFIG_ESP32_WIFI_IRAM_OPT 1
#define CONFIG_FATFS_API_ENCODING_ANSI_OEM 1
#define CONFIG_ARDUINO_IDF_COMMIT "d3e562907"
#define CONFIG_ARDUINO_IDF_BRANCH "release/v3.2"
 
Bonjour,

Le sujet de synthèse que j'attendais et que j'avais suggérer.

Voilà c'est fait et c'est clair pour un module de type ESP32.
Je viens de tester, c'est bon de mon côté, reste à mesurer la consommation.

Merci Robert-67.



Nota: il y aurait la même chose pour une ESP01 à base de 8266, ce serait formidable...
 
Haut