Forum: Mikrocontroller und Digitale Elektronik UDP-Netzwerke(l)n mit kleinen Mikrocontrollern und WizNet W5100/W5500


von Wastl (hartundweichware)



Lesenswert?

Interessiert das hier jemanden?

Ich versuch es einmal .... es kann ggf. noch einiges mehr kommen.

Kleine Mikrocontroller haben keinen eingebauten MAC und sind damit erst
mal nicht einfach ethernet-fähig, Aber es gibt ja die Ethernet/TCP-
Controller von WizNet die einem das Anbinden von kleinen Controllern
ans Heimnetzwerk ermöglichen.

Hier ein Testprogramm für Arduino Uno und dem Wiznet W5100 (Arduino-)
Shield. Genauer genommen für einen Mega328P mit angeschlossenem W5100.
Man kann damit UDP Daten testweise senden und empfangen. Weiterhin kann
man alle Konfigurationsdaten im EEPROM speichern und damit ohne
Tipparbeit mühelos auf seine eigene Konfiguration zurückgreifen.

Das Programm enthält keinen Arduino-Code, Arduino ist nur die Hardware-
Basis für die eigene Kreation.

Zum Betrieb braucht man ein Terminal-Programm mit VT100-Fähigkeit.
Im folgenden Beitrag wird das Programm gepostet.

von Wastl (hartundweichware)



Lesenswert?

Hier nun der Programmcode.
Das Bild um zu signalisieren für welche Hardware das gedacht ist.

von Flip B. (frickelfreak)


Lesenswert?

Kann wohl notfalls auch ohne Controller und Transceiver klappen: 
https://www.youtube.com/watch?v=m4f4OzEyueg
https://github.com/cnlohr/ethertiny

: Bearbeitet durch User
von Harry L. (mysth)


Lesenswert?

Ohne Source irgendwie sinnfrei in diesem Forum.

Trau dich!

Mehr als zerreißen kann man den nicht.

von Wastl (hartundweichware)


Lesenswert?

Harry L. schrieb:
> Trau dich!

Wird nicht passieren. In diesem "einfachen" Programm steckt eine
Menge Arbeit drin, für deren Aufwand niemand bereit ist etwas in
irgendeiner Form zurückzugeben.

von Harry L. (mysth)


Lesenswert?

Wastl schrieb:
> Harry L. schrieb:
>> Trau dich!
>
> Wird nicht passieren. In diesem "einfachen" Programm steckt eine
> Menge Arbeit drin, für deren Aufwand niemand bereit ist etwas in
> irgendeiner Form zurückzugeben.

Dann bau einen Vertrieb dafür auf, und werde reich damit!
Wenn das läuft, hast du sowieso keine Zeit mehr, hier zu schreiben.

Würden alle so denken, gäbe es keine OpenSource-Software, und ausserdem 
zeigt das imho auch, was du über all die anderen Mitglieder dieses 
Forums denkst (z.B. Peter Dannegers Code-Schnippsel, in denen 
-nachvollziehbar- einiges an Code steckt, der sicher auch nicht an einem 
WE entstanden ist).

Aber schön, daß du "Super-Experte" zu jedem geposteten Code deinen Senf 
dazu gibt.

Sicher denkst du auch noch, man müsse dir dafür dankbar 
sein....*kopfschüttel*

von Hobby B. (bastler2022)


Lesenswert?

Wastl schrieb:
> Interessiert das hier jemanden?

Hört sich nach µIP oder darauf basierenden Ethersex-Projekt-Erweiterung 
an. Konfigurations-Webseite, nicht vorhanden da zu wenig Speicher, 
deshalb Daten dafür im EEProm abgelegt.

Interessant ja aber ob noch Zeitgemäß muss jeder für sich entscheiden. 
Da aber nur Hex und kein Code vorliegt, warum auch immer. Wird wohl in 
Bascom sein.
Ist mein Interesse, z.B. schon gesunken. Ist aber nur meine Private 
Meinung dazu.

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Wastl schrieb:
> Harry L. schrieb:
>> Trau dich!
>
> Wird nicht passieren. In diesem "einfachen" Programm steckt eine
> Menge Arbeit drin, für deren Aufwand niemand bereit ist etwas in
> irgendeiner Form zurückzugeben.

