Forum: Mikrocontroller und Digitale Elektronik IDE für ESP8266 mit vielen Example


von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

Auf der Suche nach Neuigkeiten den ESP8266 betreffend , fand ich diesen 
russischen Beitrag, der es allemal wert ist, ausprobiert zu werden:
http://esp8266.ru/forum/threads/anonsy-unofficial-development-kit-for-espressif-esp8266.32/
- obwohl ich kein Russisch kann, habe ich die Anleitung zur Installation 
befolgt (alle mit "Скачиваем " - beginnenden Downloadlinks);

- während des Downloads-/Install.-prozesses erscheint auch ein Ordner
Espressif
 der sinnigerweise auf C: (wie die anderen Tools auch) entpackt werden 
sollte(damit die Makefiles ihn finden). Dort, unter Examples fand ich 
auch die langgesuchte SPI-Anbindung für ein ili9341- Display !

Man erhält eine Eclipse-IDE die die Flashfiles anfertigt.

Ich kam nochnicht dazu, auch praktisch, am Objekt, auszuprobieren, ob 
alles so klappt und das Display tatsächlich an dem "Winzling" 
funktioniert, - bin aber zuversichtlich!
Daher sei dies nur als Hinweis gedacht ...

von r_u_d_i (Gast)


Lesenswert?

@kettenrad

'victor' - macht einen guten job.

hier eine verständliche beschreibung

http://www.esp8266.com/viewtopic.php?t=820


-> Dort, unter Examples fand ich
-> auch die langgesuchte SPI-Anbindung für ein ili9341- Display !

die projekte werden dort zusammengefasst.
der compiler ist der cross compiler

von .. (Gast)


Lesenswert?


von kettenrad (Gast)


Lesenswert?

- alles klar und danke!

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

- hab mal auf die Schnelle (quick and dirty) das Cube - Beispiel für das 
HY-1.8 SPI (von Raspberry-Pi Zubehör) umgeschrieben ...

von .. (Gast)


Lesenswert?

sehr schön kettenrad - wie ich sehe - verwendest du das esp-adc dil 
version ;-) ich nehme es auch oft auf steckbrettern  her da es das 
einzige ist, dass auf jeder seite 3 reihen steckkontakte frei lässt. 
denke aber dran, dass die  deutsche bauserie ein anderes Flash IC 
verwendet wie die üblichen; auch die serienbauteil nummer weicht ab - ef 
50 13 ./. c8 40 13

wenn du etwas mit SD/SDHC probierst, probiere es erst mit einer chin. 
version und achte auf die gesamt stromaufnahme, ein regulator mit 800 mA 
reicht dir da nicht mehr samt ESP und SD/SDHC du brauchst dann etwas 
jenseits über 1000 mA. ( nicht immer - aber sicherer test aufbau )

lg
;-)

von kettenrad (Gast)


Lesenswert?

.. schrieb:
> und achte auf die gesamt stromaufnahme, ein regulator mit 800 mA
> reicht dir da nicht mehr samt ESP und SD/SDHC du brauchst dann etwas
> jenseits über 1000 mA. ( nicht immer - aber sicherer test aufbau )
>
> lg
> ;-)

Hallo, Rudi !
Ich verwende den LM317T(1,5A), etwa Mitte Bild, schwach hinter dem Poti 
erkennbar.
Eingangsspannung 5V aus 2A Schaltregler.
Und dennoch ist zum Starten des Programms mitunter(nicht immer) die 
Unterstützung durch die 3,3V des FTDI-USB Wandlers notwendig.
Da der LM317T adjust. ist, werde ich mal, bei Gelegenheit, ausprobieren, 
wie sich eine geringfügige Spannungserhöhung auf sagen wir mal 3,6V(etwa 
3,6V kommen aus dem FTDI), auswirkt ...

von kettenrad (Gast)


Lesenswert?

- bei 3,56 Volt(nach meinem digit.Multimeter) startet das Programm auch 
ohne Hilfe des FTDI ..

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

- nach dem Tip von r_u_d_i ;-) das devkit installiert:
http://www.esp8266.com/viewtopic.php?t=820

Die meisten Example lassen sich in Eclipse-Luna builden. Bei einigen 
aber nutzt auch diese Änderung im makefile nichts:

# base directory of the ESP8266 SDK package, absolute
#SDK_BASE  ?= c:/Espressif/ESP8266_SDK
#SDK_BASE ?= c:/Espressif/ESP8266_SDK_095
SDK_BASE ?= c:/Espressif/ESP8266_SDK_101

Das Example esphttpd compiliert allerdings fehlerfrei über die 
Kommandline
(Command line Unofficial Development Kit for Espressif ESP8266) im 
Ordner Espressif.
Wenn man im makefile den richtigen Com-port für den USB-Wandler angiebt, 
kann man auch bequem flashen mit "make flash" --> (reboot) --> "make 
htmlflash";

Es ist allerdings nötig, bei neuen ESP und z.B. Routern(Fritz-Box) 
zunächst einmalig eine Verbindung herzustellen.
Ich habe dazu über das genannte Kommand-line zunächst das Example
at_v0.20_on_SDKv0.9.4
geflasht und mit dem Tool aus C:\Espressif\utils --> Terminal.exe:

• Set WiFi mode:
AT+CWMODE=3 // softAP+station mode
Response :OK
• Connect to router:
AT+CWJAP="SSID", "password" // SSID and password of router
Response :OK
• Query device’s IP:
AT+CIFSR
Response :192.168.3.106 // Device got an IP from router.

die Verbindung über die Fritz-Box hergestellt.
Danach wird der httpd-Server geflasht ...

von kettenrad (Gast)



Lesenswert?

