Empowering software developers to plan, prototype, and produce embedded smart devices.
Don't wanna be here? Send us removal request.
Text
Say hello to Node 8!
In our effort to keep the Tessel 2 updated with the latest Node LTS (Long Term Support) version, we're proud to announce the latest firmware release with Node 8!
After becoming the LTS version at the end of October 2017, Node 8 will stay under active support until April 2019 and under maintenance until the end of that year.
With Node 8 comes a slew of new features, including a speedy update to the V8 runtime and the introduction of async / await.
An asynchronous function is a function which operates asynchronously via the event loop, using an implicit Promise to return its result.
async function declarations allow for asychronous code to be written in a synchronous-looking way, which is very handy with hardware and networking platforms like Tessel. No more nested callbacks or Promise.then chains to manage wireless connections or messy conditionals for async responses. Because the Tessel API uses the standard Node-style callbacks, the built-in util.promisify function can be used to make the API ready for async / await.
A nice example for blinking an LED where we want to wait 2 seconds between blinks:
With async / await:
const tessel = require('tessel'); const green = tessel.led[2]; const sleep = (wait = 2000) => new Promise((resolve) => setTimeout(resolve, wait)); // no top-level await yet (async function blink () { green.toggle(); await sleep(); blink(); })();
Without:
const tessel = require('tessel'); const green = tessel.led[2]; (function blink () { green.toggle(() => { setTimeout(blink, 2000); }); })();
While the callback nesting is not too bad in the latter example, the former reads like more synchronous and readable logic.
You can update your Tessel 2 through the t2-cli by running t2 update, which will take a few minutes to download and install. After it is complete, running t2 version should show the following output:
$ t2 version INFO Looking for your Tessel... INFO Connected to ava. INFO Tessel Environment Versions: INFO t2-cli: 0.1.19 INFO t2-firmware: 0.3.0 INFO Node.js: 8.11.3
Let us know what awesome projects you're building with Tessel by mentioning @tesselproject on Twitter. Happy Creating! 🤖
0 notes
Text
Team 276linesofCode - Rails Girls Summer of Code 2017
A note from Kelsey, mentor for team 275linesofCode:
I loved working with Brihi and Shravika through the summer, and am so happy to see them still commenting and contributing in the Tessel channels, four months after the official close of the summer program.
Rails Girls Summer of Code provided just enough support (including requiring the mentees to find further technical help locally) that I could focus my role on finding the intersection between the project's needs and my team's interests.
It was a pleasure to watch my team dive into challenges, struggle through frustrations, overcome shyness about asking for help, and really grow as contributors to the open source ecosystem. It also helped me to engage better with my own project, and was a wonderful source of energy for the Tessel Project as a whole.
To the other open source projects out there: I strongly recommend becoming a project mentor– this year's deadline is January 28th, so jump in soon!
–Kelsey
In June 2017, none of us had any idea what this journey would be like. RGSoC was the first Summer of Code or any other code mentorship program that we had been a part of. Our eagerness to grasp the most from the program kept us going all through the summer. We gained much more than we had even anticipated.
We both believe that Tessel was the best project that we could have worked on, since it welcomes new contributors in a positive manner that motivates them to give back to the community as much as they can.
Our Work this Summer
As we look back into our two and a half months, RGSoC and Tessel have given us opportunities to explore and grow in all spheres of an open source project. We got our hands dirty with things like documentation, tutorials, code, hardware experiments, talks, presentations and even product design.
We started our summer by exploring version control with GitHub and learning its intricacies. A professional open source project has a very different approach to pull requests and contributions than we were used to. We learned how to send pull requests, how to get them reviewed (trust us, reviews are the real deal for learning), how to squash commits, how to write clean code and clean commit messages, how to branch cloned repositories, and most importantly, how to voice questions and doubts on the issues that we don't understand.
Our Hardware modules were shipped by the Tessel team from the U.S., and we spent some time exploring them. This was the most exciting part: making circuits, seeing the LEDs shimmer, watching the accelerometer come to life, and much more.
After exploring the different repositories in Tessel, we started exploring issues which were "contribution starters", issues that help new contributors get an idea of what Tessel is all about. A lot of the starter issues we took on were listed in the Tessel blog called "This Week in Tessel"; we started completing them one at a time.
We made important tutorial modules for Tessel for their documentation page. This included Fritzing diagrams of the circuits, describing the functionality in layman terms, and writing code which would be easily understood, with the help of the comments. Along with this we started working on "Reach" during the last few weeks of the program.
Apart from all the technical work, we learned about product design and how exactly a product makes its way to the open source domain. We made a draft of something called a Product Requirement Document (PRD) for our proposal of HAP (Humanoid Arm Project) that we had made during our application process.
Challenges
Before RGSoC had started, our mentor, Kelsey had sent us a Plan of Work to follow, which helped us to schedule our tasks. It included the various things we had suggested we would like to work on during our application process. It was a weekly plan with difficulty level slightly increasing every week.
Here are some of the challenges we faced during the program:
One of the tasks we had to accomplish was to implement One-Wire Communication Protocol for Tessel. We worked for our initial few weeks on this issue, but we were not able to get much out of it. This was because we were not able to figure out exactly where to start. We tried mapping the Arduino code to Tessel, but still couldn't succeed.
Since we were beginners in git, sometimes we weren't able to figure out how to squash multiple commits into one for clarity, how to sync the forked branches with the master branch, and many other foibles. In the beginning, we did not even know how to send pull requests for different issues by making separate branches for each.
In the second month of RGSoC, during one of our weekly calls with Kelsey, we were introduced to Reach, which is a module that the Tessel community is currently working on. It requires the ESP32 hardware module. So, we got one for ourselves and started working on it, but got stuck since we were not able to push the Python code to the module. In the end, we were able to figure out the error in our approach with the help of one of our seniors at our University.
Tessel was all based on JavaScript. We were both new to this language and hence faced certain challenges while comprehending the code which was already there in Tessel. But, our mentor Kelsey, along with one of our coaches, Divam, helped us figure out the keywords used in the code snippets. With this help, we were able to make some tutorials for a few functionalities in Tessel in JavaScript.
A shoutout to the amazing Tessel Community!!
Our blog couldn't be complete were we not to thank the awesome Tessel Community that made our descent into open source a fun and a smooth ride. Every call with Kelsey would begin with her asking us whether we had been achieving whatever we planned for. She even asked if the tasks for the week were a lot or too little. But she always ensured that we had the right amount of work on our plate for that week.
Our weekly calls with Kelsey, our mentor, were the times where we learned the most. The timely response of the community members on any of our doubts were commendable. Any PR review would come in a day or a two, and the reviews gave us a different perspective on the issues. Nick and Kelsey, both Tessel Steering Committee members would leave comments asking questions about our code, which would force us to research more on the issue.
On our third meeting with Kelsey, she had said that "It is better to over-communicate rather than under-communicate" and thus, we would (shamelessly 🙈) ping them on Slack or on the issues whenever we were stuck, and a descriptive solution to our questions would follow. Many a time, Kelsey would explain to us our doubts on our call. Despite whatever mistakes we would make, the committee members were always positive and ensured that we were able to rectify our errors and learn from them. Many times, they've tagged us in issues that they thought we should be aware of and sent us links and resources to escalate our learning.
Tessel has provided us amazing an mentorship experience, one that is really hard to find. We are so glad that we began our journey into open source with such a welcoming community, so much so that we are more than willing to work for Tessel even after RGSoC is over. Tessel, We love you!
Extras
In these three months, we not only focused on core development work but we also presented a few lightning talks. We gave two of them - one for Women Who Code, Delhi and another for LinuxChix India. The LinuxChix India Meetup focused more on open source contributions, RGSoC and Tessel. Our supervisor Vaishali had introduced us to the community and put us in touch with the organizer of the meetup. We spoke about RGSoC - How to apply, what we do, our work, our social media, our blog posts, everything. After that, we went on to demonstrate our project - Tessel. There were several open source enthusiasts who had loads of questions about Tessel, and we were delighted to answer them. One person even wanted to use Tessel in his project that he was thinking of starting!
It was a great experience for both of us because we were able to pass on our knowledge to an enthusiastic crowd, get rid of our fear of speaking in front of unknown people, and gaining in depth knowledge of the topics involved. We had to explore every nook and corner of the topics in order to make our sessions productive.
What's next?
RGSoC provided us with a whole lot of things that we didn't even imagine gaining in this interval of three months. As it was a wonderful journey for both of us, we have thought of recommending this program to more and more people by conducting a few related meetups at our University under our Rails Girls Summer of Code, Delhi Chapter. Apart from this, we had discussed way back with our mentor during the application process that we would love to contribute to Tessel even after RGSoC ends. The months might be over, but the memories are here to stay!
Who would know that two confused, scared and shy humans who had absolutely no idea how they would survive the tech world could successfully complete RGSoC, loaded with experience and confidence?
Check out Rails Girls Summer of Code (it's not just for Rails), and get involved as a mentor or a mentee for 2018!
#RGSoC#Tessel#mentorship#mentoring#programming#code#women who code#rails girls#rails girls summer of code
0 notes
Text
Team 276linesofCode - Rails Girls Summer of Code 2017
Hey all,
It has been a long long ride since February (when we had to write our applications for RGSoC 2017) and it's finally July!
This is when we start our Rails Girls Summer of Code (RGSoC) 2017 program, by working and contributing for Tessel. Having seen Tessel as a project in the RGSoC project list of 2017, we were eager to take it up at once since, we felt that through this project we would be able to discover both the horizons - Hardware and Software.
Who are we?
Team 276linesofCode is an amalgamation of all things tech and electronic. The Team comprises Shravika Mittal and Brihi Joshi, a duo from New Delhi, India, in their sophomore year of College at IIIT Delhi. We are a dynamic duo that believes in learning and strengthening concepts while on the way to developing something.
Shravika is an Undergraduate majoring in Computer Science and Engineering. It's been hardly a year since she's got her hands dirty with programming, and it's already a vital part of her daily schedule. She brings out dedication and hard work in the team, excelling in whatever she does.
Brihi is majoring in Electronics and Communication Engineering and loves to mix and fiddle with creativity in code. She brings in the caffeine-induced, late night coding sessions along with fresh experiments in the team.
About our mentor - Kelsey
Kelsey is the team's mentor. She has been at Tessel since its beginning and is a member of the Tessel Project Steering Committee. All of the members of the Steering Committee are very excited to work with our RGSoC team– both to improve internal processes and mentoring capabilities, and to have the benefit of two full-time contributors building on Tessel!
What is RGSoC?
Rails Girls Summer of Code is a three month long award-winning global fellowship program aimed at bringing more diversity into Open Source.
It is about helping introduce newcomers to the world of programming and further expand their knowledge and skills, by contributing to a worthwhile Open Source project. The focus is not on producing highly sophisticated code, but rather participants learning transferable skills from their project work. Apart from experience in large-scale projects, RGSoC also inculcates community building by introducing its scholars to people who maintain these projects and other members of the community involved in it.
The RGSoC team structure goes like this : 1. The Students - A pair of Students who are enthusiastic to work on a chosen Open Source Project. 1. A Project Mentor - Usually an active contributor in the Open Source Project that is chosen. He/She is responsible for guiding the students in the project related tasks, features that are to be added and overall development of the project. 1. The Project Coaches - They are selected by the students during the time of the application and might be local (present in the same location as the students) or remote. They usually help the students in handling technical difficulties throughout the course of the program. 1. The Project Supervisor - They are the representatives of the RGSoC organisational team and guide the rest of the team with the procedures of the program.
RGSoC has both the sides - technical as well as social. Apart from working on the project, we even need to get involved in social meets such as a team call with the project supervisor, maintaining daily logs about what was achieved and what challenges we encountered that day, writing blog posts about our experiences etc.
This year, 20 teams were selected among which, 16 are Sponsored teams (We are one of them :smile:) and 4 are Volunteer teams.
What are we here for?
First and most important of all, to have fun! We are way too excited to start contributing and giving our best to this community.
Before the program started, we went through the Tessel repositories, got our development boards and familiarised ourselves with JavaScript. Soon after the program began, we sent in a few PRs to understand the contribution protocol of Tessel.
Soon as we complete the Tessel tutorials, we would be kicking off with an implementation of the 1-wire protocol in Tessel, which requires a lot of reading and working from our end. Then we are looking forward to move to a real world project, which can be solved using Tessel.
Before the beginning of RGSoC 17, we had formulated a plan to work on a project called Humanoid Arm Project (HAP). We would like to continue our work on this and bring it into realisation for solving some day to day problems using technology.
Having experienced a few IoT developmemt boards before, we cannot wait to delve deeper into the various functionalities and modules that Tessel has got to offer us. Also, Rust and JavaScript is a new experience for us. This would be the first time both of us are contributing to an Open Source project and we would like to learn the most we can from it.
We really hope RGSoC would help us transition from Team 276linesofCode to Tesselators so that we can be a part of this community even after RGSoC is over.
Here's to an exciting summer! :tada: :confetti_ball:
0 notes
Text
This Week in Tessel: Fun with Open Source
Hi, Tesselators!
Engineering work feels good. You work concretely toward a solution. You learn while you work. When you fix a bug or add a feature, you get a surge of accomplishment.
Looking for something to sink your teeth into? In this issue of This Week in Tessel, we'll give you suggestions for a few tasks to tackle.
Here are some open Tessel issues you can dive into. Feel free to jump in and ask questions, even if it's something new for you!
What's something I can finish in an evening?
Make it easier for the CLI to find your Tessel even in a room full of Tessels
Make module hardware information easier to find in docs
Document pin.pull
Improve handling of HTTP error codes from CLI
Return from Wifi connect if password is wrong
Make the SPI example code clearer
Clarify information on how update notifications work
Use chipSelectActive properly in SPI
What's something that will let me work with peers I can learn from?
Respond to @mzgoddard's Request for Comments on an idiomatic Rust API for Tessel
Explore speeding up Tessel's boot time
Figure out if Tessel 2's system on chip and microcontroller can communicate faster
Test if Tessel can support faster serial communication
Create 'invalid command' return value
How do I claim an issue?
If you see an issue you'd like to work on, comment that you're working on it and ask for any information you need.
Comment on the issue with any progress or problems– if you've tried something, even if you don't resolve the issue, it might be useful for someone else who comes along later.
Join us on Slack while you work so we can support you!
Other stuff we're up to
Want reimbursement for materials you need to work on Tessel? Conversely, want to financially support our work? Check out Tessel's new Open Collective page
We're one of the projects for RailsGirls 2017 Summer of Code! RailsGirls is an inclusive code mentoring organization, which (despite the name) does more than just Rails. We are excited to be a part of this– applications are open if you or someone you know wants to spend three months working on open source.
Love,
The Tessel Team
0 notes
Text
This Week in Tessel: Thanks for all the PRs
Hello, Tesselators!
TL;DR:
Help out on the redesign of tessel.io
Thank you to our Hacktoberfest participants!
SparkFun Tutorials with the Tessel 2
tessel.io is ready for a redesign
The original design of tessel.io was focused on promoting and pre-ordering the Tessel 2, showing off its many features, modules, and example code. Now the Tessel 2 is out in the real world, available at SparkFun, Seeed Studio, and even Micro Center, so its time for tessel.io to focus on the Tessel Project and the incredible community around it. If you want to help design and build front page of an open-source hardware and software platform, check out the open issue and let us know how you want to get involved!
Hacktoberfest Review
Hacktoberfest was a rousing success yet again for the open-source community on GitHub. Thank you to the new and current contributors who participated because we appreciate every PR opened. There are still plenty of starter issues available for anyone who wants to get some practice in for next year's event.
Build cool stuff with SparkFun and Tessel 2
Our friends at SparkFun and Bocoup put together some amazing project tutorials using parts from the Johnny-Five Inventor's Kit, along with a few other materials. These projects are great for anyone who wants to move past the hardware basics and construct a full-featured machine or Internet-connected service with Tessel 2. If you haven't bought the Inventor's Kit yet, it will be a part of SparkFun's Black Friday and Cyber Monday deals!
Shoutout to the Tessel community
Tim Ryan spoke at Rustfest in Berlin
Andre Garzia presented the Tessel 2 at Web.br
Scott Klein wrote about connecting your Tessel to the Microsoft Azure IoT Hub
That's all for this week! Feel free to submit to the next newsletter. In the meantime, see you online.
With love, Everyone at the Tessel Project
This Week in Tessel is where we highlight the latest news, projects, and events, from code, to community, to hardware manufacturing.
0 notes
Text
# This Week in Tessel: Hacktoberfest, Rust update, and conferences, oh my!
Hello, Tesselators
TL;DR:
Hacktoberfest is back, and we have open issues labeled for participants!
We just released an update to t2-cli, enabling local compilation for Rust programs!
Jon and Kelsey will be at JSConf Asia in November to speak and host a hands-on Tessel module workshop!
Hacktoberfest
DigitalOcean brought Hacktoberfest back to life this month to encourage more open source contributions by sharing resources for creating more approachable issues and giving out shirts & stickers to participants. Since one of our two core goals this year is to increase contributions and encourage both inclusion and accessibility to newcomers, we've labeled a bunch of issues for folks who want to contribute to open source and get involved with Tessel. These issues are also available after Hacktoberfest is over and available for anyone to work on.
Local Rust Compilation
As we iterate on the hardware and module APIs for Rust, we wanted to further improve the experience for Rust developers. Tim Ryan (@trimryan) has added support for local compilation of Rust programs in the latest release of t2-cli. You can now cross-compile Rust code for an embedded device seamlessly using t2 run. Check out the repo for instructions, try it out, and let us know how it's working for you in the #rust-lang channel of our Slack community.
Jon and Kelsey at JSConf Asia
Jon McKay and Kelsey Breseman will be at JSConf Asia at the end of November to speak and host a workshop, where you can learn about hardware communication patterns and building a custom Tessel module. There is still plenty of time to grab a ticket and join them for a full 10 days of tech events!
Cool stuff in the community:
Rahul Ravikumar wrote about the crash reporter in t2-cli
The ESP32 chip was released last month and looks very promising as we are investigating the potential brains for the Tessel Reach
Helen Holmes has started a newsletter called This Week in Hardware, showcasing awesome hardware projects and getting started experiences.
That's all for this week! Feel free to submit to the next newsletter. In the meantime, see you online.
With love, Everyone at the Tessel Project
This Week in Tessel is where we highlight the latest news, projects, and events, from code, to community, to hardware manufacturing.
0 notes
Text
This Week in Tessel: Special Report from Tesselcamp
Hello, Tesselators!
Tessel Project leadership met up at Tesselcamp to determine the organization's goals and main activities for the next year. In this special issue of This Week in Tessel, we're reporting back to you:
TL;DR:
We've set goals for the next year focusing on growing community and making it easier to use Tessel 2 in production. Read the specifics.
There are working groups to go with the goals, and we'd love to have you. Check them out here.
There are new releases out for T2 CLI (including Node 6 support) and Firmware. Plug in your Tessel and run npm i -g t2-cli; t2 update to use them.
Documentation now includes more of the stack.
Repos are now more contributor-friendly than ever with badges and standardized labels.
Part of the @tesselproject team at Tesselcamp, photo by Flaki.
Goals for the next year
The two key goals for the next year are:
Grow the community to increase contributions and encourage both inclusion and accessibility to newcomers.
Build effective working groups that can complete their tasks with measurable results.
Upgrade our documentation. Build more fritzing examples, API prototypes, and call out features that are currently missing from the docs.
Update the tessel.io website to more accurately represent the project and its plans.
Support and grow the number of production deployments of Tessel in the field.
Research and create a guide for production-scale deployment of a Tessel project. Base this on the needs of current users.
Build Tessel Reach, the low-power hardware endpoints of a star network whose center is Tessel 2, so Tessel can make sense in more use cases.
Build first-class support for Rust API and documentation (parity with JS) and figure out JS-Rust inter-exection to provide for performant high-level coding of serious applications.
Investigate increasing RAM and Flash availability on Tessel or a revision of the Tessel board, reducing friction in production-level deployments.
Read more in the Tessel Project readme.
Working groups
To accomplish the outlined goals, the team decided to form working groups as follows:
Learning WG: investigate user needs for production & write a guide on how to take a Tessel project to product scale. Also build and document GPIO/GUTS (Great Uses for Tessel in Stuff e.g. hacking a production system) projects. Learn more/get involved
Website WG: Create a better website for what we are & what we plan to be based on this year’s goals. Learn more/get involved
Rust WG: Get Rust to 1st class support
Reach WG: Ship Reach
Memory WG: Investigate strategies to make larger projects deployable on T2, possibly as a 2.1 Tessel hardware
Since working groups are new for the project, we're rolling out these groups slowly. The Learning and Website WG's are our pilots. See the working groups section in the Tessel Project readme to learn more and get involved.
Please get involved! It is our hope that working groups make it easier for people to engage with specific facets of the Tessel Project.
Updates from the Repos
Tesselcamp also included lots of work time. This helped us release new versions of T2 CLI, firmware, docs, and our repos!
We recommend you update CLI and firmware with npm i -g t2-cli; t2 update so you get the benefits of our latest work.
CLI Update
The node-usb module has been moved to the Tessel organization. Thanks to Kevin Mehall for being its lead developer and maintainer!
We've updated its CI infrastructure to publish binaries for macOS and Windows for all current Node versions.
As a result, we were also able to publish a new version of the T2 CLI. You no longer have to run Node 4.x to talk to Tessel from the command line; any Node version 4.x, 5.x, or 6.x is supported.
Here are the full release notes for T2 CLI 0.0.27 and 0.0.28.
Note: Tessel 2 still runs Node 4.x as it's the current LTS (long-term support) version. The next LTS release is coming up in October, and we expect to release Node 6.x on Tessel at that time. You can follow our progress in upgrading Tessel 2 for Node 6.x support, and help us design a release process for supporting new Node versions going forward.
Firmware Update
The version 0.0.14 release of the Tessel firmware includes a variety of stability improvements for USB and GPIO communications.
This error should be long gone!
A few Network API bugs were squashed as well, making the returned network information more consistent.
The Tessel.Port.close method was added to allow closing power to individual ports, i.e. tessel.port.A.close() will turn off power to Port A. One or both ports can be opened again using tessel.open('A') or tessel.open(). More control over the power to the ports means more energy efficient projects!
The full release notes can be found here.
Docs Updates
From the many recent updates to the Tessel docs, the most notable are:
The Debugging section now includes more documentation about Tessel 2's full tech stack and how to interface with the Linux filesystem. This reflects the philosophy that you should be able to hack Tessel on any level, not just through the API we expose. It also helps blur the line between Tessel "users" and Tessel "contributors".
The Tutorials section has new documentation on Pulse Width Modulation: what it is, how to use it, and diagrams for experimentation. We hope to do more in this space with other signal protocols in the future – please post an issue on the T2 Docs repo if there's some electrical concept you'd particularly like to see more examples of.
There is always more to do in documentation. Check out some of the well-outlined starter issues if you want to help the community learn!
Contributor-friendly repo updates
We try to make our repos as friendly as possible. A couple of new additions include:
We've added Code of Conduct badges to our active repos. This is an efficient way to explicitly link every repo to our Code of Conduct, and serves as a visual reminder to all visitors that we're a caring community.
Standardized labels across our active repos make it easier to get work done. In addition to our contribution-starter label (where we take special care to point you in the direction of relevant documentation), there's a design label for graphic design on some repos, and a discussion label for issues seeking advice and considered opinions.
That's all for this week!
Usually, we'd have some links to projects and talks here, but we don't want to wear you out with this email!
Please feel free to submit talks, blog posts, projects, and more to the next newsletter. In the meantime, see you online.
With love, Everyone at the Tessel Project
This Week in Tessel is where we highlight the latest news, projects, and events, from code, to community, to hardware manufacturing.
0 notes
Text
The Tessel Crash Reporter service
TL;DR
Do you want to know how the Tessel team identifies and fixes problems in the Tessel command line interface (CLI) without requiring users to reach out to the Tessel team? Say hello to the Tessel 2 crash reporter.
Introduction
The Tessel 2 crash reporter is a web service which automatically collects anonymized crash reports when a crash is detected in the Tessel 2's CLI. Given that the CLI is one of the primary ways of interacting with your Tessel, it is important that the CLI be extremely stable and a joy to use.
This project started during the early days of the CLI. We wanted to make sure that the team was proactively looking at and fixing issues as users encountered them. We wanted to make sure that the onboarding experience was as smooth as possible for new users.
How it works
Every time you use the Tessel 2 CLI, a central controller dispatches your command to an appropriate task handler. The crash reporter automatically checks for uncaught Errors and unresolved Promises in the node process that's executing the task.
Once the crash reporter detects a crash, it removes all personally identifiable information from the stack trace, and uploads it to the Crash reporter web service with the user's permission. After the user opts-in the first time, subsequent crashes are automatically reported. Below is an example of what that interaction looks like:
ERR! Detected CLI crash [Error: Testing the crash reporter] Error: Testing the crash reporter at CrashReporter.off.CrashReporter.on.CrashReporter.sanitize.CrashReporter.sanitize.redactions.CrashReporter.prompt.CrashReporter.submit.CrashReporter.prompt.then.CrashReporter.post.CrashReporter.status.CrashReporter.test (/Users/rahulrav/Workspaces/Tessel2/CLI/lib/crash-reporter.js:177:25) at process._tickCallback (node.js:406:9) at Function.Module.runMain (module.js:449:11) at startup (node.js:141:18) at node.js:933:3 INFO Detected a crash in the CLI. Submit crash (y/n) ? If yes(y), subsequent crashes will be submitted automatically.
We put a great deal of thought into potential privacy issues, and decided to make this feature opt-in. The user can also turn off crash reporting simply by using one of the below options.
Usage: t2 crash-reporter [options] Options: --off Disable the Crash Reporter. --on Enable the Crash Reporter. --test Test the Crash Reporter. Configure the Crash Reporter.
The service
The Crash reporter web service collects the crash report, and de-duplicates it using the Sim Hash algorithm. Sim Hash looks at the contents of the crash report and computes a unique signature (called the fingerprint) and also keeps track of the frequency of the occurence of the report. The service also provides a way to look at Trending crashes and also provides a full text Search API. The service itself is built using Google App Engine and the Python Runtime. The full source code for the service is here.
Hi from tessel-crashbot
Recently, we landed a really cool feature in the Crash reporter service. In an effort to simplify the worflow of the Tessel team, which manages all feature requests and bug-fixes using GitHub issues; the Crash reporter service uses GitHub's API to automatically create and manage issues for every crash report. Anytime there is a new crash in the wild, the ever friendly tessel-crashbot is ready to help proactively keep track of the problem. The tessel-crashbot also updates the GitHub issue via comments when it sees an uptick in the frequency of a crash. This helps the team identify the severity of a crash report.
.
0 notes
Text
This Week in Tessel: the busy summer issue!
Hello, Tesselators!
TL;DR:
We want your feedback on an upcoming Tessel project -> Take this 6-question survey
Tesselcamp is coming up this week in NYC; please join the community day if you're in the area!
International Nodebots Day was a grand success with the Johnny-Five Inventor's Kit!
Tessel Community Survey
We're researching the next direction for Tessel Project hardware, and we have six questions for you.
Help us out by telling us what the future of connected things should look like on this survey!
Tesselcamp
The Tessel Team (the Steering Committee and some of the Team Members) are meeting in person the first time at Tesselcamp next week.
The event will be a low-key three-day session in New York City for core community members to discuss vision, focus on key issues, and spend time together as a team.
The final day of Tesselcamp (Saturday, September 3) is a community day, in which members of the public are welcomed to use the hardware and expertise of the core Project members and get up to speed contributing to the Project. If you're in the area, please come!
For those not in the area, we encourage you to spin your own "welcome to open source" themed events. Want to host one in your local community? Get in touch; we would be happy to help.
Nodebots Day Recap
We mentioned International Nodebots Day in the last newsletter, with a special mention of the Johnny-Five Inventor's Kit as the kit of choice for a few of the event locations, like NYC and Miami. The Tessel 2 was also used to power Sumobots at Houston's event, with a great recap by Justin Gosses.
Check out @nodebots on Twitter to see pictures and video from other events around the world!
More Tessel: Links Roundup
Things to try
Build an environmental monitor with the Johnny-Five Inventor's Kit
Let Tessel tell you when there is an awkward silence in a room
Things to watch and read
Meet Kelsey, the nomadic community champion of the Tessel Project Steering Committee
Learn to build a language plugin and use any programming language on Tessel 2 in six straightforward steps
Our docs have now transitioned to Gitbook, where they're easier to manage, more prettily rendered, and made accessible with a glossary
That's all for this week! Feel free to submit to the next newsletter. In the meantime, see you online.
With love, Everyone at the Tessel Project
This Week in Tessel is where we highlight the latest news, projects, and events, from code, to community, to hardware manufacturing.
0 notes
Text
Meet a Tesselator - Kelsey Breseman
(@selkeymoonbeam)
A somewhat tired Kelsey backpacking in Iceland
How did you get involved with the Tessel Project?
I wasn't involved much in microcontrollers, or even programming, before Tessel. I'd worked with both a bit in college, but it wasn't a guiding passion for me.
The summer after I graduated, I was living with several friends, including the team of three that was founding Technical Machine to build Tessel.
I had a work-from-home contracting job at the time. Our apartment had no air conditioning, and Boston was really, really hot that summer. So I started showing up at Technical Machine's office space, and grew interested in the proposition: how do you get people who have no idea what they are doing to try hardware – and not fail? How do you take the world of the Internet – obviously useful, but traditionally accessed via screens (pretty limiting and draining, in my opinion) – and better hook it up to the real world and to physical space?
Within about a month of the company's founding, I was showing up to work every day, writing about the project, getting more into programming, and getting involved.
I can't claim credit for the idea of JavaScript on a microcontroller, or the implementation (novel at the time) of Wifi on a microcontroller. But I am really proud of the influence I was able to have over the user experience. As a relative beginner in both JavaScript and hardware, I was always asking: how do we make this or that clear to people? How will this feature be understood by someone who has never picked up a wire before?
As the project developed, I adopted an "I fight for the user" mindset and guided product development as Director of Community.
How to run an open source hardware project. Impressed. They ship atoms. #OSCON @tesselproject @SelkeyMoonbeam pic.twitter.com/oerr8RNDZH
— Ian Tien (@iantien) May 18, 2016
Kelsey Breseman speaking at OSCON 2016: "How to build a product when nobody's getting paid"
When we transitioned to open governance as the Tessel Project, I put together a lot of our new structure and rules and became one of the four founding Steering Committee members. Together, we (now five of us) run the project.
What do you like best about being involved with Tessel?
It has been exciting to watch this project and community grow.
I travel around the world giving workshops on Tessel, and I love that moment, every time, when a person's face lights up.
"Oh my gosh!" they say. "It did something! I made it do something!"
Most of the people I teach Tessel to are people who have never had a success with hardware before. Sometimes, I'm also teaching them to code– that's a lot of fun.
📽 @selkeymoonbeam live coding on @tesselproject at @nodeconfoslo -https://t.co/2OamQ3vKli pic.twitter.com/922qvKfKkd
— Opbeat (@opbeat) July 9, 2016
Kelsey Breseman live coding on Tessel 2 at NodeConf Oslo 2016
The other piece that I love is building connections between people– inspiring them to work on things together.
Community is powerful. If I were to take on the whole of the Tessel project by myself, it would die pretty quickly. But if I can inspire a few people to work with me on it, we can get a lot done.
One of the biggest challenges is figuring out how to keep a distributed team inspired and engaged. Our team members mostly haven't met each other!
It's an ongoing social experiment for me to create tools and practices that make people want to keep coming back.
Discussing @tesselproject with @SelkeyMoonbeam back at #ruhrjs 🦄 (+@rameramwe lounging in the bg 😅) #mozTechSpeakers pic.twitter.com/VauNlP9QI7
— Flaki (@slsoftworks) August 3, 2016
Kelsey Breseman and Flaki (István Szmozsánszky) discussing Tessel at RuhrJS
I absolutely love when I go off in the woods for a few days, come back to the internet, and discover that someone I've never met or heard of has started working on one of our repos. Or, when community members ask support questions, and other community members respond without anyone from the official Team being involved. That feels like community success.
Outside of Tessel, what are you working on right now?
I've been thinking a lot about climate change recently: reading books and articles on the subject, trying to wrap my head around all the issues at play and the opportunities they create. I'm blogging about my thoughts and taking copious notes, both as a way to help me think.
The plan is to start a company in this space, though I'm not sure yet of the exact proposition. Climate change is going to require a lot of people to work hard on interesting new problems. I would like to be involved in connecting smart people to interesting, meaningful problems.
Do you have any advice for people who want to get involved with the Tessel Project?
Jump in with both feet. We'll catch you.
People are sometimes nervous to start contributing to the Tessel Project. By its very nature, it gets people from one field interested in another field they don't know much about (web, hardware, and vice versa).
My advice: contribute even if you feel completely unqualified. We have a number of open starter issues.
This is how you learn. It's hard. You feel stupid. You put yourself out there on the internet. But we're here, and we want to help you.
Sometimes, what you need is a good project to learn on. Tessel was that project for me, and I hope it can be for you, too.
Love,
Kelsey Breseman
0 notes
Text
Interfacing with the Language Plugin API for Tessel 2
This month we merged one of the most significant pull requests for the Tessel project: adding Rust deployment support. For the past three years we've focused exclusively on deploying JavaScript on microcontrollers. This is our first step investing in a new language, a new ecosystem, and a new community. However, the purpose of this post is not to dive into the benefits of Rust, but rather to showcase the ease of adding new language support to the Tessel CLI.
Despite the significance of this addition to the CLI codebase, the amount of code we modified was relatively small. We simply added two main files (along with minor modifications to a handful of other tests): one with the implementation and one with unit tests. The simplicity of the feature addition is a testament @rwaldron's hard work building the CLI's language plugin system. In this post, I want to demonstrate how straightforward it is to add support for a new language to the CLI using this plugin system.
You can deploy an arbitrary code bundle to Tessel 2 (in any language) with the same six general functions:
Determine project location in the file system
Run any compilation/pre-processing steps (optional)
Bundle the executable code into a tarball
Run any pre-execution steps (optional)
Execute the code/binary
Run any post-execution steps (optional)
These functions are more concisely named checkConfiguration, preBundle, tarBundle, preRun, shell/binary, and postRun (respectively). Here is an explanation of each of those interfaces.
1. checkConfiguration
checkConfiguration accepts the directory that was deployed with t2 run ... and returns the path to the entry point of the project. With Rust, we do this by parsing the Cargo.toml and with JavaScript we parse the project's package.json. It is expected to return an object with a basename and optional program property (for the name of the project).
// checkConfiguration to confirm project deployment files exportables.checkConfiguration = (pushdir, basename, program) => { // Should return the file information for the program return { basename, program }; };
2. preBundle
preBundle is an optional step for any processes that need to be run prior to packaging the directory that will be sent to the Tessel 2. For example, when deploying JavaScript, this function is integral to the binary compilation stage (where we inject our pre-compiled binaries in place of existing project binary dependencies). For Rust deployment, this step is less critital but we use it to set some optional parameters (which we could do in the next function as well).
// Optional function to process options prior to bundling project exportables.preBundle = function(options) { // Should return a Promise which gets resolved when the code is ready to be tarred return Promise.resolve(); };
3. tarBundle
tarBundle is a required step which should resolve a Promise with a Buffer that represents the tarballed code or binary. The CLI will automatically untar the bundle after it is deployed on the Tessel 2.
In the case of Rust, this was the biggest addition. In order to compile Rust code for Tessel, we needed to set up a special cross-compiler that could compile a binary that runs on Tessel's MIPS architecture. The easiest solution was to have the CLI send out the project to a preconfigured remote cross-compilation server. The server then compiles and returns the binary to the CLI.
// This must implement a Promise that resolves with a Buffer // that represents a DIRECTORY containing the desired bundle. exportables.tarBundle = function(options) { // Should return a Promise which eventually gets resolved with the bundle return Promise.resolve(bundle); };
4. preRun
preRun is an optional step that's useful if you need to call any shell functions on Tessel itself before the project is initialized. For example, with Rust, we set the permissions of the binary to ensure it's executable. It's unused for JavaScript.
// Optionally make changes within Tessel's Linux environment before starting the program exportables.preRun = function(tessel, options) { // Should return a Promise which eventually gets resolved return Promise.resolve(); };
5. shell/binary
t2 run
binary is a string that represents the engine that runs the program. It is used as the first argument in a shell command to start the program when a project is run. For JavaScript, this string is node and for Rust it's ..
t2 push
shell is a function that could have been named begin because it's responsible for actually getting the program going when you push the project. The reason it's called shell instead is because the function needs to return a string representing the contents of a shell script that starts the program.
exportables.binary = 'YOUR_EXECUTION_METHOD'; exportables.shell = (options) => { return tags.stripIndent ` #!/bin/sh exec YOUR_EXECUTION_METHOD /app/remote-script/${opts.resolvedEntryPoint} `; };
6. postRun
postRun is another optional step that's useful if there is code you need to run on Tessel after the program has started (but not necessarily before the program has ended). It's largely unused thus far so far but was added for future-proofness.
// Optionally make changes on Tessel after starting the program exportables.postRun = function(tessel, options) { // Should return a Promise which eventually gets resolved return Promise.resolve(); };
Conclusion
That's just about all there is to adding language support to the CLI. There are several more steps that need to be taken to build full hardware support for a language on Tessel. You can follow Rust's progress in that process here.
If you have questions about the unit tests or the implementation of new languages in general, feel free to reach out in the #engineering channel of Tessel Slack. Let us know if there are any extra plugin functions you think the CLI needs to accomodate or if you need help building a plugin for the language you'd like to build hardware with.
Jon
0 notes
Text
This Week in Tessel: the awesome community issue!
Hello, Tesselators!
TL;DR:
We've published some thoughts on what we see in the Tessel Project's future.
International Nodebots Day is this weekend!
Vision and Forward Motion: Development Updates
Kelsey Breseman of the Tessel Project Steering Committee has just published a post with the Project's long-term vision: Where are we going with Tessel? Rust, Reach, and Fractal
International Nodebots Day
NodeBots Day is world wide event where people learn how to control the physical world with JavaScript. Each event has experts on hand to help attendees build their projects and start them on the path to building awesome devices. Overall, it's about getting together, collaborating and hacking. And lots of JavaScript. This year some events will using the new Johnny-Five Inventor's Kit (J5IK), which includes the Tessel 2!
International Nodebots Day: July 30
More Tessel: Links Roundup
Things to try
Use Tessel as part of a supercomputer with computes.io
Make a heatmap of where your Tessel (and whatever it's attached to) goes using GPS + Google Maps
Stream data from nearby BLE devices with reelyActive
There's a new (beta) Visual Studio Code Editor extension for Tessel
Things to watch and read
Meet Nick, the newest member of the Tessel Project Steering Committee
Suz Hinton has been live streaming some open source hardware hack sessions recently – check out her first one!
That's all for this week! Feel free to submit to the next newsletter. In the meantime, see you online.
With love, Everyone at the Tessel Project
This Week in Tessel is where we highlight the latest news, projects, and events, from code, to community, to hardware manufacturing.
0 notes
Text
Where are we going with Tessel? Rust, Reach, and Fractal
The Tessel Project's mission is to create a fully open source hardware & software platform that makes it easy and intuitive to develop Internet-connected devices.
With Tessel 1, we tackled the "easy and intuitive" part of that mission statement. This is the main strength of the Tessel platform. Thus far, we've best fulfilled these two of our core philosophies:
Developer experience is paramount. Tessel should be the fastest way to build an idea, regardless of your background (or lack thereof) in electrical engineering or computer programming. Branding, documentation, and engineering design decisions should always take this into account.
Device design should focus on user experience rather than on implementation. Tessel uses high level languages and modular plug & play hardware (see philosophy here) so that device creators can fully prototype and test device functionality before worrying about optimization and implementation specifics.
We kept these values with Tessel 2, and began efforts to help developers scale. This pushes toward another core belief:
Tessel should be practical to use. Tessel as a platform cannot have a big impact unless it is cost effective, reliable, and available for purchase. It needs to be possible to purchase Tessel hardware at affordable prices, from quantity one up to production-level quantities (10,000+).
(Emphasis added.)
Where we are: the vision of Tessel 2
When we designed Tessel 2, we envisioned it as the basis of full-scale products. At the core of its design was the key idea:
People should be able to scale the tools they use for prototyping all the way into production.
This is a radical idea.
If you're a Node developer, this prototyping --> production path feels familiar. Design is an iterative process; you understand technology and needs better as you build. Modularity lets you swap out packaged components according to your needs. Both Node.JS and Tessel subscribe to modularity. Node has proven out that this approach can scale to production.
In hardware, this is nearly unheard of. It is common to build a first prototype to show technical viability, then throw it out. For production, you start again from scratch to design a PCB that works with parts you can get at the x1000 scale.
With Tessel 2, we say: you shouldn't have to. This concept drove the following design decisions:
We chose components so that you can use the same ones in production. Every part used for Tessel 2 will continue to be manufactured and supported for a few years. Each can be sourced in low (100x) quantities.
Tessel 2 was designed in KiCad. This is perhaps the only free, open, fully-featured electrical engineering design tool available. Beyond publishing our design files, we want to make sure you can change and build on what we've created.
Tessel 2 is physically laid out so that you can easily remove features. A block diagram of Tessel's hardware corresponds to its physical layout, so if you don't need e.g. the ethernet port, you can remove it from the design (and save yourself the cost of the header) in your final product.
This takes open source hardware (OSHW) beyond just licensing. We want you to take our designs and use the parts of them you need in your own products. With your help, we can push the boundaries of OSHW. OSHW should be a platform for serious product development, not only a sharing marketplace for makers.
Openness promotes innovation. Tessel is fully open source, hardware and software, so that developers can create and build on these efforts, as projects and as products, without worry of legal hassle. This project seeks to expand and promote openness as a movement in both software and hardware, and be a leader in community developed hardware.
At the crossroads
Now that we've shipped Tessel 2, there are several things we could do:
Keep adding features in software, like support for more languages or features
Build more modules to expand the platform
Work on a "Tessel 3" that is an evolution of the board
Work on a "Tessel X" that uses some of the same tooling but suits a different niche
Something else, which approaches the mission in a different way
This is where the Steering Committee comes in: we determine the project's vision and create plans for future development. This is our first major vision decision since we moved to an open governance model.
Here are the factors that drive this decision:
Mission and core principles
Logistical implications of our decisions
Needs of our community
Critically, we need to pick projects that are well-scoped and highly focused. This lets us make measurable progress with the time and person-power we have available.
All of these projects are arguably worthwhile. Which is best?
Fulfilling the vision
Coming back to the core, we want to build the OSHW movement through our platform. Tessel 2's vision is well suited to this problem: the product lets people from varying backgrounds create products quickly and easily.
We've come some of the way towards making Tessel 2 the base for a product you can take to market. But we're not all the way there yet. Here are some of the issues we see:
It's not easy for most of the Tessel community to take the tools we've created so far and go to market. What do you do after you have a prototype– efficiency changes? Printing your own boards? Even if you knew what to do after building a prototype on Tessel 2, you might not know how to do it.
Connected device products tend to exist in a networked configuration. This usually involves several low-cost, low-power devices. A standard for usability in this vein is the ability to run on a battery for months to years. This makes Tessel 2 not well suited to a lot of product applications.
You can optimize to a point, but at the end of the day you are running JavaScript. This might not be as efficient or as reliable as you want your product to be. Additionally, you might have needs that are not supported in the language.
A path forward: Rust, Reach, and Fractal
We think we can work on these problems such that their solutions build upon each other. Here's the idea:
Work on improved Rust support. The Rust language executes code much faster and more robustly than JavaScript. It should serve well in production. The code is pretty legible, and it's a welcoming community with good documentation. We've already begun tooling for this on the tessel-rust repo. Work on Rust doesn't mean reduced support for or interest in JavaScript. We think they have the potential to play well together. Both will have first-class support.
Build on this for our Tessel Reach project: cheap, low-power boards. Think of a Reach board as a wireless extension cable from a Tessel 2 to a module– this is how it should feel to use one. You can see a bit more detail on this issue.
Use the JavaScript --> Rust compilation work to begin building the Fractal project. Fractal is software tooling to help you optimize your prototype into production. Explicit hardware requirements and memory-efficient software can let us begin to suggest hardware optimization. This would move toward comprehensible messaging. Examples might be: "Compile to Rust and reduce your file size of X to Y." "You aren't using Module Port B, remove it?" and "You're only using Y memory- you may want to consider this cheaper chip (link)".
What do you think?
This is the beginning of a plan. It's an outline of a roadmap of a vision, and it's going to be a lot of work.
For me, it's an inspiration. I want to work in the context of a grand plan. And it's my hope that this grand plan excites and inspires you, too.
When it comes down to it, that's the crux. What do you think? Is this something you're excited about building, and do these tools feel like they would be useful to you? Per our final core philosophy:
Community matters. This project should be a welcoming, inclusive, and respectful place. It’s important to communicate, to question, and to come together.
Please reach out on this issue, share your knowledge and use cases, and let us know what you think. We need to hear if you're excited, if you're unexcited, or if there's something in particular you want to do. Because in the end, the Tessel Project is built out of the community, and we can't do it without you.
See you soon.
Kelsey Breseman, on behalf of the Tessel Project Steering Committee
#tessel project#vision#rust#reach#fractal#kelsey breseman#steering committee#open governance#open source#OSHW#mission#core philosophies
1 note
·
View note
Text
Meet a Tesselator - Nick Hehr
(@hipsterbrown)
What is your favorite fiction/non-fictional robot?
My favorite robot is Wall-E, which is not a surprise if you know about my admiration for Disney/Pixar animation. I really like Wall-E's curiosity and sense for exploration, while imaging how various everyday items could be used in different ways.
How did you discover Tessel?
I kept seeing all these neat hardware projects and hearing great talks by folks like Suz Hinton and Francis Gulotta in the New York JavaScript meetup community, but I didn't have an idea of what to build for the longest time. Once I finally came up with an idea, the Tessel 2 was the best match for the constraints of the project (JavaScript-friendly, affordable price, open source). Then I got the chance to meet some folks from the Tessel team at the jQuery Dev Summit 2015 and the experience left me wanting to continue working with the platform even more.
What’s your role / what have you contributed to Tessel?
I started contributing to the Tessel project at the jQuery Dev Summit, where I met some of the project founders, starting with some documentation and then experimenting with new features for t2-cli. One of my favorite contributions has been adding the ability to start a wifi signal (access point) on the Tessel using t2-cli, as well as adding that ability to the tessel node firmware. Recently, I was invited to join the steering committee for the project, which I happily accepted. I look forward to helping the Tessel project become a welcoming and inclusive community for folks to get started with hardware development.
What is something you enjoyed building with Tessel?
One of my early projects was something I built for a local meetup talk, showing how I got started with Tessel as someone new to hardware. With a plain t-shirt, an Adafruit Gemma, some sewable LEDs, and a Tessel 2, I served a web app through a Tessel access point that allowed folks in the audience to control the lights on my shirt. It was really fun to create an interactive hardware demo that didn't depend on the event's wifi network to work. The most difficult part for the whole project ended up being the sewing! All the detail for building that project can be found in this repo.
What advice do you have for aspiring Tessel contributors?
No matter what your experience with hardware or open source, there is usually some way to start contributing to the project. It could be documentation, tutorials, community outreach, design, or code, all are important for the continued maintenance and development of Tessel. The Tessel team is always working to improve how folks are introduced to the project, so any constructive feedback or questions about the contribution experience is extremely helpful.
0 notes
Text
Ramping up Rust, Backing away from Python, Johnny Five Inventor's Kit, Tessel Talks
Hello, Tesselators!
TL;DR:
We've been working on better Rust support, and would love for you to join us in the #rust-lang channel of the Tessel Slack.
We are removing Python from first-class support due to lack of interest.
Tessel 2 is in Sparkfun, where it can be purchased by itself or in the very exciting new Johnny Five Inventor's Kit, which includes great breadboardable tutorials.
There have been some great conference talks on Tessel lately, especially this retrospective on the design lessons for embedded Node through Tessels 1 and 2.
You can get more regular updates either by helping to write this newsletter, or by reading our meeting notes (or both!).
Multiple language support
Ramping up Rust
We've long been intrigued by the Rust Programming Language, and have lately been pushing forward for a more native Rust support experience, including easy deploy from the t2 command line tool.
We will have a beta version of Rust support available in the next CLI release. We're using a remote cross-compilation server to build Rust projects for Tessel (so you don't even need Rust installed on your computer) but plan to switch to defaulting to rustup in the near future so Rustaceans can easily cross-compile locally.
Currently, support is limited to blinking LEDs on Tessel 2, but our next step is to build out support for all the Tessel 2 hardware with the tessel-rust repository. We'll also need to port all of our module libraries from JavaScript to Rust; this could be an excellent way to learn more about Rust, so please get in touch in the #rust-lang channel of Tessel Slack if you're interested in contributing or reviewing code!
Backing away from Python
Ever since our announcement of Python on Tessel 2 last year, we've been waiting eagerly for a crowd of Pythonistas to charge in and excitedly exclaim, "I want that! I want to make that happen!"
However, we haven't seen it. The basic pathway for Python on Tessel 2 has been proven out, but we haven't heard from anyone who's interested in taking on full support - or even much interest for using it. So we're letting it go. You'll see it disappear from the homepage soon. We can always pick up from here if the enthusiasm arrives.
Introducing the Johnny Five Inventor's Kit
We're very excited to announce that a collaboration with Bocoup and Sparkfun has recently come to fruition in the form of the Johnny Five Inventor's Kit.
The Tessel 2-based kit focuses on electronics learning, with breadboards and standard electronic components rather than modules. If you've ever been interested in prototyping beyond Tessel modules, the detailed and beginner-friendly new experiment guide will walk you through it.
Talks and projects from the community
Recent Tessel talks:
The Eternal Struggle: Node.JS in Embedded Devices: by Jon McKay, a retrospective on the Tessel project's attempts to run Node on embedded devices and the lessons they learned along the way
Live Coding Tessel 2: Hello World to Web-controlled Device in 20 Minutes by Kelsey Breseman, demonstrating how to turn Tessel and sensors into a couple of useful devices within a few lines of code
That Escalated Quickly! Prototyping IoT with JavaScript by Eirik Morland, a creative exploration of how hardware + Node lets you quickly connect data gathering equipment to computer-generated music libraries to let your homebrewed beers compose requiems, and more
In time for the 4th of July, try making your own any-color VR fireworks with this Tessel 2 + Oculus project by Ron Dagdag.
See Tesselators at events around the world:
Kelsey and Flaki are speakers at RuhrJS in Bochum, Germany on July 2-3.
Jon and Kelsey will give a Tessel 2 hackathon with prizes at Fullstack in London on July 13-15.
Keep an eye out for more speaking announcements soon!
Want to give talks and join Tessel's speaker community? Find opportunities and make announcements on the #events-speaking channel of the Tessel Slack.
Development updates
On Tessel's command line, the latest releases include some patching and corrections, improvements to the crash reporter tool which helps us identify and debug issues, and some background work for multiple language support.
In the firmware, recent releases have improved Windows USB driver support and added a few features to GPIO use of the module ports.
Want more updates?
You can always find our weekly steering committee notes here for the cutting edge of Tessel Project updates.
Want to write this newsletter? It's an easy way to stay on top of Tessel development and be a participating member of the community. Reach out to @kelsey on Tessel Slack if you're interested.
Until next time,
the Tessel team
0 notes
Text
Tessel 2 Has Shipped!
We are thrilled to announce that Tessel 2 has shipped to all domestic and international pre-orders.
This is one of the first times a distributed, unpaid team of open source contributors has shipped a physical product. We are proud to be a part of the open source hardware movement.
Huge thanks to everyone who has contributed so far to the Tessel Project. Whether you're a core contributor, someone who found a typo to fix, or one of our test subjects for the start experience: thank you. We value what you've done.
"This sounds like a cool project, how can I get involved?"
New contributors are always welcome! Here are a few ways to get involved:
Read through the Tessel 2 Technical Overview to get an idea of T2's tech stack, then pick a repo that looks interesting to you. There are plenty of open issues to choose from - including these ones tagged specially for newbies.
Go to the Tessel forums and help someone solve their problem. Whether it's a bug on our end or theirs, you will probably learn something.
Join us on the Tessel Slack and ask about contributing to the project - we'll talk to you!
You can read more about how the Tessel Project works as an organization under open governance on the Tessel Project repo.
"I just got my Tessel 2, what do I do?"
The best place to start with your Tessel 2 is at tessel.io/start. You can find tutorials there for everything from blinking lights to tweeting to creating your own local internet.
If you're interested in trying something off the beaten path - electrical fun, advanced hacks, and more, check out tessel.io/docs. If you're new to hardware, don't worry! They're intended to be accessible to electrical newbies - and if they're not, please file an issue to let us know.
We're continuing to update the start experience and the Tessel 2 docs, so please check back again!
"But wait, I don't think mine shipped!" - if this is you, please contact [email protected], and we will figure it out. Please do note that orders from Seeed Studio's page are fulfilled by Seeed directly.
"What's next for the Tessel Project?"
Phew, shipping one product was a lot of work! Realistically, there will be some bugfixing to do as all of you let us know how it's going and what you're working on.
As far as a next product- no promises, but we have some ideas....
Partially, it's up to you: what do you want to see? What's the best way we can further the Tessel Project Mission?
Much love,
The Tessel Project team
0 notes
Text
Tessel 2 Shipping Progress
Eager backers, here is the latest:
Pre-orders within the United States: the shipment of Tessels from China has "partially" arrived in the San Francisco warehouse, according to tracking. We are looking into what this means and how we can move along the rest of the delivery. For the box that has arrived, it still needs to be unpacked and put on shelves (this usually takes a day or two), and then our fulfillment house will begin shipping them out to you. Once we get the rest of the shipment through customs, fulfillment can typically ship 100-200 orders per day, so it could take a couple of weeks to get to everyone. Tracking information will be emailed to you when yours is on the way!
International pre-orders: we just heard from Seeed; they are shipping a large number of these orders directly to backers today. More soon.
If you ordered from Seeed's website: please contact Seeed directly! We are not involved with shipping these orders.
It's so close! You can learn how to use your Tessel 2 at tessel.io/start. We can't wait to see what you do!
0 notes