Warum veröffentlichst du dann den Hex-Code? Warte, bis jemand einen 
Disassembler anwirft ;)

von Sebastian R. (sebastian_r569)


Lesenswert?

Wastl schrieb:
> Hier nun der Programmcode.

Dann liefer' auch den Code. So hat da niemand einen Mehrwert von.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Wastl schrieb:
> niemand bereit ist etwas in
> irgendeiner Form zurückzugeben.

Unzählige Leute haben hier und in anderen Foren ihr Wissen und ihren 
Code freigegeben. Das ist ist das übliche soziale Verhalten in Foren.

von Sebastian R. (sebastian_r569)


Lesenswert?

Sieht auf den ersten Blick aus, wie das UDP-Beispiel, das bei der 
Arduino Ethernet Library dabei ist:
https://github.com/arduino-libraries/Ethernet/blob/master/examples/UDPSendReceiveString/UDPSendReceiveString.ino

von Wastl (hartundweichware)



Lesenswert?

Hier die Version des UDP Testers für den Arduino Uno auf dem
der W5500 integriert ist.

von Wastl (hartundweichware)


Lesenswert?

Hobby B. schrieb:
> Hört sich nach µIP oder darauf basierenden Ethersex-Projekt-Erweiterung
> an. Konfigurations-Webseite, nicht vorhanden da zu wenig Speicher,
> deshalb Daten dafür im EEProm abgelegt.

Sebastian R. schrieb:
> Sieht auf den ersten Blick aus, wie das UDP-Beispiel

Bei solchen Beiträgen erkennt man sofort die Leute die sich
damit wirklich auskennen.

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

Wastl schrieb:
> Bei solchen Beiträgen erkennt man sofort die Leute die sich
> damit wirklich auskennen.

Es ist halt schwer, deinen Aufwand und deinen Intellekt zu würdigen, 
wenn alles, was wir dazu sehen ein Foto einer leuchten LED und ein 
Hex-File sind, mit dem niemand etwas anfangen kann.

Was genau erwartest du denn von deinem Beitrag? Mit welcher Intention 
hast du ihn veröffentlicht?

von Wastl (hartundweichware)


Lesenswert?

Sebastian R. schrieb:
> Mit welcher Intention hast du ihn veröffentlicht?

Allein die Frage zeigt dass du nichts verstanden hast. Ich
biete ein Werkzeug an, ein Tool das einem die Detektion und
Kommunikation im Netzwerk ermöglicht. Also eine Funktions-
überprüfung für das UDP Protokoll. ... das steckt bereits
im Namen "UDP Tester" drin.

Wer kein Netzwerk-Tool braucht, der braucht es eben nicht.
So einfach ist das.

Sebastian R. schrieb:
> mit dem niemand etwas anfangen kann.

Jemand, der eine Netzwerk-Kommunikation implementieren will
und in der Not ist dass nichts funktioniert, kann sehr wohl
etwas damit anfangen. Du natürlich nicht da du sowieso nichts
verstanden hast.

von Sebastian R. (sebastian_r569)


Lesenswert?

Wastl schrieb:
> Allein die Frage zeigt dass du nichts verstanden hast.

Ah, Gatekeeping - Nice!

Wastl schrieb:
> Du natürlich nicht da du sowieso nichts
> verstanden hast.

Doch. Ich habe verstanden, dass ich weiterhin Wireshark für meine 
Netzwerkprobleme nutze und dein Projekt für Leute, die versuchen, etwas 
mit dem W5500 und einem Arduino zu machen, weder gedacht noch nützlich 
ist.

