Perpustakaan ini sudah tidak dirawat lagi, dan tidak ada rencana pengganti perpustakaan ini. Meskipun tetap dapat diakses oleh pengguna SDK nRF5 yang sudah ada, SDK ini tidak akan menerima pembaruan atau dukungan lebih lanjut. Kami menyarankan untuk tidak memulai proyek baru dengan perpustakaan ini, karena firmware (file .hex) yang tersedia menggunakan binari SoftDevice yang sudah ketinggalan zaman.
pc-ble-driver
menyediakan pustaka C/C++ untuk serialisasi SoftDevice Bluetooth Low Energy nRF5.
Ringkasan
Arsitektur
Lingkungan yang didukung
Sistem operasi
Perangkat Lunak dan IC
Menginstal driver perangkat
Instalasi pengemudi
Validasi pengemudi
Memasang alat
Menginstal dependensi
Menginstal di Windows
Menginstal di Ubuntu Linux
Menginstal di macOS
Mengkompilasi driver pc-ble dari sumber
Kompilasi di Windows
Kompilasi di Ubuntu Linux atau macOS
Mengompilasi file HEX konektivitas
Kompilasi di Windows
Kompilasi di Ubuntu Linux atau macOS
Memprogram konektivitas file HEX
Contoh
Masalah yang diketahui
Lisensi
pc-ble-driver
terdiri dari sekumpulan pustaka statis dan bersama yang menyediakan fungsionalitas SoftDevice ke aplikasi melalui komunikasi port serial dengan chip konektivitas nRF5 yang menjalankan SoftDevice dan perangkat lunak konektivitas, disertakan sebagai satu file .hex di sini. Untuk informasi lebih lanjut tentang serialisasi SoftDevice, lihat Serialisasi.
Pustaka C/C++ dapat dihubungkan secara langsung, namun juga disediakan sebagai pengikatan tingkat lebih tinggi yang memudahkan pengembangan dengan biaya kontrol yang lebih rendah (dapat diterima dalam banyak kasus):
pengikatan Node.JS pc-ble-driver-js
pengikatan Python pc-ble-driver-py
Dimana 'Chip Aplikasi' hanyalah perangkat keras umum (yaitu perangkat Windows, Linux atau macOS), meskipun bisa juga berupa Arduino atau Raspberry Pi misalnya.
Windows 7, 8 dan 10, 32 dan 64-bit (diuji pada Windows 7)
Ubuntu Linux LTS 64-bit (diuji pada Ubuntu 18.04)
macOS 64-bit (diuji pada 10.14 Mojave)
Untuk menggunakan pc-ble-driver, Development Kit Anda harus memiliki firmware yang benar. Firmware yang diperlukan terdapat di folder hex/sd_api_v<x>
dan berisi SoftDevice dan firmware konektivitas yang diperlukan untuk berkomunikasi dengan pc-ble-driver
.
Pustaka yang dihasilkan kompatibel dengan versi SoftDevice API dan IC nRF5x berikut:
SoftDevice s130 API versi 2: connectivity_<version>_1m_with_s130_2.xx
(IC seri nRF51 dan nRF52)
SoftDevice s132 API versi 3: connectivity_<version>_<1m|*usb>_with_s132_3.xx
(hanya untuk IC seri nRF52)
SoftDevice s132 API versi 5: connectivity_<version>_<1m|*usb>_with_s132_5.xx
(hanya untuk IC seri nRF52)
SoftDevice s132 API versi 6: connectivity_<version>_<1m|*usb>_with_s132_6.xx
(hanya untuk IC seri nRF52)
SoftDevice s140 API versi 6: connectivity_<version>_<1m|*usb>_with_s140_6.xx
(hanya untuk IC seri nRF52)
*usb) hanya untuk IC seri nRF52 dengan periferal USBD
PCA | Nama resmi | Nomor artikel | Catatan |
---|---|---|---|
PCA10028 | KIT PENGEMBANGAN nRF51 | nRF6824 | |
PCA10031 | dongle nRF51 | nRF6825 | |
PCA10040 | KIT PENGEMBANGAN nRF52 | nRF6827 | |
PCA10056 | nRF52840 { Perangkat Pengembangan } | nRF6828 | *) |
PCA10059 | nRF52840 { Dongle } | nRF6829 | Hanya dapat menggunakan firmware konektivitas dengan dukungan port serial USB CDC Nordik |
*) Dapat menggunakan versi port serial USB CDC Nordic dan versi SEGGER J-Link-OB (VCOM). Menggunakan versi port serial USB CDC Nordic pada PCA10056 mengharuskan Anda menghubungkan pin P0.18 dan P0.24. Pin ke chip QSPI juga harus ada (secara default). Algoritme untuk mendeteksi apakah itu PCA10056 atau PCA10059 adalah dengan memeriksa apakah mungkin untuk berkomunikasi dengan chip QSPI. PCA10059 tidak memiliki chip QSPI. Deteksi ini digunakan oleh pemicu nRF Connect DFU untuk menentukan pin apa yang digunakan untuk mengatur ulang perangkat ketika beralih antara DFU dan mode aplikasi.
Pustaka komunikasi ini berfungsi melalui semua jenis port serial (UART), tetapi paling sering digunakan melalui Segger J-Link USB CDC UART. Untuk menyiapkan driver J-Link yang diperlukan cukup unduh dan instal versi yang cocok dengan sistem operasi Anda:
SEGGER J-Link
Setelah Anda menginstal driver yang diperlukan dan menghubungkan board yang mendukung J-Link (seperti Nordic Development Kits), port tersebut akan tersedia.
Selain itu, Anda harus menonaktifkan Mass Storage Device
untuk menggunakan pc-ble-driver
untuk berkomunikasi dengan perangkat, melihat data corruption or drops issue
.
Port serial akan muncul sebagai COMxx
. Cukup periksa bagian "Ports (COM & LPT)" di Device Manager.
Port serial akan muncul sebagai /dev/ttyACMx
.
Secara default port ini tidak dapat diakses oleh semua pengguna. Ketik perintah di bawah ini untuk menambahkan pengguna Anda ke grup dialout
untuk memberinya akses ke port serial. Perhatikan bahwa login ulang diperlukan agar ini dapat diterapkan.
$ sudo usermod -a -G panggilan <nama pengguna>
Untuk mencegah layanan modemmanager mencoba menyambung ke port serial CDC ACM:
$ systemctl menghentikan ModemManager.layanan $ systemctl nonaktifkan ModemManager.layanan
Port serial akan muncul sebagai /dev/tty.usbmodemXXXX
.
Ada masalah umum, periksa di sini jika Anda menemui masalah.
Untuk memprogram firmware konektivitas Anda memerlukan nrfjprog
yang dibundel dengan Alat Baris Perintah nRF5x, yang dapat diunduh dari:
Alat Baris Perintah nRF5x untuk Windows
Alat Baris Perintah nRF5x untuk Linux 32-bit
Alat Baris Perintah nRF5x untuk Linux 64-bit
Alat Baris Perintah nRF5x untuk macOS
Tambahkan nrfjprog
dan mergehex
ke PATH
di Linux dan macOS.
Alternatifnya, nRF Connect Programmer
dapat membantu Anda memprogram firmware konektivitas dengan dukungan UI.
Unduh nRF Connect Desktop dan instal nRF Connect Programmer
di sana.
Untuk mengkompilasi pc-ble-driver
Anda memerlukan alat berikut:
Rantai alat AC/C++
Git (>=2.19)
Pembuatan CM (>=3.11)
vcpkg
pc-ble-driver
dari sumber Untuk mengkompilasi file HEX connectivity
Anda memerlukan alat tambahan:
coklat
Ninja
Rantai Alat Tertanam GNU untuk Lengan
ular piton
pip
tidak berguna
connectivity
Ikuti langkah-langkah untuk menginstal dependensi pada platform tertentu:
Unduh Visual Studio 15
atau versi yang lebih baru dan instal.
Instal Cokelat. Instal dengan cmd.exe
(Jalankan sebagai administrator)
# Salin semuanya di bawah@"%SystemRoot%System32WindowsPowerShellv1.0powershell.exe" -NoProfile -InputFormat Tidak Ada -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/ install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"
Jika Chocolatey
sudah terinstal seperti dijelaskan di atas tetapi belum ditambahkan ke PATH, jalankan:
$ SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"
Instal Git
.
$ coklat instal -y git
Instal CMake
.
$ coklat instal -y cmake
Instal vcpkg.
$ git klon https://github.com/Microsoft/vcpkg.git $cdvcpkg $ git tag pembayaran/2020.04 $.bootstrap-vcpkg.bat
Kemudian tambahkan lokasi vcpkg ke PATH
dan atur sebagai variabel lingkungan VCPKG_ROOT
.
Langkah-langkah berikut diperlukan hanya jika Anda ingin mengkompilasi file HEX connectivity
Anda sendiri.
Instal ninja
.
$ coklat pasang -y ninja
Unduh dan instal GNU Embedded Toolchain for Arm
versi 7-2018q2
Unduh dari lokasi ini.
Ikuti petunjuk pemasangan.
Tetapkan jalur instalasinya sebagai GNUARMEMB_TOOLCHAIN_PATH
dalam variabel lingkungan. Misalnya:
$ setel GNUARMEMB_TOOLCHAIN_PATH=c:gccarmemb
Instal Python
dan pip
, lalu instal nrfutil
$ pip install nrfutil# Reboot jika instalasi berhasil tetapi validasi gagal
Instal build-essential
.
$ sudo apt-get -y instal build-essential
Instal Git
$ sudoapt-get -y instal git
Jika versi Git
yang terinstal lebih rendah dari yang dibutuhkan, maka:
$ sudo add-apt-repository ppa:git-core/ppa $ sudo pembaruan yang tepat $ sudo tepat pasang git
Instal CMake
.
$ sudoapt-get -y instal cmake
Instal CMake
dari sumber jika versinya lebih rendah dari yang dibutuhkan.
Instal vcpkg.
$ git klon https://github.com/Microsoft/vcpkg.git $cdvcpkg $ git tag pembayaran/2020.04 $ ./bootstrap-vcpkg.sh
Kemudian tambahkan lokasi vcpkg ke variabel lingkungan PATH
dan VCPKG_ROOT
.
Instal Ninja
.
$ sudoapt-get install ninja-build
Langkah-langkah berikut diperlukan hanya jika Anda ingin mengkompilasi file HEX connectivity
Anda sendiri.
Instal GNU Embedded Toolchain for Arm
versi 7-2018q2.
Unduh dari sini
Ekstrak
Tetapkan lokasinya sebagai GNUARMEMB_TOOLCHAIN_PATH
dalam variabel lingkungan.
Instal Python
dan pip
, lalu instal nrfutil
.
$ pip install nrfutil# Reboot jika instalasi berhasil tetapi validasi gagal# Jika kesalahan terus berlanjut, coba perbarui pip itu sendiri.
Instal Xcode (>=10.1)
.
Instal gcc6
menggunakan HomeBrew.
$ minuman instal gcc6
Instal CMake
menggunakan HomeBrew.
$ minuman instal cmake $ pembuatan bir peningkatan cmake
Instal CMake
dari sumber jika versinya lebih rendah dari yang dibutuhkan.
Instal vcpkg.
$ git klon https://github.com/Microsoft/vcpkg/ $cdvcpkg $ git tag pembayaran/2020.04 $ ./bootstrap-vcpkg.sh
Kemudian tambahkan lokasi vcpkg ke variabel lingkungan PATH
dan VCPKG_ROOT
.
Langkah-langkah berikut diperlukan hanya jika Anda ingin mengkompilasi file HEX connectivity
Anda sendiri.
Instal GNU Embedded Toolchain for Arm
versi 7-2018q2.
Unduh dari sini
Ekstrak
Tetapkan lokasinya sebagai GNUARMEMB_TOOLCHAIN_PATH
dalam variabel lingkungan.
Instal Python
dan pip
, lalu instal nrfutil
$ pip install nrfutil# Reboot jika instalasi berhasil tetapi validasi gagal
Instal dependensi vcpkg.
# cd <pc-ble-driver-root-folder># Pastikan %VPKKG_ROOT% disetel dan ditambahkan ke %PATH%$ mkdir build && cd build $vcpkg instal asio catch2 spdlog
CMake Pilih kompiler Visual Studio yang akan digunakan sesuai dengan artikel ini: Buat kode C/C++ pada baris perintah
$ buat -G Ninja ..
Menyusun
$ cmake --membangun .
Secara opsional pilih konfigurasi build dengan opsi --config
. Biasanya Debug
, Release
, MinSizeRel
dan RelWithDebInfo
tersedia. Misalnya:
$ cmake --membangun . --config Debug
Instal dependensi vcpkg.
# cd <pc-ble-driver-root-folder># Pastikan $VPKKG_ROOT disetel dan ditambahkan ke $PATH$ mkdir build && cd build $vcpkg instal asio catch2 spdlog
CMembuat
$ membuat -G Ninja ..
Secara opsional Pilih konfigurasi build dengan opsi -DCMAKE_BUILD_TYPE
. Biasanya Debug
, Release
, MinSizeRel
dan RelWithDebInfo
tersedia.
Secara opsional pilih arsitektur target (32 atau 64-bit) menggunakan opsi -DARCH
. Nilainya bisa berupa x86_32
, x86_64
, x86_32,x86_64
. Misalnya:
$ membuat -G Ninja -DCMAKE_BUILD_TYPE=Debug -DARCH=x86_32,x86_64 ..
Menyusun
$ cmake --membangun .
pc-ble-driver
dari sumber jika Anda belum melakukannya.Pastikan variabel lingkungan berikut disetel:
VCPKG_ROOT
GNUARMEMB_TOOLCHAIN_PATH
Pastikan jalur berikut telah ditambahkan ke PATH:
VCPKG_ROOT
mergehex
Ikuti langkah-langkah untuk menginstal dependensi pada platform tertentu:
Tetapkan lingkungan
# cd <pc-ble-driver-root-folder>$ SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"# Pastikan variabel lingkungan telah disetel# seperti dijelaskan di awal bagian ini
CMembuat
$ mkdir build && cd build# Ubah -DCONNECTIVITY_VERSION=abc$ cmake -G Ninja -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..
COMPILE_CONNECTIVITY
diatur ke 1 untuk mengaktifkan kompilasi firmware konektivitas.
CONNECTIVITY_VERSION
menentukan versi firmware konektivitas yang dikompilasi.
Periksa opsi lainnya saat mengkompilasi pc-ble-driver di Windows
Menyusun
$ cmake --membangun . --target kompilasi_konektivitas
File HEX tersedia di folder hex/sd_api_v<x>
setelah kompilasi. Ini termasuk SoftDevice dan aplikasi konektivitas.
Tetapkan lingkungan
# cd <pc-ble-driver-root-folder>$ ekspor TMP=/tmp# Pastikan variabel lingkungan telah disetel# seperti dijelaskan di awal bagian ini
CMembuat
$ mkdir build && cd build# Ubah -DCONNECTIVITY_VERSION=abc$ cmake -G Ninja -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..
COMPILE_CONNECTIVITY
diatur ke 1 untuk mengaktifkan kompilasi firmware konektivitas.
CONNECTIVITY_VERSION
menentukan versi firmware konektivitas yang dikompilasi.
Periksa opsi lainnya saat mengkompilasi pc-ble-driver di Ubuntu Linux atau macOS
Menyusun
$ cmake --membangun . --target kompilasi_konektivitas
File HEX tersedia di folder hex/sd_api_v<x>
setelah kompilasi. Ini termasuk SoftDevice dan aplikasi konektivitas.
Buka alat instalasi jika Alat Baris Perintah nRF5x belum diinstal.
Untuk menggunakan perpustakaan ini Anda perlu memprogram firmware konektivitas pada IC nRF5x
Gunakan Alat Baris Perintah nRF5x untuk menghapus dan memprogram IC:
$ nrfjprog -f NRF5<x> -e $ nrfjprog -f NRF5<x> --program hex/sd_api_v<x>/connectivity_<ver>_<baudrate>_with_s<x>_<a>.<b>.<c>.hex
Alternatifnya, gunakan nRF Connect Programmer untuk menghapus dan memprogram IC.
Beberapa kit, seperti dongle pca10059 nRF52, tidak memiliki debugger bawaan dan harus diprogram melalui DFU serial. Di Windows, driver perangkat diperlukan agar kit dapat dideteksi dengan benar oleh sistem operasi. Untuk menginstal driver yang diperlukan, pastikan Anda telah menginstal nRF Connect for Desktop terbaru.
Memprogram firmware konektivitas melalui serial DFU dapat dilakukan dari baris perintah atau dari nRF Connect untuk Desktop.
Peningkatan Firmware Perangkat dengan nrfutil biasanya dilakukan dalam dua langkah: 1: membuat paket zip DFU, dan 2: melakukan prosedur DFU. Paket zip DFU telah dibuat sebelumnya dan disertakan dalam repositori ini. Untuk menjalankan prosedur DFU dengan nrfutil dengan paket DFU yang sudah dibuat sebelumnya:
nrfutil dfu usb-serial -pkg connectivity_x.x.x_usb_with_s<x>_<a>.<b>.<c>_dfu_pkg.zip -p <serial port>
Contoh-contoh ini berfungsi sebagai titik awal yang bagus untuk pengembangan dengan pc-ble-driver
. Contohnya termasuk monitor detak jantung (periferal BLE) dan pengumpul detak jantung (master BLE) dan menunjukkan struktur dasar aplikasi yang dibangun di atas pc-ble-driver
.
Untuk menjalankan dan menjalankan contoh dengan cepat, lihat example/README.md.
Jika Anda menemui masalah saat instalasi driver pc-ble, silakan lihat Issues.md.
Jangan ragu untuk mengusulkan perubahan dengan membuat permintaan tarik.
Jika Anda berencana melakukan perubahan yang tidak sepele, mulailah dari hal kecil dan mintalah kesepakatan sebelum melakukan terlalu banyak pekerjaan di dalamnya. Permintaan penarikan dapat ditolak jika tidak sesuai dengan peta jalan produk saat ini.
Untuk menerima permintaan penarikan Anda, kami ingin Anda menandatangani Perjanjian Lisensi Kontributor (CLA). Anda akan melihat instruksi untuk melakukan ini setelah mengirimkan permintaan penarikan pertama Anda.
Jika Anda menemukan bug, atau memiliki pertanyaan atau masukan lain secara umum, silakan kirimkan postingan di portal Nordic DevZone. Perhatikan bahwa laporan bug harus menjelaskan dengan cukup detail cara mereproduksi bug.
Lihat file lisensi untuk detailnya.