Das oben gezeigte Beispiel esphttpd läuft auf dem ESP-ADC. Versuche, 
dies auf den esp12e zu implementieren, scheitern an der Zuordnung der 
Flashbereiche.
Das Problem mit 4MB-Flash und blockweisem Zugriff ist  in den Foren 
hinlänglich bekannt, aber bisher wohl ungelöst.
Ich konnte keine überzeugende Lösung finden.
Offenbar überschreibt "make htmlflash" einen Bereich, in dem der 
Netzwerkzugang gespeichert war.

Ich habe das esp12 nun als LUA-Interpreter laufen.
Dazu:
https://github.com/nodemcu/nodemcu-firmware

readme -->
nodemcu_latest.bin: 0x00000
for most esp8266 modules, just pull GPIO0 down and restart.
You can use the nodemcu-flasher to burn the firmware.

Or, if you build your own bin from source code.
0x00000.bin: 0x00000
0x10000.bin: 0x10000

- dann
http://www.esp8266.com/viewtopic.php?f=19&t=990

von kettenrad (Gast)


Lesenswert?

Hinzufügen möchte ich noch den Hinweis auf den ESPLORER von:
http://esp8266.ru/esplorer/

Ähnlich dem LuaLoader:
http://benlo.com/esp8266/index.html#LuaLoader

ein gutes Arbeitsmittel;
Hiermit
https://primalcortex.wordpress.com/2014/12/30/esp8266-nodemcu-and-lua-language-and-some-arduino-issues/

lässt sich "init.lua" erstellen und somit beim Start die Wifi-Verbindung 
automatisch einrichten.
Wenn man
CMDFILE = "srv41.lua"   -- File that is executed after connection
und die Funktion
-- Change the code of this function that it calls your code.
function launch()
  print("Connected to WIFI!")
  print("IP Address: " .. wifi.sta.getip())
  -- Call our command file every minute.
 --tmr.alarm(0, 60000, 1, function() dofile(CMDFILE) end )
 dofile(CMDFILE)
end
entsprechend ändert.
Die srv41.lua wird ebenfalls über den esplorer abgespeichert.

Nun startet das Programm, sobald die Wifi- Verbindung steht ...

von kettenrad (Gast)


Lesenswert?

Weiterführend sei mir der Hinweis auf die Arduino-IDE mit esp-tool 
gestattet.
Damit habe ich einen httpd-Webserver mit SD-Kartenanbindung , nach dem 
Beispielsketch, auf dem esp12 am laufen:
Beitrag "Re: elm-chan SDHC Anbindungsmöglichkeiten HW SW"

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

.. mittels Editor auf die SD-Karte kopiertes Bild im Browser aufgerufen;

von kettenrad (Gast)


Lesenswert?

Ich denke, diese (ich nenn' das mal eben so) "Wifi-SD-Karte" könnte der 
zentrale Sammeipunkt für die Daten von verteilten wifi-Sensoren sein, 
die dann vom PC abgerufen und bearbeitet werden(schöne bunte, graph. 
Darstellung).
Dies würde dann ohne < "Cloud" irgendwo > nur im Heimnetz(oder 
meinetwegen auch dynDNS) möglich sein ...

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> Ich denke, diese (ich nenn' das mal eben so) "Wifi-SD-Karte" ...
> könnte der zentrale Sammeipunkt für die Daten von verteilten wifi-
> Sensoren sein, ...

> Dies würde dann ohne < "Cloud" irgendwo > nur im Heimnetz(oder
> meinetwegen auch dynDNS) möglich sein ...

hi kettenrad,
genau so ist. am dbs sowie am cms feile ich gerade in meinem projekt.
gleiche schwebt mir auch vor. die fw werden zentral gehalten...

benutzt du die luna mit toolchain auch? kannst du ein projekt darin 
laden?
benutzt du auch xtensa ide?

lg
;-)

von kettenrad (Gast)


Lesenswert?

.. schrieb:
> benutzt du die luna mit toolchain auch? kannst du ein projekt darin
> laden?
> benutzt du auch xtensa ide?

aus Eclipse-Luna heraus habe ich nochnicht geflasht. Geht einfacher mit 
dem Flasher von nodemcu.

xtensa-IDE nutze ich nicht (mehr);

Ist schon ein Grauß, in der Arduino-IDE lowlevel Routinen anzupassen.
Mom. schreibe ich einen Treiber für Touchscreen-Kontroller ala' 
ADS7846/XPT2046;

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

- oder meinst du Projekte laden in Luna?
hier mal (rechts) die Projekte aus den Example, die ich ausprobiert 
habe.
Von den fehlerbehafteten lassen sich einige aber dennoch mit dem 
Kommandline-Tool kompilieren ...

von .. (Gast)


Lesenswert?

hallo kettenrad, wenn ich dir ein projekt zum ausprobieren gebe, kannst 
du es mit allen drei laden ( xtensa no vm win ) , ( luna ) , ( vm 
espressif ), oder nur bestimmte?

flashen kannst du mit dem flash tool 1.2 oder wie du es gewohnt bist.

;-)

von kettenrad (Gast)


Lesenswert?

- danke für das Angebot.
Ich weis, das Du auch mit Arduino-IDE unterwegs bist. Da ich da grad 
rumbastle, würd ein entsprechender sketch passen. Luna-Eclipse geht 
ebenfalls.
Mit espressif vm oder xtensa vm in pure währe nicht so angenehm ..

von E. D. (e-d)


Lesenswert?

.. schick es hierhin!

von .. (Gast)


Angehängte Dateien:

Lesenswert?

hi kettenrad

anbei zum spielen: ein universales base projekt fat32_sdhc_

da du hier die ide im thread erwähnst,
hier mal für luna ( hab es für xtensa auch ,  für arduino ide schreibe 
ich es noch - aber erst später )

