Tessel

MentorKelsey (Frijol)
Project Websitehttps://tessel.io
Project Repositoryhttps://github.com/tessel/project
Suitable for Beginners?yes
TagsJavaScript Node Rust C hardware
Stateaccepted
Applications (1st Choice)5 (4 submitted | 1 in-progress)
Applications (2nd Choice)2 (2 submitted | 0 in-progress)
Code of Conducthttps://github.com/tessel/project/blob/master/CONDUCT.md
LicenseApache License 2.0 (Apache-2.0)

Project Description

Tessel is a completely open source and community-driven IoT and robotics development platform. It encompasses development boards, hardware module add-ons, and the software that runs on them.

Mission

Create a fully open source hardware & software platform that makes it easy and intuitive to develop Internet-connected devices. Decisions are steered by open governance, an inclusive community, and the goal of creating freely-licensed designs and tools.


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.
  • 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.
  • 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+).
  • Community matters. This project should be a welcoming, inclusive, and respectful place. It’s important to communicate, to question, and to come together.

Project's Requirements

The skill requirements depend a lot on where on Tessel's stack the mentee wants to work– see the Tasks and Features section.

Here are some basic guidelines:

  • Technically, no experience at all is necessary. We always welcome newbies, as they are in the best position to help the project become more friendly to new coders and new contributors through documentation and start experience improvements.
  • The more skill the mentee has in a given area (Node, Rust, C, Linux, OpenWRT), the deeper the mentee will be able to dig in to a given problem. We appreciate this.
  • tl;dr let us know what skills you have and what you want to build and we'll find something that's a good fit for you.

More specifically (per-project skill requirements):

  • Website: The website redesign project can take any level of experience with Node/JS/Express/Jade.
  • CLI: It would be a good idea to have some familiarity with JS/Node in order to work on the CLI (i.e. the directory setup with package.json and node_modules folder should not be brand new to you), but you don't have to know much about Linux shell commands or OpenWRT– just be ready to learn.
  • Hardware projects: Any level of experience can work on the GUTS (Great Uses of Tessel in Stuff - see Tasks & features section) project and build hardware. This will probably be a bit easier if Node is not brand new to you, but don't worry about having hardware tools or knowledge– the Project should provide those things to you.
  • Firmware: If you have not used C before, it would likely not be a good idea to work on the firmware part of the project.
  • Rust: It is ok to work on the Rust projects even if you've never used Rust before– we have a number of beginner-level projects in that space.

Tasks And Features

There are a lot of different areas available to work on– we'd like to support whatever is a best fit for our mentee's learning goals.

The full stack (and I mean down to the metal) is available:

  • Want to work on the website? We use a Node/Express stack and are planning a redesign.
  • Interested in building command line interfaces in Node? There are always new features to build in our CLI. This takes some poking around in Linux shell commands, openWRT interfaces, and possibly learning about networking.
  • Want to build physical things using JavaScript or Rust? One great intern project would be to retrofit existing electromechanical systems (we've seen: heaters, elevators, welding machines– get creative) with new interfaces served over Tessel's Wifi. We can provide the hardware; you ideate, build the projects, and write them up. We're calling this project GUTS: Great Uses of Tessel in Stuff.
  • Excited about the relatively new programming language Rust? We're working on creating first-class support for the language– so we need porting from Node, documentation, and sample projects for Rust.
  • Coming in with knowledge of C? Efficiency improvements to our firmware would be a boon to the thousands of Tessel users worldwide, and we can point you in the right direction.

Want to do something not on this list? Feel free to pitch an idea. From the project's introductory Readme, here are our current main goals:

  1. 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. Celebrate the work of each of the working groups as goals are accomplished
    • 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 (https://github.com/tessel/tessel.io/issues/102)
  2. Support and grow the number of production deployments of Tessel in the field.
    • Create a guide to production-scale deployment of a Tessel project
    • Research user needs: What do people need to use T2 in production? Why aren't they using it currently?
    • Build Reach (https://github.com/tessel/project/issues/142)
    • Get to JavaScript parity with Rust API and documentation (https://github.com/tessel/tessel-rust). Figure out JS-Rust inter-exection
    • Investigate and possibly execute a Tessel hardware upgrade (Tessel 2.1) for more RAM and Flash. This should legitimize the platform and build out the capabilities so there is less user experience friction

Comments

You must be logged in to comment on this project.


Laura RGSoC, Thursday, December 15, 14:38 UTC

Thank you for submitting this project Kelsey! Tessel aligns with our values and I think it will be a great project for students to work on. Welcome on board ⛵️