Wo könnte ich denn den CS-Pin des W5500 ändern, wenn ich deinen geilen 
Tester auf eigener Hardware testen wollen würde?

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Wastl schrieb:
> Wird nicht passieren. In diesem "einfachen" Programm steckt eine
> Menge Arbeit drin, für deren Aufwand niemand bereit ist etwas in
> irgendeiner Form zurückzugeben.

Was würdest du denn für den Code haben wollen? Wer ist denn der typische 
Kunde dafür? Was sagt die Marktanalyse?

von Wastl (hartundweichware)


Lesenswert?

Sebastian R. schrieb:
> Ich habe verstanden, dass ich weiterhin Wireshark für meine
> Netzwerkprobleme nutze

Dann brauchst du auch keinen "CS Pin ändern", wobei die Chance
gering ist dass der Code überhaupt auf einem anderen Controller
laufen kann.

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Wastl schrieb:
> Harry L. schrieb:
>> Trau dich!
>
> Wird nicht passieren. In diesem "einfachen" Programm steckt eine
> Menge Arbeit drin, für deren Aufwand niemand bereit ist etwas in
> irgendeiner Form zurückzugeben.

Ich tausche meine USB-Implementation für STM32F1 gegen den Code deines 
UDP-Testers. Deal?

von Sebastian R. (sebastian_r569)


Lesenswert?

Wastl schrieb:
> Dann brauchst du auch keinen "CS Pin ändern", wobei die Chance
> gering ist dass der Code überhaupt auf einem anderen Controller
> laufen kann.

Wenn man den Code hätte, könnte man ihn ja für einen anderen Controller 
kompilieren und dabei sogar noch seine Hardware-Konfiguration anpassen.

von Wastl (hartundweichware)


Lesenswert?

Niklas G. schrieb:
> Was würdest du denn für den Code haben wollen? Wer ist denn der typische
> Kunde dafür? Was sagt die Marktanalyse?

An solche Gedanken habe ich keine Zeit verschwendet und werde es
auch weiterhin nicht tun. Meine Arbeit ist der Spass an der Freud'
und der Nutzen für meine anderen Vorhaben.

Niklas G. schrieb:
> Ich tausche meine USB-Implementation für STM32F1 gegen den Code deines
> UDP-Testers.

Du brauchst als "professioneller" Programmierer keinen Sourcecode
(m)eines UDP Testers. Die Basics (nicht Basic) Sourcen gibt es
von Wiznet, den Rest kannst du dir leicht selbst und ganz
alleine schreiben. Ich kann nicht erkennen welchen Reiz meine
Implementierung für dich haben sollte, wo doch von anderer Seite
auch jede Menge Abwertung dazu geäussert wird.

von Sebastian R. (sebastian_r569)


Lesenswert?

Wastl schrieb:
> den Rest kannst du dir leicht selbst und ganz alleine schreiben.

oder

Wastl schrieb:
> In diesem "einfachen" Programm steckt eine Menge Arbeit drin

Du musst dich schon entscheiden.

von Wastl (hartundweichware)


Lesenswert?

Sebastian R. schrieb:
> Du musst dich schon entscheiden.

Nö, muss ich gar nicht.

Ich biete hier ein kostenloses Tool zur freien Verwendung an,
da muss ich sonst gar nichts.

Nur stehen die Leute hier Schlange mir zu sagen dass ich noch
weitere Verpflichtungen habe. Dann sollte ich mich vielleicht
noch für Dies und Das rechtfertigen ....

Im Prinzip sollte ich ja nach Meinung mancher Leute noch dankbar
sein dass ich hier etwas zur Nutzung kostenlos hergeben darf.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Wastl schrieb:
> Meine Arbeit ist der Spass an der Freud'
> und der Nutzen für meine anderen Vorhaben.

Aber dennoch beschwerst du dich dass du nichts zurückbekommen würdest:

Wastl schrieb:
> für deren Aufwand niemand bereit ist etwas in
> irgendeiner Form zurückzugeben.

Also offenbar geht's nicht nur um den Spaß an der Sache.

Wastl schrieb:
> Die Basics (nicht Basic) Sourcen gibt es
> von Wiznet, den Rest kannst du dir leicht selbst und ganz
> alleine schreiben.

