ERS1000 Networking
It's alive!
Unlike previous models, the ERS-1000 is a cloud-connected device that continuously connects to the network (provided its network switch has set WiFi and/or LTE to enabled). While the dog is capable of functioning off-network, key features are locked behind its web API. In addition, an as-of-yet unexplained system lock occurs on some units that cannot connect to the internet or ping cellular. (Could it be that there are security protections against tampering?)
Therefore, it is pertinent to have some understanding of the ERS-1000 network structure and features prior to EOL. The following research includes only public information the AIBO API serves and includes no Terms of Service-breaking material. TL;DR this is out of love, don't sue me.
Networking nitty-gritties
AIBO connects to a large quantity of servers.
The myaibo application in particular is concerned with four servers primarily, outside of CDNs:
- "friend", which handles friended AIBOs and keeping track of interaction between those robots
- "feedish" (feed dish), which handles the online 'feeding AIBO' features
- "trinity" (matrix reference?), which handles "AIBO missions" sent from AIBO patrol
- "frontgate", which appears to handle most other aspects of AIBO's online features such as the dog's hopspitalization and update status, EULA, registered persons, etc
- "image" for storing and serving the images taken by AIBO
The general cycle of behavior on the web is vaguely as follows:
- myaibo authorizes with the server
- the latest version of the EULA is retrieved, and its acceptance status is checked
- the user's settings are retrieved
- the user's robots and their data are retrieved
- the user's cloud subscription status is recieved
- the robot's hospitalization status is recieved
- the server takes logs
- robot function servers are queried
- device state and functionality is checked
- system status and settings are checked
- app announcements are checked
- aibo's photos are checked and downloaded
- aibo's brain is served
- timezones are checked
- a list of error codes is recieved
Information from AIBO (hontai)
AIBO's personality
AIBO reports both static values representing its set "personality" and dynamic "mood" values that inform AIBO's current state.
The static personality values are:
- extroversion
- conscientiousness
- openness
- neuroticism
- sportsMinded
Listed Name |
Internal Name | extro- version |
conscientious- ness | openness | neuroticism | sportsMinded |
---|---|---|---|---|---|---|
shy | shy | 0 | 1 | 0 | 0.2 | 0 |
curious | cute | 0.6 | 0.5 | 0.6 | 1 | 0 |
clingy | easygoing | 1 | 0.5 | 0 |
0 | 0.3 |
Note that this is an incomplete list. The "curious" values listed are for an aibo in their "little" stage rather than adult stage. It is possible there is more variation. If you'd like to contibute to this research and have a cloud-connected ERS-1000, let me know.
The dynamic values are:
- anticipation_surprise
- fear_anger
- joy_sadness
- trust_disgust
There may be more internal personality values we don't get to see. At a fan meeting, developers shared an image comparing the natures of 3 different employee-posessed AIBOs and highlighted their differences. It's not known what these values actually were. Something shown here? Something not? Who can say.
Error codes
Refers to all "popup" style notifications that can appear in the app. They also include feature notifications.
Most are copies of themselves, but they have distinct serials. The existing prefixes are DEV, NET, MEC, SYS, APP, FUP, SEC, FOTA, LEARNING, TRAINING, TIPS
- DEV: General internal errors
- NET: Network errors
- MEC: Mechanical errors
- SYS: 'System' error. Standard "restart your aibo" error
- APP: App errors? Standard "restart your aibo" error
- FUP: Failed update errors.
- SEC: Also a failed update error. Wild guess that SEC stands for a "special" or "system" "error code"?
- FOTA: Firmware Over the Air. Prompts you to update AIBO.
- TRAINING: Notifies that the "be quiet" behaviors have changed or improved.
- TIPS: Notifies that your AIBO can get off of the station by itself after having charged.
Model numbers
For an unknown reason, a full list of used and unused model numbers is reported.
These values can be summarized as ERS-1000 serials with "editions" /A through /Z, identical serials with "ERS" replaced for "SR1", and five special serials with especially unknown purposes.
MODEL # | REGION |
---|---|
ERS-1000/N2 J1 | "JP" |
SR1-XXXX/Y J1 | "JP" |
SR1-XXXX/Z J1 | "JP" |
SR1-XXXX/Y U8 | "US" |
SR1-XXXX/A J1 | "JP" |
SR1-1000/A J1 | "JP" |
SR1-1000/B J1 | "JP" |
SR1-1000/C J1 | "JP" |
SR1-1000/D J1 | "JP" |
SR1-1000/E J1 | "JP" |
SR1-1000/F J1 | "JP" |
SR1-1000/G J1 | "JP" |
SR1-1000/H J1 | "JP" |
SR1-1000/I J1 | "JP" |
SR1-1000/J J1 | "JP" |
SR1-1000/K J1 | "JP" |
SR1-1000/L J1 | "JP" |
SR1-1000/M J1 | "JP" |
SR1-1000/N J1 | "JP" |
SR1-1000/O J1 | "JP" |
SR1-1000/P J1 | "JP" |
SR1-1000/Q J1 | "JP" |
SR1-1000/R J1 | "JP" |
SR1-1000/S J1 | "JP" |
SR1-1000/T J1 | "JP" |
SR1-1000/U J1 | "JP" |
SR1-1000/V J1 | "JP" |
SR1-1000/W J1 | "JP" |
SR1-1000/X J1 | "JP" |
SR1-1000/Y J1 | "JP" |
SR1-1000/Z J1 | "JP" |
SR1-1000/A U8 | "US" |
SR1-1000/B U8 | "US" |
SR1-1000/C U8 | "US" |
SR1-1000/D U8 | "US" |
SR1-1000/E U8 | "US" |
SR1-1000/F U8 | "US" |
SR1-1000/G U8 | "US" |
SR1-1000/H U8 | "US" |
SR1-1000/I U8 | "US" |
SR1-1000/J U8 | "US" |
SR1-1000/K U8 | "US" |
SR1-1000/L U8 | "US" |
SR1-1000/M U8 | "US" |
SR1-1000/N U8 | "US" |
SR1-1000/O U8 | "US" |
SR1-1000/P U8 | "US" |
SR1-1000/Q U8 | "US" |
SR1-1000/R U8 | "US" |
SR1-1000/S U8 | "US" |
SR1-1000/T U8 | "US" |
SR1-1000/U U8 | "US" |
SR1-1000/V U8 | "US" |
SR1-1000/W U8 | "US" |
SR1-1000/X U8 | "US" |
SR1-1000/Y U8 | "US" |
SR1-1000/Z U8 | "US" |
ERS-1000/A J1 | "JP" |
ERS-1000/B J1 | "JP" |
ERS-1000/C J1 | "JP" |
ERS-1000/D J1 | "JP" |
ERS-1000/E J1 | "JP" |
ERS-1000/F J1 | "JP" |
ERS-1000/G J1 | "JP" |
ERS-1000/H J1 | "JP" |
ERS-1000/I J1 | "JP" |
ERS-1000/J J1 | "JP" |
ERS-1000/K J1 | "JP" |
ERS-1000/L J1 | "JP" |
ERS-1000/M J1 | "JP" |
ERS-1000/N J1 | "JP" |
ERS-1000/O J1 | "JP" |
ERS-1000/P J1 | "JP" |
ERS-1000/Q J1 | "JP" |
ERS-1000/R J1 | "JP" |
ERS-1000/S J1 | "JP" |
ERS-1000/T J1 | "JP" |
ERS-1000/U J1 | "JP" |
ERS-1000/V J1 | "JP" |
ERS-1000/W J1 | "JP" |
ERS-1000/X J1 | "JP" |
ERS-1000/Y J1 | "JP" |
ERS-1000/Z J1 | "JP" |
ERS-1000/BI2J1 | "JP" |
ERS-1000/WI2J1 | "JP" |
ERS-1000/W3 J1 | "JP" |
ERS-1000/A U8 | "US" |
ERS-1000/B U8 | "US" |
ERS-1000/C U8 | "US" |
ERS-1000/D U8 | "US" |
ERS-1000/E U8 | "US" |
ERS-1000/F U8 | "US" |
ERS-1000/G U8 | "US" |
ERS-1000/H U8 | "US" |
ERS-1000/I U8 | "US" |
ERS-1000/J U8 | "US" |
ERS-1000/K U8 | "US" |
ERS-1000/L U8 | "US" |
ERS-1000/M U8 | "US" |
ERS-1000/N U8 | "US" |
ERS-1000/O U8 | "US" |
ERS-1000/P U8 | "US" |
ERS-1000/Q U8 | "US" |
ERS-1000/R U8 | "US" |
ERS-1000/S U8 | "US" |
ERS-1000/T U8 | "US" |
ERS-1000/U U8 | "US" |
ERS-1000/V U8 | "US" |
ERS-1000/W U8 | "US" |
ERS-1000/X U8 | "US" |
ERS-1000/Y U8 | "US" |
ERS-1000/Z |
Not likely intended behavior-- but isn't this fascinating?
Fun facts
Bizarre discoveries and funny comeuppances
- AIBO's virtual food items have a "weight", implying AIBO can gain weight. Realistically, this is probably how the server keeps track of when AIBO is 'full'.
- Early in the ERS-1000's lifespan, it was announced that Chinese and American releases would be targeted. While the American release materialized, the Chinese release did not. Remnants indicate that the myaibo applications were being developed for Mandarin prior to that aspect of the project's cancellation.
- AIBO appears to leverage GNNs (distributed graph learning) in some form as part of its neural network featureset. GNNs are resource-intensive, so the workload might be distributed across everyone's devices.
- AIBO uses the linux networkmanager connman, which you can install and try on your own system.
the song recommendation is: sm43429658. written 02/26/2024