Forum: Mikrocontroller und Digitale Elektronik Wlan2Serial Modul für 5 euro


von Holger W. (holgerw)


Lesenswert?

Du fragst nach dem ESP01, mit dem habe ich es noch nicht so gemacht, da 
ich dort nur die serielle Schnittstelle nutze.
Mit dem ESP03 habe ich es bereits täglich im Einsatz, per WLAN GPIO12-14 
zu schalten.
Das SDK findet man auf diversen Webseiten, ich verwende eine von mir 
modifizierte Version 9.2.2

Holger

von r_u_d_i (Gast)


Angehängte Dateien:

Lesenswert?

Dateianhang: patch
behebt:
1) system_print_meminfo(); heap size printf error
2) uint8 beacon_interval; change to uint16

espressif download link:
http://bbs.espressif.com/download/file.php?id=190

Info:
http://bbs.espressif.com/viewtopic.php?f=5&t=154#p557

lg rudi ;-)

persönl. Anmerkung:
Für produktiven Einsatz ist die Version noch nicht zu empfehlen!
Sie hat noch einige Fehler! Es folgen Patch2...Patch3...

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Holger W. schrieb:
> Mit dem ESP03 habe ich es bereits täglich im Einsatz, per WLAN GPIO12-14
> zu schalten.

Cool. Aber die .elf oder .bin magst Du nicht veröffentlichen, oder? 
Damit könnte man halt schon mal die Hardware entwickeln und in meinem 
Fall die "Funkschalter" in der Prakis einsetzen. Verbesserungen mit 
eigener Firmware könnte man später immer noch machen, wenn die Familie 
mit den neuen Funkschaltern zufrieden ist (Reichweite, 
Schaltverzögerung, ...)

von Holger W. (holgerw)


Lesenswert?

Direkt veröffentlichen nicht, aber per PN gerne, auch Source.
Hast du den ESP03 schon vorliegen ? Ansonsten schreib wenn du ihn hast, 
dann schick ich dir alles. Ich bastel noch täglich dran ;-)

Holger

von V. K. (fragender)


Lesenswert?

Hallo Holger,
kurze frage mal heißt das jetzt  (GPIO12-14) 12 und 14 oder 12 bis 14 ?

Danke

von Holger W. (holgerw)


Lesenswert?

GPIO12, GPIO13 und GPIO14.

Holger

von V. K. (fragender)


Lesenswert?

Holger W. schrieb:
> GPIO12, GPIO13 und GPIO14.
>
> Holger

Okay Danke für die schnelle Antwort.

lg

von r_u_d_i (Gast)


Lesenswert?

moin moin,

pico TCP
http://www.picotcp.com/

https://github.com/tass-belgium/picotcp/wiki

schaut es euch mal an, es sieht sehr interessant und vielversprechend 
auf dem ESP8266 aus : multicast udp support & working mdns & OLSR mesh 
stuff

https://twitter.com/maximevince/status/528936982077276160

https://github.com/tass-belgium/picotcp/releases

lg
rudi ;-)

von Waldemar P. (waldi_p)


Lesenswert?

Hallo zusammen,

In anderen Foren habe ich Hinweise auf neuere AI-THINKER software
gefunden die für Stand-Alone anwendungen mit AT- Befehlen brauchbar
were.
Hier Auszug aus LOG:

  Update Log
1 An amendment to the restart frequently executed serial AT
  commands problem with large amounts of data stops responding
  problem
2 no longer picky serial debugging software, support PuTTY,
  SecureCRT and other serial debugging tools, the AT command
  at the end, is not mandatory \ r \ n, CR or LF can, CRLF can
3 AT + CIPAP? AT returns the IP address of the module current
  AP mode + CIPAP = "192.168.4.2" Setting the IP address of
  the AP mode
4 AT + CIPSTA? View IP address AT STA mode + CIPSTA = fixed IP
  "192.168.1.2" STA mode setting above operations are effective
  immediately without restarting
5 AT + CIPAPMAC query the current MAC address of the AP mode settings
  for the current MAC address of the AP mode
  AT + CIPAPMAC =? "1a: fe: 34: 9e: 34: a9"
6 AT + CIPSTAMAC exercise MAC address AT STA mode +
  CIPSTAMAC =? "18: fe: 34: 9e: 34: a9"
  AP mode settings for the current MAC address
7 AT + CIOADC command reads the ADC value Note: ADC input voltage
  range is between 0V to 1V! 0 to 1024,10 bit precision
8 AT + CIOREAD command reads the GPIO AT + CIOREAD = 0 reads GPIO0
  level assumptions GPIO0 is high, it will return 1: HIGH, otherwise
  it returns 0: LOW GPIO range of digital, GPIO0, GPIO16 can
9 AT + CIOWRITE command to set the GPIO AT + CIOWRITE = 0,0 setting
  GPIO0 level is low AT + CIOWRITE = 16,1 set of high level GPIO16
10 baud rate support wider110,300,600,1200,2400,4800,9600,19200,
  38400,57600,74880,115200,230400,256000,460800,921600
