Arduino > Circuit Playground Express

1.  Makecode Maker by Microsoft (more up to date than the Adafruit version)

1.1  Flashing code to the board

If you unplug your board and then plug it back in again to your computer, it may not run the program again automatically. If it instead shows all green NeoPixels, just press the reset button and your program will start.

1.2  Follow this guide if you are having problems on Windows

2.  Arduino IDE

2.1  Board definition

2.2  Circuit Playground Express Library

Open the Library Manager:

Search for the Circuit Playground Library and install it:

Circuit Playground Library Documentation

http://adafruit.github.io/Adafruit_CircuitPlayground/html/class_adafruit___circuit_playground.html

2.3  Single byte serial output from Max to the Circuit Playground

Circuit Playground Arduino code

// Circuit Playground Serial Receive Example
// Send serial data (values 0,1,2, or 3) to the Circuit Playground to play with the lights
// if the data is 0, close the lights
// if the data is 1, set the lights to maximum red
// if the data is 2, set the lights to maximum greed
// if the data is 3, set the lights to maximum blue
// Author: Thomas O Fredericks
// License: MIT License (https://opensource.org/licenses/MIT)

// Circuit Playground Library Documentation
// http://adafruit.github.io/Adafruit_CircuitPlayground/html/class_adafruit___circuit_playground.html

#include <Adafruit_CircuitPlayground.h>


void setup() {
        // Initialize Circuit Playground library.
        CircuitPlayground.begin();

        // Initialize serial port
        Serial.begin(115200);

}

void loop() {

        // As long as there is serial data, read it and react to certains values
        while ( Serial.available() ) { // Serial.available() returns 1 if there is received data
                int data = Serial.read(); // Serial.read() returns the new data

                if ( data == 0 ) { // if the data is 0, close the lights
                        CircuitPlayground.clearPixels();
                } else if ( data == 1 ) { // if the data is 1, set the lights to maximum red
                        for ( int i = 0; i < 8; i++)  CircuitPlayground.setPixelColor(i, 255, 0, 0);
                } else if ( data == 2 ) { // if the data is 2, set the lights to maximum greed
                        for ( int i = 0; i < 8; i++)  CircuitPlayground.setPixelColor(i, 0, 255, 0);
                } else if ( data == 3 ) { // if the data is 3, set the lights to maximum blue
                        for ( int i = 0; i < 8; i++)  CircuitPlayground.setPixelColor(i, 0, 0, 255);
                }

                // Echo the input for debugging
                Serial.print(data);
        }

}

Max code

