`reset_samd21()` ensures peripheral and pin state but was only done after the first main run. Without this reset, pin state is unknown and risks generating a ValueError exception due to pin in use. With USB data, the autoreset causes a reset and everything works. Without it, CircuitPython stays in the pre-repl error state.
Make a robot friend with Adafruit’s CRICKIT – A Creative Robotics & Interactive Construction Kit. It’s an add-on to our popular Circuit Playground Express, FEATHER and other platforms to make and program robots with CircuitPython, MakeCode, and Arduino. Start controlling motors, servos, solenoids. You also get signal pins, capacitive touch sensors, a NeoPixel driver and amplified speaker output. It complements & extends your boards so you can still use all the goodies on the microcontroller, now you have a robotics playground as well.