ERS-1000 Networking (and API)
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 these are security protections against tampering gone awry?)
Therefore, it is pertinent to have some understanding of the ERS-1000 network structure and features prior to EOL. The following research implicates only public information the AIBO API serves.
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", 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 hospitalization and update status, EULA, registered persons, etc
- "image" for storing and serving the images taken by AIBO
Beyond this, there are analytics servers, content delivery servers, Amazon IOT servers, compute clusters, Amazon cloudfront interfaces, and others, that handle live data from the robot and build out the user interfaces.
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 received
- the robot's hospitalization status is received
- 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 received
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
Along with these static values, the server reports a "type" and a "level". The known "levels" are "little" and "normal", presumably connected to their age. The types correspond to the listed personality delineations in the app.
| 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 contribute 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
These values scale and are probably 16 bit decimals.
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.
- 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.
| 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?
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 uses connmann.
the song recommendation is: sm43429658. written 02/26/2024