<pre><code>
----------begin_max5_patcher----------
1054.3ocyX00aaaCE8YGf7e3N8TKfqAI0mtuUrmFvxxvVA1CqCELRLMrShTP
jJ1AE6+93GRNpoVxxEFtFHNDjhT264xCu2C0Wt9pEA2I2xTAvag+FVr3KlQV
3FyNxh9AVDTQ2lWRUtIFjKqpXBcvxtGpYa0tG7mLMnefA1IzJ34TMWJ.UMiU
.uppUogJpN+A2b7ipLqfKf20TzxExWu6UV2vTFS3dAerjKX4xVgyHj9ovKb1
Td2meS1yqy994hO8wFVt1iJBhrBsDRQqhWBgYI1NDzJD7O8KRzVwEkLsCc3A
iJa08Cibi9eWeks0zrb1QqJlRQ+D6aiV2QaK.LNlfPGCt8Nk9oZlGeAAOijA
wjzohIXB94XR5ZWHgLZHgr+PB96NjLJA5udfIfmjsFdgn.nfx31kLCCQCvqt
io2vLOGATyCIwwuFzRGW5CAJVCmV9g.v.cCJWBbCuRYeM59IUvdjma4lBSTU
a3dciWKazq14JeULO7vaKg6IzGOIcbsKzSRbrRRZpsIJ87wGGM3+K27629Gu
+c+16+of8.pno.UH1crJB4Zvwnu8Pl0L4xRYieEnUqWmfRyhLKEkPVGtDbKx
8O7Evoyvfi7.WT3ja6wwVjEF5ZHqsG7NmG4FEmjiFm34fSD9BCm3iEmgqmAN
IIYWX3Dcz3LaN3LL4GCNGMakuBg4mwWY7GYv8MxJaICWk.WV88kFKDMYcQbn
Elw3TeIwzysXgwkVooMZCpJKg6kMP21uC70NUVrGYMOAXDTwKK4JSEJQgZj5
Z6SCEYRACDRWl8nAUsBCu.xS6BI3il0SRljGjRF.2nnKFAR4kREyqwtsowpt
wRzgM85lnMFgNRAC1v0OXDAsBtUT9DXGgVWW1KIOmJ.ZdtIl50h+7YFfZ9Cz
7J1gzDMHXhimi3.R1OHEOixcbQyik4fmTIDIE4Aq+DR5ECy41ZCEwtYKnUFw
uesp2gviLm7.dgdjLxEysobj2e91aVez6mSpmAGkM.vIWN6m+J2bcZpI22fC
uJ6cos6w2P2ZuniRZu7z8tLCERPH0v+Jja1QC.486tBjaRanCL0AKYjLiRoj
PmhgKoBFM7AfbthjlBpo8ZirPjbtYHB1FiGtOARVdw3.0EEF8PwgwamHoClh
ajcVxK.re0NR2K+bTNWv9fWDFTx1l7d3z8MOfAtQASo4BWEuASB6mz3w6YaN
6M9ls85mTEunVZh8cfjjDYOfDgcZLxh204z3g3SlGFRF3gtNmDOzdKqSjG18
kU7dnqyowCyNcdXxPOL4j4gmWZuU574zdVAWmU6g+9sWWVLiVay0wTcqvaJS
V6O6+5WYK884BeejueC6Qd+R7prCnMlbuZSh21FmGFrMoS8YPkrf0HZ48EOr
f0ZZWgAawcUM0CKWAjquxLg+G.GPcMC
-----------end_max5_patcher-----------
</code></pre>

2.4  Sending an ASCII serial message from Circuit Playground to Max

Circuit Playground Arduino code (sends Accelerometer x,y)

// Circuit Playground Accelerometer Serial Example
// Tilt Circuit Playground left/right and up/down
// Sends data through the serial connection as an ASCII message
// Author: Thomas O Fredericks based on an inital example by Tony DiCola
// License: MIT License (https://opensource.org/licenses/MIT)

// Circuit Playground Library Documentation
// http://adafruit.github.io/Adafruit_CircuitPlayground/html/class_adafruit___circuit_playground.html

#include <Adafruit_CircuitPlayground.h>


void setup() {
        // Initialize Circuit Playground library.
        CircuitPlayground.begin();

        // Initialize serial port
        Serial.begin(115200);
}

void loop() {

        // Grab x, y acceleration values (in m/s^2).
        float x = CircuitPlayground.motionX();
        float y = CircuitPlayground.motionY();

        // Form a single line out of ASCII messages
        // Serial.print("") appends an ASCII message to the current line
        // Serial.println() send the line ending indicating the end of the message
        Serial.print("acc");
        Serial.print(" ");
        Serial.print(x);
        Serial.print(" ");
        Serial.print(y);
        Serial.println();

        // Slow down the board so it does not send messages too fast
        delay(50);

}

Max code