was macht es:
der komplette sdhc inhalt wird über uart gelistet ausgegeben.
dann wird ein file angelegt.
dann wird in das file geschrieben
dann wird das file geschlossen
dann wird das file wieder geöffnet
dann wird das file eingelesen und über uart der inhalt ausgegegebn.
dann wird das file wieder geschlossen.


wifi ist hier bewusst aus.
du kannst das hernehmen für
- eigenen web content
--anlegen, editieren, löschen, ausgeben usw

anschluss sdhc card
MOSI.. GPIO 13
MISO.. GPIO 12
CLK... GPIO 14
CS.... GPIO 15 !

CS ist GPIO 15 weil das projekt die base ist für das spätere booten von 
sdhc....daher ist das in der jetzigen form (H)SPI

z.b. kann man über uart das firmware file selektieren welches geladen 
werden soll, kein interpreter - sondern das hex file - wie ein update
über cloud.

das komplette projekt mit oled, can, dbs, cms und aes ( crypted boot ) 
wird es später hier im µC forum im finale geben

"have phun"

lg
;-)

von .. (Gast)


Angehängte Dateien:

Lesenswert?

btw:
hab hier 16GB ( 8.90 EUR ) und 32GB ( weiss nimma ) sdhc und adapter
von DM ( Paradies ), aufbau mit gelöteten 2.54 pins ( bild )

von .. (Gast)


Lesenswert?

sorry push'

schauh dir das makefile an und pass deinen com port an.
normalerweise musste alles passen wenn du standard installion hast.

mit clean räumst du auf
mit all machst du alles neu ( firmware )
mit flash muss der esp im bootmodus sein und der com port richtig 
eingestellt, dann kannst du direkt aus luna flashen
mit flashboot das gleiche aber der esp wird dann auch resetet

guats nächtle und schöne restwoche noch.
lg
;-)

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für das Projekt!
Werd's testen ..
Hab viel mit STM32 entwickelt, bis, -ja bis ich an die DMA-Grenzen (mehr 
als 3) stiess;
Daher noch viel waveshare-Adapter, die man nach und nach auf 
esp-Tauglichkeit prüfen kann (Kamera, Flash,SRAM,Audio, usw.) :-)

p.s.:
Ich denke, Du solltest dein Projekt in die Codesammlung einstellen!
Für alle und dauerhaft ..

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> .. noch viel waveshare-Adapter, die man nach und nach auf
> esp-Tauglichkeit prüfen kann (Kamera, Flash,SRAM,Audio, usw.) :-)

ich kombiniere auch alle meine adapter ;-)
im moment ist das der enc28j60 mit etwas geschrupften stack,  mal sehen.
sieht eigentlich gut aus, ( ping ok, response ok ) aber die hitze macht 
einem den gar aus. am we soll es etwas abklingen.

> Für alle und dauerhaft ..

.. ist nicht so besonders kettenrad, ist nur eine base für sdhc und elm 
chan auf (H)SPI. das was du draus machst ist interessant.
mein final projekt wird es hier geben, dabei ist auch der eigene 
bootloader code, da espressif nicht gewillt war/ist, den bootcode 
opensrc zu stellen. es dauert aber noch etwas, muss noch "aufräumen"

lg
;-)

von kettenrad (Gast)


Lesenswert?

.. schrieb:
> z.b. kann man über uart das firmware file selektieren welches geladen
> werden soll, kein interpreter - sondern das hex file - wie ein update
> über cloud.

Verstehe ich dich da richtig?
Das ominöse Sterben des Flash auf den ESP-Boards wird damit nicht gelöst 
werden können. Programme starten nicht von der SD-Karte, sondern nach 
wie vor vom Flash.
Die .hex Files werden nach der Auswahl über z.B., uart, in den Flash 
kopiert und ausgeführt. Wie bei einem Cloud-Update ?

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> .. schrieb:
>> z.b. kann man über uart das firmware file selektieren welches geladen
>> werden soll, kein interpreter - sondern das hex file - wie ein update
>> über cloud.
>
> Verstehe ich dich da richtig?
nicht ganz..

> Das ominöse Sterben des Flash auf den ESP-Boards wird damit nicht gelöst
> werden können.

doch ;-)

> Programme starten nicht von der SD-Karte, sondern nach
> wie vor vom Flash.

beides ist möglich ;-)

> Die .hex Files werden nach der Auswahl über z.B., uart, in den Flash
> kopiert und ausgeführt. Wie bei einem Cloud-Update ?

ja wenn du das so willst,
du kannst aber auch direkt von der sd booten und den flash 'weglassen'

lg
;-)

von kettenrad (Gast)


Lesenswert?

- Warum ich darauf anspiele?
Ich liebäugele grade mit den beim esp12 herausgeführten Pins für 
SPI-Flash ...

von kettenrad (Gast)


Lesenswert?

AHA, - überschnitten :)
Also doch
Mit deinem bootloader soll dann ein Starten von Programmen aus der SD 
möglich sein?!
Das wäre in der Tat ein Durchbruch -->

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> Mit deinem bootloader soll dann ein Starten von Programmen aus der SD
> möglich sein?!

http://bbs.espressif.com/viewtopic.php?f=15&t=665

bei allen ehren zu espressif,
aber ich habe mich wegen der 'salamitaktik' etwas dazu distanziert und 
daher halte ich auch das aes konzept zum bootcode noch 'zurück'

Beitrag "ESP8266 SD Card / AES256"


letzte zitat:
"Dear Rudi,
Sorry for the first requirement. We would not do that for some reason.
The second one is OK. And you could share it on bbs. It doesn’t  matter.
"

vorletzte zitat:
" Hi Rudi,
We have received your mail.
For the first question, we have to discuss it internal first.
For the second question about AES256, it is OK. We are glad to have it 
and see what you have done, which sounds great.

