ESP32-S31
(espressif.com)- ESP32-S31 é um microcontrolador RISC-V dual-core de 32 bits que opera em até 320MHz, voltado para aplicações IoT avançadas que exigem conectividade multiprotocolo e uma HMI rica
- Conectividade inclui 2.4GHz Wi‑Fi 6, Thread e Zigbee baseados em IEEE 802.15.4, Bluetooth 5.4 LE e Bluetooth Classic, além de Ethernet MAC de 1000Mbps
- Sistema e memória trazem 60 GPIO, MMU, 6.86 CoreMark/MHz, 512KB de SRAM, conexão DDR PSRAM de 8 bits a 250MHz, acesso simultâneo a flash e PSRAM, e uma interface SPI dedicada compatível com Octal SPI de alta velocidade
- HMI e áudio combinam câmera DVP, LCD paralelo RGB/I8080/MOTO6800, codec JPEG·PPA·2D-DMA, até 14 canais de toque, LE Audio baseado em LC3 e sincronização de áudio Bluetooth em hardware com dual I2S
- Segurança e software oferecem TRNG, PUF baseado em RAM, secure boot, criptografia de flash e PSRAM, aceleradores AES/RSA/ECDSA/ECC, TEE/APM, com integração prevista com ESP-IDF, ESP-Matter, ESP-BLE-AUDIO, ESP-GMF e ESP Private Agents
Visão geral
- O ESP32-S31 é um microcontrolador RISC-V dual-core de 32 bits de alto desempenho, operando em até 320MHz, voltado para aplicações IoT avançadas que exigem conectividade multiprotocolo abrangente e uma rica interface homem-máquina
- Com 60 GPIOs, oferece flexibilidade para projetos complexos que integram vários protocolos sem fio, diferentes interfaces de display e uma ampla variedade de periféricos
- É adequado para cargas de trabalho de edge AI e machine learning, com foco em lidar com inferência de redes neurais, processamento avançado de sinais, visão computacional e aplicações de áudio inteligente dentro da eficiência de uma plataforma embarcada
Conectividade e desempenho de processamento
- O 2.4GHz Wi‑Fi 6 (802.11ax) busca melhorar a eficiência de transmissão e reduzir o consumo de energia, sendo uma opção adequada para dispositivos alimentados por bateria e sempre conectados
- O IEEE 802.15.4 viabiliza os protocolos Thread e Zigbee, enquanto o Bluetooth 5.4 LE suporta LE Audio, Direction Finding e Bluetooth Mesh 1.1
- O Bluetooth Classic (BR/EDR) cuida da compatibilidade com dispositivos de áudio legados e aplicações HMI de baixa latência, enquanto o Ethernet MAC de 1000Mbps oferece uma conexão cabeada estável e de alta largura de banda
- O sistema adota uma arquitetura RISC-V dual-core de 32 bits com suporte a MMU, oferecendo desempenho de processamento de 6.86 CoreMark/MHz e 60 GPIOs
- Um dos núcleos conta com caminho de dados de 128 bits e instruções SIMD para suportar processamento paralelo rápido
- A memória é composta por 512KB de SRAM, conexão DDR PSRAM de 8 bits a 250MHz, acesso simultâneo a flash e PSRAM e expansão de memória externa baseada em interface SPI dedicada compatível com modo Octal SPI de alta velocidade
HMI e áudio
- A entrada de câmera usa interface DVP de 8 a 16 bits, e o LCD suporta RGB paralelo de 8 a 24 bits, I8080 e MOTO6800
- Suporta conversão entre RGB565, YUV422, YUV420 e YUV411, e aumenta a eficiência do processamento de imagem e da atualização de display com aceleradores de hardware JPEG codec, PPA e 2D-DMA
- Oferece até 14 canais de detecção de toque capacitivo, sendo adequado para smart displays, video doorbells, painéis multimídia e aplicações que integram toque, visão e áudio
- O Bluetooth 5.4 LE Audio suporta streaming de alta qualidade e baixo consumo com base no codec LC3 e em áudio multistream
- O Bluetooth Classic garante compatibilidade com fones de ouvido, alto-falantes e sistemas automotivos, enquanto os controladores dual I2S fornecem sincronização de áudio Bluetooth em nível de hardware para timing preciso e baixa latência
Segurança
- Os recursos de segurança baseados em hardware são voltados para aplicações com exigências industriais rigorosas
- Integra TRNG e recursos PUF baseados em RAM para fornecer a base para geração de chaves e segurança do dispositivo
- Suporta secure boot, criptografia de flash e PSRAM, e aceleradores criptográficos AES-128/256·RSA·ECDSA·ECC
- O periférico de assinatura digital baseado em ECDSA protege a chave privada contra acesso por software, enquanto TEE e APM possibilitam isolamento de software para implantação segura de múltiplas aplicações
Software e recursos do produto
- O ESP32-S31 deverá ser suportado pelo framework open source de desenvolvimento IoT da Espressif, ESP-IDF, pelo ESP-Matter para dispositivos Matter, pelo ESP-BLE-AUDIO e pelo ESP-GMF para aplicações multimídia
- Também segue na direção de permitir a criação de dispositivos cliente capazes de executar ou interagir com agentes de IA por meio da plataforma ESP Private Agents e integração direta com LLMs gerais
- Os recursos do produto listam o SoC ESP32-S31, o módulo ESP32-S31-WROOM-3, e os kits de desenvolvimento ESP32-S31-Korvo-1 e ESP32-S31-Function-Coreboard-1
1 comentários
Comentários do Hacker News
A Espressif está mandando muito bem, e até instruções SIMD entraram na CPU
Em sistemas embarcados, ter um núcleo RISC-V é algo significativo. Isso porque compilar para SoC deixou de ser algo como baixar toolchains e SDKs proprietários meio quebrados, e ficou muito mais próximo de uma única linha:
rustup target add riscv32imac-unknown-none-elfPara começar com desenvolvimento embarcado moderno em Rust, vale ver https://kerkour.com/introduction-to-embedded-development-wit... e https://kerkour.com/rust-esp32-pentest
Os módulos CAN-FD e Motor PWM são bem-vindos, mas o tempo de conversão do ADC não aparece em lugar nenhum. Em controle de motor, é preciso tempo de conversão abaixo de 1µs, e a transição de ponto fixo para ponto flutuante só aconteceu no ano passado, depois de uns 15 anos sendo adiada
imacno nome do alvo da arquiteturaAlgo que juntasse impressão 3D, aquisição automática de componentes, escrita de software sob medida e talvez até um braço robótico; seria ótimo poder simplesmente colocar as peças numa caixa bonita em cima da mesa, como se fosse uma caixa de correio. PROFIT
Eu gostaria que não chamassem tudo de ESP32. A transição de ESP8266 e ESP8285 para ESP32 fazia sentido, mas agora já existem mais de 10 versões com recursos e arquiteturas diferentes
É parecido com como, em toda thread sobre Raspberry Pi Pico (RP2030/RP2350), sempre aparece alguém confundindo com a versão computador de placa única
Quando ouço ESP32, ainda penso primeiro no ESP32 Classic, geralmente no WROOM-32E
Não é que existam mais de 10 “versões” com recursos diferentes. Falar em versões passa muito a ideia de uma evolução gradual ao longo do tempo que foi bagunçada por ir adicionando e removendo módulos
Na prática, existem 4 ou 5 linhas de produto que compartilham o mesmo SDK, filosofia de projeto, estrutura de preços, cadeia de suprimentos e canais de suporte. Para equipes de engenharia que projetam produtos, cada uma delas é muito importante. Não é algo voltado só para quem aprende por hobby, embora eu ache que eles também ofereçam bastante suporte para esse público
Dentro dessas linhas, aí sim existem versões reais. Por exemplo, hoje há principalmente as linhas S, C, H e P, e o ESP32-S2 já não é mais recomendado para novos projetos; deve-se usar o ESP32-S3
No fim, o critério para entender isso é: “dá para colocar um chip com o nome ESP32 numa PCB e programá-lo com o mesmo SDK?”
O mesmo vale para a série de microcontroladores RP2XXX. Se alguém confunde um microcontrolador com um computador de placa única, talvez não esteja no lugar certo
De forma mais ampla, quando você se depara com algo assim, aprende mais rápido se não começar partindo da suposição de que “eu já entendi e os outros estão errados”. É melhor manter a mente aberta e fazer muitas perguntas; estamos numa era de ouro para autodidatas, mas isso só vale para quem consegue manter por bastante tempo uma curiosidade humilde
Estou fazendo projetos hobby de arte com LEDs usando WLED, e o WLED é construído exclusivamente sobre a plataforma ESP32. É muito divertido, e o desempenho dessas plaquinhas, junto com a comunidade open source, continua me impressionando
Minha plataforma de controle preferida é a linha QuinLED. Ela inclui distribuição de energia, reguladores de tensão, trilhas grossas de cobre, resistores configuráveis nas linhas de dados e suporte a hardware auxiliar inteligente, e ainda é barata, algo em torno de 30 a 50 dólares por controlador. quinled.info
<https://kno.wled.ge/> é o site do WLED e, pessoalmente, acho que é uma das URLs mais inteligentes de todos os tempos
Pelo datasheet, há um periférico BitScrambler, e em termos de flexibilidade ele parece muito semelhante ao PIO do Raspberry Pi Pico
As especificações parecem boas, e resta ver quanto tempo vai levar até sair no meu formato preferido da Espressif, o módulo WROOM, ou em uma placa de desenvolvimento pequena. Também fico curioso com o preço, mas até agora tem sido impressionante ver gerações oferecendo muito mais por preços parecidos
Se a expectativa é por um núcleo RISC-V relativamente rápido e SIMD, o P4, que já está disponível, também vale a pena conferir. O clock é um pouco mais alto, mas não tem wireless: https://products.espressif.com/#/product-comparison?names=ES...
Também há trabalhos interessantes que processam muitos dados de pixels usando recursos de DSP e processamento de imagem embutido, e parece que o S31 deve funcionar de forma parecida: https://www.reddit.com/r/WLED/comments/1ry2jd7/wledmmp4_with...
Discussão anterior de quando foi anunciado, há dois meses: https://news.ycombinator.com/item?id=47561678
É bom ver Wi‑Fi e Ethernet com fio de volta na mesma peça
Por outro lado, perdeu o suporte a MIPI que existia na linha P4 de RISC-V dual-core
Esses dispositivos pequenos são realmente fascinantes. Tenho um projeto paralelo que talvez eu comece algum dia: colocar 32 SoCs, ou um número menor de SoCs com mais núcleos, conectá-los por trilhas na PCB a um hub Ethernet e deixar uma ou mais portas de rede uplink para poder interligar várias placas
A ideia é que cada núcleo acenda um LED vermelho na frente da placa por meio de suportes de LED em 90 graus
Eu gostaria de juntar 16 dessas placas para fazer um pequeno cubo Connection Machine
Só não sei muito bem para que serviria um cluster de 512 servidores extremamente fracos. Talvez para aprender a gerenciar uma quantidade irracional de nós
O objetivo principal seria descobrir como programar isso equilibrando facilidade de uso e desempenho
Ideias como junções de PSRAM também são boas. Cada núcleo teria sua própria PSRAM, mas os vizinhos poderiam trocar a posse entre si
Também já me perguntei o que aconteceria na faixa de radiofrequência se isso fosse feito com ESP32. Seriam 512 dispositivos gritando uns com os outros em um espaço pequeno
É bem-vindo ver uma adoção maior de RISC-V em toda a linha ESP32. As peças antigas baseadas em Xtensa também eram boas, mas com RISC-V as ferramentas, o suporte de compiladores e o ecossistema de longo prazo tendem a ficar mais organizados
Toco um pouco de instrumento, então tenho interesse em saída de áudio
Fico curioso sobre como está hoje a saída de áudio por Bluetooth em microcontroladores. Será que dá para ter baixa latência e boa qualidade?
Se você realmente quiser reduzir bastante a latência usando wireless nesse tipo de hardware, uma opção é usar outro ESP32 para enviar um fluxo de bits diretamente entre os dois
Alguns anos atrás tentei montar um ambiente móvel de composição em DAW como hobby usando um notebook Windows de ponta. Só a latência real do áudio BT saindo do notebook para fones ou earbuds já tornava tudo inutilizável, e a latência de entrada de um controlador MIDI por BT separado também era inutilizável. Juntando os dois, a latência total ficava simplesmente ridícula
Na época isso era um problema amplamente conhecido e bastante lamentado. Alguns blogs técnicos, inclusive blogs da MSFT, diziam que havia problemas em todas as camadas da pilha — drivers, firmware, silício etc. — e que havia trabalho em andamento para consertar essa bagunça de ponta a ponta
A única solução viável para Windows mencionada online era usar algum dispositivo wireless específico que não fosse Bluetooth. Ter que plugar um dongle USB dedicado no notebook e escolher entre um dispositivo específico ou um dongle receptor compatível com todos os seus dispositivos era simplesmente menos atraente do que usar cabo
Desde então voltei a pesquisar mais ou menos uma vez por ano, mas ainda não vi relatos de progresso significativo, e também diminuíram as discussões sobre qualquer trabalho em andamento. É muito decepcionante. A parte de qualidade de áudio por BT também não parece ter melhorado muito
Para evitar degradação da qualidade de áudio, é preciso escolher dispositivos específicos que suportem codecs BT proprietários, ou mudar para hardware wireless com dongle não-BT. Ainda se fala em melhorias de qualidade de áudio, mas não parece haver sinais claros de que o padrão de áudio BT vá exigir um piso mínimo padrão de qualidade melhor
Se houver alguma informação sobre melhorias de latência padrão, qualidade padrão ou entrada e saída em dispositivos BT padrão no ecossistema Windows, eu realmente gostaria de saber