11 bugfix

The next version supports 6-channel PWM AT cloud server and set
 of AT commands Smartconfig

von r_u_d_i (Gast)


Lesenswert?

http://www.electrodragon.com/w/ESP8266_Custom_AT_Firmware

lg rudi ;-)

"Please note the firmware is customized, based on Espressif SDK source"
vorsicht es könnte sich um gebastelte fw handeln ;-)
gell holger ;-)

von R. W. (Gast)



Lesenswert?

Hi

AT Version 0.22 b 1.0 baut auf auf dem SDK 0.9.5
unterstützt neue boot medien ( AT+RST und boottext zu SPI Medium )
ausführliche Infos später mehr sobald die Unterlagen public sind.

Flashen wie folgt:

boot_v1.2.bin 0x00000
user1.new.bin 0x01000
blank.bin 0x3E000
und!!!
blank.bin 0x7E000

Attached ist auch AT Commands V 0.21
sobald die 0.22 vorliegt wird nachgelegt.

lg rudi ;-)

Quelle:
http://bbs.espressif.com/download/file.php?id=213

Thread:
http://bbs.espressif.com/viewtopic.php?f=13&t=163#p632

btw:

Bedauere sehr dass Espressif die AT Src nicht mehr zur Verfügung stellt.

http://bbs.espressif.com/viewtopic.php?f=17&t=184


Bitte prüft in jedem Fall die Quellen der AT Firmware und seid nicht 
allzu leichtsinnig damit. Jeder Hersteller macht da in Zukunft denke ich 
mal seine eigene.

von R. W. (Gast)



Lesenswert?

Hi

Stanzer, Developer Director von Espressif, übergab mir ein paar 
Unterlagen, u.a. diese Specification in engl in der neuesten Version 4.2 
für meine Kontakte in der Führungsspitze, dazu zählt für mich 
Mikrocontroller.net dazu.

Attached 4.2 als pdf in engl.


Ich möchte auf ein Statement von mir in Sachen NDA Materialien / 
Dokumente  hinweisen dass sich zwangsweise ergeben hat.

Beitrag "Re: ESP8266 - Antenne umbauen ?"

Dann zum Thread:
auch auf weitere Module, die bei espressif den 'Eignungstest' bestanden 
haben,
http://bbs.espressif.com/viewtopic.php?f=20&t=178

ein paar Bilder attached.
ESP-07 auf dem 2.54 shield ( gibt es im Sammelbestellthread )

http://www.ai-thinker.com/
ESP-01
ESP-07


http://www.smartline.com.cn
LM01
LM02
LM03

http://www.magictek.net
WFM01A
WFM02A
WFM03A

lg
rudi ;-)

von R. W. (Gast)


Lesenswert?

Hi

vor der chinesischen Jahreswendfeier kam eine Beta Version zum SK 0.9.6 
heraus, die ein paar Sachen ausmerzt.

http://bbs.espressif.com/viewtopic.php?f=7&t=205

Ich hänge das File jetzt nicht mitdran, kann sihc ja jeder von der 
quelle laden:

http://bbs.espressif.com/download/file.php?id=220


Hab es selber jetzt einmal gleladen, die AT Version einmal bisschen 
umgeschrieben und erfolgreich compiliert.

Ich weiss nicht wie es euch geht, aber in der letzten Beta war das nicht 
so ohne weiteres möglich ohne gewisse Anpassung vorzunehmen.

Jetzt läuft es zumindest schon mal sehr gut durch den compiler.

Was mich noch beschäftigt - wie ändert ihr jetzt die Revision für den
AT-GMR command? Espressif will das ja gerne sehen wenn man anpasst :)

einfach at_version.h anlegen und includieren bringt nichts - zumindest 
jetzt mal bei mir - wie überschreibt ihr die vorhandene feste Revision 
in der at.a - legalerweise! ;-)

Rätsel im Moment noch - vieleicht komm ich ja noch drauf - aber 
vieleicht gehts durch Mithilfe schneller.

lg

rudi ;-)

von Holger W. (holgerw)


Lesenswert?

Hallo,
hat jemand von euch den ADC erfolgreich in Benutzung ?
Bin mit dem SDK 9.2.2 unterwegs und nutze read_ADC();
Wenn ich den direkt im HTTP Request auslese und ausgebe, stimmt der Wert 
immer, z.b. 111
Jetzt habe ich das Auslesen in einen 5 Sekunden Timer gelegt und bekomme 
andere, wechselnde Werte. Z.b. bei der gleichen Stellung mal 95, sehr 
oft 324 und zwischendurch auch mal 111.

Beide Varianten beschreiben die gleiche volatile uint16 Variable.

Bin irgendwie ratlos...
Holger

von Markus U. (markjus) Benutzerseite


Lesenswert?

Der ADC funktioniert nur, wenn nicht gesendet/ empfangen wird.

von r_u_d_i (Gast)


Lesenswert?

Markus U. schrieb:

> Der ADC funktioniert nur, wenn nicht gesendet/ empfangen wird.