firmware protection - Communication chipper / decrypt"

meine anfrage war simple nach einer template für den bootcode bzw einen 
'schalter'/'impuls' damit man andere bootmedien probieren kann

"
> can u please help me a little:
>
> is there a way to get the src from bootloader ( or a template ) for making own
> need this for the final protection.
>
> or can u make a function like this:
>
> if the bootloader can make a temp step like this
>
> - load a bin file from spi flash and decrypt onthefly the crypted firmware
>
> then load / start the user_main()
>
> ..
>
> is this possible?
>
>
> is this possible, that the flash download tool can read and display the CHIP ID 
in next Version?
> this will be a helfull funktion for produktion.
>
> and please, a last question:
>
> question is:
>
> i have finnish a security pack for the esp8266. !AES256 !
>
> i can load protected firmware from scratch -
> firmware is crypted -
>
> firmware support AT version with an AES256 lib that i have created
> and i create the api for receive/sending AES256 packets over UART, (H)SPI, I2C, 
GPIO (bitbanging)
>
> i will post it near time ( asap ) video, details, projekt, ( i will do this 
monday-wednesday comming week ) but i will ask you ( espressif ) before,
> can i do this . because the security pack is based at AES 256 and in some 
countrys are this not allowed, ( germany no problem )
> if i post details under projekts here at bbs.espressif is this ok or do i can 
not post about AES256 , hope you understand right. i will ask you ( espressif ) 
before
"

gerade das bootloader prizip wäre sehr schön gewesen, wenn sie es 
offengelegt hätten, da ja nach dem start des esp nichts beeinflusst 
werden kann, ( security )  wenn man den bootloader nicht ändern kann.

das hemmt aber auch eigene projekte anzugehen, den flash auszuspielen,
eben wegen der bit kipperei manchmal.

mein problem war bisher das coden "im reinen c" als der esp rauskam.
ich musste erst c lernen ;-) und bin immer noch dabei ;-)

lg
;-)

von quark (Gast)


Lesenswert?


von .. (Gast)


Lesenswert?

btw kettenrad:

sdhc base:

angeregt durch die wifi sd card, z.b. Transcends Wi-Fi SD Karte

du könntest in kombi esp&sdhc einen eigenen kleinen schmalen "SMB 
Server" machen, der den kontent von der sdhc ins esp / homelan netz 
stellt..
und mit prinzip des 'esplore' auch files uploaden..

von kettenrad (Gast)


Lesenswert?

- mit anderen Worten:
Dein "firmware support AT version with an AES256 lib " wurde dankend 
angenommen, --> Schulterklopfen und ein gönnerhaftes "weiter so" (mach 
unsere Arbeit), aber an den Kuchen lassen wir dich nicht ..

von .. (Gast)


Lesenswert?

quark schrieb:
> http://richard.burtons.org/2015/05/18/rboot-a-new-boot-loader-for-esp8266/

nett, aber nur für
"•Can use the full size of the SPI flash (see below)."

und gehemmt
"•Not compatible with sdk libupgrade (but equivalent source included, 
based on open source copy shipped with earlier SDKs, so you can easily 
update your existing OTA app use this new code).

"•Only 8MBit of flash can be memory mapped at a time (the SDK bootloader 
allows at most the first 2 x 8Mbit chunks to be used for roms, rBoot 
doesn’t have this limit, on a 32MBit flash you can have 4 x 8MBit roms), 
see memory mapping imitation for more details."

und mit sdhc nicht brauchbar:

"Good afternoon ,
Is it possible to write this command:
esptool.py –port COM7 write_flash -fs 8m 0x00000 rboot.bin 0x02000 
rom0.bin 0x82000 rom1.bin 0xfc000 blank4.bin
as follows:
esptool.py –port COM7 write_flash -fs 8m 0x00000 rboot.bin 0x01000 
rom0.bin 0x81000 rom1.bin 0xfc000 blank4.bin
"

antwort:

"No. 0x01000 is where the rBoot config is stored so your first rom will 
be corrupted. The second rom can go at 0x81000 if you want, or at 
0x80000, or even lower if the first rom doesn’t reach there. If you do 
this you’ll need to change the linker script for rom1 to reflect this 
different flash location. You would also need to create a custom rBoot 
config and write it to 0x01000 so it knows where to look for the second 
rom. The default generated config expects the second rom to be at half 
chip size + 0x02000. This does waste 0x02000 bytes of flash but keeps 
things simple and symmetrical and you can always write your own config 
if you want full control. If you are writing your own rBoot config you 
can divide the chip up any way you want (and you aren’t limited to just 
two roms).
"

von kettenrad (Gast)


Lesenswert?

.. schrieb:
> du könntest in kombi esp&sdhc einen eigenen kleinen schmalen "SMB
> Server" machen, der den kontent von der sdhc ins esp / homelan netz
> stellt..
> und mit prinzip des 'esplore' auch files uploaden..

Mit dem SD Editor, -einem Tool auf der SD-Karte aus dem Beispielexample 
SDWebserver, kann man aus dem lokalen Netz Daten auf die SD schreiben ;
(siehe 
Beitrag "Re: IDE für ESP8266 mit vielen Example")

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> - mit anderen Worten:
> Dein "firmware support AT version with an AES256 lib " wurde dankend
> angenommen, --> Schulterklopfen und ein gönnerhaftes "weiter so" (mach
> unsere Arbeit), aber an den Kuchen lassen wir dich nicht ..

danke kettenrad - du bist der erste der mich auf anhieb jetzt verstanden 
hat, warum ich auch zurückhaltend bin. bei mir geht es jetzt allmählich 
in die richtung, und jetzt erst recht raus mit dem code, damit espressif 
etwas leichten druck bekommt, nicht alles was wirklich geht ist 
dokumentiert und offengelegt, profitieren davon wird espressif - sie 
sind der hw hersteller mit stückzahlen. aber ich komme auch auf meinen 
spass faktor - mit oder ohne opensrc ;-) dann wird es eben so lange 
probiert.