Ich dachte das ist so ein aufwendiges Projekt:

Wastl schrieb:
> n diesem "einfachen" Programm steckt eine
> Menge Arbeit drin

Wastl schrieb:
> Ich kann nicht erkennen welchen Reiz meine
> Implementierung für dich haben sollte

Mehr als ein hex-File das nur auf einer ganz bestimmten Hardware 
funktioniert.

von Richard W. (richardw)


Lesenswert?

Wastl schrieb:
> Kleine Mikrocontroller haben keinen eingebauten MAC und sind damit erst
> mal nicht einfach ethernet-fähig, Aber es gibt ja die Ethernet/TCP-
> Controller von WizNet die einem das Anbinden von kleinen Controllern
> ans Heimnetzwerk ermöglichen.

Wenn es um Netzwerkanbindung geht, haben kleine Microcontroller ohne MAC 
mit der breiten Verfügbarkeit der unglaublich billigen ESP32 für mich 
ihren Reiz weitgehend verloren. Ich habe seit Jahren privat keinen 
ATMEGA mehr angefasst.

von Sebastian R. (sebastian_r569)


Lesenswert?

Wastl schrieb:
> Ich biete hier ein kostenloses Tool zur freien Verwendung an,
> da muss ich sonst gar nichts.

Wie unendlich gütig und großherzig von dir!

Da ich anscheinend zu dumm bin, es zu verstehen:
Was genau bringt mir ein Tool, das eine sehr spezielle Hardware benötigt 
und mir dann einen sehr eingeschränkten und spezifischen Funktionsumfang 
liefert?

Wer ist deiner Ansicht nach die Zielgruppe und worin liegen die Stärken 
deines Tools z.B. gegenüber von Wireshark oder gegenüber 
**quelloffener** Bibliotheken für z.B. Arduino?

Es mag ja sein, dass du interessante Probleme damit programmtechnisch 
gelöst hast und es eine tolle Herausforderung war und du viel dabei 
gelernt hast. Aber hier einfach nur ein paar Fotos und ein erstmal 
nutzloses Hex-File ohne weiteren Kontext zu liefern und dafür 
Dankbarkeit zu erwarten scheint nicht so geklappt zu haben.

Selbst wenn du deine Quelltexte nicht offenlegen möchtest (was ja gute 
Gründe haben kann), kannst du doch zumindest die Herausforderungen 
schildern, wie du sie gelöst hast, welche Benchmarks (Datendurchsatz, 
Speicherverbrauch,...) du erreichst,... Damit hätte man doch wenigstens 
eine Grundlage mit der man deine Leistung erkennen und anerkennen 
könnte.

Aber so? Deine Arbeit, das Hex-File und dein Beitrag sind völlig nutzlos 
für die Öffentlichkeit. So leid mir das auch tut.

: Bearbeitet durch User
von Ein T. (ein_typ)


Lesenswert?

Arduino F. schrieb:
> Wastl schrieb:
>> niemand bereit ist etwas in
>> irgendeiner Form zurückzugeben.
>
> Unzählige Leute haben hier und in anderen Foren ihr Wissen und ihren
> Code freigegeben. Das ist ist das übliche soziale Verhalten in Foren.

Wo Menschen Wissen teilen, ist Schmarotzen ein übliches asoziales 
Verhalten.

Mach' Dir nichts draus, es ist sein Code, und deswegen auch sein gutes 
Recht, ihn mit ins Grab zu nehmen, oder was auch immer junge Menschen 
heutzutage mit soetwas machen. Aber das hier ist ja keine 
Einbahnstrasse, und wenn er einmal Fragen hat, wird man sich daran 
erinnern. ;-)

von Sigi S. (sermon)


Lesenswert?

> Du brauchst als "professioneller" Programmierer keinen Sourcecode
> (m)eines UDP Testers. Die Basics (nicht Basic) Sourcen gibt es
> von Wiznet, den Rest kannst du dir leicht selbst und ganz
> alleine schreiben. Ich kann nicht erkennen welchen Reiz meine
> Implementierung für dich haben sollte, wo doch von anderer Seite
> auch jede Menge Abwertung dazu geäussert wird.