Auf deinen Mail Satz von neulich ..

> ....tut mir leid, aber ich arbeite nicht für umsonst ;)....

kann ich ja nur hoffen,  dass du kein Berater Honorar dafür 
entgegennimmst  :) denn die Aussage stimmt so schon gar nicht mal.

Holger schrieb nämlich bereits:

> Wenn ich den direkt im HTTP Request auslese und ausgebe, stimmt der Wert
> immer, z.b. 111



Holger W. schrieb:
> Hallo,
> hat jemand von euch den ADC erfolgreich in Benutzung ?

Ja - kann mich nicht beschweren.

> Bin mit dem SDK 9.2.2 unterwegs und nutze read_ADC();
> Wenn ich den direkt im HTTP Request auslese und ausgebe, stimmt der Wert
> immer, z.b. 111
> Jetzt habe ich das Auslesen in einen 5 Sekunden Timer gelegt und bekomme
> andere, wechselnde Werte. Z.b. bei der gleichen Stellung mal 95, sehr
> oft 324 und zwischendurch auch mal 111.

Kommt auch darauf an, welchen Sensor du abfragst oder reiner Akkutest.


>
> Beide Varianten beschreiben die gleiche volatile uint16 Variable.
>
> Bin irgendwie ratlos...

was sagt denn esp8266.com dazu ? ;-)

..
..
..

SDK bis 0.9.1 beschrieb bisher, das man das Wifi Modem erst ausschalten 
muss    ( modem-sleep-mode ) wenn eine Messung am TOUT erfolgt, wie auch 
immer, das war bisher nicht implementiert bis SDK 0.9.1, aber eine 
Messung war möglich. In der nächsten Revision 0.9.2 wurde dann der API 
Command adc_read() eingefügt, damit wurden auch sämtliche Vorkehrungen 
von espressif getroffen:

system_adc_read()
schaltet das Wifi Modem aus (leichter ~peak )
ruft den adc wert ab und gibt ihn zurück
schaltet das Wifi Modem wieder an (leichter peak )

d.h.
es kann gar nicht in dieser zeit senden oder empfangen
richtige Aussage wäre:

Seit 0.9.2
Das Wifi Modem funktioniert nur, wenn adc_read() nicht gerade 
prozessiert.

viel wichtiger wäre auch dabei noch zu beachten:
- stabilisierte Stromversorgung
- die stabilisierte Referenzspannung ( Kondensator ! )
- alles auf gleichem GND ( kein Potential entstehen lassen! )


ADC_READ funktioniert bisher in meinen Anwendungen tadellos,
ich verwende aber kein Lua oder andere Interpreter, sondern das reine 
SDK, API und compiler.
z.B. bei einer hintereinander Abtastung im Takt von 10us bei 
Spannungsüberwachung  jeder der 8 Messungen
Erfolgreich im Einsazt mit einem HC4051 der dann 8 Kanäle ermöglicht, 
bei einer Umschaltung von 15! ns

Bei schneller Abtastung von Sensoren / am gleichem Sensor bedarf es 
zuvor einen Blick ins Datenblatt, nicht alle unterstützen schnelle 
Abtastung und brauchen für Mittelwert Bildung einen delay von 250 > 1000 
ms ( HCT11.. )
In der Zeit ist das Wifi durch den ADC_Read() blockiert ( 
sleep-modem-mode)  ( nicht andersrum markus!) und kann nicht bedient 
werden, aber es kann der Interrupt für Rx abgehandelt werden, wenn Daten 
in dieser Pause Zeit der Messung gesendet werden müssen Das unterstütz 
der API Command system_adc_read() selbst aber nicht! Daher muss man sich 
eine Routine einfallen lassen, die das abhandelt, wenn 
gesendet/empfangen  werden muss innerhalb grosser Pausen

z.B. Bisheriger älterer Beispiel Behelf Ansatz vor SDK 0.9.2
1
uint16 ICACHE_FLASH_ATTR adc_read(void) { 
2
uint8 i; 
3
uint16 sar_dout, tout, sardata[8]; 
4
5
rom_i2c_writeReg_Mask(0x6C,2,0,5,5,1); 
6
7
// disable interrupts.. 
8
SET_PERI_REG_MASK(0x60000D5C, 0x200000); 
9
while (GET_PERI_REG_BITS(0x60000D50, 26, 24) > 0); //wait r_state == 0 
10
sar_dout = 0; 
11
CLEAR_PERI_REG_MASK(0x60000D50, 0x02); //force_en=0 
12
SET_PERI_REG_MASK(0x60000D50, 0x02); //force_en=1 
13
14
os_delay_us(2); 
15
while (GET_PERI_REG_BITS(0x60000D50, 26, 24) > 0); //wait r_state == 0 
16
read_sar_dout(sardata); 
17
18
// sensor abhängig!!
19
// Could this be averaging 8 readings? If anyone has any info please comment. 
20
for (i = 0; i < 8; i++) { 
21
sar_dout += sardata[i]; 
22
} 
23
tout = (sar_dout + 8) >> 4; //tout is 10 bits fraction 
24
25
// 
26
// re-enables interrupts 
27
rom_i2c_writeReg_Mask(0x6C,2,0,5,5,1); 
28
while (GET_PERI_REG_BITS(0x60000D50, 26, 24) > 0); //wait r_state == 0 
29
CLEAR_PERI_REG_MASK(0x60000D5C, 0x200000); 
30
SET_PERI_REG_MASK(0x60000D60, 0x1); //force_en=1 
31
CLEAR_PERI_REG_MASK(0x60000D60, 0x1);//force_en=1 
32
return tout; //tout is 10 bits fraction 
33
}


