ICYMI (In case you missed it) – MakeCode Newsletter from AdafruitDaily.com went out – if you missed it, subscribe now!
The next newsletter goes out in a week and being subscribed the best way to keep up with all things 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
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.
Check out the runway show here YouTube
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 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.
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.”
Interview: 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.
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?
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).
Check out some of the recent projects and more with the Summer of MakeCode for kids – Microsoft Research.
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
Behind the MakeCode Hardware – Light Sensor on the Circuit Playground Express on YouTube.
Behind the MakeCode Hardware – Infrared on the Circuit Playground Express on YouTube.
Behind the MakeCode Hardware – Microphone on Circuit Playground Express on YouTube.
Behind the MakeCode Hardware – Speaker on the Circuit Playground Express on YouTube.
Behind the MakeCode Hardware – NeoPixels on Circuit Playground Express on YouTube.
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!
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!
See students build the ToddleBot with EV3 LEGO, programmed with MakeCode. YouTube
MakeCode on a micro:bit controls a Lego robotic arm in this coffee shop build. YouTube
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
From @WeCodeMakeCode: “Elvis – a Flamboyant Snake in #MakeCode #Arcade – read about, play game and download code. Snake moves automatically with direction changed by player using buttons. Play the game and view the code.”
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
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
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.”
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 with MakeCode Arcade, by Little Bird.
Add Levels to 2D Platformer with MakeCode Arcade, by Little Bird.
- Go Fishing with Rotary Encoders.
- Plantagotchi: PyBadge Plant Monitor.
- Making a Name Tag in MakeCode Arcade.
- PyGamer NeoPixel Controller.
And check out all MakeCode guides on learn.adafruit.com.
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)
- Tile collision fixes
- Animation extension
- Support for images bigger than 255×255 pixels
- Control.micros() and control.benchmark()
- Meowbit accelerometer fixes
Resouces for Educators and more!
If we missed any resources, please let us know, we’ll be updating this list each newsletter.
- MakeCode forums
- MakeCode Blog
- Awesome MakeCode on GitHub
- r/MakeCode – Reddit
- @MSMakeCode on Twitter
- Latest #MakeCode tagged Tweets
- MakeCode on Instagram
- #MakeCode tagged photos on Instagram
- MakeCode on YouTube
- MakeCode minute on YouTube
- MakeCode Arcade Game of the Week on YouTube
- MakeCode posts on Adafruit
- MakeCode guides on learn.adafruit.com
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.
An interactive simulator provides students with immediate feedback on how their program is running and makes it easy to test and debug their code.
Students new to coding can start with colored blocks that they can drag and drop onto their workspace to construct their programs.
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.
- Creating Targets – new hardware platforms for MakeCode
- Creating Extensions – an extension is like a plug-in, providing specific functionality for hardware or software.
- MakeCode for Adafruit boards on GitHub
- MakeCode Arcade on GitHub
- Developer tips and tricks for MakeCode Arcade
MakeCode Compatible Hardware
Specific Hardware Platforms
- BBC micro:bit
- Adafruit Circuit Playground Express
- Microsoft Minecraft
- LEGO® MINDSTORMS® Education EV3
- Cue by Wonder Workshop.
- Chibi Chip by chibitronics.
- MakeCode Maker – uses a breadboard approach to connecting components.
- Adafruit Compatible Boards
- SparkFun Compatible Boards
- Arduino Compatible Boards
- Beads (Project Brookdale) Compatible Boards
- Other Compatible Boards
- Adding another board
MakeCode Arcade Compatible Hardware
- Adafruit PyGamer
- Adafruit PyBadge
- Adafruit PyBadge LC
- Adafruit M4 Board and Screen
- BrainPad Arcade
- KittenBot Meowbit – a codable Console for Microsoft Makecode Arcade.
- Raspberry Pi Zero and Adafruit Joy Bonnet
- WiFiBoy OK:D51 Arcade – demonstration video on YouTube
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.