How to Build Direct Connected Devices

Hi, @Bobby! I will check if an OTA firmware update is possible as you described with the engineering team. I’ll let you know their feedback :smiley:

Update:

To make an OTA firmware update for direct-connected devices, you need to own a server for this purpose because the firmwareUpdate capability is only used to provide the firmware information, which means the update cannot be done through the SmartThings platform.

Observations and questions

  1. ESP-IDF >= 4.3 is compatible with Apple Silicon but smartthings SDK is reliant on an older version (3.3). ESP32 builds for a direct connected device are not possible using the excellent instructions on GitHub or in the forum. You can build on Raspberry so it’s not a question about ARM or Intel. I would really appreciate instructions/info on how to use the Smartthings SDK (for ESP32) with the latest ESP-IDF. The script-magic that happens with setup.py and build.py should be possible to bypass with a correct, possibly nitpicky, setup of an ESP-IDF project for the ESP32.

  2. Serial numbers containing dashes (-) cannot be entered on an Android phone, e.g. STDKxxxx-beta-01. They can, however, be registered in the web interface.

  3. Currently my onboarding config states that a QR code should be used BUT… the user must enter a serial number anyway. At least on an Android phone.

  4. Old (test) onboarding configs, i.e. names, are visible in the app as testing device types although they have been deleted from the developer workspace. AFAIK there is no CLI command to list onboarding configs.

I would really like to be able to call someone about the development issues I have. The company I work for, as a consultant, is planning to launch a product (direct connected device) this spring and they would not hesitate to pay for support.

Cheers.

I can’t promise it will be any better than responses you get here, and they may just direct you back to this forum, but Samsung does have a separate channel for partner developers.

Start here:

https://smartthings.developer.samsung.com/

Follow all the links to “developers“ and eventually you will get here:

And ultimately you will get to the page where you can enroll as a partner. They say you will get quick technical responses there, but I have no idea what the reality is. But in your situation it might be worth a try.

https://developer.samsung.com/partner/enroll

Hi @nayelyz, have you gotten any feedback from the engineering team? I await with bated breath :slight_smile:

Sorry, I updated my first post so maybe you didn’t receive a notification about that, here I include it again:

OK, yeah I missed that.

the firmwareUpdate capability is only used to provide the firmware information, which means the update cannot be done through the SmartThings platform.

If this is the case, why is the command “updateFirmware” in the capabilities reference document? What would that command actually do if the SmartThings platform is only providing firmware information? Is there any more documentation showing how this flow is expected to work?

Not so far, sorry. The team is continuously working on improving the documentation, I’ll report this to get feedback about the capability function. I’ll let you know in case I receive more info.

1 Like