hoffe es hilft.

moin moin
lg

rudi ;-)

von Holger W. (holgerw)


Lesenswert?

Mensch Rudi, da haste dich aber ins Zeug gelegt, Danke.

Also Randbedingungen:
stabile 3,3V mit Spannungsteiler auf 1 Volt an Poti.
Direkt am ADC Pin mit 100nF "stabilisiert".
Meine Tests sahen so aus, dass ich immer im Request direkt gemessen und 
ausgegeben habe, das sieht sehr gut aus, nur die letzte Stelle schwankt 
(normal).
Jetzt habe ich den Aufruf in einen SystemTimer gepackt, den rufe ich 
aller 5 Sekunden auf (Zeit mit LED auch nochmal geprüft).
Jetzt sind die Werte plötzlich ganz verschieden, nur "selten" wird der 
richtige Wert erwischt, ich glaub auch nicht das da immer der Funk 
dazwischenhaut.
Mit dem 9.2 bin ich mir jetzt gar nicht so sicher.
Ich habe eine adc.c, in der die Routine von dir oben hinterlegt ist.
Ich hab jetzt mal deine Routine oben reinkopiert, gleiches falsches 
Ergebnis.

system_adc_read ist in der user_interface.h Datei vorhanden, damit kann 
aber nicht compiliert werden(undefined reference to system_adc_read).

Die Variable die den Messwert bekommt ist volatile uint16.

Im Forum von esp8266.com hab ich auch eine Anfrage laufen...

Holger

von r_u_d_i (Gast)


Lesenswert?

Hallo Holger,

du schreibst zwar 0.9.2.2 ok - aber welche SDK Basis verwendest du zur 
Firmware Erstellung bzw hast du die 0.9.2.2 gepatcht oder ist das eine 
fertige AT Firmware von ai-thinker mit adc_read() als AT Command ?

Hatte anfangs das Problem, dass es niergends dokumentiert war, wie das 
Wifi Modem auszuschalten ist. Espressif schweigt heute noch dazu.

http://bbs.espressif.com/viewtopic.php?f=7&t=34#p120

Die adc.c sowie die Header adc.h braucht man ab 0.9.2 + patch nur 
bedingt -

http://bbs.espressif.com/viewtopic.php?f=7&t=16

Der Übergang Behelf "test function" war dann in der lib "libphy.a" 
welche dann mit "test_tout" lief und einen Wert zwischen 0 und 1024 
(1024 ja schon richtig )  für die 0-1v, espressif wollte nicht die 
abhandlung für das wifi modem preis geben - wie auch immer; test_tout(0) 
war dann ohne ausgabe am uart ( reiner return der function ) und 
test_tout(1) war dann mit uart ausgabe. In der neuen SDK floss dann nur 
der return der function ein.

1
Uint16adc_read(void) 
2
// war bisher - ( über die dir auch bekannten adc.c / adc.h )


wichtig beim patch sofern du den noch nicht eingebaut hast, sind dann 
auch verschiedene Einbindungen im Makefile und vorgehensweise:

1.Ersetzen der libphy.a im sdk/lib ordner
2.Hinzügen der libpp.a in den sdk/lib ordner
3.Ändern Makefile SDK/APP/MAKEFILE
4.und hinzufügen "-lpp \" wie hier
-lgcc
-lhal
-lpp
-lphy
-lnet80211
-llwip
-lwpa
-lmain
-lssc
-lssl



und ab 0.9.3
1
Uint16 system_adc_read(void)

war das dann auch schon geschichte.

http://bbs.espressif.com/viewtopic.php?f=5&t=53

und "system_adc_read()" wurde in der API aufgenommen. Dadurch brauchte 
man adc.c.nicht mehr und konnte es löschen.

Hoffe es hilft.


lg
rudi ;-)

von Holger W. (holgerw)


Lesenswert?

Hallo Rudi,
habe eben mal den Patch oben gemacht und es scheint zu funktionieren.
Ich verwende den test_out(0) und die Werte sind stabil.

Muss das mal langsam angehen auf neuer Version umzustellen, aber bisher 
war ich recht zufrieden.

Vielen Dank !

Holger

von News? (Gast)


Lesenswert?

