domingo, 7 de septiembre de 2025

A way to provide useful information about your ESP32 chip and its memory

This code snippet not only prints "Hello world!" but also provides useful information about your ESP32 chip and its memory. It then enters a countdown loop before restarting the board.

 

#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_chip_info.h"
#include "esp_flash.h"
#include "esp_system.h"

void app_main(void)
{
printf("Hello world!\n");

/* Print chip information */
esp_chip_info_t chip_info;
uint32_t flash_size;
esp_chip_info(&chip_info);
// Before:
// printf("This is %s chip with %d CPU core(s), %s%s%s%s, ",

// After:
printf("This is %s chip with %d CPU core(s), %s%s%s, ",
CONFIG_IDF_TARGET,
chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "",
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "/embedded flash" : "");

unsigned major_rev = chip_info.revision / 100;
unsigned minor_rev = chip_info.revision % 100;
printf("silicon revision v%d.%d, ", major_rev, minor_rev);
if(esp_flash_get_size(NULL, &flash_size) == ESP_OK) {
printf("%" PRIu32 "MB %s flash\n", flash_size / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
}

printf("Minimum free heap size: %" PRIu32 " bytes\n", esp_get_minimum_free_heap_size());

for (int i = 10; i >= 0; i--) {
printf("Restarting in %d...\n", i);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
printf("Restarting now.\n");
fflush(stdout);
esp_restart();
}

 

miércoles, 3 de septiembre de 2025

Lilygo board first steps

 First run:

sudo usermod -a -G dialout alejandro 

Several ways to check where your LilyGO board is connected on Ubuntu

 1. Use lsusb to list USB devices

 

2. Check /dev/tty* devices

ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null



3. Use dmesg to see connection messages
dmesg | tail -20

 

4. List all serial devices with details 

ls -la /dev/serial/by-id/