How Do I Setup Mac Address For Roomba

Posted on  by 

I’ve run into an issue two times now where my Roomba 960 won’t setup its own temporary configuration Wi-Fi network. Without it, the robotic vacuum’s app can’t talk to it and you can’t control the vacuum remotely. Here is how I solved this when the manufacturer refuse to document any troubleshooting tips.

By following the normal procedure for configuring the Roomba puts the Roomba in a special mode where it broadcasts its own unsecured Wi-Fi network. The iRobot Home app will look for this network, which is named Roomba-<id>, connect to it, and transmits the information about the local Wi-Fi network configuration from the app to the robotic vacuum.

Now, to assign any random MAC address to this network card, use: sudo macchanger -r enp0s31f6. After changing the MAC id, verify it using command: ip addr. You will now see that MAC has been spoofed. To change the MAC address to a specific value, specify any custom MAC address using command: macchanger -mac=XX:XX:XX:XX:XX:XX. Specify whether macchanger should be set up to run automatically every time a network device is brought up or down. This gives a new MAC address whenever you attach an ethernet cable or reenable wifi. I recommend you not to run it automatically, unless you really need to change the MAC id every time. So, choose No and hit ENTER key to continue.

I am trying to add a Canon Pixma MX922 to our new Eero network and it doesn't connect in the usual way, asking for a MAC address. I looked up the MAC addresses for the nearest Eero and found one that matches one of the choices on our printer, however it can seem to connect to our Eero network. The wireless MAC address for your echo is seen at the bottom of the Echo Setup screen in your Alexa app and this is how you can find your MAC address for your echo device. Amazon launched other devices also, Amazon fire TV is the also well known and most used device. Also you can need MAC address some time, here is the method for that. Enter the following command in Terminal on your Mac (or the command line on your Windows PC): telnet 192.168.1.1; Sign in to the admin account using your Orbi administrative password. Step 2: Check your SSIDs using telnet. After you've signed in to your Orbi using telnet, enter the following two commands and press Return after each one.

This all sounds neat in theory, but not so when it the app and Roomba can’t find each other.

I used a Wi-Fi analyzer to verify the problem, and it seems that Roomba — for whatever reason — sometimes won’t setup and broadcast this special network after being put into configuration mode. I tried the normal way to rebooting the Roomba (holding in the Clean button for 10 seconds) but after a restart, the problem still persisted.

As with other products that I’ve documented on this blog, the Roomba’s manual don’t contain any instructions for resetting or even rebooting the product. As its designed to never fail, why would the customer ever need to reset or reboot it? Well, such product design thinking usually only holds water for a few weeks at most when the company don’t put in the engineering work to fulfill the design requirement.

The first time this happened, I let the Roomba sit for a while and tried multiple times to reboot and set it up again using the iRobot Home app. I got nowhere with this, and eventually ended up turning the little robotic vacuum on its head. Then I proceeded to unscrew the battery compartment, and remove the battery before placing it back in again.

The first time I did this I took it out for about five seconds before reinserting the battery. This however, didn’t work. I’d to go in a second time, remove the battery, and then leave it disconnected for a full minute before reinstalling it.

When I next started the Roomba, and held the Dock and Spot buttons (the two smaller buttons on top of the Roomba 900-series) pressed for 5 seconds. My Roomba then started broadcasting the temporary configuration network as expected, and the iRobot Home app could connect and convince the robot to join my home Wi-Fi network.

Nothing may ever beat “turning it off and on again” when it comes to troubleshooting technology issues. However, that mantra should be updated to account for modern battery powered gadgets and devices that aren’t fully powered down when using their on/off buttons (if they even have one!). My proposal may not be as catchy as the old mantra, but more accurate: “Actually power down and try again.”

Other issues

Roombas only support the legacy 2,4 GHz Wi-Fi standard. Older versions of the iRobot Home app would always assume any Wi-Fi network was 2,4 GHz-capable. Your smartphone would know whether your network supported 2,4 GHz, 5 GHz, or both — but iRobot didn’t check to make sure.

This resulted in annoying issues with the app trying to set up Roombas with Wi-Fi networks that they didn’t support. If you kept doing this repeatedly, the vacuum could eventually stop working and required a restart.

This problem has since been fixed and the iRobot app now insist you provide it wit credentials for a 2,4 GHz network.

Retrieve addresses from stock firmware

The first step is to find out which addresses are present in stock configuration.The procedure depends on your level of access to the device's firmware.

The result would be a list like the following:

Find out about flash locations

If you already have OpenWrt running on the device, you can try to find out about MAC locations on flash (note that not all devices store addresses there).

