Difference between revisions of "radino40 DW1000"
SStegbauer (Talk | contribs) (→Software) |
SStegbauer (Talk | contribs) (→Hardware) |
||
(28 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
== Hardware == | == Hardware == | ||
− | [[File:radino40 DW1000 | + | [[File:radino40 DW1000 45 1000.jpg|top|350px|radino40 DW1000|link=https://shop.in-circuit.de/product_info.php?cPath=22_27&products_id=258]] |
[[File:radino40 DW1000 back 1000.jpg|top|350px|radino40 DW1000|link=https://shop.in-circuit.de/product_info.php?cPath=22_27&products_id=258]] | [[File:radino40 DW1000 back 1000.jpg|top|350px|radino40 DW1000|link=https://shop.in-circuit.de/product_info.php?cPath=22_27&products_id=258]] | ||
Line 10: | Line 10: | ||
The Nordic Semiconductor's nRF52840 with 32-bit ARM® Cortex®-M4 CPU mit FPU, 64 MHz Clock, 1Mb flash, 256 MB RAM offers great performance and Bluetooth 5 functionality. The radino40 modules are pin-to-pin compatible.<br> | The Nordic Semiconductor's nRF52840 with 32-bit ARM® Cortex®-M4 CPU mit FPU, 64 MHz Clock, 1Mb flash, 256 MB RAM offers great performance and Bluetooth 5 functionality. The radino40 modules are pin-to-pin compatible.<br> | ||
With its powerful processor, the DW1000 UWB-chip and its small size, the {{PAGENAME}} is the perfect base for RTLS-systems | With its powerful processor, the DW1000 UWB-chip and its small size, the {{PAGENAME}} is the perfect base for RTLS-systems | ||
− | |||
− | |||
'''Features:''' | '''Features:''' | ||
Line 18: | Line 16: | ||
**Supports 6 RF bands from 3.5 GHz to 6.5 GHz<br> | **Supports 6 RF bands from 3.5 GHz to 6.5 GHz<br> | ||
**Data rates of 110 kbps, 850 kbps, 6.8 Mbps<br> | **Data rates of 110 kbps, 850 kbps, 6.8 Mbps<br> | ||
− | * | + | *nRF52840 by Nordic Semiconductors<br> |
**32-bit ARM® Cortex®-M4 CPU with FPU, 64 MHz<br> | **32-bit ARM® Cortex®-M4 CPU with FPU, 64 MHz<br> | ||
**1 Mbyte Flash, 256 kbyte RAM<br> | **1 Mbyte Flash, 256 kbyte RAM<br> | ||
Line 52: | Line 50: | ||
== Software == | == Software == | ||
− | + | ===Setup toolchain (Windows PC)=== | |
− | + | ====Cygwin setup==== | |
− | + | ||
− | + | ||
− | + | ||
− | + | On Windows PC the use of cygwin console is recommended. The following steps describe how to setup cygwin for radino40 DW1000 projects. | |
+ | |||
+ | # Download latest cygwin | ||
+ | #* https://cygwin.com/install.html -> ''setup-x86_64.exe'' | ||
+ | # Install cygwin | ||
+ | #* Enable the following '''additional''' packages within cygwin installation: | ||
+ | #** make (located at devel->make) | ||
+ | #** bash-completion (located at shells->bash-completion) | ||
+ | #* Optional recommended packages: | ||
+ | #** chere (located at shells) | ||
+ | #* Configure ''chere'' to get context menu option ''Bash Prompt Here'' | ||
+ | #** Run cygwin as Administrator | ||
+ | #** Run the following command to configure chere:<pre>$ chere -i -t mintty -s bash</pre> | ||
+ | |||
+ | ====Driver setup==== | ||
+ | |||
+ | # Download radino40 DW1000 Bootloader driver | ||
+ | #* https://ic42.de/Download/nrfconnect-driver-installer.zip (sha256sum: 8570dc48cd0c4a5c6de259340d54fb820c773d5b9e6855615be5b81ca5fa702e) | ||
+ | # Run ''nrfconnect-driver-installer.exe'' to install driver | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===radino40 DW1000 SDK=== | ||
+ | |||
+ | ====Installation==== | ||
+ | |||
+ | # Download latest ''radino40 DW1000 SDK'' | ||
+ | #* source: https://ic42.de/BSP/radino40/20210210_radino40_DW1000_SDK_V0.1.0.zip | ||
+ | # extract ''radino40 DW1000 SDK'' | ||
+ | #* it is recommended to extract the ''radino40 DW1000 SDK'' in a short path | ||
+ | |||
+ | ====Compile & Upload Examples==== | ||
+ | |||
+ | # software examples are located within the directory ''ic-bootloadable-examples'', e.g.: | ||
+ | #* blinky_delay | ||
+ | #* dw1000_ping_pong_distcalc | ||
+ | #* ... | ||
+ | # each software example contains hardware specific subfolders, e.g.: | ||
+ | #* hardware_breakout | ||
+ | #** for 901.550 radino40 Breakout Board | ||
+ | #* hardware_quad_tag | ||
+ | #* hardware_usb_stick | ||
+ | #* ... | ||
+ | # '''example:''' compile example ''blinky_delay'' for specific hardware ''hardware_breakout'' | ||
+ | ## open cygwin | ||
+ | ## navigate to ''radino40DW1000SDK\ic-bootloadables-examples\blinky_delay\hardware_breakout''<pre>$ cd radino40DW1000SDK\ic-bootloadables-examples\blinky_delay\hardware_breakout</pre> | ||
+ | ## compile firmware<pre>$ make clean && make -j 16</pre> | ||
+ | ## generate dfu image for bootloader upload<pre>$ make dfu_generate</pre> | ||
+ | # determine bootloader COM port | ||
+ | ## connect radino40 DW1000 breakout board via USB to PC | ||
+ | ## open device manager | ||
+ | ##* e.g. Windows 10: press Windows+X and select device manager | ||
+ | ## press RST-button on radino40 Breakout Board to start bootloader | ||
+ | ## the bootloader should be listed in the device manager as <pre>nRF52 SDFU USB (COM3)</pre> | ||
+ | ##* (the COM port number can be different) | ||
+ | # upload firmware using the COM port number<pre>$ make dfu_load NRF_UTIL_COM=COM3</pre> | ||
+ | ## wait 3-4 seconds | ||
+ | ## press RST-button on radino40 Breakout Board to start bootloader | ||
+ | ## if upload was successfull the following message will appear: <pre>Device programmed.</pre> | ||
+ | |||
+ | ====Devices with CP210x USB==== | ||
+ | |||
+ | * not all hardware have the USB line connected to the USB plug. For these you need a different tool to update the firmware. | ||
+ | * latest version of the updater tool | ||
+ | ** [https://ic42.de/BSP/radino40/20210322_radino40_Uart_updater_V1.0.2.exe radino40_Uart_updater_V1.0.2] | ||
+ | * update | ||
+ | # follow the steps above up to step 3 | ||
+ | # unpack the .zip file and start the updater tool | ||
+ | # set the update files in the tool to the unpacked ones and set the right hardware and target serial number | ||
+ | #* this part of the bootloading has checks implemented for | ||
+ | #*# device serial number | ||
+ | #*# hardware version (an empty string will ignore this check) | ||
+ | #*# current software version | ||
+ | #*# new software version | ||
+ | # tool: connect to your device | ||
+ | # tool: prepate the packets | ||
+ | # press RST-button on the device | ||
+ | # tool: start update process | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===Firmware-Update via USB Bootloader=== | ||
+ | |||
+ | '''NOTE:''' The following section is '''NOT''' relevant when using the radino40 DW1000 SDK. | ||
+ | |||
+ | ====Required Software==== | ||
+ | |||
+ | The radino40 DW1000 is shipped programmed with a usb bootloader which can be used to upload new firmware. | ||
+ | |||
+ | The ''USB driver'' needs to be installed, it can be downloaded [https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop/Download#infotabs here] | ||
+ | |||
+ | Also the ''nrf_util'' tool has to be downloaded from [https://github.com/NordicSemiconductor/pc-nrfutil/releases/download/v5.1.0/nrfutil.exe here] | ||
+ | (additional information regarding this tool can be found on [https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_nrfutil%2FUG%2Fnrfutil%2Fnrfutil_installing.html nordicsemi.com] or [https://github.com/NordicSemiconductor/pc-nrfutil/releases/tag/v5.1.0 github.com]) | ||
+ | |||
+ | The compiled firmware binaries are delivered within a compressed zip file ''dfu_container.zip''. | ||
<br/> | <br/> | ||
− | + | ====Starting the bootloader==== | |
− | + | ||
− | + | Enable the bootloader on the {{PAGENAME}} via low on the reset pin, e.g. by pressing the RESET-Button. The {{PAGENAME}} stays in bootloader mode for 2 seconds. After that the Firmware is running. | |
− | + | ||
+ | The bootloader will be recognized as a serial COM-Port, e.g. '''COM4'''. | ||
− | + | <br/> | |
− | + | ||
− | + | ====Upload firmware with nrfutil==== | |
− | + | ||
− | + | On a windows PC open a Command window (cmd.exe) and navigate to the folder that contains the firmware file ''dfu_container.zip''. | |
+ | |||
+ | Replace ''COM4'' with the COM-Port that your PC assigned to your device. | ||
+ | |||
+ | command to flash: | ||
+ | nrfutil dfu usb-serial -pkg <dfu_container.zip> -p <COM Port: COM4> -b 115200 | ||
+ | |||
+ | example: | ||
+ | nrfutil dfu usb-serial -pkg dfu_container.zip -p COM4 -b 115200 | ||
− | + | Start the ''nrfutil''. | |
+ | The ''nrfutil'' now waits up to 10 seconds for the {{PAGENAME}} to enter the bootloader.<br/> | ||
+ | If the ''nrfutil'' exits successful the {{PAGENAME}} is programmed. | ||
== Downloads == | == Downloads == |
Latest revision as of 13:50, 17 February 2022
Contents |
[edit] Hardware
The In-Circuit radino40 DW1000 combines Nordic Semiconductor 's nRF52840 microcontroller and Decawave's DW1000 UWB radio chip in a small form-factor EMC-compliant module.
The DW1000 is a fully integrated single chip Ultra Wideband (UWB) low-power low-cost transceiver IC compliant to IEEE802.15.4-2011.
It can be used in 2-way ranging or TDOA location systems to locate assets to a precision of 10 cm. It supports data transfer at rates up to 6.8 Mbps.
The Nordic Semiconductor's nRF52840 with 32-bit ARM® Cortex®-M4 CPU mit FPU, 64 MHz Clock, 1Mb flash, 256 MB RAM offers great performance and Bluetooth 5 functionality. The radino40 modules are pin-to-pin compatible.
With its powerful processor, the DW1000 UWB-chip and its small size, the radino40 DW1000 is the perfect base for RTLS-systems
Features:
- UWB Transeiver DW1000 by Decawave
- IEEE802.15.4-2011 UWB compliant
- Supports 6 RF bands from 3.5 GHz to 6.5 GHz
- Data rates of 110 kbps, 850 kbps, 6.8 Mbps
- IEEE802.15.4-2011 UWB compliant
- nRF52840 by Nordic Semiconductors
- 32-bit ARM® Cortex®-M4 CPU with FPU, 64 MHz
- 1 Mbyte Flash, 256 kbyte RAM
- Dynamic multiprotocol-transceiver:
- Bluetooth 5 / Bluetooth Low Energy
- IEEE 802.15.4/Thread
- ANT/ANT+
- Proprietary 2,4 GHz
- 4x4 channel pwm unit with EasyDMA
- 12 bit 200 ksps ADC
- 5x 32 bit timer with counter mode
- USB 2.0, I²C, QSPI, SPI, UART, NFC-A
- Qadrature decoder (QDEC)
- 3x RTC
- 32-bit ARM® Cortex®-M4 CPU with FPU, 64 MHz
- 37 GPIOs
[edit] Suitable application development boards
Board | Pictures | Description |
---|---|---|
radino40 DW1000 USB-Stick | USB-Stick with UWB-antenna, Bluetooth®-antenna, USB-A plug and 6-Pin TC2030 CTX Plug-of-NailsTM SWD connector for programming and debugging | |
radino40 DW1000 Breakout | application development board with 3.3V voltage regulator, USB micro connector, 6-Pin TC2030 TCX Plug-of-NailsTM SWD connector for programming and debugging, BMI160 low power IMU, LiPo/Li-Ion charger, 2 push buttons, 3 LEDs, UWB- and Bluetooth®- antenna. |
[edit] Software
[edit] Setup toolchain (Windows PC)
[edit] Cygwin setup
On Windows PC the use of cygwin console is recommended. The following steps describe how to setup cygwin for radino40 DW1000 projects.
- Download latest cygwin
- https://cygwin.com/install.html -> setup-x86_64.exe
- Install cygwin
- Enable the following additional packages within cygwin installation:
- make (located at devel->make)
- bash-completion (located at shells->bash-completion)
- Optional recommended packages:
- chere (located at shells)
- Configure chere to get context menu option Bash Prompt Here
- Run cygwin as Administrator
- Run the following command to configure chere:
$ chere -i -t mintty -s bash
- Enable the following additional packages within cygwin installation:
[edit] Driver setup
- Download radino40 DW1000 Bootloader driver
- https://ic42.de/Download/nrfconnect-driver-installer.zip (sha256sum: 8570dc48cd0c4a5c6de259340d54fb820c773d5b9e6855615be5b81ca5fa702e)
- Run nrfconnect-driver-installer.exe to install driver
[edit] radino40 DW1000 SDK
[edit] Installation
- Download latest radino40 DW1000 SDK
- extract radino40 DW1000 SDK
- it is recommended to extract the radino40 DW1000 SDK in a short path
[edit] Compile & Upload Examples
- software examples are located within the directory ic-bootloadable-examples, e.g.:
- blinky_delay
- dw1000_ping_pong_distcalc
- ...
- each software example contains hardware specific subfolders, e.g.:
- hardware_breakout
- for 901.550 radino40 Breakout Board
- hardware_quad_tag
- hardware_usb_stick
- ...
- hardware_breakout
- example: compile example blinky_delay for specific hardware hardware_breakout
- open cygwin
- navigate to radino40DW1000SDK\ic-bootloadables-examples\blinky_delay\hardware_breakout
$ cd radino40DW1000SDK\ic-bootloadables-examples\blinky_delay\hardware_breakout
- compile firmware
$ make clean && make -j 16
- generate dfu image for bootloader upload
$ make dfu_generate
- determine bootloader COM port
- connect radino40 DW1000 breakout board via USB to PC
- open device manager
- e.g. Windows 10: press Windows+X and select device manager
- press RST-button on radino40 Breakout Board to start bootloader
- the bootloader should be listed in the device manager as
nRF52 SDFU USB (COM3)
- (the COM port number can be different)
- upload firmware using the COM port number
$ make dfu_load NRF_UTIL_COM=COM3
- wait 3-4 seconds
- press RST-button on radino40 Breakout Board to start bootloader
- if upload was successfull the following message will appear:
Device programmed.
[edit] Devices with CP210x USB
- not all hardware have the USB line connected to the USB plug. For these you need a different tool to update the firmware.
- latest version of the updater tool
- update
- follow the steps above up to step 3
- unpack the .zip file and start the updater tool
- set the update files in the tool to the unpacked ones and set the right hardware and target serial number
- this part of the bootloading has checks implemented for
- device serial number
- hardware version (an empty string will ignore this check)
- current software version
- new software version
- this part of the bootloading has checks implemented for
- tool: connect to your device
- tool: prepate the packets
- press RST-button on the device
- tool: start update process
[edit] Firmware-Update via USB Bootloader
NOTE: The following section is NOT relevant when using the radino40 DW1000 SDK.
[edit] Required Software
The radino40 DW1000 is shipped programmed with a usb bootloader which can be used to upload new firmware.
The USB driver needs to be installed, it can be downloaded here
Also the nrf_util tool has to be downloaded from here (additional information regarding this tool can be found on nordicsemi.com or github.com)
The compiled firmware binaries are delivered within a compressed zip file dfu_container.zip.
[edit] Starting the bootloader
Enable the bootloader on the radino40 DW1000 via low on the reset pin, e.g. by pressing the RESET-Button. The radino40 DW1000 stays in bootloader mode for 2 seconds. After that the Firmware is running.
The bootloader will be recognized as a serial COM-Port, e.g. COM4.
[edit] Upload firmware with nrfutil
On a windows PC open a Command window (cmd.exe) and navigate to the folder that contains the firmware file dfu_container.zip.
Replace COM4 with the COM-Port that your PC assigned to your device.
command to flash:
nrfutil dfu usb-serial -pkg <dfu_container.zip> -p <COM Port: COM4> -b 115200
example:
nrfutil dfu usb-serial -pkg dfu_container.zip -p COM4 -b 115200
Start the nrfutil.
The nrfutil now waits up to 10 seconds for the radino40 DW1000 to enter the bootloader.
If the nrfutil exits successful the radino40 DW1000 is programmed.