This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Integrating DTM functionality into an app with softdevice

Hello, I am investigating the possibility of integrating the DTM functionality into our app (which uses the softdevice) to allow us to use a single image for production testing and deployment. What I am hoping to achieve is to allow a user to select/deselect DTM mode using a button press. It seems that this is only possible by disabling the softdevice, but I'm not clear whether that can be done inside the same app or whether the DTM part must be a distinct image that is booted into on the button press.

I have seen the following posts which seem contradictory to me:

Post 1 Post 2

Is the following feasible:

  1. Application running normally with softdevice
  2. User presses button
  3. Softdevice is disabled in the application and DTM functionality is enabled
  4. Some hardcoded DTM tests are run using dtm_cmd() and dtm_event_get() calls
  5. DTM test results are reported
  6. User presses button
  7. DTM functionality is disabled, softdevice is re-enabled
  8. Application running normally with softdevice

Or is it only possible to have the DTM functionality in a separate bootable image?

Thanks.

Parents
  • We do have the DTM test and our app in a single image. The way we manage control is a bit more heavy handed than your proposed use of a button press while the device is already running. What we do is check a pin (could be controlled by a button, but we use a test fixture), during initialization and if that pin is pulled low we give control to the DTM code. If the pin is high, we boot normally and the soft device and our application take control. It requires a power cycle to activate DTM, but it works very well and it's simple.

Reply
  • We do have the DTM test and our app in a single image. The way we manage control is a bit more heavy handed than your proposed use of a button press while the device is already running. What we do is check a pin (could be controlled by a button, but we use a test fixture), during initialization and if that pin is pulled low we give control to the DTM code. If the pin is high, we boot normally and the soft device and our application take control. It requires a power cycle to activate DTM, but it works very well and it's simple.

Children
Related