Daily tips and tricks from the experts at Adafruit!
View this email in your browser

MakeCode

The MakeCode Newsletter

A newsletter devoted to Microsoft MakeCode. News, information, hardware, happenings, and more! Emailed out each month. Sign up on AdafruitDaily.com.

Welcome to the MakeCode Newsletter!

Welcome to our first MakeCode newsletter, we’re kicking this off just in time for back to school and packed this newsletter with tons of resources for educators! Special thanks to Microsoft for supporting the inaugural newsletter!

BKLYN Fashion Academy Class of 2019 Shines at Runway Show

Fashion forward: Researchers, designers debut new tech on New York City runway

BKLYN Fashion Academy Class of 2019 Shines at Runway Show - wearable technology sponsored by Microsoft Research and Microsoft MakeCode - YouTube.

Microsoft researchers teamed up with designers at the Brooklyn Public Library’s BKLYN Fashion Academy to enhance the storytelling power of their garments using custom-made plug-and-play microcontroller technology. The collaboration culminated in a fashion show on May 3 at the Brooklyn Public Library’s Central Library in New York City. The tech was the first application of Project Alava, which aims to lower the barriers of entry to programming by creating microcontroller-based systems that are easy to construct, code and debug. Alava leverages the open-source framework powering Microsoft MakeCode and the bus-based communication protocol JACDAC.

Fashion forward: Researchers, designers debut new tech on New York City runway

Check out the runway show here YouTube

Lancaster Computer Science student’s research helps New York fashionistas

Lancaster Computer Science student’s research helps New York fashionistas

James Devine, a student at Lancaster University’s School of Computing and Communications, has developed a new communication technology called JACDAC that helps different tiny embedded computers known as microcontrollers talk to each other more easily. JACDAC can be described as the USB for the wired Internet of Things (IoT) and simplifies the connecting of microcontrollers featuring different sensors and capabilities. JACDAC enables a network of microcontrollers to work together in highly dynamic environments, yet, makes doing so as simple as plugging a pair of headphones into a 3.5mm socket. Mr. Devine developed JACDAC as part of an internship at Microsoft Research in the United States. His software was originally designed to help develop a multiplayer aspect to Microsoft’s MakeCode Arcade – a web-based application that lets people create their own games for handheld gaming devices.” Lancaster Univ.

Educator spotlight - Lufkin Independent School District: Project based learning with Microsoft MakeCode

Lufkin Independent School District

Lufkin Independent School District is using Microsoft MakeCode with Adafruit Circuit Playground Express to challenge students with projects that build creativity, computational thinking, and collaboration skills. Lufkin District video - YouTube.

LED Dog Collar made with JavaScript in MakeCode

I made a LED dog collar with JavaScript

“JavaScript is truly EVERYWHERE, and now I’ve even added it to my dog. I was most excited to try the MakeCode Editor and finally write code for my wearables in JavaScript instead of hacking C++(ish) code together! So, I obviously used this opportunity to make a fancy collar for my doggo on night walks. He’s a good boy and totally deserves a special collar. I also think that the steps in this build could just as easily be applied to other lighted apparel applications like adding some LEDs to your denim jacket or backpack or hat or -insert your awesome idea here-… “ @SecretSquirrel on Medium

Bots! Robotics Engineering with Hands-On Makerspace Activities

Bots Robotics Engineering with Hands-On Makerspace Activities

Build and Program a Recycled Robot with MakeCode! by Kathy Ceceri!

“Robots are everywhere! They vacuum our houses, work in our factories, help us learn at school, and play with us at home. They sample rocks from other planets, survey disaster zones from the air, and bring back images from the bottom of the ocean. In Bots! Robotics Engineering with Hands-On Makerspace Activities, kids ages 9 to 12 learn about the systems that help robots operate—the bodies that determine how they move, sensors that tell them what’s going on around them, artificial intelligence that lets them figure out what to do next, and more! Explore the history of robots with fascinating facts and profiles of people working in this exciting STEM field. Bots! explores how art, psychology, and biology make robots easier to talk to and let them do things people can’t, such as slither or fly. And you’ll get a peek at research that may someday bring us the robots of tomorrow.”

Nomad Press, and Amazon.

Interview: Jacqueline Russell, Principal Program Manager, Microsoft MakeCode

Jacqueline Russell, Principal Program Manager, Microsoft MakeCode

