Git Product home page Git Product logo

zephyr_ble_sample's Introduction

Bluetooth low energy sample

Este projeto é uma demonstração de firmware com capacidade BLE. Nessa demo um serviço similar a uma UART, isto é, com pontos de escrita e leitura de dados, é criado e registrado na stack BT.

Quando o host se conecta ao device, ele pode enviar bytes pela caracteristica de TX que possui o uuid: 00214367-8901-ffff-ffff-ffffffffffff, o device está configurado como echo, ou seja, na presença de dados, ele os envia de volta ao host que os recebe na caracteristica de RX que possui o uuid: 00214367-8902-ffff-ffff-ffffffffffff.

Preparando o projeto:

cd <este repositorio onde foi clonado>
west init 
west update
west zephyr-export
  • Os comandos acima podem levar um tempo para executar. Nota: Os testes foram feitos usando o zephyr default do west juntamente numa máquina com instalação Ubuntu 20.04, pequenos ajustes podem ser necessários para outras distribuições *Nix. Adaptaçõoes dos comandos a seguir são necessárias caso o host seja Windows.

  • Abra esse projeto no VSCode, habilite o terminal interno pressionando: CTRL+SHIFT+', e ajuste o ambiente do zephyr, isso é necessário apenas quando voce abre esse terminal, ou seja só sera necessário refazer esse passo se fechares o VSCode:

source setup.sh

Para realizar o build:

Com o projeto preparado, podemos compilar a firmware, para isso. siga os passos abaixo:

  • Com o terminal aberto crie o diretório build:
mkdir build 
cd build
  • Dentro desse diretório, prepare o cmake do zephyr usando o comando abaixo:
cmake -GNinja -DBOARD=nrf52dk_nrf52832  ..
  • Agora podemos configurar o projeto para habilitar o bluetooth e o console RTT:
ninja menuconfig
  • Opcionalmente voce pode copiar os conteudos do arquivo: zephyr_ble_sample_config, e colar dentro do arquivo: build/zephyr/.config

  • Compile o firmware:

ninja 
  • O arquivo estará disponível no diretório build/zephyr/ com o o nome zephyr em três formatos: .elf, .hex, .bin .

Conectado um debugger no VSCode

Esse repositório já contém um arquivo de configuração para o Jlink no VSCode, permitindo que o debug no hardware alvo seja possível. Para isso basta instalar a extensao Cortex-M Debug do VSCode veja o link a seguir: https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug .

Além disso, sua máquina necessita ter os pacotes de ferramentas da Segger instalados, eles podem ser encontrados aqui (Lembre-se! JLink sempre original!) : https://www.segger.com/downloads/jlink/

Com esse ferramental instalado, agora siga os passos abaixos para abrir uma seção de debug:

  • Realize o processo de build descrito anteriormente, sempre que atualizar seu firmware;
  • No VSCode, fora do terminal, pressione F5, uma seção de debug irá iniciar e permitir o debug.

Suporte;

Este projeto é uma demonstração e não tem pretensão de servir como referência para produção, em todo caso se estiver com alguma dificuldade, deixe um star, e me mande um email: [email protected]

zephyr_ble_sample's People

Contributors

ulipe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.