esp8266.com ist toll, ja, aber ich habe davon eine andere meinung,
wenn man eine community einrichtet, sollte der gepostete code für 
jedermann zugänglich sein, nicht erst nach registrierung auf dem 'forum' 
das kommerz ist. war schon immer meine meinung:

http://www.esp8266.com/viewtopic.php?f=11&t=741&start=5#p7351
http://www.esp8266.com/viewtopic.php?f=11&t=741&start=5#p7390



kettenrad schrieb:
> Mit dem SD Editor, -einem Tool auf der SD-Karte aus dem Beispielexample
> SDWebserver, kann man aus dem lokalen Netz Daten auf die SD schreiben ;

schreibe in die callback des wifi servers eine funktion, die empfangene 
daten auf die sd card schreibt, dann läuft dein eigener ;-)

am esphttpd beispiel von sprite anderst du das lesen von spi 'flash' auf 
sdhc, und das 'posten' auch.

wie das listing der directory geht ist im base ;-)

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> - mit anderen Worten:

> aber an den Kuchen lassen wir dich nicht ..

btw
http://bbs.espressif.com/viewtopic.php?f=46&t=708#p2599

"Updated libssl again. To support SHA-256 and SHA-512"

;-)

von kettenrad (Gast)


Lesenswert?

- das muss ich erstmal verdauen!
(rboot ist auch ..  interessant! )

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> - das muss ich erstmal verdauen!
> (rboot ist auch ..  interessant! )

keine frage - rboot ist sogar besser als der eigene von espressif -
lass dir zeit zum verstehen, nicht gleich kommt das 'aha'
aber wenns dann da ist, kanns keiner besser als du ;-)

so ich muss jetzt ab in den garten - die arbeit ruft ;-)
ausserdem ist ja eh eine 'flaute' im esp-hype und ferien sind ;-)
lg
;-)

von .. (Gast)


Lesenswert?

push#
sorry vergessen:
lass bitte hören wenn das sdhc bei dir läuft oder wenn es eckt, ok?!
viel spass!
;-)

von .. (Gast)


Lesenswert?

@kettenrad
btw:
wenn bei dir die sdhc base läuft,
dann sende einmal irgendein zeichen ( spätere case ) auf den uart zum 
esp.

er wird rebooten , das zeichen kann man auswerten lassen für spätere 
optionen..
so aber jetzt mach ich mich vom acker ;-)

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

<\r><\n><\r><\n>WIFI SET UP IN NULL MODE <\r><\n>START SYSTEM 
<\r><\n>INIT SPI OK  <\r><\n>SD interface init OK <\r><\n>Mounted OK 
<\r><\n>/DCIM/100MEDIA/SUNP0001.AVI<\r><\n><\r><\n> Scan files  OK 
<\r><\n>write test: <\r><\n>write ok<\r><\n>read the file: <\r><\n>done 
by rudi ;-)<\r><\n>mode : null<\r><\n>


- wie Du unschwer erkennst. -- it works! --
Auch reboot bei Senden eines Zeichens;
- allerdings habe ich das makefile etwas ändern müssen (s.o.)

von kettenrad (Gast)


Angehängte Dateien:

Lesenswert?

- hier die Fehlermeldungen mit dem originalen Makefile;

von kettenrad (Gast)


Lesenswert?

Ich hab's jetzt eingekreist:
Meine Luna-IDE espressif verlangt -std=gnu90 in den CFLAGS

von maier (Gast)


Lesenswert?

Kann man eigentlich den Flash-Chip gegen eine angelötete SD-Karte 
tauschen? Ist doch beides SPI...

von kettenrad (Gast)


Lesenswert?

kettenrad schrieb:
> - Warum ich darauf anspiele?
> Ich liebäugele grade mit den beim esp12 herausgeführten Pins für
> SPI-Flash ...

der verbaute spi-Flash wird anders initiiert als eine SD-Karte.
Der Austausch gegen einen anderen SPI-Flash Chip ist möglich und wurde 
schon mehrmals durchgeführt, da die Anzahl der reflash Zyclen beim 
verbauten wohl doch niedrig ist..

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> <\r><\n><\r><\n>WIFI SET UP IN NULL MODE <\r><\n>START SYSTEM
> <\r><\n>INIT SPI OK  <\r><\n>SD interface init OK <\r><\n>Mounted OK
> <\r><\n>/DCIM/100MEDIA/SUNP0001.AVI<\r><\n><\r><\n> Scan files  OK
> <\r><\n>write test: <\r><\n>write ok<\r><\n>read the file: <\r><\n>done
> by rudi ;-)<\r><\n>mode : null<\r><\n>
>
>
> - wie Du unschwer erkennst. -- it works! --
> Auch reboot bei Senden eines Zeichens;
> - allerdings habe ich das makefile etwas ändern müssen (s.o.)

du hast mir als einziger bisher herzliche response gegeben, ich danke 
dir sehr herzlich dafür kettenrad - das meine ich ernst!

jetzt mach was #für dich # draus, schritt für schritt, sdhc läuft jetzt 
bei dir.

bin sehr froh, dass es 'fast' auf anhieb geklappt hat, das makefile 
schauhe ich mir gleich an. denke dass du die neue ide hast, bzw den 
neuen cross compiler, kann das sein?

ich bin später heute noch mal online.

hey kettenrad - danke für das herzliche feedback!
wenn nur einer dabei ist, bei dem es funkt, bin ich der glücklichste 
mensch!

lg
rudi ;-)

von c schüler (Gast)


