O
objetivo deste BLOG é demonstrar como é possível programar o
módulo U-BLOX NINA B302 com a linguagem de Scripts MicroPython 1.13.
O mesmo foi conectado pela USB.
Ainda nao compilado com FS.
Interfaces suportadas
- UART
- SPI
- LEDs
- Pins
- ADC
- I2C
- PWM
- Temperature
- RTC
- BLE
- Peripheral role
- Scanner role
- REPL over Bluetooth LE (optionally using WebBluetooth)
- ubluepy: Bluetooth LE module for CircuitPython
- 1 non-connectable advertiser while in connection
SMARTCORE
A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso
portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi,
Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code,
mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria,
repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br
MICROPYTHON
O
MicroPython é uma implementação enxuta e eficiente da linguagem de
programação Python 3 que inclui um pequeno subconjunto da biblioteca
padrão do Python e é otimizada para ser executada em microcontroladores e
em ambientes restritos.
O
microPython pyboard é uma placa de circuito eletrônico compacta que
executa o MicroPython no estado original, oferecendo a você um sistema
operacional Python de baixo nível que pode ser usado para controlar
todos os tipos de projetos eletrônicos.
O
MicroPython é repleto de recursos avançados, como um prompt interativo,
números inteiros de precisão arbitrária, fechamentos, compreensão de
listas, geradores, tratamento de exceções e muito mais. No entanto, é
compacto o suficiente para caber e executar com apenas 256k de espaço de
código e 16k de RAM.
O
MicroPython pretende ser o mais compatível possível com o Python
normal, para permitir a transferência de código com facilidade da área
de trabalho para um microcontrolador ou sistema incorporado.
COMPILAÇÃO MicroPython para NINA B302
Ubuntu 20.10 Groovy Gorilla
Edite
bluetooth_conf.h
// Default defines. #ifndef MICROPY_PY_BLE #define MICROPY_PY_BLE (1)//0 #endif
Para habilitar BLE
sudo apt-get update
sudo apt install python3-pip
pip3 install intelhex
sudo apt install python3-serial
sudo apt install git
git clone https://github.com/micropython/micropython
cd micropython
git submodule update --init
cd micropython/ports/nrf
./drivers/bluetooth/download_ble_stack.sh
cd ~
cd micropython
make -C mpy-cross
sudo apt install gcc-arm-none-eabi
cd ports/nrf make submodules make BOARD=nrf52840-mdk-usb-dongle SD=s140
cd ~/micropython/tools$
osboxes@osboxes:~/micropython/tools$ python3 uf2conv.py /home/osboxes/micropython/ports/nrf/build-nrf52840-mdk-usb-dongle-s140/firmware.hex -c -f 0xADA52840
Converting to uf2, output size: 328704, start address: 0x26000
Wrote 328704 bytes to flash.uf2.
osboxes@osboxes:~/micropython$ find -name *.uf2
./tools/flash.uf2
osboxes@osboxes:~/micropython$ find -name *.hex
./ports/nrf/build-feather52-s140/firmware.hex
./ports/nrf/build-nrf52840-mdk-usb-dongle/firmware.hex
./ports/nrf/drivers/bluetooth/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex
./ports/nrf/drivers/bluetooth/s140_nrf52_6.1.1/s140_nrf52_6.1.1_softdevice.hex
./ports/nrf/drivers/bluetooth/s110_nrf51_8.0.0/s110_nrf51_8.0.0_softdevice.hex
./ports/nrf/build-feather52-s132/firmware.hex
./ports/nrf/build-feather52/firmware.hex
osboxes@osboxes:~/micropython$
./tools/flash.uf2
osboxes@osboxes:~/micropython$ find -name *.hex
./ports/nrf/build-feather52-s140/firmware.hex
./ports/nrf/build-nrf52840-mdk-usb-dongle/firmware.hex
./ports/nrf/drivers/bluetooth/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex
./ports/nrf/drivers/bluetooth/s140_nrf52_6.1.1/s140_nrf52_6.1.1_softdevice.hex
./ports/nrf/drivers/bluetooth/s110_nrf51_8.0.0/s110_nrf51_8.0.0_softdevice.hex
./ports/nrf/build-feather52-s132/firmware.hex
./ports/nrf/build-feather52/firmware.hex
osboxes@osboxes:~/micropython$
COMPILAÇÃO Bootloader para NINA B302
pip3 install --user adafruit-nrfutil
cd ~
git clone https://github.com/adafruit/Adafruit_nRF52_Bootloader cd Adafruit_nRF52_Bootloader
git submodule update --init
nano ~/.bashrc
adicione na primeira linha
export PATH="$HOME/.local/bin:$PATH" e salve
source ~/.bashrc
make BOARD=
feather_nrf52840_express
all
osboxes@osboxes:~/Adafruit_nRF52_Bootloader$ find -name *.hex
./_build/build-feather_nrf52832/feather_nrf52832_bootloader-0.3.2-190-geab7e68.hex
./_build/build-feather_nrf52832/feather_nrf52832_bootloader-0.3.2-190-geab7e68_s132_6.1.1.hex
./_build/build-feather_nrf52832/feather_nrf52832_bootloader-0.3.2-190-geab7e68-nosd.hex
./_build/build-feather_nrf52840_express/feather_nrf52840_express_bootloader-0.3.2-190-geab7e68_s140_6.1.1.hex
./_build/build-feather_nrf52840_express/feather_nrf52840_express_bootloader-0.3.2-190-geab7e68-nosd.hex
./_build/build-feather_nrf52840_express/feather_nrf52840_express_bootloader-0.3.2-190-geab7e68.hex
./lib/softdevice/mbr/hex/mbr_nrf52_2.4.1_mbr.hex
./lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex
./lib/softdevice/s140_nrf52_6.1.1/s140_nrf52_6.1.1_softdevice.hex
osboxes@osboxes:~/Adafruit_nRF52_Bootloader$
./_build/build-feather_nrf52832/feather_nrf52832_bootloader-0.3.2-190-geab7e68.hex
./_build/build-feather_nrf52832/feather_nrf52832_bootloader-0.3.2-190-geab7e68_s132_6.1.1.hex
./_build/build-feather_nrf52832/feather_nrf52832_bootloader-0.3.2-190-geab7e68-nosd.hex
./_build/build-feather_nrf52840_express/feather_nrf52840_express_bootloader-0.3.2-190-geab7e68_s140_6.1.1.hex
./_build/build-feather_nrf52840_express/feather_nrf52840_express_bootloader-0.3.2-190-geab7e68-nosd.hex
./_build/build-feather_nrf52840_express/feather_nrf52840_express_bootloader-0.3.2-190-geab7e68.hex
./lib/softdevice/mbr/hex/mbr_nrf52_2.4.1_mbr.hex
./lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex
./lib/softdevice/s140_nrf52_6.1.1/s140_nrf52_6.1.1_softdevice.hex
osboxes@osboxes:~/Adafruit_nRF52_Bootloader$
Atualizando o Bootloader com um Segger J-Link
Para gravar o bootloader para o Ublox Nina B302 utilizando um Segger J-Link, você
precisará das seguintes ferramentas instaladas em seu sistema e disponíveis no caminho
do sistema:
Drivers e ferramentas JLink
Baixe e instale o JLink Software and Documentation Pack da Segger, que também instalará
um conjunto de ferramentas de linha de comando.
https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Command-Line-Tools/Download
Agora, o bootloader deve ser flash e podemos fazer flash em serial a partir de agora! Deixa o flash micropython (aconselho não flashing master, mas uma tag estável)
adafruit-nrfutil dfu genpkg --dev-type 0x0052 --application build-feather52-s132/firmware.hex firmware.zip
adafruit-nrfutil dfu serial --package firmware.zip -p /dev/ttyUSB0 -b 115200
miniterm.py --raw /dev/ttyUSB0 115200
--- Miniterm on /dev/ttyUSB0 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
MicroPython v1.12-dirty on 2020-04-23; Bluefruit nRF52 Feather with NRF52832
Type "help()" for more information.
>>>
MÉTODO RÁPIDO
Abra J-FLASH lite e grave o bootloader da Adafruit, abrirá então um driver para gravação
./_build/build-feather_nrf52840_express/feather_nrf52840_express_bootloader-0.3.2-190-geab7e68_s140_6.1.1.hex
osboxes@osboxes:~/micropython$ find -name *.uf2
./tools/flash.uf2
./tools/flash.uf2
Os arquivos estão aqui
Questões: suporte@smartcore.com.br
Nenhum comentário:
Postar um comentário