Achtergrond
Momenteel ben ik bezig met het ontwerp van complex apparaat met een ESP8266.
Voordat ik verder kan met het ontwerp, ben ik op zoek naar enkele belangrijke details over het uploaden / flashen van een ESP8266.

Waar gaat het om ?
Uit mijn ervaring met het programmeren van een Atmel uC, is het mogelijk om de broncode (HEX of BIN-file) te flashen, zonder feedback of het programmeren succesvol is verlopen. Op een later moment kan de broncode alsnog teruggelezen worden om te vergelijken met de broncode op de computer.

Wel, de ESP8266 kan geflashed worden met een soort OS en daarna kan er broncode ingepompt worden. Dit alles verloopt via OTA (Over The Air) maar kan ook via de bekabelde UART-lijnen (Tx / Rx)

Mijn interesse ligt specifiek in dataoverdracht met het bekabelde UART-gedeelte. Het flashen van een ESP8266 is voor mij een mysterie. Het verloopt over de serieele UART poort, middels Tx en Rx-lijnen. Ik vroeg me af of het mogelijk is data (bin-file) over te pompen, zonder dat meteen feedback wordt gegeven of het succesvol is verlopen. En dus, dat in een later stadium, de broncode in de ESP8266 met de broncode op de PC vergeleken kan worden.
In theorie vraag ik dus : Kan de Tx-lijn van een ESP8266 (tijdelijk) onderbroken worden, terwijl de bin-file in de ESP8266 gepompt wordt ? De bin-file komt immers via Rx-lijn van een ESP8266 binnen.

Stilte aan de andere kant
Ik heb deze vraag ook open staan op een forum van Espressif. Inmiddels zijn bijna 2 weken verstreken, zonder resultaat of reactie. Ook heb ik Espressif gemaild, maar ook daar blijft het ijzig stil.

Info gezocht
Kortom, kan iemand hier wat info delen ? Of is er een (technisch) contactpersoon binnen Espressif die ik rechtstreeks kan benaderen ?

De broncode van de bootloader is gewoon op github te verkrijgen. Ook beschrijvingen van protocollen staan daar.

https://github.com/espressif/esptool/wiki/Serial-Protocol

@oxurane Ik neem aan dat jij met "broncode" het binaire image bedoeld wat je in de CPU flashed.
Anders is het hele verhaal hierboven wel erg verwarrend.

Ik weet wel zeker dat "mbbneon" broncode bedoeld zoals het hoort: De sourcecode dus.

Het is dus een kwestie van uitzoeken of het flash protocol een handshake/packet protocol gebruikt tijdens het flashen.
Als ik heel snel kijk lijkt het er wel op en moet je dus een bidirectionele verbinding hebben (voor het originele flash tool).

Heel misschien kun je "blind" alles opsturen en een schatting maken van de tijd van het response pakket en effe wachten. Je moet dan wel je eigen loader maken.
Maar het blijft een gammele flash constructie die error/timing gevoelig is.

Wat is de reden dat je dit persé zo wilt?

Bedankt voor de reacties ! Ik ben er erg blij mee.

Het gaat inderdaad over het gedeelte om een bin-file de ESP8266 in te blazen. Er zijn namelijk meerdere IC's aangesloten op de Tx/Rx lijn, waaronder een ESP8266, een ATTiny 2313 en nog wat spul.
Ik zou daarom graag willen weten of het mogelijk is om blind een bin-file te flashen in de ESP8266. In een later stadium mag / kan een verificatie plaatsvinden.

Nope, gaat niet lukken. De bootstrap in de esp verwacht een bidirectionele link.

Je kan natuurlijk altijd de flash rechtstreeks programmeren. is spi dus kan terwijl de esp aangekoppeld zit. (maar wel uit is)

Als alternatief kan je ook een SD kaart als bootmedium configureren.
Kan je bijvoorbeeld een eigen bootloader maken die dan de flash beschrijft. Kost natuurlijk wel pinnen, maar als je die intelligent ontwerpt hoeft dat geen probleem te zijn.

//gedachte achteraf:
Ik heb eens die rx en tx pinnen pas na het booten aan de schakeling gekoppeld. twe torren en één datalijn. Dus tijdens booten waren die pinnen geïsoleerd en kon ik die gewoon gebruiken voor programmeren.

[Bericht gewijzigd door Skysoft op (20%)]

Er zijn namelijk meerdere IC's aangesloten op de Tx/Rx lijn, waaronder een ESP8266, een ATTiny 2313 en nog wat spul.

Dat moet sowieso niet; een UART is geen netwerk... :)
Ik hang de ESP aan een UART, en gebruik bij een pic een 2e UART om via een bootloaderapplicatie op de PC de boel te downloaden.
(Ik stuur de boel van beide UARTs gewoon transparant door)

@ SkySoft :
Hmm,. je bedoelt een ESP8266 laten opstarten vanaf een SD-card met een bin-file om te flashen ? Ik ben een en al oor...

@Arco :
Ik begrijp dat een UART niet bedoeld is om te gebruiken als een netwerk. In mijn situatie is het juist erg handig / gewenst dat meerdere devices aan de inkomende data snuffelen en niet meteen terugkoppelen of het goed ontvangen is. Het is dus ook om chaos / ruis op de lijn te voorkomen.

Om een ESP8266 te flashen gebruik je z'n ingebouwde bootloader. Die implementeert een protocol, en je moet je aan dat protocol houden om hem te kunnen flashen.

En dat betekent dat je een aantal "hoi, de baudrate is: ..." karakters stuurt, en als je antwoord krijgt dan is er een vraag-antwoordspel wat begint. Dus de TX lijn onderbreken lijkt mij geen goed plan.

Simpelste is om zoals ik zei de 'eigen' bootloader software van de ESP op de PC te gebruiken...