Multiple Arduino Uno Networking Issue

I have a number of Arduino Uno boards with DHT11 sensors attached monitoring shipping containers.

The Uno Boards all have ethernet shields connected to the network and also thinger.io accounts which the boards connect to.

In looking at the router to see what DHCP addresses are given out to the boards I have discovered they seem to be on the same MAC ID.

This seems to be causing collisions and issues with connectivity to Thinger with the devices regularly but randomly showing disconnected.

Has anyone come across such an issue before? Is there some way to VLAN the devices or something to stop the collisions/confusion.

Apologies for trying to solve my own topic but I just found this in the ThingerEthernet library:

 virtual bool network_connected(){
        Ethernet.maintain();
        return connected_;
    }

    virtual bool connect_network(){
        if(connected_) return true;
        byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
        unsigned long ethernet_timeout = millis();
        THINGER_DEBUG("NETWORK", "Initializing Ethernet...");
        while(Ethernet.begin(mac)==0){
            THINGER_DEBUG("NETWORK", "Getting IP Address...");
            if(millis() - ethernet_timeout > 30000) {
                delay(1000);
                return false;
            }

Does this mean I can manually adjust the MAC of each shield and upload?

1 Like

The Ethernet shields should each have a unique MAC address, usually printed on a sticker on the board. You should be using that supplied address when connecting. What happens if you don’t supply a MAC address to Ethernet.begin?

2 Likes

I have seen this on WizNet chip, where you can set the MAC. Very bad!

1 Like

I have checked the shields and none appear t have any MAC labelled. I have resolved the network collision issue by generating random MAC ID’s and uploading them via the ThingerEthernet Library. I haven’t tried not entering one at all yet whilst on the network however it compiles ok.

That’s what these are, Show up as WizNetFeed in the device name under IP Address list

Won’t compile if you don’t set a MAC, very bad!

1 Like