Comments (7)
Hi Neil - This ticket is potentially opened in the wrong repo. OpenEEW firmware is discussed over in the
https://github.com/openeew/openeew-firmware
repository.
For certain, your boards are experiencing odd ethernet behavior.
I've only tested my boards with a TP-Link 1GB ethernet switch.
The firmware is using the standard Arduino / Espressif ESP32 ethernet library. Its not doing anything special to it.
~/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/ETH.h
from openeew-sensor.
Looking for a pattern in your ethernet switch / router network configurations, it seems the board and ethernet is working with relatively modern 1Gb routers / switches but fails with older 10/100 switches.
I'll dig around for an old 10/100 ethernet switch to test.
from openeew-sensor.
I plugged my (new) OpenEEW device into a DLink 10/100 Ethernet switch:
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
ETH Disconnected
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
ETH Connected
Waiting for Ethernet to start...
Waiting for Ethernet to start...
from openeew-sensor.
Hi John, I put it here because its not clear if its a hardware issue or a firmware issue.
Looks like you are getting the same response ..... good to duplicate....
As the https://www.microchip.com/wwwproducts/en/LAN8710A says it should work with 10/100 - but its actually only worked for me on 1G routers . Possibly suggests that the 1G routers are compensating for something not working.
Practically Arduino / Espressif ESP32 is a "teaching" principles - not drowning in the historical detail.
https://en.wikipedia.org/wiki/IEEE_802.11
Traditionally, for a commercial product, the process is define all the IEEE 802.11 standards it needs to work to, and then probably buy some expensive test equipment that will run a regression test.
This is a bit of statistical method ~ a few pieces of equipment that work with other equipment.
I can move it to firmware if you think there is a firmware solution.
from openeew-sensor.
Neil and I ran some live experiments. I was able to find 4 old 10/100 Ethernet switches in my closet to test with. On two (identical models) DLink 10/100 DS-55+ the ESP32 device would just loop forever waiting for the Ethernet to get an IP address. Two other devices (NetGear 8 port 10/100 FS108) and a DLink DI-524 10/100 router, the ESP32 got an Ethernet address and proceeded through its initialization correctly.
For certain, there is a problem with some old 10/100 Ethernet switch hardware.
It does point out an unlikely scenario / bug in the firmware. In v1.5.1 or lower, it gets stuck in a while() loop waiting for an Ethernet address. I've created a firmware patch that will only wait 10 seconds for an IP Address. If it doesn't get an IP address on the Ethernet interface, it exits the while loop and proceeds through the rest of the initialization .
Here's a snip of the behavior with the new patch described above:
OpenEEW Sensor Application
ETH Started
ETH Connected
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
Waiting for Ethernet to start...
ESP32 WiFi interface ready
Stored networks : 1
ESP32 WiFi started
Completed scan for access points
WiFi Network scan done
8 network(s) found
1: wyndwpa (-23)
2: wynd565o (-56)*
3: 565guest (-56)*
ESP32 WiFi interface ready
Reading stored networks from NVM
ESP32 WiFi started
ESP32 WiFi started
from openeew-sensor.
Have any of you tried with different cables? A straight through cable would be the correct one i believe, but do try with a crossover too, nowadays hardware deals with the crossover automatically but this wasn't always the case., in particular with old or cheaper hardware.
from openeew-sensor.
We eventually agreed that there is a problem with some old 10/100 Ethernet switch hardware. I tried multiple routers. See tests above.
Closing issue.
from openeew-sensor.
Related Issues (20)
- add certificates for secure TLS/SSL connection with MQTT broker HOT 1
- Add usb-C power and programming funcionallity
- Create final Kicad schematic for V1 HOT 1
- Create Kicad layout V1 design based on schematic HOT 1
- Create BOM V1 based on Kicad schematic
- Add 'esp-touch' wifi provisioning HOT 3
- Select 31.25hz as default sample rate for accelerometer HOT 3
- Add OTA feature to the firmware HOT 4
- Create getting started booklet
- Program RGB Leds for debugging HOT 3
- resync time on long running sensors HOT 2
- Listen on a MQTT topic ForceFirmwareCheck HOT 2
- Heartbeat MQTT message HOT 3
- Document the requirements to view/work on the schematic and layout (Kicad version and respective libs) HOT 4
- Create firmware variant for standard MQTT broker HOT 2
- Accelerometer data to Cloud - Continuous Send vs STA/LTA HOT 13
- Stops running after reprogramming HOT 5
- Create simple board on JLCPCB/PCBWay with ESP32+ADXL345+Neopixel
- broken URL in readme HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openeew-sensor.