1. A computer-implemented method comprising: displaying a first user module and a second user module for selection by a user, the first user module identifying a first configuration for a circuit block that is reconfigurable by a microcontroller, and the second user module identifying a second, different configuration for the circuit block; receiving an input from a user to select the first user module and the first configuration or the second user module and the second configuration; and generating instructions that, when processed by the microcontroller, reconfigure the circuit block to function according to the received input.