Skip to content

NetsBlox/roboscape-provisioning

Repository files navigation

Roboscape Provisioning Tool

We need a way of provisioning multiple parallax activity boards equipped with Xbee S6B with initial configuration w/ no pre existing communication medium.

Get roboscape on Google Play

Possible Solutions

  1. Viral
  2. wifi direct (p2p) [android only], no[?] wifi-direct standard on Xbee S6B module
  1. external hotspot:
  • phone into hotspot: iOS out of the picture (no support). localOnlyHotspot from android with random SSID and password.
  • laptop into hotspot + OS agnostic SW
  1. robots as AP:
  • scan, pick, auto connect and configure. can automate the http request
    • how to go to AP mode
    • configuration should be saved after
    • hijack one of the field
  • can be an app.

App TODO

  • wifi direct (solution #2)
    • prompt for location permission
    • [failed] test connectivity with xbee chip
    • figure out a communication protocol after the p2p group is up If you are the groupOwner => Listen for a connection; Else create a connection to the owner with the ip address.
  • robots as ap (solution #4)
    • scope the global helpers methods to avoid collison
    • add xhr post request function to set the desired configurations (axios post a form)
    • add a UI
      • show current status (configuring which robot, status of previous ones) on UI
    • add a self contained way of setting up one robot with status update (and retry?)
    • batch the process for more than one AP
    • check mobile network status;
      • check mobile network status and warn. can't control it programmatically link
    • connect to the same network as before after batch config
    • capture back button on the phone
    • connection detection issues
    • firmware beep feedback
  • show wifi aps with good signal quality
  • validate wifi config before submitting (maybe confirm with user?)
  • Internet or server connectivity check
  • test again after mixin refactoring
  • initial load screen

Firmware TODO

  • physical button (5sec hold) to enter configuration mode
  • detect that can't connect to current AP and go to setup mode?
  • stricter robot keymatching
  • mac@groupID

Installation

  • add the wifidirect plugin cordova plugin add https://github.com/NeoLSN/cordova-plugin-wifi-direct

If you are the groupOwner => Listen for a connection

  • what determines the group owner in WIFI Direct standard paer
  • UI for controlling and connecting to discovered nodes and configuring the settings

Troubleshooting

  • remove /plugins and platform/android directories.

References

  • Xbee Api Mode: supported frames API frame structure commands table s6b commands p147

  • Android hotspot:

    • No public/official api to create such a hotspot [link].
    • there is localOnlyHotspot link. can't preset the configurations
    • The Android API does not expose a way to modify the hotspot configurations. Can't set password or ssid and it changes everytime.