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

Smart Remote 3 - Firmware Architecture Replication SDK 16.0.0

I recently came across the Smart Remote 3 product by Nordic.  I currently have a product in development that is a remote that has very similar functionality.  Even down to the key scan chip SX1509.  I just developed a shield to go with the nRF52840 DK that has all the key components laid out to develop against.  I have been using the Adafruit Bluefruit52 Library but find it's limitations when I must be able to debug and also implement OTA DFU for this more complex project.

I find the Smart Remote 3 architecture design to be what I need to follow.  I have the source code for the Smart Remote 3 but it uses the SDK 14.2.  It's day one of development and I'm starting the journey with the scheduler task and already ran into an issue with SDK version differences.  To continue on with the design of a background and foreground scheduler, what does Nordic recommend since this "app_isched.h" source code isn't compatible with SDK 16.0.0? With SDK 16.0.0, do I even need this level of scheduling now and is the priority of handling the BLE Stack events already managed for me and I can just use app_timers to do my work? Does the SDK scheduler have priority event options?  Are there any updated scheduler examples using SDK 16.0.0?  Should I consider FreeRTOS as a replacement solution?  I think that will be a over complicated solution for what I need and think I will have better support using components from the SDK.  If so are there any examples that implement similar solution as the Smart Remote?  I plan to use this thread for my adventures through this firmware and support.  It's my first production project using Segger Studio and none Arduino based project.  I'm learning curve will be step in the begining.

Thanks

- Matt

Parents
  • Hi,

    I find the Smart Remote 3 architecture design to be what I need to follow.  I have the source code for the Smart Remote 3 but it uses the SDK 14.2.  It's day one of development and I'm starting the journey with the scheduler task and already ran into an issue with SDK version differences.

    The Smart Remote 3 reference design is quite complex, so migrating to SDK 16 will be a bit of work. If you want to use the Smart Remote design I suggest you stick with SDK 14.2 unless you have a compelling reason for migrating.

    To continue on with the design of a background and foreground scheduler, what does Nordic recommend since this "app_isched.h" source code isn't compatible with SDK 16.0.0? With SDK 16.0.0, do I even need this level of scheduling now and is the priority of handling the BLE Stack events already managed for me and I can just use app_timers to do my work?

    I cannot say without knowing more about your application. Are you trying to migrate the SmartRemote 3, or not? If your own design, what are the requirements?

    Does the SDK scheduler have priority event options?

    No. The SDK scheduler is a very simple scheduler without priorities. It's only task is to move execution from an interrupt context to the main thread. 

    Are there any updated scheduler examples using SDK 16.0.0?

    No. But the scheduler has not changed significantly for a long time. You can refer to the scheduler tutorial for an example (though not specifically for SDK 16).

    Should I consider FreeRTOS as a replacement solution?

    Only if you need an RTOS (complex scheduler, event queues, etc). Using FreeRTOS can make complex designs simpler, but also makes simpler designs more complex. So you need to see if it is right for your design.

Reply
  • Hi,

    I find the Smart Remote 3 architecture design to be what I need to follow.  I have the source code for the Smart Remote 3 but it uses the SDK 14.2.  It's day one of development and I'm starting the journey with the scheduler task and already ran into an issue with SDK version differences.

    The Smart Remote 3 reference design is quite complex, so migrating to SDK 16 will be a bit of work. If you want to use the Smart Remote design I suggest you stick with SDK 14.2 unless you have a compelling reason for migrating.

    To continue on with the design of a background and foreground scheduler, what does Nordic recommend since this "app_isched.h" source code isn't compatible with SDK 16.0.0? With SDK 16.0.0, do I even need this level of scheduling now and is the priority of handling the BLE Stack events already managed for me and I can just use app_timers to do my work?

    I cannot say without knowing more about your application. Are you trying to migrate the SmartRemote 3, or not? If your own design, what are the requirements?

    Does the SDK scheduler have priority event options?

    No. The SDK scheduler is a very simple scheduler without priorities. It's only task is to move execution from an interrupt context to the main thread. 

    Are there any updated scheduler examples using SDK 16.0.0?

    No. But the scheduler has not changed significantly for a long time. You can refer to the scheduler tutorial for an example (though not specifically for SDK 16).

    Should I consider FreeRTOS as a replacement solution?

    Only if you need an RTOS (complex scheduler, event queues, etc). Using FreeRTOS can make complex designs simpler, but also makes simpler designs more complex. So you need to see if it is right for your design.

Children
No Data
Related