Da knurrt doch der Blindenhund:

https://benshobbycorner.nl/bzijlstra/software/examples/wiz810mj.htm

: Bearbeitet durch User
Beitrag #7995582 wurde vom Autor gelöscht.
von Sigi S. (sermon)


Lesenswert?

ChatGPT hat das 5 Minuten analysiert.
Weist auf Arduino Code hin und hat mir einen “1:1” Arduino Code aus dem 
Hexfile erstellt. Etwa 4 DIN A 3-4 Seiten…

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Das einer der nutzlosesten Thedas, die ich je bemerken durfte!
Einer der berühmten Freitagsthreads.

Drei Gummipunkte dafür...

von Wastl (hartundweichware)



Lesenswert?

Hier die Weiterführung des "Freitagsthreads".

Nun die grössere Version des UDP Testers - für den Mega2560.

Leider erlaubt der Mega328 aufgrund seines kleinen RAM nur recht
wenig Funktionalität, beim Mega2560 ist das wesentlich entspannter.

Hier gibt es neben der UDP Funktionalität (Konfiguration, Testdaten
Senden, Empfangen und Echo) noch DHCP (Adressierbarkeit über
wählbaren Device-Namen, ein-/ausschaltbar) und Ping (ICMP Echo
Request) sowie einen Address Selector für Ping. Konfiguration und
Adressen im EEPROM speicherbar.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

funktioniert das auch mit dem Arduino WiFi Shield?
https://docs.arduino.cc/retired/getting-started-guides/ArduinoWiFiShield/
Liegt bei mir seit Jahren ungenutzt rum.

von Harald K. (kirnbichler)


Lesenswert?

Veit D. schrieb:
> funktioniert das auch mit dem Arduino WiFi Shield?

Wie sollte es?

Da ist kein Chip von Wiznet drauf, und es braucht andere Software, die 
ihm weitere Dinge beibeigt, u.a. wie es sich mit einem WLAN zu verbinden 
hat (SSDI/Kennwort).

Und da der Sourcecode geheim ist, kann man auch nicht versuchen, diese 
Teile selbst anzupassen, und die TCP- bzw. UDP-Testfunktionen 
beizubehalten.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

dann ist es wirklich etwas Schade, weil es könnte von der Community für 
alles angepasst und weiterentwickelt werden.

von Alexander (alecxs)


Lesenswert?

Wastl schrieb:
> Ich biete hier ein kostenloses Tool zur freien Verwendung an,
> da muss ich sonst gar nichts.

Unter welcher Lizenz? Und Du selbst verletzt keine Lizenz von anderen?

Sebastian R. schrieb:
> Sieht auf den ersten Blick aus, wie das UDP-Beispiel, das bei der
> Arduino Ethernet Library dabei ist:
> 
https://github.com/arduino-libraries/Ethernet/blob/master/examples/UDPSendReceiveString/UDPSendReceiveString.ino

Das wäre dann LGPL v2.1 und ein Hex File ohne Source Code eine 
Pflichtverletzung.

Ein T. schrieb:
> Mach' Dir nichts draus, es ist sein Code

Woher weißt Du das?

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

Wastl schrieb:
> Nun die grössere Version des UDP Testers - für den Mega2560.

Du hast leider den Sourcecode vergessen. Kann ja mal passieren. Magst Du 
den noch nachreichen? 💖

von Hobby B. (bastler2022)


Lesenswert?

Wastl schrieb:
> Nun die grössere Version des UDP Testers - für den Mega2560.

Jetzt fehlt noch ein TFT für die Ausgabe und ein paar Taster für die 
Eingabe.
Dann braucht man nicht unbedingt die Serielle Ausgabe nutzen.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Richard W. schrieb:

