segunda-feira, fevereiro 13, 2023

O Suporte a Bluetooth na Pico W Chegou (e muito mais)

Quando a Raspberry Pi Pico W foi lançada (sete meses atrás), uma surpresa foi que, embora o hardware fosse capaz de comunicação Bluetooth, o software não suportava isso. Tudo o que foi dito na época foi que talvez fosse adicionado no futuro. No começo deste ano foi anunciado que o suporte a Bluetooth faria parte da versão 1.5 do SDK para C/C++ cuja liberação era esperada para o final do mês. Acabou demorando um pouco mais, mas a nova versão do SDK foi lançada e, sim, inclui suporte a Bluetooth para a Pico W (mas marcado como BETA). Esta nova versão inclui também correções e aperfeiçoamentos importantes.



O suporte ao Bluetooth é através da biblioteca de código aberto BTstack. Uma preocupação é que a licença dela permite o uso gratuito apenas para aplicações não comerciais. A expectativa é que a Raspberry Pi Foundation faça um acordo com os desenvolvedores para permitir o uso sem restrições com a Pico W. A BTstack é uma implementação bem completa dos protocolos Bluetooth, com suporte a BLE e muitos perfis Bluetooth. A documentação específica para a Pico W ainda não está disponível, mas existe uma grande quantidade de exemplos.

É esperado que MicroPython e CircuitPython adicionem em breve o suporte a Bluetooth. Também são esperados vários projetos da comunidade que tirem proveito disso.

A nova versão do SDK não é apenas sobre o suporte ao Bluetooth. A lista completa de mudanças pode ser vista no github, aqui estão alguns pontos de destaque:

  • inúmeras correções de bugs
  • muito pequenos aperfeiçoamentos das bibliotecas existentes, com a inclusão de novas funções
  • atualização da tinyusb da versão 0.12.0 para 0.15.0. Isto pode quebrar código existente, mas promete grandes melhorias no modo host 
  • adição de uma biblioteca (pico_i2c_slave) para implementar dispositivos I2C escravos
  • acréscimo de suporte a TLS (biblioteca pico_mbedtls)
  • nova biblioteca pico_rand para gerar números aleatórios "altamente imprevisíveis" para maior segurança de aplicações criptográficas
Se você desenvolve em C ou C++ para o RP2040, você deve começar imediatamente a examinar esta versão. Se você usa tinyusb, provavelmente vai ter ter que fazer algumas mudanças no seu código.

Isto também significa que vou ter que revisar o meu livro sobre o RP2040 (agora também disponível na Amazon).


Nenhum comentário: