Introduction: Circuit Check - Arduino Debugger and Tester

About: I use wearables, human augmentation, and multimodal interfaces to design technologies that enable novel and immersive sensory experiences.

This project is led by Michael Schneider. View Michael's Instructables page.


Circuit Check is a hardware debugger designed for testing to see if your hardware components are working properly. Circuit Check enables you to easily check onboard and external sensor information; drive onboard and external actuators like LEDs; as well as set pin states and PWM - all without the need to compile code after the initial setup. This Instructable will detail how you can prepare your microcontroller to be controlled by Circuit Check.

The Circuit Check website (beta) can be found here.

This material is based upon work supported by the National Science Foundation under Award #1742081.

The Debugging by Design project page can be found here. This project was developed in the Craft Tech Lab, ATLAS Institute, and Institute of Cognitive Science at The University of Colorado, Boulder.

Step 1: Supported Microcontrollers

Step 2: Adding the Necessary Arduino Sketch to Your Microcontroller

We’ve created a custom Arduino Sketch that will establish communication between your board and Circuit Check. This sketch is required or else your board won’t be able to establish communication with the Circuit Check website.

1. Open this Google Drive link

2. Find the folder with the correct name for the board type you are using (e.g., Circuit_Check_Arduino_Uno if you are using an Uno)

3. Open the folder and download the file that is inside

4. Open that file in your Arduino IDE and then upload it to your microcontroller. If using MakeCode place directly into your board's folder.

If the sketch is uploaded to the board without any problems you are now able to go to the next steps. If you have issues make sure your IDE and libraries are updated.

Step 3: Connecting the Microcontroller to Circuit Check

Navigate to Circuit Check's website here and click on the Connect Button in the top left corner. Now select the Serial port your microcontroller is currently connected to and you should see the Connect turn into Disconnect.

Make sure you are using the Google Chrome Web Browser. Circuit Check cannot work with other web browsers.

If all previous steps were done correctly, you are now able to use your microcontroller with Circuit Check!

Step 4: Circuit Check Example - Controlling Onboard NeoPixels/LEDs

Circuit Check can be used to turn on, turn off, and set color (when applicable) of onboard NeoPixels/LEDs. To do so, click on the component and set the color on the top middle menu. While Circuit Check has preprogrammed colors, you can set the hex value at the bottom left corner of the menu.

Step 5: Circuit Check Example - Reading Values From a Sensor

With Circuit Check you can read values from either an onboard sensor or a sensor attached to a pin. To read the value of an onboard sensor, select the sensor’s icon that is located on the board (e.g., the eye icon on the Circuit Playground) or the pin where the physical sensor is located. If connecting to a pin, change the “PinMode” menu to input. The values of the sensor will appear on the top left corner menu as well as the pin the sensor is connected to (if applicable).

Step 6: Circuit Check Example - Generating Output for Actuation

Circuit Check can control actuators that are either onboard or external (by turning the pin high). To control the actuator, select the actuator’s icon that is located on the board (e.g., the musical note on the Circuit Playground) or the pin the external actuator is connected to. If connecting to a pin, change “PinMode” to output. Certain actuators have a special UI to control the output. For example, the onboard buzzer in the Circuit Playground opens an interactive keyboard where you are able to select what sound you want to play and for how long.

  • Time: How many milliseconds you want the sound to play for. For example, the value 500 will play for 500 milliseconds, or half a second.
  • Frequency: This determines how high or low the note will be. A recommended range for a buzzer is 25-10,000.
  • Piano: Instead of manually selecting a frequency, you can also use the provided piano to more easily play songs with your buzzer.

Step 7: Circuit Check Example - Controlling PWM

Circuit Check can be used to set the PWM duty cycle of certain pins (this works the same as the analogwrite() function). Click on a pin that is able to do PWM, then set the “PinMode” to output. On the top-right menu, there will be the PWM setting that can be manually adjusted by either click and dragging the small box under “LOW” or adding an integer into the small box between the “+” and “-” signs. Once you have the desired duty cycle selected press the “update” button and the selected pin will now output the selected voltage.

Step 8: Providing Feedback

Have a feature request or want to report a bug? Contact the creator: Michael Schneider : Michael.J.Schneider@colorado.edu or leave a comment!