Control the USB Thunder Missile Launcher with your web browser.
CSS JavaScript PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
assets/images
src
.gitignore
.jshintrc
Gruntfile.js
LICENSE
README.md
app.js
package.json

README.md

Thunder Commander

Control your USB Thunder Missile Launcher with a web application based on node, express and AngularJS in a web browser of your choice.

You can see a live demo of the frontend (without a connected device) here: Thunder Commander client demo.

Thunder Commander - connected device

Features

  • Works in every browser & system
  • Responsive
  • Control with mouse / touch / keyboard

Keyboard controls

  • Left arrow: Turn left
  • Right arrow: Turn right
  • Up arrow: Turn up
  • Down arrow: Turn down
  • Space: Fire missile

Install

node

Install node if you don't have it.

libusb

You need libusb in order to install the dependencies.

Linux

sudo apt-get install build-essential pkg-config libusb-1.0-0-dev

Windows & Mac

Please contact me or create an issue if you need assistance.

Clone the repository

git clone git@github.com:TimPietrusky/ThunderCommander.git

Switch into the folder

cd ThunderCommander

Get dependencies

Linux

sudo npm install

Windows & Mac

Please contact me or create an issue if you need assistance.

Start the application

sudo node app

The application is now available under http://localhost:1337. If you want to change the port you have to edit the app.js file:

// Listen on port for connection
app.listen(1337);

Thunder Connector

In order to connect this web application with the real USB device I created the node module thunder-connector.

The journey

At first I tried to create a Chrome App, but the chrome.usb API is not allowed to call USB-HID devices, because the OS kernel grabs and interprets them before the user space code has a chance to do so.

After that I tried to create a node application with the help of the usb package, but it has not access to USB-HID devices too D:

That's why I started the third time from scratch with the node-hid package. But this time it worked :D

Thanks

Author

2013 by Tim Pietrusky