Lesenswert?

#push
@Karl Heinz
danke für deine unermüdlichen bemühungen in der c lehre, ohne dies
es gar nicht möglich wäre.
lg ;-)

von kettenrad (Gast)


Lesenswert?

No updates were found.

Mal eben gescheckt -
- wohl wirklich aktuell;

Ich bremse ja nur ungern, aber nach den Tests habe ich wieder den 
SD-Webserver aufgespielt.
Pin 15 blockiert den Start deines Programms.
Erst wenn ich ihn abziehe und im HTerm den Start abwarte, kann ich ihn 
wieder anstecken und alles läuft wie gewünscht.
Das ist sowohl beim esp 12 als auch beim esp 07 der Fall ..
 was letztendlich auchnicht sonderlich verwundert.
Sowohl Pin 0 als auch Pin 15 bringen den IC (bei reset) auf bootloader - 
Mode, wenn sie logisch 0 sind ..

von kettenrad (Gast)


Lesenswert?

Ich bin jetzt etwas verunsichert.
Habe beim laufenden Webserver SD - Programm den Pin 15 auf Ground 
gezogen und resettet.
Und das Programm startet ...!?!

Nur wenn Pin 15 als CS programmiert wird, tritt der von mir geschilderte 
Effekt auf!
     -seltsam, sehr seltsam ...

von kettenrad (Gast)


Lesenswert?

Aha, man lernt nie aus!
Der CS-Pin der SD-Karte liegt auf +3,3V. Diese überschreiben den 
pulldown( 10k ) an Pin 15.
Dieser high-Pegel blockiert das Starten des Programms von Dir!

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> Ich bin jetzt etwas verunsichert.
> Habe beim laufenden Webserver SD - Programm den Pin 15 auf Ground
> gezogen und resettet.
> Und das Programm startet ...!?!

ja das ist auch richtig, gpio15 muss auf ground sein, damit der esp 
booten kann.


>
> Nur wenn Pin 15 als CS programmiert wird, tritt der von mir geschilderte
> Effekt auf!
>      -seltsam, sehr seltsam ...

der cs wird high programmiert, damit der den boot von flasg nicht 'auf 
sich zieht'...

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> Aha, man lernt nie aus!

so gehts mir dauernd mit c ;-)

> Der CS-Pin der SD-Karte liegt auf +3,3V. Diese überschreiben den
> pulldown( 10k ) an Pin 15.

yeap, ...nur wenn cs high ist

> Dieser high-Pegel blockiert das Starten des Programms von Dir!

..sagen wir mal so, du hast soeben den boot von flash auf sdhc 'gebogen' 
mit dem anschluss der sdhc pin 'cs' auf gpio15
;-) und jetzt will er aber einen bootloader auf der sdhc sehen der ihm 
sagt, wohin die reise geht oder eine firmware auf 0x00000..
und jetzt ist die katze aus dem sack, auf 0x00000 auf der sdhc wartet 
was auf der fat32? ein bootloader schaft abilfe, ein kleiner 'grub' 
reicht...
..
;-)

von .. (Gast)


Lesenswert?

btw:
wenn du die sdhc 'nur' als kontent für das esphttpd example verwenden 
willst, dann musst du den cs 'umbiegen' wie es sprite gemacht hat, eben 
anstatt gpio 15 dann gpio 02 oder anderen gpio, der kein bootpin ist...
das muss dann auch in den driver files umgeschrieben werden.

wenn du die sdhc auch als bootmedium verwenden willst, dann ist der 
gpio15 schon richtig, der interne bootprocess fragt die pins ab, und 
nach einem bitmuster wird entschieden von wo er booten soll, er erwartet 
dann an 0x0000 das firmware oder einen bootloader der sagt wohin es 
geht, egal welche quelle.

von kettenrad (Gast)


Lesenswert?

-- Ähhm !
Ist es nicht eher so:
Da ich einen SD-Adapter von waveshare benutze, wird CS(D3) mit einem 
Pullup 10k vorgespannt.
Egal was für ein Programm ich geladen habe, - dieser Pullup bringt GPIO 
15 auf high-Pegel, was ein Starten verhindert.
Der IC bleibt bei reset(GPIO0=0) im Bootloader stehen ...
  ... nicht eine Zeile code wird ausgeführt;
Daher wird die SD auch nicht initialisiert ..

von kettenrad (Gast)


Lesenswert?

Das SDWebServer Programm benutzt ebenfalls HSPI. Nur CS ist auf GPIO2 ..

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> -- Ähhm !

berechtigt ;-)

> Ist es nicht eher so:
> Da ich einen SD-Adapter von waveshare benutze, wird CS(D3) mit einem
> Pullup 10k vorgespannt.

gpio15 ist dann high, ein booten von flash ist nicht möglich.


> Egal was für ein Programm ich geladen habe, - dieser Pullup bringt GPIO
> 15 auf high-Pegel, was ein Starten verhindert.

ja  - der high pegel beim starten des esp blockiert den bootprocess vom 
flash

> Der IC bleibt bei reset(GPIO0=0) im Bootloader stehen ...
>   ... nicht eine Zeile code wird ausgeführt;
> Daher wird die SD auch nicht initialisiert ..

ja , wenn der gpio0 auf low steht, dann hat der intern bootloader vorang 
und wartet auf konstruktion vom programmer, oder commander,
es sind in dem mode auch kommunikationsmöglichkeiten mit dem esp 
gegegeben, abfragen von chipid, mac und andere 'register'

die firmware mit der sd card init muss daher jetzt auf die sdhc
denn wenn der gpio15  nicht low ist beim booten des esp
dann bootet er nicht von flash, sondern will von wo anderes sein file

wenn gpio0 beim booten low ist, dann springt der esp bootloader für das 
firmware aufspielen an.

