Vector Web Setup

Shortly after I wrote the Node.js article yesterday I found an email from DDL via Kickstarter in my mailer that announced the arrival of something called “Vector Web Setup”. At first I was excited and thought that this would be the Escape Pod beta test that was announced for july 15th, but of course it is not.

Vector Web Setup is a node.js package that is aimed at replacing the apps for iOS and Android that are used to configure Vectors. From the text of the mail this will be the foundation for further future things as Escape Pod and OSKR (since you will for example later be able to put own, modified firmwares onto the robot). Yesterday it was too late for me to try it (central european summer time), so I invested a few hours today morning into it. From the looks even if DDL calls this “version 1.0.0” it looks more like an early alpha, since there are features missing and heaps of problems and bugs. It would probably have been better to declare this at least as a beta and warn less tech-savvy users not to try it.

The installation is somewhat straightforward if you know how to use npm, the node.js package manager in a console or command line interface window. In their mail (that is in fact just the readme file from the Github repository) they omitted that you need admin rights on Linux to install this, else you see lots of missing user rights errors, something I was able to solve with sudo (but I think for userfriendlyness this should be in the documentation anyway).

Aside from that on a RasPi 3B+ with a modern  TP-LinkBT LE Bluetooth dongle nearly nothing worked. The RasPi immediately crashed and when I took it in my hand to pull the power plug to reset it, I noticed that it got very hot. A simple web interface should really not do that. I restarted and while the minicomputer still got quite warm it kept running. I am, however, not confident that this is good for long time usage due to strain on the processor.

In their mail the developers wrote that you need to use Chrome, because Chrome is the only browser that supports the Web Bluetooth API technology. That is not entirely true, there are other browsers that support it, you can see that on a page of the Mozilla project (funny thing here is, that the browser that implements the most of this API is the much frowned upon Microsoft Edge). Personally I went away from Chrome for privacy reasons a long time ago, So I would prefer to use another browser with less privacy problems.

I have no idea if the Chromium that comes with Raspian is de-googled, but since I do not want to use the RasPi for surfing anyway I thought it would be fine to use it, and since it was a quite recent version I hoped that it would work. It did not. I only got a notice that I have to use a browser that is capable of Web Bluetooth.

So I opened port 8000 in the RasPi firewall and tried to connect to it from another machine in my local network, but regardless wht Browser I used (even Chrome), I got the same message. In the meantime the RasPi again was quite hot, so I stopped my experiments here as failure.

I have a Windows Box with freshly installed Windows 10/64 that I use for experiments and it was installed recently. So I decided to try that.

Installation of node.js with the Windows installer was no problem, also the installation of the Vector Web Setup package was easy (because of the … limited … user rights system in windows there were no problems with that and I did run the console with admin rights anyway).

However: Whoever wrote something about “Normal End User Usage” in the mail and the readme file clearly has only limited ideas on how clueless most computer users are nowadays and that they are not comfortable using the CMD window to get tasks done. So this needs to be way more easy and streamlined in the future.

After starting the web app and pointing my browser (Chrome) to localhost:8000 I actually did see something.

After an intro screen where I can probably select something in the future, but the dropdown only gives me “prod” at the moment, the app want to pair with Vector via Bluetooth  the same way the app does. I find that very curious since if the robot is in the same network as the app, giving the serial should suffice. In the Github repository Wire told me the reason after I posted an issue:

As for why they used Bluetooth: it is the only way to communicate with recovery firmware, and they need to use it to get the account details into the robot. After that, the robot settings actually do use similar to the SDK gRPC endpoints. Recovery firmware can be changed, but it is a tedious process that may not be done.

Aside from that the pairing failed. I tried several of my Vectors and i tried them near the dongle and two meters away from it. After an hour of frustrating tries I was ready to just give up on this and wait on updates, when I decided to reinstall Chrome (that was freshly installed on the computer about an hour ago).

And to my great amazement that did it and I was able to connect to one of my Vectors.

And all that work for nothing more than to be able to set time zone, and what systems I want to use for temperature and distance, metric or imperial. A lot of other settings we know from the app are just missing, e.g. language flavour or eye color.

Also the Vector Web Setup should be able to transfer a firmware to the robot. For that you have to issue some commands in the command line console to download an older firmware version (that did work) and to sign it. Signing it with “ota-sign” did not work, since the command is not even implemented in the current version (as the help parameter showed me), other than the documentation suggested.