Adafruit recently had a Q&A with Jacqueline Russell, Principal Program Manager, Microsoft MakeCode and here is the take on MakeCode present and possible future:

What are some of the most requested feature requests you get from users/students/educators for future development?

Being able to upload and use sound or image assets. I spoke with a student who was building a robotic cow with Circuit Playground Express, and he wanted to be able to upload a .wav file of a cow mooing for his project. And I hear variants of this request a lot. It would be really cool to use any assets in your MakeCode projects, but it also poses a security risk. Once you create a door in your ‘walled garden’ you need to implement security measures and content curation checks – so you don’t accidentally ingest malicious code, or inappropriate content. Being an educational product built for kids, we just have to be super careful with this kind of stuff. Doesn’t mean that we will never do it, but we’re just being cautious right now.

Can we ever hope to see MakeCode make its way onto a gaming console such as the Xbox?

Ha! Not anytime soon… you know in 2009 Microsoft built a coding tool specifically for the Xbox, called Kodu (https://www.kodugamelab.com/). It’s really cool – it’s 3D and the coding is a horizontal grammar with circular menu controls that are optimized for using a game controller. If we did want to build an interface for a gaming console, we’d want to create a similar design that would be easy to use with a controller input, and we’d have to think about some sort of game environment that makes use of the big screen and great graphics – Project Spark (https://en.wikipedia.org/wiki/Project_Spark) was another really cool product in this space.

It’s currently up to the user to save/organize/archive their MakeCode programs. Are there any plans to put some kind of version control or user accounts in place? Maybe a My First GitHub could be on the horizon?

Yes, we get this request a lot. Not having logins is a double-edged sword. On the one hand, it’s great there are no barriers to entry – in 1 click you can start coding. But on the other hand, in classrooms with shared computers, it can be a real burden for teachers and students to manage their projects. We are looking at adding identity support to MakeCode – where you don’t have to login, but you can. This will allow students to be able to have a portfolio of their projects saved in their OneDrive or other cloud storage that they can access from any device. No dates on when this will go live, but we’re working on it! “My First GitHub repo” is a great idea… maybe something we can look at on the next horizon…

In the past I’ve heard complaints that the limitations of block-based programming cause people to fairly quickly get frustrated or try to move to text-based coding. It seems like you’ve created MakeCode in such a way that we’re able to do interesting, sophisticated things without ever leaving Blocks mode. Was this something you targeted during development? How’d you do it?

Yes, there’s a lot of research around the visual block-based programming model, and how that has really made computer science more approachable and less scary for a lot of different types of kids (see here for an example). The mission of MakeCode is not to create more genius computer scientists, our mission is to inspire new generations of technology makers – and that means making sure every student feels empowered to create and construct with technology. So, when we are designing our API’s (Application Programming Interface) or our Blocks, we try to balance simplicity with flexibility – such that a student who has never coded before can look at a block and intuitively know what it does, but at the same time, a more advanced student can say look at the light namespace in Circuit Playground Express and use all the associated properties/methods to be able to express what they want to do in TypeScript. Low floors, high ceilings, wide walls.

If there is a functionality that does not appear currently in a MakeCode version, is there a method to suggest adding it, and if so where would the suggestion be posted?

Yes! We love to hear from folks! Bugs and feature requests should go in GitHub – make sure to document how to reproduce the bug, or give us specifics on the feature request (how and why). If you want to make a comment or start a discussion, or just listen to discussions, then we have a forum you can join.

  • Circuit Playground Express GitHub – https://github.com/microsoft/pxt-adafruit/issues
  • Arcade GitHub – https://github.com/microsoft/pxt-arcade/issues
  • MakeCode Forum – https://forum.makecode.com/

Can you tell me more about the plans for static Python? Python is of interest to more people lately and it may be a good fit for certain curriculums.

We have support today for static TypeScript (a subset of JavaScript) as the user programming language in MakeCode (see here for more information on TypeScript in Arcade). And we are also exploring supporting the Python programming language as well. This work is still underway, and no dates yet on when we’ll release, but if you want to play around with it, you can find it in Arcade under Experiments. I know people can get really attached to specific programming languages, but from our perspective, we are teaching kids computing concepts – not specific programming language syntax, and whether they learn JavaScript or Python doesn’t really matter to us – it’s all goodness! For more on our specific language implementation, see https://makecode.com/language.

I am interested in applications involving text on the devices coming out with displays. Are you considering augmenting MakeCode or MakeCode Arcade to allow for printing strings to a display?

Not sure I fully understand this question, but I’ll answer it 2 ways and hope one is the question you were asking. We do have Console blocks today where you can print out strings and values that show up in the console view of MakeCode. If you’re talking about displaying strings on a microcontroller device, you can do that with Arcade using the Dialog blocks.

The Internet of Things is of growing interest. Is the MakeCode team looking at taking advantage of boards with an attached ESP32 or similar WiFi chip to communicate? Like micro:bit, are other Bluetooth-enabled boards going to have communications capability and what Bluetooth modes will be supported?

MakeCode is really focused on classroom scenarios and capabilities right now. As soon as there’s an affordable K-12 classroom-ready IoT cloud solution that’s easy for students and teachers to procure, access and use, we’ll be on it! Bluetooth is definitely more common in the classroom, but also tricky when you have 30 devices – dropped connections, or incorrect connections (“Hey, who’s controlling my robot?!”) are always a bit of a management overhead for teachers.

Microcontrollers allow for making customized assistive technology (AT) projects. Is the MakeCode team working on features facilitating AT device creation? Is the MakeCode team talking to the Xbox Adaptive Controller team? What are the current priorities in AT type capabilities, for example USB, HID, Bluetooth, etc.?

Yes, Microsoft has many investments around assistive technology solutions and accessibility is a top priority across all our products. MakeCode does have accessibility features built-in, for keyboard navigation and screen readers – see here. We have spoken with folks on the Xbox Adaptive Controller team, and also Microsoft Research’s Project Torino.

WebUSB seems like an interesting technology (not having to install a driver or browser extension on Chromebooks or other devices). Is that on the radar?

Yes.

Does MakeCode have support from senior management? Will MakeCode be supported by Microsoft for awhile? (re. developing curricula is time consuming, so having something that will be around for awhile saves time).

Yes :-)