die pins werden nahceinem bitmuster abgefragt, jenachdem was anliegt
wird entspreched ausgeführt.

von kettenrad (Gast)


Lesenswert?

Verstehe jetzt, warum Du auf Pin 15 beharrst.
Dann ist Dein Programm nur mit "Selbstbau - Adapter" lauffähig!

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> Das SDWebServer Programm benutzt ebenfalls HSPI. Nur CS ist auf GPIO2 ..

yeap, damit das programm vom flash geladen werden kann.
oki?

von kettenrad (Gast)


Lesenswert?

Genug für heute!
Wünsch Dir eine geruhsame Nacht ..

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> Verstehe jetzt, warum Du auf Pin 15 beharrst.
> Dann ist Dein Programm nur mit "Selbstbau - Adapter" lauffähig!

ich habe ehrlich gesagt die sdhc wie im bild, in einem sd micro adapter,
diese pins gehen direkt auf den esp, ohne pullup/pulldown.

ich werde aber einen breakout sd card adapter mal verwenden, es kann 
sein, dass tatsächlich der adapter durch beschaltung den cs auf high 
legt, also einen pullup führt, die frage ist, wie hoch der wert ist.

auf dem esp12 werden glaube ich 10KOhm pulldown verwendet - nagle mich 
aber nicht fest -

wenn ich pulldown/up brauche, dann mache ich das mit den internen vom 
esp per gpio setting.

von .. (Gast)


Lesenswert?

;-) guats nächtle
lg

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> Ich hab's jetzt eingekreist:
> Meine Luna-IDE espressif verlangt -std=gnu90 in den CFLAGS

Changelog:
v2.0.7 (09.07.2015):
* Updated compiler xtensa-lx106-gcc and xtensa-lx106-g++ up to version 
5.1 (big thanks jcmvbkbc);
ATTENTION! For correct build of your firmware, you must add the option 
-std=gnu90 in directive CFLAGS in Makefile

du benutzt die neue 2.0.7 ;-)
http://www.esp8266.com/viewtopic.php?t=820

daher der hinweis, wer die version benutzt, sollte das makefile anpassen 
bzw kann ja das von kettenrad benutzen, wenn er es schon gepostet hat 
;-)

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> <\r><\n><\r><\n>WIFI SET UP IN NULL MODE <\r><\n>START SYSTEM
> <\r><\n>INIT SPI OK  <\r><\n>SD interface init OK <\r><\n>Mounted OK
> <\r><\n>/DCIM/100MEDIA/SUNP0001.AVI<\r><\n><\r><\n> Scan files  OK
> <\r><\n>write test: <\r><\n>write ok<\r><\n>read the file: <\r><\n>done
> by rudi ;-)<\r><\n>mode : null<\r><\n>
>
>
> - wie Du unschwer erkennst. -- it works! --

kettenrad, nur gegenfrage, mit welchem adapter - denn der wave zieht den 
cs auf high sagtest du, oder hast du auch einen DiY Adapter direkt 
angeschlossen?

bin dabei micro sd holder zu suchen, für smd pad anschluss.
bei ali gibt es die seh rgünstig für umgerechnet 0,27 eur das stück
mal sehen.

von kettenrad (Gast)


Lesenswert?

- moin, moin!

.. schrieb:
> nur gegenfrage, mit welchem adapter - denn der wave zieht den
> cs auf high sagtest du

Mit dem oben erwähnten Trick:
- im Terminal starten abwarten, dann erst CS(Pin15) anstecken..

von kettenrad (Gast)


Lesenswert?

todo:
- den 10k Pullup von D3(CS) entfernen;
- aus dem base die schreib/lese - Tests entfernen;
- cs nach SD-init auf "high" ziehen(im main);
- SD-mit FAT32 formatieren(entfernen von Datenmüll --> nur FATTabelle);
-"Grub" grubben und verstehen, was das ist;
-0x00000 und 0x40000 auf SD ins root;

Frage: beim reboot durch Eingabe über Terminal bleibt da Pin15 auf 1 
(z.B. durch SD-selekt) oder muss ich z.B. den Pullup vor dem reboot für 
Pin15 einschalten und bleibt der trotz reboot lange genug auf 1 , um den 
Bootvorgang von SD einzuleiten?

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> todo:
> - SD-mit FAT32 formatieren(entfernen von Datenmüll --> nur FATTabelle);

die 'File Allocation Table' ( FAT ) ist im bootsector


> -"Grub" grubben und verstehen, was das ist;

"grub" kommt von 'grub'
https://de.wikipedia.org/wiki/Grand_Unified_Bootloader

der ist hier ironisch genannt, und es ist damit gemeint, dass man sich 
einen bootloader basteln muss, wenn man mehrere fw parat halten will,
..man braucht dann einen bootloader, der die fw an den bestimmten 
adressen
entweder lädt, oder einen manager, der das fw file dann auf der sd card
von einem bereich ( adressen ) zu[m](r) anderen 'moved'

> -0x00000 und 0x40000 auf SD ins root;

das wird die FAT zerstören, denn 0x00000 file beginnt ab 0, da steht der 
bootsector und die FAT  ( offset 03 )

https://de.wikipedia.org/wiki/File_Allocation_Table#Bootsektor

>
> Frage: beim reboot durch Eingabe über Terminal bleibt da Pin15 auf 1
> (z.B. durch SD-selekt) oder muss ich z.B. den Pullup vor dem reboot für
> Pin15 einschalten und bleibt der trotz reboot lange genug auf 1 , um den
> Bootvorgang von SD einzuleiten?