V. K. schrieb:
> Ronny S. schrieb:
>> Dirk K. schrieb:
>>> Ich sehe zudem nicht, wo meine Einwürfe aggressiv wären. Die sind
>>> schlicht emotionslos sachlich und ohne viel Schmuck.
>>
>> Also das ist ja nun echt ein Witz,dann schau Dir mal Deine ersten
>> Beiträge hier in diesem Thread an, wie arrogant und aggressiv Du
>> wirklich bist.
>
> Da kann man Ronny nur zustimmen.
>
> Der Stress oben wurde ja durch Dirk selber verursacht mit seiner art und
> weise.
>
> Aber ist ja auf den ersten Seiten für aller lesbar wie der gute Dirk
> wirklich Tickt.
>
> mfg

OT:
Tatsächlich, geschickte Selbstgespräche, auf dem ersten Blick glaubt man 
es kaum. Seltsam.

Thread:
Wer kann etwas zum neuen Espressif Modul und dessen Evalboard sagen?
Aliexpress führt es in weiss aber ohne Beschreibung.

von ESP (Gast)


Lesenswert?

News? schrieb:
> Wer kann etwas zum neuen Espressif Modul und dessen Evalboard sagen?
> Aliexpress führt es in weiss aber ohne Beschreibung.

Ein neues Modul, klingt interessant... Könntest du es bitte verlinken?

von TimoS (Gast)


Lesenswert?


von schwiete (Gast)


Lesenswert?

Hallo,

habe eine Frage zum Datendurchsatz des ESP8266 bei TCP. Mit meinem 
Aufbau ESP8266 <-> AP(Speedport) <-> PC berägt der Datendurchsatz 1700 
Byte/s. Es wurden Testdaten der Länge 512 Byte gesendet. Hat jemand eine 
Konfiguration mit einem deutlich besseren Datendurchsatz?

Gruß
schwiete

von Stefan F. (Gast)


Lesenswert?

Das ESP-01 Modul mit der AT-Firmware 0.9 übertrag maximal 10 Pakete pro 
Sekunde mit jeweils maximal 1024 Bytes Nutzdaten.

Bei deiner Paketgröße sollten maximal 5kB/sec zu erwarten sein.

1,7kB/sec ist da schon enttäuschend.

von Stefan F. (Gast)


Lesenswert?

Wenn du auf einer Verbindung mehrere Pakete nacheinander sendest, könnte 
der "nagle" Algorithmus von Windows störend wirken.

Windows erwartet, viele Pakete hintereinander zu empfangen, ohne jedes 
einzelne mit ACK zu bestätigen. Viele mini IP-Stacks (auch der vom ESP 
Modul) erwarten jedoch ein ACK für jedes einzelne Paket, was zu 200ms 
Verzögerung zwischen jedem Pakt führt.

Wenn du das Windows Programm selbst schreibst, dann such mal nach einer 
Möglichkeit, die option TCP_NODELAY zu setzen, die schaltet diesen Delay 
nämlich ab.

Früher konnte man das auch mal durch einen Registry Eintrag 
beeinflussen, aber das geht seit Windows 7 leider nicht mehr.

https://msdn.microsoft.com/de-de/library/system.net.sockets.tcpclient.nodelay%28v=vs.110%29.aspx

Linux ist auch betroffen, aber nicht so stark, weil Linux einen kürzeren 
Timeout hat.

Alternativen:
a) Benutze UDP Protokoll statt TCP
b) Baue für jedes Paket eine neue Verbindung auf, geht schneller als 
200ms lang zu warten.

von Jojo S. (Gast)


Lesenswert?

ich habe Daten über eine UDP Verbindung geschickt und komme auch nur auf 
5 Pakete/s. Ein solches Limit kommt nicht vom UDP und muss irgendwo tief 
in dem Modul stecken, im Code aus dem SDK habe ich so ein delay nicht 
gefunden.
Im Espressif Forum gibt es zum TCP eine ähnliche Meldung, ebenfalls das 
200 ms Pause zwischen Paketen ist. Bei kleinen Paketen kann der Nagle 
Algorithmus das verursachen, wenn der Gegner die Daten erst nach 200 ms 
quittiert schickt das ESP vorher keine neuen (nicht genug Speicher für 
grösseren Buffer). Es hilft wohl nur die Pakete auf die max Grösse von 
2048 Byte zu bringen, die grosse Latenzzeit bleibt aber.

von Max H. (hartl192)


Lesenswert?

schwiete schrieb:
> Hat jemand eine
> Konfiguration mit einem deutlich besseren Datendurchsatz?
Ich habe einen selbstgeschriebenen Webserver (http) und übertrage ein 
ca. 7kB JPG (8 Pakete a <= 1kB) in ca. 1 Sekunde (gestoppt von drücken 
der F5 Taste bis die Website geladen ist).

Konfiguration:

ESP-12 ---WLAN--- Netgear DGN2200 ---WLAN-- Win 8.1 Notebook

: Bearbeitet durch User
von schwiete (Gast)


Lesenswert?

Hallo,