Check out some of the recent projects and more with the Summer of MakeCode for kids - Microsoft Research.

Meet Meowbit: Programmable Retro Game Computer

Meet Meowbit: Programmable Retro Game Computer

Meowbit is a card-sized graphical retro game computer with allows you coding with Makecode arcade and Python. It contains 1.8’ full-color screen, 6 x programmable buttons ,1 x buzzer, built-in light sensor , temperatur sensor, SD card slot ,multyplayer connector and edge connector. Espcially the edge connector could access most micro:bit expension boards. We recommend to use Robot:bit for Mewobit, it can help you create a robot quickly - YouTube.

MakeCode Playlist! Circuit Playground Express

Light Sensor on the Circuit Playground Express

Behind the MakeCode Hardware - Light Sensor on the Circuit Playground Express on YouTube.

Infrared on the Circuit Playground Express

Behind the MakeCode Hardware - Infrared on the Circuit Playground Express on YouTube.

Microphone on Circuit Playground Express

Behind the MakeCode Hardware - Microphone on Circuit Playground Express on YouTube.

Speaker on the Circuit Playground Express

Behind the MakeCode Hardware - Speaker on the Circuit Playground Express on YouTube.

NeoPixels on Circuit Playground Express

Behind the MakeCode Hardware - NeoPixels on Circuit Playground Express on YouTube.

Check out the full list of Circuit Playground Express videos from MakeCode on YouTube and the entire Behind the MakeCode Hardware series on YouTube.

MakeCode Minute

MakeCode Minute: NeoPixel Strips

MakeCode Minute: External NeoPixel Strips with MakeCode and Crickit! - YouTube.

Check out all the MakeCode Minute videos on YouTube.

MakeCode Arcade Game of the week!

akeCode Arcade Game of the Week: Dance Party

MakeCode Arcade Game of the Week: Dance Party Remastered by shaqattack8 - MakeCode Forums.

Check out all the MakeCode Arcade game of the week videos on YouTube.

News from around the web!

BrainPad at the Detroit Maker Faire

BrainPad at the Detroit Maker Faire - YouTube. Check out all the BrainPad videos.

MakeCode Stencils

Make Stencils using MakeCode Arcade! Via Peli de Halleux, you can use the MakeCode Arcade Stencilr to turn sprites into painting stencils!

ToddleBot

See students build the ToddleBot with EV3 LEGO, programmed with MakeCode. YouTube

Yahboom Arm:bit with Micro:bit

MakeCode on a micro:bit controls a Lego robotic arm in this coffee shop build. YouTube