das bitmuster fragt der bootloader des esp ab, egal ob cold, warm, oder 
aus dem 'deep sleep' heraus. es gibt beim entsprechenden booten dann die 
möglichkeitder -vorher- ein bitmuster abzulegen.. das beim bootprocess 
berücksichtigt werden kann ( user key data )
1
}
2
3
void setup(){
4
Serial.begin(74880); // du kannst den bootprocess sichtbar/lesbar machen
5
                     // ein zweiter µC mit eingestellter 74880 baud
6
                     // und zweiten uart 115200 als lesbarer umsetzer
7
                     // geht auch wenn man keinen 74880 baud adapter hat
8
9
}
10
11
void loop()
12
{
13
Serial.println("Hello world!");
14
for (int i=10; i > 0; i--){
15
Serial.println(i);
16
delay(1000);
17
}
18
19
// deep sleep mode unter 80 µA ( ~ 75-78 )
20
Serial.println("Time to sleep");
21
system_deep_sleep(10000000); //sleep time in usecs. 10000000 = 10 sek
22
delay(1000); // eine kurze verzögerung, 
23
             // um das in schleife zu halten, 
24
             // während Deep Sleep umgesetzt wird
25
}

aufwachen aus dem deep sleep : GPIO16 und RESET kurz brücken

interner esp bootloader kann nicht geändert werden,
er will von 0 von einem 'angeschlossenen' datenträger das file laden.

man kann die sd auch im RAW mode betreiben.

von .. (Gast)


Lesenswert?


von kettenrad (Gast)


Lesenswert?

Danke!

von kettenrad (Gast)


Lesenswert?

? - auf der SD-Karte liegt unter " 32_done.txt " das .hex - file eines
ESP8266 Blink by Simon Peter(aus Arduino-IDE Beispiel: esp Blink);
das ist ein .hex aus blink.bin konvertiert!
Es beginnt ab 000F78800 oder Sektor 31680;

bootloader schreiben ist nicht so der Bringer für mich ..
Wie überrede ich den esp , diese .hex in seinen IRAM zu 
kopieren(beginnend mit 0x000000) und auszuführen?

von .. (Gast)


Lesenswert?

kettenrad schrieb:
> ? - auf der SD-Karte liegt unter " 32_done.txt " das .hex - file eines
> ESP8266 Blink by Simon Peter(aus Arduino-IDE Beispiel: esp Blink);
> das ist ein .hex aus blink.bin konvertiert!
> Es beginnt ab 000F78800 oder Sektor 31680;

mhm..
als allererst müsstest du dich entscheiden wie du vorgehst,
enweder hex adressen oder bin sektoren

witz:
Beispiel:
windows Calc Wissenschaftlich:
Hexwert eingeben: F78800
geteilt durch : /
umschalten auf Dez: Dez
Dez Wert eingeben: 31680
Ergebnis: Dez Wert 512,06464646464646464646464646465

die blockgrössen stimmen nicht überein ;-)
es muss lauten 512

Gegenprobe:
Dez Wert 31680 umrechnen in Hex
31680 = 7BC0

Alles in Hex Rechnen:

F78800 / 7BC0 = 200

Ergebnis: Hex Wert 200 in Dez = 512

ok - spass wieder weg ( aber bitte prüfe deinen win calc der wird dich 
im ersten fall auch anschwindeln ) ;-)

>
> bootloader schreiben ist nicht so der Bringer für mich ..

what mut dat mut!
so einfach mach ich dir das nicht

> Wie überrede ich den esp , diese .hex in seinen IRAM zu
> kopieren(beginnend mit 0x000000) und auszuführen?

überleg mal ;-) 0x000000 ist eine stelle zuviel -
weiss den der esp wo das nun liegt? auf flash oder sd,
hast du ihm das über die bitmuster mitgeteilt?

von kettenrad (Gast)


Lesenswert?

moin, moin !
Was ich da angegeben habe, ist Schnee von gestern(ausgelesen mit HxD). 
Diese Adressennummern und Sektorennummern sind irrelevant ..;

Mitlerweile habe ich Eclipse-Luna mit Arduino Plugin aufgesetzt.
http://www.baeyens.it/eclipse/how_to.shtml#/e
Prima Sache, das ..

Der GPIO15 ist als CS für die SD ungeeignet. Ändern Pullup/-down führt 
zu nichts. Irgentwann blockiert die SD und muss neu formiert werden.

Deshalb nehme ich das WebserverSD Beispiel, blockiere WLAN, und zum 
booten von SD ziehe ich beim deepsleep(RST und GPIO16 gebrückt) 
aufwachen den GPIO15 auf 1 ;

Auf SD ist unter 32_done.txt das .raw des Blink.bin;
http://forum.condorsoaring.com/viewtopic.php?t=9500

von .. (Gast)


Lesenswert?

kettenrad schrieb:

> Auf SD ist unter 32_done.txt das .raw des Blink.bin;
> http://forum.condorsoaring.com/viewtopic.php?t=9500

ein bin file zu einem raw file konfertieren?
wozu das?

RAW bezieht sich auf das format der sd.
entweder hat es eine gültige FAT oder sie wird im RAW modus betrieben.
im RAW mode kann windows indirekt nichts damit anfangen und fragt
ob es den datenträger formatieren soll - hdx kann den RAW datenträger 
lesen.

von kettenrad (Gast)


Lesenswert?

- bei einigen STM32 LCD-Ausgaben wird ein Datenstream fortlaufend von 
einem *.raw File gelesen;
Da keine Optimierung, Kompression, vorangestellte Farbtabellen oder 
irgendwelche Header!
-rohe Daten eben ..

  .. die dann, so mein Gedankengang, 1:1 fortlaufend in den IRAM-Bereich 
kopiert werden;

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Hinweis:
Um mit Fragen nicht diesen Thread zu 'kapern' habe ich den
Beitrag "ESP8266 Windows/LUNA Hilfe-Thread"
eröffnet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.