5/7/15– Jon McKay
How to contribute to the Tessel project
We’ve received quite a few inbound requests asking how folks can get involved in the development of Tessel 2. That’s why we’re excited to release a Virtual Box image that will enable you to emulate a Tessel 2 from your computer and even use your computer’s USB ports as Tessel 2 USB ports. Follow along for a quick guide on how to get up and running with the VM.
Edit: the VM development process has been improved and you can find updated documentation on the vm repo.
Tessel 2 features two 10-pin module ports for lower-level microcontroller peripherals and two USB ports for peripherals like flash drives, 3G dongles, and webcams. You can use the VM start building USB modules like this Node wrapper that works with most off-the-shelf webcams. It’s a great way to become a part of the core contributors before the actual hardware is generally available.
You’ll need to install Vagrant (version 1.6 or greater) as a prerequisite. After that, you’ll need to pull down the CLI, generate an SSH key, and connect to the shiny new VM:
# Clone the CLI repo > ~/projects/ git clone firstname.lastname@example.org:tessel/t2-cli.git # Link it so you can develop and use it globally > ~/projects/ cd t2-cli; npm link --local; # Generate the SSH key to use with the VM > ~/projects/t2-cli t2 key generate
# From the containing folder, clone the VM repo > ~/projects git clone email@example.com:tessel/t2-vm.git # Download dependencies > ~/projects/ cd t2-vm; vagrant plugin install vagrant-triggers; # Start up the VM > ~/projects vagrant up
At this point, you should be able to search for all advertising devices and list them on the command line (using mDNS):
> ~/projects/t2-vm t2 list > INFO Scanning for connections... > INFO LAN CONNECTION ip: 192.168.128.171 , name: Tessel-080027AF44E2 , Authorized: true
And then you can deploy code
# From the CLI repo... > ~/projects/t2-cli t2 run test/test-deploy-script.js > INFO Connecting to Tessel... > INFO Connected over LAN. IP ADDRESS: 192.168.128.71 > INFO Bundling up code... > INFO Bundled. Writing to T2.... 4096 > INFO Deployed. > INFO Running script... > If I had an actual LED, it would be on right now... > If I had an actual LED, it would be off right now... > If I had an actual LED, it would be on right now...
Biggest issues to tackle
We recently completed the entire spec for the Tessel 2 CLI on our forums and added Github issues for each feature that needs to be written. There are still a lot of interesting features to build for the CLI and these issues are the lowest hanging fruit.
In addition, there are a couple of larger issues that could use some love. Please do get in touch if you’d like to get involved with these features:
- @allanca started working on a binary server that can inject pre-compiled versions of modules with binary dependencies into bundles being deployed onto a Tessel. We need to get these changes rolled into the new CLI and the actual server deployed.
Get in touch
We’re looking forward to see more of what the community cooks up. Get in touch with us on IRC (#tessel) or on the Forums if you have any questions or suggestions.