Freenove Ultimate Starter Kit for Raspberry Pi Pico: lesson by lesson, simulated
Every project of the kit’s Python tutorial, chapter by chapter, as a MicroPython program on a simulated Raspberry Pi Pico, wired to the GP pins the tutorial’s code uses: from a blinking LED through shift registers, motors and an RFID reader to a Pico W web page.
Not affiliated with Freenove. Lesson titles are referenced so you can follow along.
Every lesson in the kit’s order
Lesson numbers and titles follow the Python tutorial of fnk0058-docs v1.0.0. Each circuit uses the kit’s parts on the pins the lesson uses.
50 of the 55 lessons with a circuit run here, 6 of them with a change we name, 5 coming soon, 1 setup lesson needs no circuit.
- 0
Getting Ready (Important)
No circuitInstalling Thonny and putting MicroPython on the Pico. Nothing to install here: the editor runs MicroPython v1.29 on the simulated board and copies your files on at Run.
- 1.1
Blink
Runs hereThe Pico’s own LED, on GP25, toggles every half second.
- 1.2
Blink
Runs hereAn LED and a 220 ohm resistor on GP15, blinking twice a second.
- 2.1
Button & LED
Runs hereA push button on GP13 with a 10k pull-up lights the LED on GP15 while it is held.
- 2.2
MINI table lamp
Runs hereEach press of the button flips the LED on or off, with the contact bounce filtered out.
- 3.1
Flowing Light
Runs hereA ten-bar LED graph on GP16 to GP22 and GP26 to GP28: one bar runs along it and back.
- 4.1
Breathing LED
Runs herePWM on GP15 sweeps the duty cycle up and down, so the LED fades in and out.
- 4.2
Meteor Flowing Light
Runs herePWM on all ten pins of the bar graph: a bright head with a fading tail runs along it and back.
- 4.3
How to import a custom python module
Runs heremain.py imports a module of your own from the next tab and prints a random number from it every second.
- 5.1
Random Color Light
Runs hereA common-anode RGB LED on GP13, GP12 and GP11 takes a random color five times a second.
- 5.2
Gradient Color Light
Runs hereThe same RGB LED drifts round a color wheel, red to green to blue.
- 6.1
NeoPixel
Runs hereThe 8 RGB LED module on GP16 fills with red, green, blue and white, one LED at a time, then turns off.
Uses MicroPython’s built-in neopixel module; the lesson loads a PIO driver file of its own.
- 6.2
Rainbow Light
Runs hereA dim rainbow spread across the eight LEDs turns round and round.
Uses MicroPython’s built-in neopixel module; the lesson loads a PIO driver file of its own.
- 7.1
Doorbell
Runs hereWhile the button on GP16 is held, GP15 switches an S8050 and the active buzzer on 5 V sounds.
- 7.2
Alertor
Runs hereThe same circuit with the passive buzzer: PWM on GP15 sweeps its pitch like a siren while the button is held.
- 8.1
Serial Print
Runs hereprint() sends the seconds since the board started to the Serial Monitor once a second.
- 8.2
Serial Read and Write
Runs hereTwo jumpers join the Pico’s UARTs: text typed in the Serial Monitor goes out of UART1 on GP8 and comes back in on UART0.
- 9.1
Read the Voltage of Potentiometer
Runs hereA potentiometer on GP26 (ADC0): its reading and its voltage, ten times a second.
- 10.1
Soft Light
Runs hereThe knob on GP26 sets the PWM duty, and so the brightness, of the LED on GP15.
- 10.2
Soft Colorful Light
Runs hereThree knobs on GP26, GP27 and GP28 mix the blue, green and red of the RGB LED on GP13 to GP15.
- 10.3
Soft Rainbow Light
Runs hereThe knob on GP26 slides a rainbow along the 8 RGB LED module on GP15.
Uses MicroPython’s built-in neopixel module; the lesson loads a PIO driver file of its own.
- 10.4
Soft Colorful Light
Runs hereThe tutorial prints project 10.2 a second time under this number; it opens the same circuit.
- 10.5
Soft Rainbow Light
Runs hereThe tutorial prints project 10.3 a second time under this number; it opens the same circuit.
- 11.1
Control LED through Photoresistor
Runs hereA photoresistor and a 10k on GP26: the darker it gets, the brighter the LED on GP15.
- 12.1
Thermometer
Runs hereA 10k thermistor and a 10k resistor on GP26; the B equation turns the reading into degrees Celsius.
- 13.1
Joystick
Runs hereX on GP28, Y on GP27 and the press switch on GP26, printed ten times a second.
- 14.1
Flowing Water Light
Runs hereA 74HC595 (DS GP18, ST_CP GP20, SH_CP GP21) walks one lit bar across eight bars of the graph and back.
OE is on GP19, which the tutorial’s driver holds low to turn the outputs on; its drawing ties OE to ground instead, which does the same.
- 15.1
7-Segment Display.
Runs hereThe 74HC595 shows the hex digits 0 to F on a common-anode digit, a 220 ohm on each segment.
- 15.2
4-Digit 7-Segment Display
Runs hereThe 74HC595 sets the segments and GP17 to GP14 pick the digit, fast enough that the display reads 0123.
- 16.1
LED Matrix
Coming soonTwo 74HC595s drive an 8x8 LED matrix, scanned column by column, to show a smiley and scroll 0 to F.
The kit’s bare 8x8 LED matrix is not simulated yet. The MAX7219 matrix module is, if you want to try a matrix now.
- 17.1
Relay & Motor
Runs hereEach press of the button on GP15 flips a relay through an S8050 on GP14, and the relay runs the DC motor.
The 5 V comes from the breadboard power module on a 9 V battery, as in the lesson. A 1N4007 stands in for the lesson’s 1N4001 across the coil.
- 18.1
Control Motor with Potentiometer
Runs, with a changeThe knob on GP26 drives the motor both ways on an L293D: IN1 on GP15, IN2 on GP16 and PWM enable on GP17.
The L293D runs from the Pico’s VBUS (5 V) here. The lesson uses two AA cells, about 3 V, less than the 4.5 V the simulated L293D needs, as the chip’s datasheet does.
- 19.1
Servo Sweep
Runs hereA servo on GP16 sweeps from 0 to 180 degrees and back, a degree every 15 ms.
- 19.2
Servo Knob
Runs hereThe knob on GP26 points the servo, from 0 to 180 degrees.
The servo is on GP15: the tutorial’s code uses these pins; its drawing shows GP16.
- 20.1
Stepper Motor
Runs hereA 28BYJ-48 on its ULN2003 board, IN1 to IN4 on GP21 to GP18, turns once one way and once back.
The 5 V comes from the breadboard power module on a 9 V battery, as in the lesson.
- 21.1
LCD1602
Runs hereAn I2C LCD1602 on GP14 (SDA) and GP15 (SCL): a greeting on line one and a counter on line two.
- 22.1
Ultrasonic Ranging
Runs, with a changeAn HC-SR04 with TRIG on GP19 and ECHO on GP18, its echo timed by hand, prints centimeters twice a second.
A 1k and a 2k on ECHO bring its 5 V signal down to the 3.3 V the pin takes; the tutorial wires ECHO straight to the pin.
- 22.2
Ultrasonic Ranging
Runs, with a changeThe same ranger read through a small driver module in its own tab.
A 1k and a 2k on ECHO bring its 5 V signal down to the 3.3 V the pin takes; the tutorial wires ECHO straight to the pin.
- 23.1
Matrix Keypad
Runs hereA 4x4 keypad with its rows on GP13 to GP10 and columns on GP9 to GP6 prints each key you press.
- 23.2
Keypad Door
Runs hereType 1234 and the servo on GP0 opens the bolt for a second; each key beeps the buzzer on GP15, and a wrong code beeps long.
- 24.1
Infrared Remote Control
Runs hereAn IR receiver decodes the kit remote’s NEC frames and prints each button’s hex code.
The receiver is on GP15: the tutorial’s code uses these pins; its drawing shows GP16.
- 24.2
Control LED through Infrared Remote
Runs hereRemote keys 0 to 3, read on GP16, set four brightness levels for the LED on GP14 and beep the buzzer.
- 25.1
Hygrothermograph
Runs hereA DHT11 on GP15 with a 10k pull-up reports temperature and humidity every two seconds.
Uses MicroPython’s built-in dht module; the lesson loads a dht11.py of its own.
- 25.2
Hygrothermograph
Runs hereThe DHT11’s temperature and humidity on the LCD1602, refreshed every two seconds.
The DHT11 is on GP5 and the LCD on GP14 and GP15: the tutorial’s code uses these pins; its drawing shows GP15, GP4 and GP5.
- 26.1
Infrared Motion Detector with LED Indicator
Runs hereAn HC-SR501 on GP18 lights the LED on GP15 for as long as it sees motion.
Motion lights the LED here, as the lesson describes. The lesson’s printed code tests for a low output, which would do the opposite.
- 27.1
Read an MPU6050 Sensor Module
Runs hereAn MPU6050 on I2C bus 1 prints its raw acceleration and rotation, and the same in g and degrees per second.
SCL is on GP15 and SDA on GP14: the tutorial’s code uses these pins; its drawing shows GP5 and GP4.
- 28.1
RFID read UID
Runs hereAn RC522 on SoftSPI (SCK GP2, MOSI GP3, MISO GP4, CS GP5) prints a card’s UID and reads block 8 with the factory key.
- 28.2
RFID Read and Write
Runs, with a changeText typed in the Serial Monitor is written to block 8 of a card on the reader and read back to check it.
The lesson’s menu for reading, writing and clearing the whole card or one block is cut down to one job: write block 8 and read it back.
- 29.1
Station mode
Runs hereThe Pico W joins a WiFi network and prints the IP address, mask and gateway it was given.
On a Pico W, as the chapter needs. The board joins Mokxi’s simulated access point, whose name and password are the board’s WiFi properties.
- 29.2
AP mode
Runs, with a changeThe Pico W starts an access point of its own and prints its name and settings.
The access point comes up and reports its settings, but nothing can join it in the simulator. The lesson’s fixed 192.168.1.10 address is left out.
- 29.3
AP+Station mode
Runs, with a changeThe Pico W runs its own access point and joins a network at the same time.
The station joins Mokxi’s simulated access point; the board’s own access point comes up, but nothing can join it in the simulator.
- 30.1
as Client
Coming soonThe Pico W joins WiFi, connects to a TCP server on a computer and echoes what it is sent.
The lesson talks to a Processing program on your computer over TCP. The simulated network has no computer on it to answer, so this one is not here yet.
- 30.3
as Server
Coming soonThe Pico W listens on a TCP port for a client on a computer and echoes what it sends.
The lesson’s client is a Processing program on your computer, on port 8000. The simulated network reaches a board only on port 80, from the Web panel, so this one is not here yet.
- 31.1
Control the LED with Web
Runs hereA web page served by the Pico W on port 80, with ON and OFF links that switch the board’s own LED. Open it from the Web panel.
On a Pico W, as the chapter needs. The board joins Mokxi’s simulated access point, whose name and password are the board’s WiFi properties.
- 32.1
Bluetooth Passthrough
Coming soonThe Pico W advertises a BLE serial service and passes text between a phone app and the shell.
Bluetooth on the Pico W’s radio chip is not simulated yet.
- 32.3
Bluetooth Control LED
Coming soonText sent from a phone over BLE turns the LED on GP15 on and off.
Bluetooth on the Pico W’s radio chip is not simulated yet.
Lesson list and pins read from Freenove’s online tutorial. The explanations on this page are our own.
Everything the Freenove Ultimate Starter Kit for Raspberry Pi Pico can build
95 projects use only the parts in this box, ordered from a first blink to the hardest.
Beginner (52)
- Pico W joins WiFi in MicroPython
- MicroPython blink on the Pico’s own LED, GP25
- MicroPython on a Pico: import a module of your own
- MicroPython serial print on a Pico: seconds since start
- MicroPython WiFi access point mode on a Pico W
- MicroPython WiFi station mode on a Pico W
- Pico W DHT11 temperature and humidity on GP16
- Pico W I2C LCD1602 on GP6 and GP7
- Pico W PIR motion sensor on GP14
- Pico W servo sweep on GP15
- Pico W WS2812 strip of eight on GP0
- MicroPython joystick on a Pico: X, Y and the press
- MicroPython I2C LCD1602 on a Pico, GP14 and GP15
- MicroPython NeoPixels on a Pico: 8 LEDs on GP16
- MicroPython on a Pico: read a potentiometer on GP26
- MicroPython rainbow on a Pico’s 8 LED module
- MicroPython servo sweep on a Pico, signal on GP16
- CircuitPython button on a Pico
- CircuitPython NeoPixel rainbow on a Pico
- DHT11 on a Pico with MicroPython
- Pico W button on GP14 with a pull-down
- Pico W fading LED with PWM on GP15
- Pico W MicroPython blink on GP15
- Pico W joystick on GP27, GP26 and GP22
- Pico W LED bar graph fills and empties
- Pico W photoresistor divider on GP28
- Pico W RGB LED mixes orange with PWM
- Pico W thermistor thermometer on GP28
- MicroPython blink on a Pico, LED on GP15
- MicroPython breathing LED on a Pico, PWM on GP15
- MicroPython DHT11 on a Pico: temperature and humidity
- MicroPython flowing light on a Pico’s LED bar graph
- MicroPython color wheel on a Pico’s RGB LED
- MicroPython random colors on a Pico’s RGB LED
- MicroPython servo knob on a Pico: a pot points the servo
- Pico chaser
- CircuitPython blink on a Pico
- HC-SR04 on a Pico with MicroPython
- Pico W chaser
- Pico W active buzzer beeps through an S8050
- Pico W knob on GP28 dims an LED on GP15
- Pico W passive buzzer plays notes with PWM
- MicroPython button on GP13 lights an LED on GP15
- MicroPython night lamp on a Pico: light sensor on GP26
- MicroPython motion sensor on a Pico: PIR on GP18, LED
- MicroPython dimmer on a Pico: a knob sets an LED
- MicroPython table lamp on a Pico: a button toggles an LED
- Motion light
- Pico button
- MicroPython knob dimmer
- Pico W button switches an LED through an S8050
- MicroPython doorbell on a Pico: button and buzzer
Intermediate (33)
- MicroPython UART loopback on a Pico: GP8 to GP1
- MicroPython WiFi AP and station at once on a Pico W
- Pico W 4x4 keypad on GP2 to GP9
- Pico W MPU6050 acceleration and rotation
- Pico W WiFi weather and time on an I2C LCD
- MicroPython 4x4 keypad on a Pico, GP13 to GP6
- MicroPython MPU6050 on a Pico: acceleration and rotation
- Pico W HC-SR04 distance on GP17 and GP16
- Pico W infrared remote decoder on GP17
- MicroPython HC-SR04 on a Pico, timed by hand
- MicroPython HC-SR04 on a Pico with a driver module
- MicroPython knob rainbow on a Pico: a pot turns 8 LEDs
- MicroPython meteor light on a Pico’s LED bar, PWM
- MicroPython thermometer on a Pico: thermistor on GP26
- Pico W 74HC595 counts 0 to 9 on a digit
- Pico W 74HC595 fills eight LEDs
- Pico W four-digit display counts seconds
- Pico W room temperature on an I2C LCD
- MicroPython 74HC595 flowing light on a Pico
- MicroPython 7-segment digit on a Pico through a 74HC595
- MicroPython DHT11 and LCD1602 on a Pico
- MicroPython IR remote on a Pico: print each button’s code
- MicroPython L293D motor on a Pico: a knob sets speed
- MicroPython color mixer on a Pico: three knobs, RGB LED
- MicroPython stepper motor on a Pico, GP21 to GP18
- Pico W passenger counter: PIR and four digits
- Pico W traffic light with a countdown display
- MicroPython alarm on a Pico: a siren on a passive buzzer
- Pico W light theremin: light sets the pitch
- Pico W relay through an S8050 switches an LED
- Pico W reversing aid: HC-SR04 and a beeper
- MicroPython IR remote dimmer on a Pico: keys 0 to 3
- MicroPython relay and motor on a Pico: a button toggles it
Advanced (10)
- MicroPython web server on a Pico W: switch the LED
- Pico W MFRC522 reads and writes RFID cards
- MicroPython RFID on a Pico: read a card’s UID, RC522
- MicroPython RFID on a Pico: write a card and read it back
- Pico W guess the number: keypad and LCD
- Pico W tilt controller: MPU6050 points a servo
- Pico W web server sets an RGB LED
- MicroPython four-digit display on a Pico, multiplexed
- Pico W RFID music player with a WS2812 strip
- MicroPython keypad door lock on a Pico: servo and buzzer
Add a few parts, unlock more projects
The smallest shopping lists that open the most new projects for the Freenove Ultimate Starter Kit for Raspberry Pi Pico.
Add Slide switch
Unlocks 3 more projects:
Add Capacitor and Slide switch
Add Capacitor, Multimeter and Slide switch
Unlocks 9 more projects:
Projects that combine two kits
Own another kit as well? These need parts from both boxes, and neither can build them alone.
The kit’s parts, and what plays them here
The parts in the Freenove Ultimate Starter Kit for Raspberry Pi Pico, by the names its maker gives them. Each one is in the editor’s parts panel.
- Raspberry Pi Pico Raspberry Pi Pico
- Raspberry Pi Pico W (for chapters 29 to 32) Raspberry Pi Pico W
- Breadboard Full-size breadboard The circuits here are wired pin to pin, beside the board.
- Red, green, blue and yellow LEDs LED
- LED bar graph LED bar graph, 10 segments
- RGB LED RGB LED
- 220 ohm, 1k and 10k resistors Resistor
- Push buttons Pushbutton
- Potentiometers Potentiometer
- Photoresistor Light sensor
- Thermistor Thermistor, 10k NTC
- NPN transistors (8050) Transistor (NPN or PNP)
- 1N4001 diodes Diode Set to 1N4007, the same diode family.
- Active buzzer Buzzer
- Passive buzzer Piezo speaker
- Freenove 8 RGB LED module Addressable RGB LEDs Set to eight LEDs.
- 74HC595 74HC595 shift register
- 1-digit 7-segment display Seven segment display
- 4-digit 7-segment display Four-digit seven segment, multiplexed
- 8x8 LED matrix Not simulated yet; the MAX7219 matrix module is.
- Relay DPDT relay
- Motor DC motor
- L293D Motor driver, L293D
- Breadboard power module Breadboard power supply, MB102
- 9V battery cable Battery: AA, coin cell, LiPo The battery is set to 9 V; the kit has the cable, not the battery.
- 2x AA battery holder Battery: AA, coin cell, LiPo Chapter 18’s motor supply; that circuit runs the L293D from the Pico’s 5 V instead (see 18.1).
- Servo Hobby servo
- Stepping motor and driver board Stepper motor, 28BYJ-48 with ULN2003
- I2C LCD1602 Character LCD with I2C backpack
- Ultrasonic ranging module (HC-SR04) Ultrasonic ranger
- 4x4 keypad Keypad, 4x4
- Infrared receiver Infrared receiver, VS1838B
- Infrared remote Infrared remote, 21 buttons
- DHT-11 Temperature and humidity, DHT22 Set to DHT11 in these circuits.
- Infrared motion sensor (HC-SR501) Motion sensor
- Joystick Thumb stick
- MPU6050 Accelerometer and gyroscope, MPU6050
- RFID module (RC522), card and key fob RFID reader, MFRC522 Its cards are on the part: click one onto the reader.
- Slide switches, vibration switch, PNP transistors and capacitors In the box, but no Python project uses them.
- Perfboards and pin headers No Python project uses them.
- USB cable and jumper wires The editor connects the board for you, and wires are drawn between pins.
A link and a QR code for this page
Print either one beside a lesson, or tape it inside the box lid. Both open this page.
mokxi.com/k/freenove-pico
The code is black on white with a quiet border, so it prints and scans at any size from 2 cm up.
Download the QR code (SVG)Make kits? See what we offer kit makers.
Questions about this page
Is this made by Freenove?
No. Mokxi is independent and is not affiliated with Freenove. The page follows the kit’s lessons so you can use the two side by side; the circuits, sketches and explanations are Mokxi’s own.
Do I need the kit?
No. Every lesson that runs here runs in the browser, so you can try them before you buy a kit, or keep going while a part is missing or broken.
Is the code the same as in my manual?
The pins and the parts are the same, and the programs are MicroPython running on the real MicroPython firmware, with the same built-in modules. The code itself is written for this page, with comments that explain each step, and a few small drivers of our own stand in for the kit’s driver files, so it will not match the manual line for line.
What do "with a change" and "coming soon" mean?
A lesson marked "with a change" runs, but something differs from the kit, and the note under it says exactly what. "Coming soon" means we cannot simulate that lesson yet, and the note says why. We do not mark a lesson as running unless it does.
Is it free?
Yes. Every lesson on this page opens with no account. A free account saves your own copies of the circuits.
Other kits
Companion pages for more starter kits.
Start at lesson one
Every project opens in the editor with no account and nothing to install. Run it, change a number, run it again.