Review: Device Simulator Express emulates a Circuit Playground Express #CircuitPlaygroundExpress @MSFTGarage @Adafruit

Last month, Microsoft Garage, in collaboration with Adafruiit, created  Device Simulator Express, a Visual Studio Code extension that enables developers to program the Adafruit Circuit Playground Express in CircuitPython, with or without a physical device.

The initial Adafruit blog post is here describing the initial availability.

Here we’ll quickly outline the installation and use of the simulator.

The software consists of a download available through the Visual Studio Marketplace. It is open source under an MIT license. The prerequisite software needed is quite extensive:

The following dependencies are required to install before launching Device Simulator Express.
You will be prompted to install the Python dependencies during the first use.

The following dependencies can be installed for you by the extension by clicking yes when you are prompted to (except pywin32 which is needed only on Windows platform).

  • Playsound
    install by typing the following commands in a console: pip install playsound
  • Pywin 32
    install by typing the following commands in a console (only for Windows computers, you must run it manually): pip install pywin32
  • Python-Socketio
    install by typing the following commands in a console: pip install python-socketio
  • Requests
    install by typing the following commands in a console: pip install requests
  • Application Insights
    install by typing the following commands in a console: pip install applicationinsights

It would be nice if all this software were bundled into a Docker container or similar. Experience using the command shell/console is needed to use pip. Adding pip and python to ones PATH is explained in a footnote.

Running the Simulator

After installation,  there is a code window on the left for CircuitPython and a simulated device on the right. This is somewhat similar to Microsoft MakeCode but with code and simulator flipped.

"New File" animation

The Ctrl-shift-P then type the command is not as straightforward as a menu selection. Perhaps this could be integrated into the VSC menu system at some point?

Use is great, you can paste in some example code and watch it work. And with the growing popularity of Visual Studio Code as an open framework for programming in a wide array of languages, adding CircuitPython support and simulation is an impressive step.

Conclusion

Device Simulator Express is powerful software providing simulation of CircuitPython and Circuit Playground Express together.

The software installation is time consuming and use requires some time and multiple packages. The Visual Studio framework makes for powerful workflows but could be daunting for beginners.

For advanced students and professionals, Device Simulator Express may be the way to work with embedded devices and Python without having to have the actual device available. The ability to leverage VSC’s advanced features could save a great deal of time.

For beginners, I still recommend an actual device. That coupled with a good text editor or preferably the Mu editor (open source) provides an excellent experience with little to no software installation and immediate feedback on the device.