So I think that calling this alpha state a “version 1.0.0” is somewhat … optimistic. The installation and usage is finicky and tedious even if you know what you are doing. “Normal End Users” are most probably overwhelmed by this.

In addition all of this can be forked on Github, it is distributed under the MIT license, a license that is somewhat frowned upon by Open Source enthusiasts, as future development can be taken out of public doimain with this license, read more about it here. But that is prone to opinion, others think MIT license is just fine.

I forked the code on Github and cloned it to my local computer to have a look at it. From a little skimming of the files I could see that there seems to be absolutely no commenting or documentation done in the code. That is bad for an open source project because it makes it way more difficult for third parties to modify it, as is allowed under the MIT license. And also additional documentation other than the short readme file with missing sections is completely absent. But obviously DDL found it immensly important the first line of code in every file reads:

/* Copyright (c) 2019-2020 Digital Dream Labs. See LICENSE file for details. */

I may of course be wrong, but from lots of details like missing commands, missing features, incomplete documentation and the fact that the kickstarter email is just a carbon copy of the readme file in the Github repository that the mail probably was sent yesterday by error and it was meant to be sent later. But of course I may be wrong here.  As usual the communication and information by DDL could be better in my opinion, especially there should be way more information on what this is and what it actually can do in its current state for less tech oriented users. I already saw quite some questions on what the heck all this possibly means. It should have made been clearer that this is a test for more technical inclined users and there will be versions for everyone later on.

So for now my verdict is: If you are confident on a command line interface and if you are really interested in doing this, give it a try and expect trial and error. If you just want to use your Vectors stay away from it for now.

This can get more interesting in the moment the OTA (firmware) upload actually works. Because then you will be able to go back to 1.6 if you wish to do so – and a lot of people said they would like to.

When and if that works I will write a tutorial on how to do it – but caveat: you will need to use a CMD window for that and you will need to install node.js.

9 Comments

  1. Paul Reeder

    So, if I am to understand this, you are saying we, the consumer, will be able to “Flash” the OS onto Vectors main processor? If so, I believe this will fix the “cannot connect to WiFi issue. I believe it is just a corrupt file that is causing Vector to not be able to connect to WiFi. Only problem I can foresee with this is, DUH! You will need a WiFi connection to “flash” the OS? Or, will you be able to Flash it using the Bluetooth connection? I have one of the Vectors that I am talking about. He connects to Bluetooth first time every time. But, he is unable to connect to WiFi. His back lights continually flash orange. I have another Vector on the same network and he has no problem with either Bluetooth or WiFi. I am just hoping.

    1. Paul Reeder

      OOPS! I just realized that my answer was here the entire time. YAAY! It does require Bluetooth to “Flash” the firmware. sorry about that. Is there a way to do that as of now? It sure would be nice. I guess my next question is where do we get the firmware? Is it available now? I am already getting excited. Also, will the firmware have all of Vector in it? In other words, a complete wipe and install as if Vector just came off the assembly line and is being set up for the first time? Lots and lots of questions.

      1. Did the last official firmware update wipe your Vector? Answer: no it didn’t. So flashing a firmware will leave the custom data untouched.

        All other questions can be answered by looking into the Github repository I linked in the post for that reason.

  2. Holger

    Is there anything this company has ever done right…
    This is all totally bumbling……….
    Thank god there are people like you who can tell us about this shit.
    Thanks for that. I have no confidence in this company anymore And unless a miracle happens, they’re going to screw up the treasure Anki packed into that robot… ☹️

    1. I have no idea how you can come to this conclusion. This is a very early version but at least it shows that DDL actually is working on something. Communication is bad, as is documentation, as I expected from DDL, but it is a step in the right direction.

  3. rightaboutnow

    there is no clear answer if it is possible right now to switch back to the 1.6 firmware
    i got that vector-web-setup stuff running under windows 10 (didn’t work out in ubuntu).
    i got the firmware, i approved the firmware, how do i get it into the bot?
    i guess “3. Install it on a robot by running the software and selecting the new file.” means it is not possible right now, because there is no instruction on this, or am i missing something?

Leave a Reply

Your email address will not be published. Required fields are marked *