The use of the ESP8266 in the world of IoT

User avatar
By esp03madness
#17288
ehizogie wrote:Hi everyone,
a quick question on device discovery.
The first challenge is getting the ioT device on a specific wifi networks without hardcoding the SSID into the firmware.

does anyone have any ideas on how this could be done ?

Ehi


Not really. TI with their CC3x00 devices have this thing they call "SmartConnect"(C)(R)(TM) which does a nifty trick where you can sneak some data to an "unprogrammed" CC3x00 device via specially crafted wifi discovery packets. People went after them for it however, because it is security-by-obscurity. Someone even reverse engineered it. They (TI) then added an encryption element, but for that to work you, of course, have to preload a shared secret onto the CC3x00 device. Which defeats the original idea.
User avatar
By MrZANE
#17296 The biggest problem with TI smartconfig is that it doesn't work reliably when using MIMO router, so we had to scrap using it for a project.

Limits (From TI web):
Key length is limited to 31 characters only when working with AES encryption.
Smart Config - ascii WEP security without SmartConfig AES encryption doesn't work. (WEP security with Smart Config AES encryption does work, same configuration is working with wlan_connect)
MTU in the configurable side should be set to 1500.
It does not work with configuring devices that are MIMO devices.
It does not work with configuring SISO devices at a channel width of 40MHz.
It works at 11n rates only up to MCS7.

Other then that smart config has, like you wrote, been reverse engineered, and could definitely be implemented in esp8266.
User avatar
By AdrianM
#38779
Artem Pastukhov wrote:I have made SSDP dicoverable RGB LED controller with NodeMCU firmware.
Look at my blog post

I hope it's not too late to revive this interesting topic... I have (sort of) got Artem's upnp.lua script working, at least when I run it along with a server to serve the XML, I see my device in the Home Automation section of Windows Network. Only one error got in the way and that was on line 52 where Lua reports "wrong arg range"

Code: Select alltmr.alarm(3, 10000, 1, notify())


solved by removing brackets:

Code: Select alltmr.alarm(3, 10000, 1, notify)


However, I'm wondering if this is the best way to "find" my device's IP when "isolated" (i.e. WiFi is the only link to it). The webserver (Lua) provides a small interface that I need to use periodically.