<pre><code>
----------begin_max5_patcher----------
1538.3oc0Z00aaaCE84Tf9efSurM.u.QR84dpE8oBrtTr02ZJJnkosYlDo.k
T9nE6+9tjT1VMQVVNP00CHIxhlTWdNj2y8doxWe4Ktvat5ddkG52QeDcwEeE
Z4BaalVtXSCW3UvtOKmUY6n2xbkrovaV62oZpy400OTxcOFOuYHu4L4JOzm1
zGwB6HUyu42vzsirjUmsVHW8YMOq1MXZn+k9yPQ9DyE2MD3y6dTfoERvf14B
dSqKU5Bl8YD0oitolsmjcFUyJ30b8m4R17b6j129c+6Keg4JbY1IhKRGhJHQ
o+uhJj76.LsEQ076sSBuF4MJgbXJx9auTDYDTTXXr4R.drTz2xGzmMjyTEEb
Y8Sw7ae26u5u9vq+yO7Sd8fofA8.vIWFNCgSRLnA2tt62ETFyjoxUZ2H7uLM
MxONIfhi7iHozYH6fr+Aerrg+zyFuIWUwQ0q4nrFsF5BpToqQ2slKQOnZPLM
GsPI4n6D0qQh5KQWIye.YZgUVlKxX0BkDkwjHVVFupx9rp3ZAK28nXvOnZQA
+xsVOWH4YpFocJP2R3ZdELArOvO2eW5pUENhUJB1sDkX8SChOcDdAPErU7mR
3YFBe.Ot9ElGbaIIlXAqu0iiFe.WMR+XEO8attrOOrjAgRZfAJIQl+RgKOwA
6Gzx1bVyBDFGR78O1Eu3AALltCvwomMKcWUBB.FWYIDFZg0St2USLYLBlDRG
2vyh0Sqzzat5coGsqHdvky.+N.N57wU7ODUfNbddWo4JjvsF+N18nLkrRkyQ
hkVc+EJjTUi9Go5tsaCPpk1Oa4NSmti0wTeihMoGlKZX+.aFBANkrDqrMkdF
Df7CqEUnOVpEx5OgfOBovgVvm2rZE.fYHMuPcKvLPihJfCANnFBStiFk+bMR
xAWHQ+NPznwjnYXhK.V5o1AZu7RCj1v0dZvH7q8P0JXikbAPBKWxsoQz54UY
9pcstfWUKj1P7U8xFCGUmFXyojD+ChM1WdzVZvj.zARktWEEZvXxilXiE51G
b7JJjoeCv0dK0phpGJlqxgc.vd+a4FMEFx0FHt.K8Lq3xikg6h9Aq4jDF5Vp
wma6+u1STqXcANfW9JttxA7r0PEbY0l6+EGg7q8B+gKhhXEBCfb5BO2f+WxQ
qf88kVJnXNn9WYCv.ldtA0.J3haMBet8A41HPfFALwJapMEJ.kFXa0VsAHZ1
NDydHag4iNzBEO7AWX0KnocYwyhfKVMSCmzhbjwkx3AsKHcuaZ7GQnTRbnSq
H9bQkzFDE8pRUYSIB2GvHCdpK33fNACSelGovziqc5fGaxjjjQf2Vwu3mId+
NjLYoB7yMIBsMHOGj.e.g8QEhbvkF7VkKp5MeGxfkCQc0vhCcU9EGeFUv.fY
7QW7GIZDg2ZgaPvYS4B0lrdq34lrY2nW6Dkch0LyZsXmH+LjXkTogcBN4eDl
Z00LSQaTAET3fdargRl8fhfvGqVOdUdxARUvVyEML4bSk2VBQlZAuSRRxMoK
fpp0bVgIM4W+2u4sucmOE77.XJlm2d3aPhT8yUQ8wUClWQXf6jhbEq5NE6ji
+zw5hzaZfL6W1ddfe2R4zEXDR4X2lxV9CpM0vnZSFX8K7LXNBsmoq4.KNuBZ
tIMKyxT.5UeIGFUk3Kb68OmxMviIFafO0JL8bOQJxjyClrs2ObEFOgdQ6nhv
RaA8A.Kcp0e2GXaUdAM1NuRtm.ZWNx6ttGFHdDL.MxdIl97X.52g3sljEO1n
szwrX6bzIm5Xs6es1HoM7V68u3NB.2VHvAeu.3w4J6FsMBzie4z14f4KdDOT
oZzYavS6aNDg2MM5bpPc5jYqOBlr6mwOJ64eH6kNYlybhNG1djoCdIixdoea
uT5Eb8A1SOwSgGSLamB9SvT.OJVGOYrNFeZsW7o0bzSq4LEJcRW8RGk8RlNC
NNmzIzfiaCS5zZPxozfiBfw8Zu1vXrxRnhrp1g3LED29F2+.GIyb2Kjt6cU7
3o42J1LDWFQdLMD8sFB81nsyPu6iZyN2q.p7SKaDajZMf0XZapAl2qVUIyAK
aJDu7EPG9O.mQ1NL
-----------end_max5_patcher-----------
</code></pre>