Glue Stick Holder Urchin

Sophy Wong says she: “Threw an adafruit Circuit Playground Express into my 3D printed glue stick holder urchin and now I have invented the perfect mood lighting for crafters” - Twitter

Elvis -- a Flamboyant Snake Game

From @WeCodeMakeCode: “Elvis – a Flamboyant Snake in #MakeCode #Arcaderead about, play game and download code. Snake moves automatically with direction changed by player using buttons. Play the game and view the code.”

Microsoft STEM Experience

Microsoft MakeCode team was at ISTE19 Ed Tech Conference: “If you’re at #ISTE19, come say “hi” and set a high score on our arcade! We’re under the “Microsoft STEM Experience” sign. #MicrosoftEDU - Twitter

Beating Heart with Speed Control

Adafruit’s own Dano Wall created this amazing beating heart prop with a slide potentiometer speed control, Circuit Playground Express, four servo motors, some cardboard, and red stretchy fabric. Awesome! Twitter

Rocket-fast Embedded TypeScript for MakeCode Arcade by Microsoft Research

Via Twitter on the Microsoft Research Blog, “…If we were going to inspire the next generation of coders, easier entry into the world of computer science would be important. To accomplish this, we designed a high-level programming language with text and graphical input modalities along with a simple yet powerful set of programming libraries. With Arcade, STS lets developers of all skill levels easily write cool retro-style pixelated games—think Super Mario Bros., but even better because it’s designed by the user—to be run either inside a virtual game console in the browser or on inexpensive microcontroller-based handhelds.”

Create MakeCode Tutorials right inside MakeCode

You can create cutstom tutorials for MakeCode right inside of MakeCode itself! Head to the JavaScript editor and add markdown-based tutorials and rendered inline block examples to help people follow along!

MakeCode Arcade Game Jam on itch.io

MakeCode and itch.io are teaming up for the first ever MakeCode Arcade game jam! “…In the spirit of WarioWare, Inc., you’ll design a micro-game that can be played in 5 seconds! Afterwards, we’ll combine these individual minigames into one game file so your creations can be played back-to-back. There are no restrictions on theme or game mechanics, as long as the game ends in five seconds.” As soon as the contest launches on Monday, Sept. 9, head to this page for more info!

New Guides using MakeCode!

2D Sidescrolling Platformer

2D Sidescrolling Platformer with MakeCode Arcade, by Little Bird.

Add Levels to 2D Platformer with MakeCode Arcade, by Little Bird.

And check out all MakeCode guides on learn.adafruit.com.

Latest releases

MakeCode Arcade Beta speedups

The new beta is now at https://arcade.makecode.com/beta

  • the compiler is now incremental, meaning much faster; after initial project load you should experience almost immediate simulator re-runs; compiling for hardware will still take a few seconds; we would appreciate any error reports - watch out for situation when you get a strange compiler failure, but when you reload the page, it goes away - if this happens, please report!
  • the high score should now be preserved on hardware for a given game (identified by project name); same mechanism will apply in simulator; there are now also APIs for storing state (ie. save games)

Other changes:

Resouces for Educators and more!

If we missed any resources, please let us know, we’ll be updating this list each newsletter.

What is Microsoft MakeCode?

Microsoft MakeCode is a free, open source platform for creating engaging computer science learning experiences that support a progression path into real-world programming.

Simulator

Simulator

An interactive simulator provides students with immediate feedback on how their program is running and makes it easy to test and debug their code.

Block Editor

Block Editor

Students new to coding can start with colored blocks that they can drag and drop onto their workspace to construct their programs.

JavaScript Editor

JavaScript Editor

When they are ready, students can move into a full-featured JavaScript editor with code snippets, tooltips, and error detection to help them.

MakeCode Arcade

MakeCode Arcade

Microsoft MakeCode Arcade is a web-based beginner-friendly code editor to create retro arcade games for the web and for microcontrollers. In this guide, you will learn how to assemble your own Arcade hardware from different parts. MakeCode Arcade is open source and available on GitHub.

Extending MakeCode

MakeCode Compatible Hardware

How to Assemble the Chibi Clip

Specific Hardware Platforms

MakeCode Maker

MakeCode Arcade Compatible Hardware

Contribute!

The MakeCode Newsletter is a community-run newsletter with support from Microsoft. The complete archives are here. Contributions are welcome! Please make pull request to modify the latest draft from inside the _drafts directory on GitHub.