Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discover OTA-able esp8266/Arduino modules using dns-sd / mDNS #463

Closed
probonopd opened this issue Jan 17, 2016 · 6 comments
Closed

Discover OTA-able esp8266/Arduino modules using dns-sd / mDNS #463

probonopd opened this issue Jan 17, 2016 · 6 comments
Assignees
Labels
Milestone

Comments

@probonopd
Copy link

To use OTA on the esp8266, we currently have to put something like upload_port=esp8266-c1ab73.local into platformio.ini.

More options:
http://docs.platformio.org/en/latest/platforms/espressif.html#platform-espressif-ota

This seems overly static to me. Wouldn't it be great if platformio would detect OTA-able devices just as seamless as it does auto-detect the serial port?

Turns out this would be pretty easy to implement using avahi (there are python bindings!)

# Look for suitable devices to upload to
avahi-browse -t -r  "_arduino._tcp"

# If there is only one device in the network you can just do:
IP=$(avahi-browse -t -v -r  "_arduino._tcp" 2>/dev/null | grep address | head -n 1 | cut -d "[" -f 2 | cut -d "]" -f 1)
echo $IP
echo "upload_port=$IP" >> platformio.ini

We could also check the TXT record to make sure it is the correct device model; and we could ask the user to select one from all available update-able devices on the network.

@jthomaschewski
Copy link

In general I like the idea - but I think its important to handle this different from the current serial implementation: Usually one or a few development devices are connected via serial and it's easy to make sure that the only the device(s) you want to flash is(are) connected.
But for OTA: There might be many different devices connected to the network with OTA enabled. How could PlatformIO decide automatically which one to use?

I would suggest to let the user decide by giving a prompt in the terminal.
Additional a commandline parameter to set the upload port/OTA device would be nice (Probably there is already one, haven't checked).

@ivankravets ivankravets modified the milestone: 3.0.0 Jul 16, 2016
@ivankravets ivankravets mentioned this issue Jul 16, 2016
37 tasks
@ivankravets ivankravets self-assigned this Aug 26, 2016
@ivankravets ivankravets modified the milestones: 3.0.0, 3.0 Aug 30, 2016
@ivankravets ivankravets changed the title Discover OTA-able esp8266/Arduino modules using dns-sd Discover OTA-able esp8266/Arduino modules using dns-sd / mDNS Oct 17, 2016
@Testato
Copy link

Testato commented Dec 17, 2016

On arduino ide whit esp core installed, the mDNS discovery is already present.
All OTAble esp is automatically listed under Ide upload port, but is always the user that must set manually the port, because if you have 10 esp in your house the system cannot auto-decide witch esp you want upload.
So i think that Platformio need only do the same arduino behaviour, by create an autodiscovery upload port presence, but not an auto-setting upload port.

This is thrue also for standard serial port, because you can have many esp connected to the same pc, so in the arduino ide you auto-found all available serial port, but after you must manually choose whitch ones you need use

@ivankravets
Copy link
Member

@Testato PlatformIO also allows to manually specify upload port as a serial device, media disk or IP/mDNS record. See

@Testato
Copy link

Testato commented Dec 17, 2016

Yes, i know,
but there is no automatic Discovery like in the Official arduino Ide.
On Arduino IDE the port menu is automatic populated, so you do not must remember all your mcu name.

For example in your home you have 10 ESP with the OTA, every ESP have a unique mDNS name, so on arduino you receive automatically all 10 names in the list, and you will choose to witch upload.

Instead on Platformio you need remember exactly the name of all ESP that you have in your Home

@BrandonLWhite
Copy link

Seeing as how platformio.ini should be revision controlled, I want to avoid putting a line in there that pertains only to my own personal development environment.

@ivankravets ivankravets modified the milestones: 3.x.x, 3.5.0 Dec 18, 2017
@ivankravets
Copy link
Member

Will be reflected in PIO Home -> Devices soon.

ivankravets added a commit that referenced this issue Dec 28, 2017
… issue #1236, issue #1235, issue #953, issue #1118, issue #1107, issue #1196, issue #1179, issue #1161, issue #1126, issue #104, issue #1033, issue #1034, issue #1175, issue #1173, issue #1155, issue #1188, issue #1111, issue #1153, issue #1150, issue #1145, issue #1139, issue #1137, issue #1170, issue #1157, issue #1102, issue #1105, issue #1140, issue #1154, issue #1066, issue #1038, issue #1054, issue #1055, issue #1061, issue #1017)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants