Deep Update causes new MAC address to be embedded in Core

deep_update_2014_06 applied to ‘black’ cores causes a new MAC address to be applied to the Core. This may be an issue where the Core relies on a static IP address and the DHCP server allocates this on the basis of a unique(?) MAC address. In my case the router will not accept the same static IP as the new MAC address conflicts with the old one. The work around is to use a new static IP or to reset the router - I am using a Livebox supplied by France telecom.

The deep update process tries to guard against this known TI problem, but I guess it didn’t in this case.

The MAC address of the core is writable and if you have your old one you can write a one-time sketch to fix:

uint8_t address[6];

address [0] = 0x08;
address [1] = 0x00;
address [2] = 0x28;
address [3] = 0x....;
address [4] = 0x....;
address [5] = 0x....;
netapp_config_mac_adrress(address);
5 Likes

Thanks for the addresses. I’ll try and reset them.I had always thought that MAC addresses are meant to be a unique identifier and were only once written into ROM but I suppose the chances of entering a conflicting MAC address by error is negligible.

Lots of WiFi and Ethernet adapters have writeable addresses, depending on the software to put a unique number in there. The numbers themselves are globally unique but the numbers we get with a Spark belong to TI. If you were selling your own product based on Spark or just the TI CC3000 you would certainly want to change the MAC address to “your” numbers.

You should try to find the number your Spark used to have–in a router log, etc. Collisions are bad but generally only hurt your local subnet these day.

3 Likes

Hi @bko,

is there a limit how many times one may reassign the MAC of the Core or is there a way to just temporarily spoof the MAC for the current session, rather than flashing it in the CC3000?

It would also be nice to have a footnote of how to reassign the MAC in the docs for WiFi.macAddress().
(BTW: I think there is one crucial line of code missing in the sample for WiFi.macAddress())

It is stored in EEPROM inside the TI CC3000 and has a one million write endurance.

I would not worry about writing it everyday! I liked your other post about using this to spoof a portal into letting you on too!

2 Likes

Thanks for that info and the :hearts: on the other thread.