How to Use a Servo With Tessel




About: An engineer, seamstress, cook, coder, and overall maker. Spent a summer at Instructables; got a degree in E: Neural Engineering at Olin College; made a microcontroller (; now thinking about climate...

Tessel is a microcontroller you program in JavaScript. It's like Arduino, but designed to be easier to use and web-friendly.

Here's what you need:

  1. Tessel
  2. Servo module
  3. Servo motor (one comes with the servo module, but there's room for 16 of them on there.)

Step 1: Install Tessel

If you haven't used a Tessel before, you should go install it.

Step 2: Plug in the Servo to the Module

Plug servo into port "1" on the module as shown.

  • the brown wire (ground) goes to -
  • the red wire (power) goes to +
  • the yellow wire (signal) goes to S

Step 3: Power the Module

Plug 5V adapter into the barrel jack on the servo module, then plug into wall power.

Step 4: Plug the Module Into Tessel

It's best to unplug Tessel from power while plugging in modules.

Plug the servo module into Tessel port A with the hexagon/icon side down and the electrical components on the top, then plug Tessel into your computer via USB.

Step 5: Install the Servo Module

Install by typing `npm install servo-pca9685` into the command line.

Step 6: Save the Code

Save this code in a text file called servo.js:

// Any copyright is dedicated to the Public Domainhttp://
*********************************************This servo module demo turns the servo around1/10 of its full rotation every 500ms, thenresets it after 10 turns, reading out positionto the console at each movement.*********************************************/
var tessel=require('tessel');var servolib=require('servo-pca9685');
var servo=servolib.use(tessel.port['A']);
var servo1=1; // We have a servo plugged in at position 1
servo.on('ready', function () {var position=0; // Target position of the servo between 0 (min) and 1 (max).
 // Set the minimum and maximum duty cycle for servo 1http:// If the servo doesn't move to its full extent or stalls out// and gets hot, try tuning these values (0.05 and 0.12)http:// Moving them towards each other=less movement range// Moving them apart=more range, more likely to stall and burn outservo.configure(servo1, 0.05, 0.12, function () {setInterval(function () {console.log('Position (in range 0-1):', position);// Set servo #1 to position pos.servo.move(servo1, position);
 // Increment by 10% (~18 deg for a normal servo)position +=0.1;if (position > 1) {position=0; // Reset servo position}}, 500); // Every 500 milliseconds});});

Step 7: Play!

In your command line, `tessel run servo.js`

Watch your servo move!



    • Toys Contest

      Toys Contest
    • Big and Small Contest

      Big and Small Contest
    • PCB Contest

      PCB Contest

    4 Discussions


    4 years ago