Skip to content

Design your own circuit ​

The circuit designer is where you choose the parts, put them on pins and get code for them. It works on your own projects: ones you start from nothing, copies of library projects, and projects you import.

Start a project ​

There are two ways.

From nothing. On the Projects tab, under Your projects, select New project. Type a Name, pick a Board, and select Create. The project starts with an empty circuit and a sketch that blinks the board's own LED and prints Ready. Add parts in the Circuit tab. For a Raspberry Pi 4 / 5 it starts with a Python script instead.

From a ready-made project. Open any lab, library project or the playground and select Customize at the top. The app makes a copy called the project's name followed by (mine), with the same parts, pins and code, and opens it. A copy of the playground is called My and the board's name, for example My Raspberry Pi Pico project.

Your projects are listed under Your projects on the Projects tab, with the board each is for. Everything is saved on this device as you work.

The designer ​

In a wide window, the middle column of your project has two views: Circuit, the designer, and Guide. In a narrow one, the designer is the Circuit tab, with the pin map above it.

The designer shows, from the top:

  • Your design: the project's name. The pencil (Rename) opens Project details, where you change the Name and What it does.
  • Board: which board the project is for.
  • The parts, with Add part.
  • Generate starter code for this circuit.
  • Wiring, worked out for you: a From / To table for the real build, updated as you change the parts.

Add a part ​

Select Add part and choose one of the 21 kinds: LED, push button, knob (potentiometer), buzzer, light sensor, slide switch, relay module, temperature sensor, servo motor, distance sensor, motion sensor (PIR), touch sensor, tilt switch, door sensor (reed switch), obstacle sensor (IR), soil moisture sensor, water level sensor, gas sensor, sound sensor, DC motor and laser module.

The app gives the new part the best free pin for its kind, keeping away from risky pins when it can. Parts that read a voltage, such as the knob and the light sensor, go on an analog input. A distance sensor gets two pins, TRIG and ECHO.

If there is no suitable pin left, the app says so, for example No free pin left for this part on the Arduino Nano.

Each part in the list has:

  • its name, which you can edit in place (up to 14 characters). The name is used for the variable names in generated code and on the bench;
  • its kind;
  • its pin (or TRIG and ECHO), as a list to choose from;
  • for an LED, five colour dots;
  • the cross (Remove), which takes it out of the circuit.

Assign pins ​

Choose a pin from the part's list. Pins best avoided are marked · avoid in red, but you can still pick them.

Or use the pin map:

  1. Select the part in the list.

  2. Tap a pin on the pin map. The part moves to that pin.

The pin map refuses pins that cannot work, with a message: a power or ground pin is not a signal pin, a pin without an analog input cannot read a voltage, and an input-only pin cannot drive an output.

Read the warnings ​

Under each part, the designer lists in amber anything wrong with how it is wired. Fix them before you build the real circuit.

WarningWhat it means
The pin does not exist on the boardPick a pin from the list
The pin is also used by another partTwo parts share a pin; move one
The pin is read at reset to choose the boot modeA part there can stop the board starting; pick another pin if you can
The pin is best avoidedIt has another job on this board, such as the USB serial lines; the warning says which
The pin is input onlyIt cannot drive an LED, buzzer, relay, servo, motor or laser
TRIG and ECHO need two different pinsA distance sensor needs both its pins
The pin cannot read a voltageAnalog parts need an analog input
The board has no analog inputsOn a Raspberry Pi 4 / 5, analog parts need an ADC chip such as the MCP3008
The pin has no PWMAn LED there can blink but not fade; a motor can switch on and off but not change speed
The HC-SR04 ECHO pin outputs 5 VOn a 3.3 V board, add a resistor divider or use the 3.3 V HC-SR04P
The MQ-2 can reach 5 VOn a 3.3 V board, add a resistor divider before the pin

Move to another board ​

Pick another board from the Board list. Each part keeps its pin if that pin still suits it on the new board, and gets a new one if not. The project reopens on the new board, with the message Moved to the and the board's name, and a reminder to check the pin numbers in your code.

If the parts do not all fit, the move is refused: These parts do not all fit on the and the board's name.

Generate starter code ​

Select Generate starter code for this circuit. If the editor has code in it, confirm with Replace: the new sketch replaces what is there.

The starter sketch sets every part up in setup(), then exercises it, so a new design does something the moment it runs:

  • LEDs light one after the other;
  • relays, motors and lasers switch on and off;
  • a servo sweeps;
  • a buzzer beeps every two seconds;
  • every input is printed to the serial monitor twice a second, for example button=pressed knob=2048.

For a Raspberry Pi 4 / 5 the app writes a Python script for the gpiozero library instead.

After moving to another board, generating new starter code is the quickest way to get pin numbers that match.

Edit the code ​

Your project's code is saved with the project as you type; the editor's header says saved. There is no starter code to restore, so generate it again if you want a fresh start.

Rename or delete a project ​

Both are in the Export menu (the share icon at the top) of your own projects:

  • Rename opens Project details, the same as the pencil in the designer.
  • Delete project asks first. The project, its circuit and its code are removed from this device. This cannot be undone, so export a project file first if you might want it back.

Next steps ​