ESP32 Bluetooth Low Energy (BLE): Una aventura

Image result for esp32 ble

El ESP32 es la mejora de nuestro amigo el ESP8266. Cuando uno lee las especificaciones del ESP32 se le cae la baba, #MICROCONTROLLER-PORN . Podemos destacar lo siguiente :

  • Procesador dual core de 32 bits ESP8266 tiene uno solo
  • Co-procesador ultra-lowpower (así lo dice Wikipedia, atención ULTRA)
  • Wifi 802.11 BGN Integrado
  • Bluetooth: v4.2 BR/EDR y BLE Integrado ESP8266 no tiene Bluetooth
  • 12-bit SAR ADC hasta 18 canales ESP8266 solo tiene un ADC de 10 bits
  • 2 × 8-bit DACs ESP8266 no tiene esto
  • 10 × sesores tactiles (miden variaciones en la capacidad de los GPIOs) ESP8266 no tiene esto

Y la lista sigue…

¿Como se programa?

ESP32 es compatible con Micropython, la forma de programarlo es similar a la del ESP8266, con la diferencia que deben descargar el firmware (el archivo .bin) correspondiente desde aqui .

Pero el firmware de Micropython para el ESP32 todavía no tiene Bluetooth implementado, al menos no la versión oficial.

Así que si quieren implementar Bluetooth tiene dos opciones

Nosotros optamos por Arduino IDE, por que es un lenguaje conocido y el IDE es muy amigable.

Antes de utilizar el IDE de Arduino con el ESP32 tenemos que instalar una nueva placa siguiendo estas intrucciones.

Continuando nuestra aventura procedemos a grabar uno de los programas de prueba que tiene la placa y para nuestra sorpresa LIBRERÍA DE BLE CONSUME EL 85% DE LA MEMORIA DE PROGRAMA

Hurgando en foros,nos dimos cuenta que no éramos los únicos con ese problema. En resumen el fabricante, Espressif, dijo algo como

“Muchachos la librería de BLE ocupa mucho…y listo”

Palabras mas, palabras menos y en chino.

Solución al problema memoria de BLE con ESP32 y Arduino

La solución es agrandar la partición de memoria utilizada para el programa.

¿Estaban esperando que les demos una librería mágica mas chiquita? No llegamos a tanto.

En el proceso de instalación del ESP32 para arduino, dentro del scketh folder se creo el directorio hardware\espressif\esp32. Este directorio posee todo lo relativo a la placa.

Debemos modificar

  • La partición de memoria, para el ESP32 destine mas memoria al programa.
  • La definición de la placa para el IDE de Arduino.

Partición de memoria

Editen hardware/expressif/esp32/tools/partitions/default.csv

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x190000,
app1,     app,  ota_1,   0x1A0000,0x190000,
eeprom,   data, 0x99,    0x330000,0x1000,
spiffs,   data, spiffs,  0x331000,0x0CF000,

Definición de la tarjeta de Arduino

Editen hardware/expressif/esp32/boards.txt ahi deben ubicar la placa que correesponda, En nuestro caso SparkFun ESP32 Thing.

Cambiamos el esp32thing.upload.maximum_size=1638400

Y Listo ya agrandamos la partición de memoria de programa, va a quedar un poco justo pero funciona.

Éxitos en sus aventuras, programen muchas cosas

Fuente

 

Compartit en: Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrEmail this to someonePrint this page

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *