I experimented with my Roomba i3, attempting to initialize it without using the official iRobot app. The first thing I tried is connecting to it using the Roomba's SoftAP used for initial provisioning - and it kind of works, but it turned out the initial password was empty.
The response to the magic packet in this case was:
There are a couple of null bytes starting at offset 7, followed by something that looks like garbage data. If this is supposed to be null-terminated, then the first null byte should be taken into account instead of just rstrip()ing the data. Otherwise the app fails with an UnicodeDecodeError.
While connecting via the SoftAP interface may not be very useful, this might additionally help in case of a irregularly short password.
EDIT: In the second commit, I also made the address, blid and password field validation less aggressive, so that connection via that SoftAP can be made. It's not very useful, as the network disappears after the first command - but you can order the robot to start cleaning while connected to its SoftAP network. The password is empty in that configuration, though, so the app in its current state did not allow that.
Not sure this change is warranted. getting the password from the cloud is now the way to go since getting the password locally no longer works since the api changed.
I experimented with my Roomba i3, attempting to initialize it without using the official iRobot app. The first thing I tried is connecting to it using the Roomba's SoftAP used for initial provisioning - and it kind of works, but it turned out the initial password was empty.
The response to the magic packet in this case was:
There are a couple of null bytes starting at offset 7, followed by something that looks like garbage data. If this is supposed to be null-terminated, then the first null byte should be taken into account instead of just
rstrip()
ing the data. Otherwise the app fails with anUnicodeDecodeError
.While connecting via the SoftAP interface may not be very useful, this might additionally help in case of a irregularly short password.
EDIT: In the second commit, I also made the
address
,blid
andpassword
field validation less aggressive, so that connection via that SoftAP can be made. It's not very useful, as the network disappears after the first command - but you can order the robot to start cleaning while connected to its SoftAP network. The password is empty in that configuration, though, so the app in its current state did not allow that.