Crazyflie client Chrome app

Recently I got a Chromebook, mostly out of curiosity for this odd “computer that runs only a web browser”. While playing with Google dev tools I quickly saw a possibility to make a Crazyflie client as a Chrome app: the Chrome API provides USB connectivity,and HTML5 has a javascript gamepad API. A chrome app is designed to look and feel like a native application: the app does not require internet connection and is launched in its own window.

This week-end I finally got around to test it, it’s not pretty but it works :-)


The current functionality is:

  • Channel and datarate can be changed
  • Read input from a gamepad, the mapping is fixed to mode 3 and the sensitivity is fixed
  • Sends set-points to Crazyflie 33 times per seconds.

I haven’t had time to do any layout work on it (that is pretty obvious in the screenshoot :) ), but the plan is to use Angular Material to handle the GUI.

This is only a proof of concept but we are seeing a lot of potential: the Chrome app runs on Linux, Mac, Windows and Chromebook, is easy to install and is written in HTML/CSS/Javascript which seems to be a very popular platform nowadays.

I have pushed the code on Github so if anyone is interested in helping to shape up the app head to the forum to read the discussion about it.


4 comments on “Crazyflie client Chrome app

  • Hi Arnaud,

    I’ve been working on improving the look and functionality of this extension. I’ll send a github pull request after my Crazyflie 2.0 arrives and I get a chance to test it.

    • Hi Richard,

      Sounds great! If you want you can also send the pull request not and I can test :-).

      • I just sent the pull request. My version expands the User Interface and I would like to make more changes, but I can’t connect the Crazyradio PA yet. Not sure what’s wrong, it shows the following error:
        chrome.usb.claimInterface error: Error claiming interface.

        • Great! Though I think you made the pull request on the wrong repos (happens to me recently, github has a strange UI). For Crazyradio PA it works on the master branch for me, maybe it depends of the system. Lets talk about it on Github.

Leave a Reply

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