Ik heb een probleem met de netwerk verbinding van een Arduino met mijn thuis netwerk.
Opstelling:
Arduino Atmega2560 R3 met W5100 ethernet shield R3
Test:
Router - ethernet shield - ping=ok
TP-link gigabit switch - ethernet shield - ping=ok op alle poorten
TP-link gigabit switch - Sweex gigabit switch - ethernet shield -> alleen ping=ok als switch op poort 1 aangesloten is, switch op andere poort -> geen ping
TP-link gigabit switch - Sweex fastbit switch - ethernet shield - geen ping
Software:
Gebruikte software is de voorbeeld sketch van Arduino Voorbeelden-Ethernet-Barometricpressurewebserver, waarbij de mac, ip en gateway adressen aangepast zijn.
Wat heb ik al geprobeerd en maakte geen verschil tov de bovenstaande test:
Andere kabels
Andere Arduino ATMega2560 met andere W5100 ethernet shield
Cross kabel voor ethernet shield
Andere fastbit switch
Kabel alleen 1, 2, 3 en 6 verbonden
Hopelijk heeft iemand een idee wat ik nog meer kan proberen of misschien wel waaardoor dit probleem veroorzaakt wordt.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Wat is een "fastbit" switch? Google geeft me weinig zinnigs, ook niet in combinatie met "sweex".
Simpele oplossing: geen spullen van Sweex gebruiken, toch is gewoon rommel.
Als je nog een 100Mbit hub hebt liggen (geen switch/router), kun je met Wireshark meekijken, wellicht zie je daar waar het mis gaat (ARP request/reply, komt de PING request wel door, etc.).
Sweex mag rommel zijn, maar tot nu toe nooit problemen mee gehad. En een andere heb ik vandaag niet liggen.
Fastbit switch is 100Mbit switch
Gigabit switch is 1000Mbit switch
Ga eens kijken wat wireshark is.
Tommyboy
Zo goed als het vroeger was, is het nooit geweest.
Waarschijnlijk heb je een cross-cable, en doet je 100Mbit switch niet aan auto MD-X/MD-II, en is de eerste poort van je 100MBit switch een uplink poort welke intern hardwired is voor MD-X. Pak een patch-cable, en het zal wel werken.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik heb ook 3 sweex switches gehad. Liepen regelmatig vast (kokend heet) of deden vreemd. Boel eruit gegooid en vervangen door D-link, werkt nu prima...
Op 2 maart 2014 14:36:01 schreef Kapee:
Fastbit switch is 100Mbit switch
Gigabit switch is 1000Mbit switch
Volgens mij is het 'fast ethernet (100M)' & 'gigabit ethernet (1000M)'
Gebruik geen cross kabels, zelfs nog getest om het zeker te weten (heb wel een RJ45 cross connector gebruikt om te kijken of er iets veranderde, niet dus).
De eerste poort zou goed een uplink poort kunnen zijn, deze poort staat wat los van de andere 4 poorten. Maar de handleiding van de SW105 zegt hier niets over.
Zou ik dit met een speciale kabel kunnen simuleren? Patch kabel is 1:1, heb niet anders.
[Bericht gewijzigd door Kapee op (12%)]
Was mij ook al opgevallen dat het W5100 shield soms moeite heeft met het onderhandelen (auto negotiation) met sommige switches.
Gaan het link en act lampje op je shield wel branden?
De volgende led's zijn aan: PWR, LINK, 100M, FULLD en af en toe RX.
Doe ik een ping naar het ip adress, dan gaan RX en TX even aan, maar krijg ik vervolgens een Time-out.
Zie nauwelijks verschil met de ledjes in de goede en foute situatie, alleen bij time-out duurt het langer tussen het even aan gaan van TX en RX.
EricP
mét CE
Eens een andere insteek... Weet je zeker dat dat Sweex ding een switch is en geen router?
Dat IP address... Hoe komt die Arduino daaraan? DHCP of 'hard'?
Misschien raakt een switch/dhcp even de weg kwijt als je zo druk gaat ompluggen. Sluit het aan zoals je wil en zet alle switchen en routers even uit en aan.
'ping' is een behoorlijk hoog netwerkprotocol, het feit dat je je link ledje gaat branden en RX/TX knippert geeft goede moed.
Je zou met wireshark eerst eens kunnen zien of er een "WHOIS 192.168.1.xx" wordt beantwoord, maar ik denk dat je gewoon teveel heb zitten ompluggen, de mac-tabellen staan dan nog zoals je net een paar minuten eerder had geplugd. Met DHCP (van meerdere apparaten) wordt het helemaal lastig.
Zijn het geen managed switches of routers? Echt alleen simpele switch? (Geen wanpoorten, geen eigen dhcp, geen beheersinterface?)
@EricP, het zijn echt twee switches, nl de SW008 (100Mbit) en SW105 (1000Mbit).
De Arduino krijgt een hard ip adres, maar jouw vraag over DHCP of hard ip adres heb ik toch uitgeprobeerd, helaas zonder resultaat (bij voorbeelden staat ook een DHCP sketch).
In de goede situatie met DHCP kwam ie met een ip adres en kwam ie met failed in de 'foute situatie'.
@K7Jz, heb het uit gezet voordat ik ging eten, daarna weer aan. Ook hier geen verbetering, helaas.
Met whiresharp zie ik een broadcast 'who has [ip nr]', zonder antwoord.
Vwb de switches, dit zijn echt simpele switches.
Wat me nog wel op valt, als ik een ping doe met het harde ip adres, in de foute situatie, dan zie ik het TX ledje direct even aan gaan.
Als ik het ip adres bv met 1 ophoog en dan weer een ping doe, dan gaat het TX ledje niet even aan.
Het lijkt dus, dat er wel een reactie komt, maar dat die gaat verloren ofzo.
Ik heb ook nog een Sweex (ja nog een) 5poort 100Mbit liggen, heb deze geprobeerd en die reageert hetzelfde als de gigabit switch.
De arduino ethernet shield op poort 1 van deze switch en weer netjes een reply op de ping.
Ook bij deze switch staat de RJ45 connector iets los van de andere poorten.
[Bericht gewijzigd door Kapee op (14%)]
Heb je wel alle subnet masks goed staan? Dus overal 255.255.255.0 ? Iets met 255.255.255.255 lijkt me heel snel fout gaan.
Bij sweex.com zie ik geen poort die iets los staat van de andere bij die types.
Maar samengevat: je kan niks instellen op je switches, die dingen zouden dus moeten werken als 'verdeelblokken' alleen werkt het op bepaalde poortjes wel en op andere niet, dat klinkt echt heel gaar. Dat aanpassen van MAC adres lijkt me ook wat tricky, al ken ik die ethernetshields helemaal niet, moet je dat adres aanpassen?
Je hebt trouwens ook niet verdeelt hoe je pingt en hoe die kabels lopen? vanaf een computer met wifi?
Dit staat aan het begin van de Arduino sketch en dit wordt maar één keer ingesteld:
// assign a MAC, IP and gateway address for ethernet
byte mac[] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x25};
IPAddress ip(192,168,2,144);
IPAddress gateway(192,168,2,1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(80);
De Arduino staat hier naast mij bij de computer, router, TP-link switch op ca 70cm.
Alleen de utp kabel van modem naar router is ca 10 meter, achter de router zit de TP-link switch op ca 50cm en daarna kabels kleiner dan 2 meter.
Inderdaad is het heel raar, wat er gebeurt. Begrijp er niets van, heb al van alles geprobeerd..
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Je zou natuurlijk gewoon een LED kunnen togglen als je een PING berichtje krijgt. Het is toch niet voor niets open-source?!?
EricP
mét CE
Het lijkt dus, dat er wel een reactie komt, maar dat die gaat verloren ofzo.
Dat idee had ik ook al. Vandaar de vraag of 1 van die dingen niet toevallig een router is.
Ik heb geen ervaring met Sweex-rommel, kan het helaas niet voor je beantwoorden.
Met een ethernet tap en wireshark zou je kunnen kijken wat er precies op de lijn voorbij komt.
Wat je ook nog zou kunnen proberen is kijken in de ARP table van de PC waar je ping op draait of die Arduino überhaupt verschijnt. Als dat al niet lukt, dan gaat ping zeker niet werken. Zorg daarbij wel dat de ARP table leeg is (nou ja, leeg... je Arduino er niet in staat) voordat je gaat testen.
@SparkyGSX Dat is een goed idee, maar ik heb geen idee waar ik dit in de software zou moeten doen (ben nog niet zo lang met de Arduino bezig).
Inderdaad, Arduino software is open source.
@EricP Hoor nu voor het eerst van een ARP table, weet niet waar ik die moet zoeken. Maar in wireshark zie ik dat de pc niet weet dat er een Arduino aan hangt 'who has 192.168.2.144'.
Heb het al een paar keer gezegd, maar het is echt simpele switch en geen router.