O módulo SPWF04S
O módulo SPWF04S é um produto da empresa STMicroelectronics que foi lançado em 07 de março deste ano e é uma evolução do SPWF01S. Dentre suas aplicações estão: conexões sem fio (wireless) para projetos do tipo IoT (Internet of Things), M2M (Machine to Machine), automação industrial e projetos portáteis devido ao baixo consumo e pequenas dimensões, além da agilidade time-to-market.
O módulo é composto por um microcontrolador ARM Cortex-M4 (STM32F439), da mesma empresa, caracterizado por ter um cripto-core para acelerar operações AES-128, AES-192 e AES-256, memória de 2 MB (microcontrolador) dispondo de metade para “user application”, um rádio CW1100 compatível com 802.11b/g/n cuja banda abrange somente em 2.4 GHz, além de oferecer um mecanismo de coexistência com Bluetooth (interação por serial através de comandos AT com um host, se houver) e, o mais importante, possui MicroPython engine embutido (versão 1.6) já com bibliotecas prontas para web, pilha TCP/IP e periféricos (UART, GPIO, SPI, I²C, etc), possibilitando a execução de scripts no próprio microcontrolador sem a necessidade de outro externamente.
Características
- Transmissor de 2.4 GHz IEEE 802.11 b/g/n;
- Microcontrolador de alta performance STM32F439
- ARM® Cortex®-M4;
- 256 KB SRAM;
- 2 MB de memória Flash de alta velocidade;
- 1 MB de memória Flash para aplicações do usuário, extensível via SD/MMC ou SPI Flash externa;
- Pilha protocolo TCP/IP integrado
- 8 clientes TCP ou UDP simultâneos e 2 servidores socket (suportando até 8 clientes cada);
- Secured socket e upper layers (ex.: HTTPS) suportando até TLS 1.2, incluindo AES (128, 256), hash (MD5, SHA-1, SHA-256) e RSA (1024, 2048);
- Web server suportando SSI;
- Open, WEP, WPA2 PSK e WPA2 Enterprise;
- WPS para station;
- System modes: Station, IBSS e miniAP (suportando até 5 Stations);
- miniAP facilmente provisionado (SSID, PWD);
- Rápida reassociação do Wi-Fi depois do reset;
- Atualização do Secure Firmware e FileSystem através do ar (OTA – Over The Air);
- 19 GPIOs disponíveis e configuráveis;
- Interface UART e SPI para um sistemas host;
- Modos avançados de baixa potência:
- Standby com RTC: 43 µA;
- Sleep = 3 mA;
- Idle conectado (DTIM=1) = 5 mA;
- Conjunto de comandos AT para interface através da UART;
- Interface SPI com protocolo simples;
- Application subsystem
- Ambiente MicroPython real-time embutido para customizar aplicações e desenvolvimento on-board;
- Biblioteca MicroPython para fácil acesso às capacidades Wi-Fi subsystem e periféricos (ex.: UART, SPI, I²C);
- Pequenas dimensões: 26.92 x 15.24 x 2.35 mm;
- Fonte única de tensão (3.3 V);
- Opções de antena: antena integrada ou conector U.FL;
- Faixa de temperatura industrial: -40°C to 85°C;
- Certificados FCC/CE/IC;
- Complacente a RoHS.
Variações do módulo
O SPWF04S possui duas variações: o SPWF04SA com antena e o SPWF04SC sem antena. Além disso, há também um versão da STM32 Nucleo que já contempla este módulo: a X-NUCLEO-IDW04A1.
Software
Graças ao MicroPython embutido, todo o software é desenvolvido em Python, o qual pode utilizar o REPL para depuração. No entanto, aconselha-se ler o AN4964 (MicroPython scripting language over SPWF04S) para usufruir de todos os recursos do hardware adequadamente.
Abaixo podemos ver a arquitetura do software.

Conclusão
O SPWF04S é um módulo Wi-Fi bem promissor para projetos que demandam conectividade web, low power e um time-to-market ágil, já que possui MicroPython embutido e bibliotecas para desfrutar do módulo. Assim, basta ter um conhecimento em linguagem Python que a prototipagem rapidamente acontece!











Olá! Já havia lido sobre esse módulo mas uma coisa nunca ficou claro para mim:
– É possível programar diretamente no microcontrolador desse módulo e usar a stack WIFI internamente (sem interpretadores como uPython)? Será que existe uma LIB da wifi para integrar com o projeto? Obrigado!
Olá Rafael.
Esse módulo já vem com um firmware programado neste uC, ou seja, já com o uPython e para acessar essa lib Wifi, somente com script em Python conforme AN.
Porém a MicroPython.org dispõe de todas as libs criadas:
https://github.com/micropython/micropython-lib
Eder.