List partitions:

You would normally expect WiFi MAC addresses in the art partition. To check for that, use hexdump on the corresponding mtd4:

This will dump the whole partition to your console. Now you can look for addresses there: Take one byte of the vendor part of the address (first three bytes) and do text search …

The same should be done for other partitions. Usual suspects are:

  • mac
  • art

If you are successful, you will have a list of addresses and locations, e.g.

You can check your data by using OpenWrt's get_mac_binary command (based on mtdX): Download ip flooder nuker.

or by using mtd_get_mac_binary (based on partition label):

Merge your data

Now, combine data from stock firmware and your research to have a complete list:

You could also include this list in your commit message to preserve the information.

As in the example, it is possible that the same address is present in different locations. In this case, use the location that “belongs” to the interface, i.e. art for WiFi, others for ethernet.

Set MAC addresses

MAC address pulled by driver

In several cases, the MAC address is already provided at the correct location for the driver to use it automatically.

Mac

(This list is incomplete. Please extend it.)

Known cases:

  • ath79: mtd-cal-data: The MAC address will be read from start +2
  • ramips: mediatek,mtd-eeprom/ralink,mtd-eeprom: The MAC address will be read from start +4
  • ath10k: offset + 6

So, if you have MAC location matching those, you do not have to specify the MAC address in DTS or base-files for the particular interface.

Address

Correct:

Suboptimal (not precisely wrong): Nostale level bot.

This can also be exploited for setting the label MAC address (see below) via 02_network.

Label MAC address

refs:https://github.com/openwrt/openwrt/pull/2159https://github.com/openwrt/openwrt/pull/2253

Many devices bear a label with one or several MAC addresses on it. Those may be used to identify the device in the network and thus represent a valuable additional information about the device.

When adding device support, you should also check which of the interface addresses corresponds to address on the label. If we assume the label MAC address ends with 0a, we could assign either LAN or 5 GHz to it. The choice for an ambiguous address is arbitrary, so let's choose 5 GHz.

There are two options to specify the label MAC address in OpenWrt:

Setup

label-mac-device DTS file

We can refer to the device bearing the label MAC address in DTS. For that purpose, one needs to reference the node with an alias, e.g.

Obviously, this is only valid if the 5 GHz Wifi device tree node actually has been named wifi0.

How do i setup mac address for roomba won

Attention: Not all interface can be referenced this way. To check whether there actually is a usable MAC address, check the device tree on your router:

Run

on your device.

Attention: This will only work if you have already set up MAC addresses correctly based on the information retrieved above.

It will give you a list like the following:

For each of the returned paths (if there are any), retrieve the mac-address, e.g.

Valid choices are only mac-address or local-mac-address. There may be one, two or no paths giving the correct address.

If you find the label MAC address here, check your DTS for the corresponding parent node. The correct node for /proc/device-tree/ahb/apb/wmac@18100000/mac-address would be /ahb/apb/wmac@18100000. Use this node's alias or add a reasonable one yourself if missing.

Attention: Note that label MAC addresses are assigned relatively randomly by vendors, so label-mac-device should be regularly put into DTS files or DTSIs with few users, so it is not inherited by accident.

Set label MAC address via 02_network

If device tree does not lead to the relevant MAC address, we can still set it in 02_network. In this case, you need to set label_mac in a similar way as it is already used for lan_mac and wan_mac, e.g.

This is evaluated below by the line

If possible, setting the address with the DTS approach is preferred.

Using the label MAC address

When everything is set up correctly, the label MAC address can be accessed with:

How Do I Setup Mac Address For Roomba

How Do I Setup Mac Address For Roomba Won

Common MAC address locations

How Do I Setup Mac Address For Roomba Vacuum

If there is an ART partition, WiFi MAC addresses are frequently/typically stored there.

ath79:

  • All TP-LINK routers using old tp-link header (those using Device/tplink-Xm or Device/tplink-Xmlzma templates defined in target/linux/ath79/image/common-tplink.mk), store only one mac address in <&uboot 0x1fc00>, which is the label mac address.

ramips:For ramips, typical locations for ethernet addresses are as follows:

  • mt7621: lan mac is at factory 0xe000 and wan mac at factory 0xe006. This is the default location for mt7621 boards in MTK's SDK.
  • For mt7620/mt76x8 boards if there's a lan mac at 0x28 there may be a wan mac at 0x2e. (There's only one GMAC for these two chips so GMAC2_OFFSET defined above isn't used.)

How Do I Setup Mac Address For Roomba 2

Attention: Those are typical addresses. Some vendors mix them, invert them, or even use completely different locations!

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Coments are closed