🎂 Houdini 150   🚚 FREE FEDEX SHIPPING from 397 USD   🌎 WORLDWIDE SHIPPING for 25 USD

PeekSmith

About

MagiScript supports connecting Atom to PeekSmith 3 or SuperPeek. You can:

  • display messages on its screen,
  • send vibration patterns,
  • turn its accelerometer reporting on/off,
  • receive button events.

Connecting to PeekSmith

Before you can interact with a PeekSmith device, you need to connect to it using the ps.connect method. The method takes a single argument, which is the ID of the PeekSmith device you want to connect to.

For example, if you want to connect to a PeekSmith device with the ID "PeekSmith-036666", you can use the following code:

ps.connect('PeekSmith-036666');

If Atom is not yet connected to a PeekSmith device, it will start searching for it and then connect. If a PeekSmith device is already connected, this command will be ignored (even if it is a different device). You can use the '*' character to connect to any available PeekSmith device.

The best way to connect is by adding this call to the beginning of the main function, which runs when the code is loaded.

function main() {
  ps.connect('PeekSmith-036666');
  // ...
}

Displaying Text on PeekSmith Screen

Once you have connected to a PeekSmith device, you can display text on its screen using the ps.print method. The method takes a single argument, which is the text that you want to display on the screen. If PeekSmith is not yet connected, MagiScript will collect your messages and send them as soon as a device is connected.

For example, if you want to display the text "Hello World" on the PeekSmith screen, you can use the following code:

ps.print('Hello World');

This will display the text "Hello World" on the PeekSmith screen.

Using PeekSmith's "Smart Text", you can display cards or colors on the screen like sending messages:

ps.print('AH');        // displays an Ace of Heart
ps.print('7D KS');     // seven of diamonds, king of spades
ps.pring('star');      // displays a star ESP sign
ps.print('yellow');    // displays a yellow card

Vibrating PeekSmith

You can also vibrate the PeekSmith device using the ps.vibrate method. The method takes a single argument, which is the pattern that you want to vibrate.

For example, if you want to vibrate the PeekSmith device with a pattern of three short vibrations, you can use the following code:

ps.vibrate('...');

This will vibrate the PeekSmith device three times in a short pattern. The latest PeekSmith firmware supports the same patterns as Atom (except the short tick).

Accelerometer Data (since firmware v1.1.31)

PeekSmith 3 has an accelerometer, and Atom can turn it on or off. When turned on, the accelerometer will start reporting raw x, y, and z data.

Accelerometer ON

There are more ways to turn on the accelerometer, but they have the same effect:

ps.accel('on'); // please note that ON or On will not work
ps.accel(true);

Accelerometer OFF

Turning off the accelerometer is similar:

ps.accel('off'); // please note that OFF or Off will not work
ps.accel(false);

Accelerometer Data

You will start receiving events with XYZ data when you turn on the accelerometer via the onEvent function. The value is going to be comma-separated numbers, the type 'xyz', and the source 'ps::accel'.

Example

Here's an example code of how you can use them:

function main() {
  ps.connect('PeekSmith-031060');
  ps.accel('on');
}

function onEvent(value, type, source) {
  if (type === 'xyz' && source === 'ps:accel') {
    let xyz = strSplit(value, ',');
    let x = parseInt(xyz[0]);
    let y = parseInt(xyz[1]);
    let z = parseInt(xyz[2]);
    console.log(x, y, z);
  }
}

Receiving Button Events

When a PeekSmith is connected, it will start sending button press and release events. PeekSmith has 3 buttons, #0 is the side button, #1 is the front left button, and #2 is the front right button. You can process them with the onEvent function.

Read our Buttons documentation page for more details.

Conclusion

MagiScript provides an easy way to connect to and control PeekSmith devices directly from Atom. By using the ps.connect, ps.print, and ps.vibrate methods, you can interact with the PeekSmith device and display text and patterns on its screen, as well as vibrate it.

cross