vielen Dank für die Tipps. UDP geht bei mir mit 4000Byte/s, schon eher 
zu gebrauchen. Die Connection für jedes Paket aufzubauen hat es leider 
nicht gebracht. Das NO_DELAY bekomme ich ein meiner steinalten Delphi 
Komponente auch nicht so leicht eingebaut. Möchte demnächst auf Delphi 
XE umsteigen um damit auch SW für iPhone und Android zu bauen. Sind bei 
iPhone und Android ähnliche Probleme zu erwarten?

Was hat denn wohl User tinman (Datum: 26.10.2014 19:01) gemacht um auf 
so sagenhaft Datenraten zu kommen?

Gruß
schwiete

von Frank (Gast)


Lesenswert?

Hi,
hat schon mal wer n FT800 dran angeschlossen und zum Laufen gebracht? 
Stell mir vor, mit den Modulen n kleines Mesh Netzwerk auf zu bauen. Von 
FHEM kontrolliert und mit dem FT800 einzelne Mesh-Knoten mit LCD und 
Touch einzubinden.
Nur so als Idee ;)

Frank

von R. W. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo erstmal :)

Es gibt viele News!

a) die SPI ID Daten sind jetzt über das Download Tool abrufbar
b) RF kann konfiguriert werden, d.h.i.K. "siehe Bild"..
c) Multidownload für mehrere Devices gleichzeitig
d) TOUT_ADC_EN / TOUT_VDD_EN kann gewählt werden
e) TEST MODE ( noch deaktiv ) für verschiedene MHz Frequenzen ( Kanäle )
f) Flash Size wurde auf max ausgebaut
g) ... viele weitere Sachen

Info1:
http://bbs.espressif.com/viewtopic.php?f=5&t=433

Info2:
http://bbs.espressif.com/viewtopic.php?f=7&p=1660#p379

lg
rudi ;-)

von r_u_d_i (Gast)


Lesenswert?

MP3 Decoder mit dem ESP8266

Schönen Sonntag,

es gibt wieder ein paar News,

Der ESP8266 goes MP3 320 Kbit. Der Code ist auf Github.
Bevorzugt werden weitere zwei IC Bausteine,
- SPI RAM 128 KByte von Microchip 23LC1024
- I2C IC MP3 Decoder wie den ES9023 ( aber auch andere gehen ) .

Beschreibung, Pin Belegung usw. findet ihr im Readme.

I2S Sound output and MP3 decoding in an ESP8266

http://bbs.espressif.com/viewtopic.php?f=15&t=553&p=2069#p2069

Code:

https://github.com/espressif/esp8266_mp3_decoder

lg
rudi ;-)

von Holger W. (holgerw)


Lesenswert?

Nicht schlecht, darauf hab ich schon irgendwie gewartet.
Da muss ich mir mal die beiden Chips besorgen. Den RAM zu verdrahten 
wird wohl eine Herausforderung (von einem ESP 03/12 Modul aus).

Holger

von r_u_d_i (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Holger
moin moin ..

die Geschichte funktioniert auch ohne den beiden zusätzlichen chips.
( Kopfhörer, Line in in eine StereoAnlage )  einfach den GPIO02 an beide 
Kanäle L und Rechts, sowie den anderen Pol (GND )  auf RX legen.

Kannst heute alles noch sofort ausprobieren:

Trival hab ich mal einen Windows Stream Server angehangen,
nichts besonderes, ist gestern Nacht schnell entstanden ;-) und noch 
lange nicht ausgereift, ( Verbindungs - Fehler werden noch nicht alle 
abgefangen ) aber zum probieren reicht es:

Du kannst auch IIS oder Apache oder.. verwenden, die Anforderung vom ESP 
ist "HTTP://192.168.1.112/031.mp3";

Der trivale Server wartet auf ein Request ( egal welcher, wenn einer 
reinkommt gibt er den Stream zurück )

je nach makierten "File" Streamt er dann die Datei zurück.

example.
Die Dateien sind bei mir

( pascal )

case choiceidx of
0: Filename := "031.mp3"
1: Filename := "032.mp3"
2: Filename := "033.mp3"
3: Filename := "034.mp3"
end;

Wenn Du das mal ausprobieren willst, dann in das Verzeichnis wo der 
Server liegt, 4 mp3 Files kopieren, so benennen ( 031.mp3 ...034.mp3 ) 
und jetzt in dem Fall mit dem Example, sind es dann wie in der Groupbox 
benannt.

wenn der ESP dann connected hat ( connected in dem Beispiel auf 
192.168.1.112 ) , und der Stream läuft,
dann setze auf einen anderen Groupeintrag, z.b. 032.mp3, der nächste 
Request bekommt dann 032.. usw.

Dieses Auswählen wird später autark vom ESP gemacht (idx wird mitgesandt 
) und/oder über AT oder einem TCP Server der auf dem ESP läuft 
realisiert.. ( gibt es schon weitere Sachen, aber mehr erst später ) .
Connecte einen zweiten ESP. der bekomt dann den anderen Eintrag usw..
oder resete den ersten ESP, dann bekommt der den anderen Eintrag.
Immer der Steam wird gesendet, der zum Request Zeitpunkt makiert ist.

Um das auszuprobieren auf die schnelle:

