diff --git a/.github/workflows/zoomin-publish-dev.yml b/.github/workflows/zoomin-publish-dev.yml new file mode 100644 index 0000000..b0f834f --- /dev/null +++ b/.github/workflows/zoomin-publish-dev.yml @@ -0,0 +1,39 @@ +name: Publish documentation to Zoomin dev + +on: + push: + branches: + - main + paths: + - doc/docs + workflow_dispatch: + +jobs: + create-zoomin-bundle: + name: Create Zoomin bundle + uses: './.github/workflows/zoomin.yml' + publish-zoomin-bundle: + name: Publish Zoomin bundle to dev + needs: create-zoomin-bundle + runs-on: ubuntu-latest + steps: + - name: Get bundle + uses: actions/download-artifact@v3 + with: + name: nrf-connect-direct-test-mode + - name: Upload documentation + run: | + # trust server + mkdir -p ~/.ssh + ssh-keyscan upload-v1.zoominsoftware.io >> ~/.ssh/known_hosts + + # prepare key + echo "${{ secrets.ZOOMIN_KEY }}" > zoomin_key + chmod 600 zoomin_key + + # upload bundle: + sftp -v -i zoomin_key nordic@upload-v1.zoominsoftware.io <> ~/.ssh/known_hosts + + # prepare key + echo "${{ secrets.ZOOMIN_KEY }}" > zoomin_key + chmod 600 zoomin_key + + # upload bundle: + sftp -v -i zoomin_key nordic@upload-v1.zoominsoftware.io < + + + + + + + + + + + + Page-1 + + Block1 + nRF5 + + nRF5 + + Block2 + Application main.c + + Application main.c + + Rectangle.3 + Lower tester + + Lower tester + + Rectangle.4 + Upper tester + + Upper tester + + Rectangle.5 + External tester (for example, Anritsu MT8852) + + External tester (for example, Anritsu MT8852) + + Dynamic connector + + + + Sheet.1202 + + + + Sheet.1203 + + + + Sheet.1204 + + + + Sheet.1205 + + + + Sheet.1206 + + + + Sheet.1207 + + + + Block2.247 + DTM library dtm.c + + DTM library dtm.c + + Dynamic connector.249 + + + + Sheet.1211 + 2-wire UART + + 2-wire UART + + \ No newline at end of file diff --git a/doc/docs/screenshots/dtm_overview.png b/doc/docs/screenshots/dtm_overview.png new file mode 100644 index 0000000..c7640ea Binary files /dev/null and b/doc/docs/screenshots/dtm_overview.png differ diff --git a/doc/docs/screenshots/dtm_receiver_options.png b/doc/docs/screenshots/dtm_receiver_options.png new file mode 100644 index 0000000..26cebca Binary files /dev/null and b/doc/docs/screenshots/dtm_receiver_options.png differ diff --git a/doc/docs/screenshots/dtm_transmitter_options.png b/doc/docs/screenshots/dtm_transmitter_options.png new file mode 100644 index 0000000..fca5dd8 Binary files /dev/null and b/doc/docs/screenshots/dtm_transmitter_options.png differ diff --git a/doc/docs/using_dtm.md b/doc/docs/using_dtm.md new file mode 100644 index 0000000..d61dee2 --- /dev/null +++ b/doc/docs/using_dtm.md @@ -0,0 +1,49 @@ +# Configuring and using the application + +In nRF Connect Direct Test Mode, you can control the reception and transmission characteristics of the Bluetooth connection through 2-wire UART, in accordance with the [Bluetooth Core specification](https://www.bluetooth.com/specifications/specs/core-specification-5-3/) (volume 6, part F). + +!!! info "Tip" + When started, nRF Connect Direct Test Mode will automatically detect if the connected device has the right firmware programmed. + +It is recommended to use two devices for both scenarios: + +* **Device 1**: One [supported device](./index.md#supported-devices) programmed with firmware compatible with Direct Test Mode.
+ For example, you can use the [Direct Test Mode Bluetooth sample](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/bluetooth/direct_test_mode/README.html) from the nRF Connect SDK. + + !!! note "Note" + The [Direct Test Mode Bluetooth sample](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/bluetooth/direct_test_mode/README.html) supports two Device Under Test communication protocols: 2-wire UART and experimental HCI UART interface. nRF Connect Direct Test Mode only supports the 2-wire UART. + +* **Device 2**: One device programmed with the firmware conformant to the Bluetooth specification.
+ This can also be an off-the-shelf product certified for Bluetooth 5.3. + +## Transmitting + +To execute transmitting, complete the following steps: + +1. Connect the **Device 1** to the computer using a USB cable. The device is assigned a `COM` port (Windows) or `ttyACM` device (Linux), which is visible in the Device Manager. +1. Program or start (or both) the receiver on the **Device 2**.
+1. Start the Direct Test Mode app in nRF Connect for Desktop. +1. In the Direct Test Mode app: + + 1. Select the supported device programmed with the firmware compatible with Direct Test Mode. + 1. Select the **Transmitter** tab. + 1. Configure the [transmitter settings](overview.md#transmitter-tab) to the ones matching the **Device 2**. + 1. Start the test. + 1. On the application chart, observe that the number of TX packets is increasing. + 1. Stop the test. + +## Receiving + +To execute receiving, complete the following steps: + +1. Connect the **Device 1** to the computer using a USB cable. The device is assigned a `COM` port (Windows) or `ttyACM` device (Linux), which is visible in the Device Manager. +1. Program or start (or both) the transmitter on the **Device 2**.
+1. Start the Direct Test Mode app in nRF Connect for Desktop. +1. In the Direct Test Mode app: + + 1. Select the supported device programmed with the firmware compatible with Direct Test Mode. + 1. Select the **Receiver** tab. + 1. Configure the [receiver settings](overview.md#receiver-tab) to the ones matching the **Device 2**. + 1. Start the test. + 1. On the application chart, observe that the number of RX packets is increasing. + 1. Stop the test. diff --git a/doc/mkdocs.yml b/doc/mkdocs.yml new file mode 100644 index 0000000..b4bbadd --- /dev/null +++ b/doc/mkdocs.yml @@ -0,0 +1,65 @@ +site_name: nRF Connect Direct Test Mode documentation +site_url: +use_directory_urls: false + +theme: + name: material + palette: + - scheme: custom-blue + toggle: + icon: material/lightbulb-outline + name: Switch to dark mode + - scheme: custom-blue-dark + toggle: + icon: material/lightbulb + name: Switch to light mode + # logo: assets/logo.png + # favicon: assets/logo.png + features: + - content.code.annotate + - content.tooltips + - content.tabs.link + - navigation.indexes + - navigation.top + - navigation.tracking + - search.highlight + - toc.follow + + +extra_css: + - stylesheets/style.css + +copyright: + Copyright © 2023 + +markdown_extensions: + - abbr + - admonition + - attr_list + - md_in_html + - meta + - pymdownx.details + - pymdownx.keys + - pymdownx.tabbed + - pymdownx.superfences + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - toc: + permalink: true + toc_depth: 4 + +plugins: + - macros + - search + + +extra: + test: This is a test abbreviation snippet + +nav: + - Home: index.md + - Installing Direct Test Mode app: installing.md + - Overview and user interface: overview.md + - Configuring and using the application: using_dtm.md + - Revision history: revision_history.md diff --git a/doc/zoomin/custom.properties b/doc/zoomin/custom.properties new file mode 100644 index 0000000..4f2619a --- /dev/null +++ b/doc/zoomin/custom.properties @@ -0,0 +1,3 @@ +manual.name=nrf-connect-direct-test-mode +booktitle=nRF Connect Direct Test Mode +shortdesc=Documentation for the nRF Connect Direct Test Mode application. diff --git a/doc/zoomin/tags.yml b/doc/zoomin/tags.yml new file mode 100644 index 0000000..a3c901a --- /dev/null +++ b/doc/zoomin/tags.yml @@ -0,0 +1,10 @@ +# Document tags for Zoomin. + +# Tags for all topics: +mapping_global: + - nrf-connect-direct-test-mode + +# Tags for individual topics: +#mapping_topics: +# - filename.md: ["tag1","tag2"] + diff --git a/src/Receiver/ReceiverChartView.tsx b/src/Receiver/ReceiverChartView.tsx index 3d7bdfa..6f38378 100644 --- a/src/Receiver/ReceiverChartView.tsx +++ b/src/Receiver/ReceiverChartView.tsx @@ -131,7 +131,7 @@ const ChartView = () => { }, title: { display: true, - text: 'BLE channel', + text: 'Bluetooth LE channel', color: chartColors.label, font: { size: 14 }, }, diff --git a/src/SidePanel/Serialports.tsx b/src/SidePanel/Serialports.tsx index 5f783ed..166ada2 100644 --- a/src/SidePanel/Serialports.tsx +++ b/src/SidePanel/Serialports.tsx @@ -47,7 +47,7 @@ export default () => { })); return ( - + { }, title: { display: true, - text: 'BLE channel', + text: 'Bluetooth LE channel', color: chartColors.label, font: { size: 14 }, }, diff --git a/src/actions/testActions.ts b/src/actions/testActions.ts index 2e2f5bf..9716f0a 100644 --- a/src/actions/testActions.ts +++ b/src/actions/testActions.ts @@ -156,14 +156,14 @@ export const startTests = }); if (!setupSuccess) { const message = - 'Can not communicate with the device. ' + + 'Cannot communicate with the device. ' + 'Make sure it is not in use by another application' + `${ getSerialports(state)?.length > 1 - ? ', that the correct serialport has been selected' + ? ', that the correct serial port has been selected' : '' }` + - ' and that it has a Direct Test Mode compatible firmware.'; + ', and that it uses firmware compatible with Direct Test Mode.'; logger.info(message); dispatch(communicationError(message)); return;