> Wenn es um Netzwerkanbindung geht, haben kleine Microcontroller ohne MAC
> mit der breiten Verfügbarkeit der unglaublich billigen ESP32 für mich
> ihren Reiz weitgehend verloren.

Für mich nicht. Wer Funk kennt, nimmt Kabel, wenn's wirklich zuverlässig 
sein soll. Da ist mir u.U. sogar Urgestein wie ENC28J60 an einem AVR als 
NIC lieber als chinesisch kontrolliertes WiFi-Gedöhns.

Oder natürlich potentere µC mit Ethernet-MAC, wenn's deutlich über ein 
bissel UDP/generisches TCP hinausgeht. Also sowas wie diverse STM32.

> Ich habe seit Jahren privat keinen
> ATMEGA mehr angefasst.

Ja, das geht mit genauso. Für alles kleinere nutze ich mittlerweile die 
neueren AVR8-Generationen. Für die ganz kleinen Sachen Tiny-Series0 oder 
1, für alles etwas größere die Dx.

Ich frage mich sowieso, was im MC-Portfolio die paar Megas der Neuzeit 
verloren haben. Eigentlich gint es zwischen den Tinys und den Dx keine 
Lücke. Naja, die Marketing-Wichser von MC werden schon irgendeinen Plan 
damit verfolgt haben.

von Harald K. (kirnbichler)


Lesenswert?

Ob S. schrieb:
> Wer Funk kennt, nimmt Kabel, wenn's wirklich zuverlässig
> sein soll.

Da kann man Dir zustimmen.

Es gibt auch Varianten aus der ESP32-Familie, die einen Ethernet-NIC 
enthalten; man muss nur den fehlenden PHY beischnallen.

von Hobby B. (bastler2022)


Lesenswert?

Harald K. schrieb:
> Es gibt auch Varianten aus der ESP32-Familie, die einen Ethernet-NIC
> enthalten; man muss nur den fehlenden PHY beischnallen.

Hier mal ein Beispiel dazu, das schon alles an Board hat.

WT32-ETH01 ESP32 Entwicklungsboard

Details
802.11 b/g/n/e/i(802.11n,Up to 150 Mbps)
A-MPDU and A-MSDU aggregation, 0.4_ s guard interval support
Frequenzreichweite von 2.4 - 2.5 Ghz
Bluetooth v4.2 BR/EDR und BLE Standard
NZIF Receiver mit -97 dBm Sensitivity
Netzwerkanschluss: RJ45, 10/100Mbps
Serielle Baudrate: 80~5000000
Onboard Flash: 32Mbit
Stromaufnahme: 80mA
Betriebsspannung: 3V / 5V
Betriebsstrom (Min.): 500 mA
Betriebstemperatur: -40°C bis +85°C

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Statt der (imho sinnlosen) "Details" wäre ein Link auf das konkrete 
Produkt hilfreicher gewesen.

Das ist der Hersteller:
https://en.wireless-tag.com/product-item-2.html

Und hier hat jemand Dokumentation dazu gesammelt:
https://github.com/egnor/wt32-eth01

Hier gibts was für Arduino-Freunde, auf Deutsch:
https://sebastianlang.net/arduino/wt32-eth01-mit-arduino/

Und hier z.B. kann man das Ding kaufen:h
https://www.roboter-bausatz.de/p/wt32-eth01-esp32-modul-mit-ethernet-bluetooth-wifi

Oder hier:
https://www.aliexpress.com/item/1005008419582732.html

Nachteil des Boards ist die verwendete ESP32-Variante, die ohne PSRAM 
daherkommt, und daher für manche Anwendungen ungeeignet ist.

: Bearbeitet durch User
von Frank D. (Firma: LAPD) (frank_s634)


Lesenswert?

Flip B. schrieb:
> Kann wohl notfalls auch ohne Controller und Transceiver klappen:
> https://www.youtube.com/watch?v=m4f4OzEyueg
> https://github.com/cnlohr/ethertiny

Evt. reicht auch schon socat oder ser2net, dann muss ich nicht mal an 
der Hardware rumfrickeln.

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.