Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
seclorum
@seclorum
i don't want to use the arduino IDE at all .. do i still need it for the git version?
i.e. don't want to install a binary of the ide
Markus
@Links2004
die IDE is not needed you can use your one build scripts

the steps are the same

git clone https://github.com/esp8266/Arduino.git esp8266
cd esp8266/tools
python get.py

then you have all you need to build a binary for the ESP

seclorum
@seclorum
great thanks .. trying it now
Jeff Eberl
@jeffeb3
I have this stuff installed via the boards manager in the arduino IDE. I'm guessing the reason the ArduinoOTA.h isn't found is because that's an older version of the tools, right? I see you just explained how to install it from git (which would be the latest version). Is there a guide somewhere for how to do the OTA stuff (including the client side)?
seclorum
@seclorum
ermm, this is still downloading bins to me .. not building the toolchain from scratch, right?
Ivan Grokhotkov
@igrr
@seclorum you're right, it doesn't build toolchain "from scratch"
which OS are you using?
linux and OS X toolchains are build using crosstool-ng
windows toolchain is built using this script and MinGW
Markus
@Links2004
@jeffeb3 the example is here: https://github.com/esp8266/Arduino/blob/master/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino
the upload process the same the allways you only need the select the right OTA target by the Ports menu
Jeff Eberl
@jeffeb3
Oh wait, the client is the arduino IDE for ota updates? Neat.
Markus
@Links2004
yes
or you can use a web server, take a look here:
https://github.com/esp8266/Arduino/issues/268#issuecomment-154190046
Jeff Eberl
@jeffeb3
Hah, that's cool too.
I am constantly surprised how much is changing with this ESP chip.
Jeff Eberl
@jeffeb3
The web server example doesn't explain the client. Looks like someone could use that for making a web based IDE/updater.
Markus
@Links2004
yes, possible, the "client" (http Server) only needs to send a bin file or http header 304 (no update).
in the simples case there is no logic or script on there server running.
but the server can send for example different files based on the MAC address.
I currently running a simple php script thats delivers based on a json file the bins based on the MAC (including a version check).
Jeff Eberl
@jeffeb3
If there was money in it, someone could make a web based IDE (similar to the particle IDE) and automatically fill in the web updater stuff, and then point each one to a separate webpage. I guess you'd be dealing with a lot of devices checking in all the time for updates.
Anyway, it's very cool.
Yeah, I think I'm going to figure this all out. I would like to stop having to climb on a ladder to change the firmware on my garage door detector. Seems easy enough.
Thanks.
Markus
@Links2004
yes, this one of the reasons why i wrote the http updater ;)
Jeff Eberl
@jeffeb3
Well thank you. And get it documented! The people must know!
seclorum
@seclorum
@igrr thanks, is the config for crostool-ng available somewhere in the repo, i may have overlooked it .. for compliance/testing reasons, where possible I prefer to build toolchains from source...
tzapu
@tzapu
hi guys, does OTA work with ide 1.6.6 now ? or still limited to 1.6.5 ?
Ivan Grokhotkov
@igrr
@seclorum "config" is actually within crosstool-ng itself, it is called xtensa-lx106-elf

So on Linux you just follow crosstool-ng manual and do something like

./bootstrap && ./configure --prefix=`pwd` && make && make install
./ct-ng xtensa-lx106-elf
./ct-ng build

After that the toolchain will be inside builds/xtensa-lx106-elf directory

On OS X things get a bit more tricky: you need to run crosstool-ng on a case-sensitive volume, plus you need some GNU tools from macports or homebrew
Ivan Grokhotkov
@igrr
@seclorum btw, @kireevco has been working on build scripts for the toolchain recently: https://github.com/kireevco/packages/tree/master/xtensa-lx106-elf
perhaps that's what you need
Dmitry Kireev
@kireevco
@seclorum @igrr it works on all platforms, now I’m making my jenkins work
@seclorum I don’t think it’s for crosstool-ng. it’s building all components separately
I was not able to make esp-open-sdk work on windows (yet)
mac+linux works ok
@seclorum work for esp-open-sdk has been done here https://github.com/kireevco/packages/tree/master/esp-open-sdk
seclorum
@seclorum
superlative, thanks @igrr @kireevco
Ivan Grokhotkov
@igrr
damn, OTA thing in 1.6.6 is worse than I thought.
Markus
@Links2004
you mean the ssh problem?
Ivan Grokhotkov
@igrr
originally i thought the issue to be just with the UploaderFactory, but it turns out there is another one
Basically IDE checks if the advertised port accepts TCP connections
And since we are using UDP, this check fails.
Markus
@Links2004
k that is bad, and open one of our limited tcp sockets isnt the best idea.
Ivan Grokhotkov
@igrr
@reaper7 stumbled upon this in #970
yeah. I was about to open a pull request for the UploaderFactory issue (basically a one-line change), but i have no idea how to work around this BoardReachabiltyFilter
Markus
@Links2004
is is possible to disable the filter for udp ports.
and change the code to:
    MDNS.addService("arduino", "udp", _port);
Ivan Grokhotkov
@igrr
possible, but less likely to be accepted
Markus
@Links2004
yes, that is the main problem, i think.
Ivan Grokhotkov
@igrr
on the IDE side this will also need a change in that case:
jmDNS.addServiceListener("_arduino._tcp.local.", this);