PWM pins are pulse-width modulated pins. Essentially, PWM is a digital signal that spends between 0% and 100% of its time pulled high/on (this is its "duty cycle"). You can set the PWM pins to any value between 0 (0%) and 1 (100%) to approximate an analog signal. PWM is often used to control…
Suppose a pin is configured as an input. If nothing is connected to the pin and the program tries to read the state of the pin, it would be in a 'floating' state i.e an unknown state. To prevent this,…
What Is a Module? Modules should be devices with clear-cut functionality. That is to say, they should have a single, well-defined purpose or a set of closely related functions, rather than an eclectic mix of capabilities onboard. This requirement is…
Interrupts allow us to register events based on state changes in a pin. Pins 2, 5, 6, 7 on both Ports are available for interrupts. Take a look at the following circuit. While the switch is open, pin2 will be low. When the button is pressed…
Each of the two ports on Tessel 2 exposes ten pins for use in creating custom modules. Two of the pins are for power (3.3V and ground) and the other eight are configurable GPIO (General Purpose Input and Output) pins that can be used to communicate with your module. All…
Introduction to USB For an in-depth description of how USB works, read about a code deploy example. Otherwise, the TL;DR is that USB communication from the CLI gets sent to the atmel samd21 coprocessor which then routes the packets over SPI to a daemon running…
This guide is intended to help code contributors understand how relevant system components of Tessel 2 work, where to find code and design files, and accelerate the development process through technical transparency. Relevant Github Repositories Quick guide to the Tessel…
If you wish to access root on Tessel 2 and explore its Linux filesystem, you have a few options. The simplest option is t2 root, which gives SSH access to a Tessel 2 you are authorized with. However, while you're building…
Introduction to MDNS The Tessel 2 CLI is able to detect Tessel 2s on the same wireless network as your host computer using a protocol called mDNS. If you run t2 list and don't see your Tessel labeled LAN like the example below, then either the Tessel…
JavaScript/Node.js Tessel 2 has full support for JavaScript and Node.js (LTS versions). The relevant repos can be found here: Firmware support for JavaScript/Node CLI support for JavaScript/Node Binary modules There is support for precompiled binary modules on Tessel 2. The…
When you require('tessel') within a script which is executed on Tessel 2, this loads a library which interfaces with the Tessel 2 hardware, including the wireless radios. The code for Tessel 2's hardware object can be found here. While the cli can be used to…
Tessel uses a system of modules to add functionalities to the ecosystem. A Tessel module consists of some piece of hardware, matched with a software package which explains and provides API access to the hardware. There are three types of modules: Tenpin: purchaseable built-for…
When you require('tessel') within a script which is executed on Tessel 2, this loads a library which interfaces with the Tessel 2 hardware, including pins, ports, and LEDs, just like Tessel 1 (Tessel 1 hardware documentation). The code for Tessel 2's hardware object can…
Installation Prerequisites for installation: Node.js 4.2.x or greater npm install -g t2-cli Updating Tessel 2 On-board OS/Firmware How do I know if I need to update my T2? t2-cli and t2-firmware are separately versioned. For updating t2-cli: When a CLI command is run on an internet-connected computer,…