Der ESP,  hab ich jetzt mal so eingeschrieben in die FW ,  will zu
1
SSID: MIKROCONTROLLERNET
2
PWD : MIKROCONTROLLERNET

Der WIFI AP sollte dann für den WIFI Server und dem ESP so erreichbar 
sein.
( * Anmerkung )

4 mp3 Files , bennen nach 031.mp3 ... 034.mp3
das Serverfile in ein Verzeichnis kopieren.

die PC Wifi IP  auf 192.168.1.112 stellen sodass der Server auf 
192.168.1.112 lauschen kann.
Den Server starten und online klicken, wenn er bereit ist, dann wird es 
grün.

1. Test
Windows Media Player starten
Link ( ohne weitere Documente ) aufrufen: http://192.168.1.112
der Server sollte jetzt das File streamen und der Media Player spielen.

2. Test
ESP flashen
Blank.bin auf Adresse 0x7E000
Blank.bin auf Adresse 0xFE000
0x00000.bin auf Adresse 0x00000
0xA0000.bin auf Adresse 0xA0000

Das neueste ESP Flash Tool holen . Aktuell V 1.2
ESP01..03..07..12 usw, also die erste Generation mit den noch kleinen 
SPI Flash die es bisher gab und die du normalerweise auch hast, 
Einstellen auf
Flash Size 8 mbit ( ja schon richtig ) , ansonsten alles Standard (26M, 
40MHz, QIO) (ESP-12 / ESP-01 ) habe ich jetzt für das verwendet.

Start Fash.

Eine Serielle Konsole ( TX vom ESP auf RX usb2Seriell adapter ) und Com 
Port öffnen ( 115200 )
ESP reset Knopf, und die Logs erscheinen auf dem Terminal
..scannt Wifi und sucht eingetragene SSID: Micorocontroller
..findet und verbindet sich damit
..versucht den Server zu kontaktieren ( 192.168.1.112 )
..macht einen Request
und buffert sich die MP3 Happen
und ;-)

"Musik liegt in der Luft"



Viel Spass!!!

lg rudi ;-)


( *Anmerkung )
Einen zweiten ESP nehmen, Server aufbauen, eingehendes ADC/PWM ( Mikro ) 
codieren ( MP3 )
und auf request streamen ( BABYphone ) . Gegensprechanlage ..

...
Hoffe man kommt zurecht mit der schnellen Beschreibung. Hab heute ( die 
Woche )  leider weniger Zeit.
Das Resultat wird eine Ergänzung.

von Holger W. (holgerw)


Lesenswert?

Hallo Rudi,
ich hab es auf Anhieb auch geschafft das Paket von hier 
https://github.com/espressif/esp8266_mp3_decoder
zu compilieren (ok... war nicht weiter schwer) und dort das Webradio in 
Betrieb genommen. Kopfhörer dran und ja, erste Hörprobe war ok.
Muss jetzt mal testen wie es ohne den RAM auskommt (evtl. stottern) und 
wie die Qualität ist

Holger

von Holger W. (holgerw)


Lesenswert?

Ich hab gestern mal etwas getestet.
Mein Radiosender mit 128kbps hat mehrfach pro Minute kurze 
Buffer-Unterläufe, das macht sich mit Aussetzern bemerkbar. Die Qualität 
ist doch recht bescheiden, alles sehr verrauscht. Aber trotzdem eine 
tolle Leistung, das so aus dem Chip zu bekommen.
Ich bestelle mir jetzt mal den RAM, den kann man ja auf den bestehenden 
Flash huckepack auflöten und nur CS zum GPIO führen.
Den DAC ES9023 hab ich so richtig nicht gefunden ausser bei Ali glaub 
ich.
Es wird zwar beschrieben es funktionieren auch andere, aber da hab ich 
überhaupt keine Erfahrungen.

Holger

von r_u_d_i (Gast)


Lesenswert?

https://github.com/espressif/esp8266_mp3_decoder

Moin moin,

Es ist nun eine bessere Version online, die besser buffert,
auch wurde die Pin Beschreibung überarbeitet.
Ein Bug wurde beseitigt, und es kann sich echt sehen (hören)
lassen.

Schaut mal auf You Tube, ESP8266 MP3, Tobias Mädel hat einen anderen DAC
benutzt, und läuft sichtlich auch gut.

DAC TDA 1543 ( leider schon lange abgekündigt )

https://www.youtube.com/watch?v=PqVXMLRurUs
https://www.youtube.com/watch?v=JsRsNDIBQsM

lg
rudi ;-)

ps: Wer andere DAC's probiert hat, bitte Ergebnis/Bezugsquellen posten,
den PI RAM Microchip 23LC1024 scheint es auf die schnelle 'nur' bei dem 
grossen C zu geben, wer günstigere Quellen kennt, bitte posten, danke!

von r_u_d_i (Gast)


Lesenswert?

http://bbs.espressif.com/viewtopic.php?f=5&t=592

Sorry for Push, das hat er mir abgeschnitten im PS.

Für alle die auch darauf gewartet haben:

