To program your Circuit Playground Express board with MakeCode, attach your computer via a micro USB cable, you should see it appear as a an attached drive named "CPLAYBOOT". 

In the MakeCode window below, click the pink download button in the lower right corner and move the downloaded .uf2 file to the "CPLAYBOOT" drive.

Customize the Message

By default, the board will display Morse code for "SOS", but you can easily customize it with any capital letters or numbers.  To do so, Modify the first block in within the "on start" block:

Simply replace "SOS" with your message - just be sure to use only capital letters:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

 

A Tour of the Code

Let's take a look at all of the MakeCode blocks and learn a bit about how they work …

On Start

This is where we define the variables we’ll be using to store values we need to access from our code.

message is the message we’ll be displaying in Morse code.

dotLength is the length of time (in seconds) one morse dot will take to display. dotLength is also used to determine the durations of the other time variables (dashLength & spaceLength) So, if you change dotLength, the other time variables will change in relation to it.

Alphabet is an array that contains the entire alphabet as capital letters.

Morse is an array that contains the morse codes used to represent the entire alphabet.

Functions

The functions do all the real work in our project.  Let's look at each one and learn about what it does …

The showDot function turns the LEDs red, waits for one dotLength, then turns them off and waits for one dotLength.

The showDash function turns the LEDs red, waits for one dashLength, then turns the LEDs off and waits for one dotLength.

The showSpace function turns the LEDs off, then waits for one spaceLength.

The encode function translates the message variable into morse code using the Alphabet and Morse arrays. It takes each character from the message, finds that character’s morse code equivalent, and adds that code to a variable named morseOut.

The MorseLights function takes all the dots and dashes stored in the morseOut variable and converts them into LED flashes. One by one, it checks each character in morseOut. If it finds a dot, it will call the showDot function. If it finds a dash, it will call the showDash function. And if it finds a space, it will call the showSpace function.

Finally, the forever block runs two functions over and over in a loop. First it calls the encode function to encode our message, then it calls MorseLights to display our message in Morse code with the Circuit Playground’s LEDs. 

This guide was first published on Dec 19, 2017. It was last updated on Dec 19, 2017. This page (MakeCode) was last updated on Oct 13, 2019.