beta version mesh based esp_iot_sdk_v1.1.0

steht schon seit Freitag online.

lg
rudi ;-)

von r_u_d_i (Gast)


Lesenswert?

Hi

kurze Info und Verweis auf den Start Thread.
Beitrag "ESP8266 SD Card / AES256"
Die Lib und Infos gibts im Thread.
Doku und Videos folgen.

lg rudi ;-)

von R. W. (Gast)


Angehängte Dateien:

Lesenswert?

Kurze pers. Info und Scherzfrage aus dem Mailverkehr:

Wegen der Problematik, den Code auch schützen zu können, wurde von einem 
ESP8266 UNIT Hersteller über den Support von Espressif in Erfahrung 
gebracht, dass die Jungs vom Espressif Team an einem Ansatz arbeiten und 
in 3 Monaten mehr darüber berichten und von ihm so mitgeteilt.

Es soll u.a. die Idee mit SDHC aufgegriffen worden sein und eine SDIO 
Version mit Code Protection und Booten von SD Card heraus gebracht 
werden, vermutlich wird es dann auch neue Module 'zur Weihnachtszeit' 
geben oder die  'alten' können wiederverwendet werden.

Das ist aber reine Spekulation - da keine Infos von Espressif fliessen.

http://bbs.espressif.com/viewtopic.php?f=49&t=965
http://bbs.espressif.com/viewtopic.php?f=6&p=3264#p3264

Der ESP8266 UNIT Hersteller ( seine Worte millionenfache Auflage ) will 
aber nicht so lange warten; er will Details haben, die er auch 
honorieren will, es gibt noch einen weiteren , ein "payment" Anbieter, 
der sich dafür interessiert. *)

Beachtet bitte beim neuem ESP-12 mit 32MBit, dass es zwei Versionen 
gibt, die eine (12D) unterstützt  den SDIO die andere (12E) nicht, 
Unterschiede sieht man in einem Hersteller Handbuch, Seite wurde 
attached.


*)
hoffe, dass sowas nicht unter Landesverrat steht ? - oder doch ?
;-)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

R. W. schrieb:
> die eine (12D) unterstützt  den SDIO die andere (12E) nicht

Entweder so oder anders rum: Die Fußnote heißt vielleicht, dass die Pins 
nicht als GPIO genutzt werden können, weil sie für SD_DATA2 und SD_DATA3 
benötigt werden.

von r_u_d_i (Gast)


Lesenswert?

Torsten C. schrieb:
> R. W. schrieb:
>> die eine (12D) unterstützt  den SDIO die andere (12E) nicht
>
> Entweder so oder anders rum:

daher aufpassen! das thema war im mai schon bekannt.

ESP12
ESP12D
ESP12E


> Die Fußnote heißt vielleicht, dass die Pins
> nicht als GPIO genutzt werden können, weil sie für SD_DATA2 und SD_DATA3
> benötigt werden.

◦Based on ESP8266 Wifi IC, a new version of ESP-12.
.............................^^^^
◦Add extra I/Os and SPI pin interfaces: MTDO, MTDI, SD_3, MTMS, MTCK, 
SD_2 (GPIO10, GPIO9, CLK, CS, DI, DO)
◦The rest foot price and size remains same with ESP-12,


Fake - Real - noch besser erklärt
http://www.esp8266.com/viewtopic.php?f=5&t=3163

von r_u_d_i (Gast)


Lesenswert?

r_u_d_i schrieb:
> MP3 Decoder mit dem ESP8266

@Rufus T. Firely
@Bernd

z. Information: ESP8266 MP3 Eintrag vom Juni 2015 -

..



>
> Schönen Sonntag,
>
> es gibt wieder ein paar News,
>
> Der ESP8266 goes MP3 320 Kbit. Der Code ist auf Github.
> Bevorzugt werden weitere zwei IC Bausteine,
> - SPI RAM 128 KByte von Microchip 23LC1024
> - I2C IC MP3 Decoder wie den ES9023 ( aber auch andere gehen ) .
>
> Beschreibung, Pin Belegung usw. findet ihr im Readme.
>
> I2S Sound output and MP3 decoding in an ESP8266
>
> http://bbs.espressif.com/viewtopic.php?f=15&t=553&p=2069#p2069
>
> Code:
>
> https://github.com/espressif/esp8266_mp3_decoder
>
> lg
> rudi ;-)

von schwiete (Gast)


Lesenswert?

schwiete schrieb:
> schwiete

Hallo,

wenn man die Paketgroesse auf 2048 Byte vergroessert erhoeht sich die 
Uebertragungsgeschwindigkeit von 2290 Byte/s auf 494611 Byte/s. Sieht so 
aus als wenn erst mit der Ueberschreitung der Standard TCP Paketlaenge 
von 1518 Byte der Nagle Algorithmus deaktiviert wird.

Gruß
schwiete

von Markus B. (rusticus)


Lesenswert?

Gibt es hier schon News zum neuen Chip, dem ESP32?

Beitrag #6878805 wurde von einem Moderator gelöscht.
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.