Kit companion

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.

Lesson by lesson

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.

  1. 0

    Getting Ready (Important)

    No circuit

    Installing 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.

  2. 1.1

    Blink

    Runs here

    The Pico’s own LED, on GP25, toggles every half second.

  3. 1.2

    Blink

    Runs here

    An LED and a 220 ohm resistor on GP15, blinking twice a second.

  4. 2.1

    Button & LED

    Runs here

    A push button on GP13 with a 10k pull-up lights the LED on GP15 while it is held.

  5. 2.2

    MINI table lamp

    Runs here

    Each press of the button flips the LED on or off, with the contact bounce filtered out.

  6. 3.1

    Flowing Light

    Runs here

    A ten-bar LED graph on GP16 to GP22 and GP26 to GP28: one bar runs along it and back.

  7. 4.1

    Breathing LED

    Runs here

    PWM on GP15 sweeps the duty cycle up and down, so the LED fades in and out.

  8. 4.2

    Meteor Flowing Light

    Runs here

    PWM on all ten pins of the bar graph: a bright head with a fading tail runs along it and back.

  9. 4.3

    How to import a custom python module

    Runs here

    main.py imports a module of your own from the next tab and prints a random number from it every second.

  10. 5.1

    Random Color Light

    Runs here

    A common-anode RGB LED on GP13, GP12 and GP11 takes a random color five times a second.

  11. 5.2

    Gradient Color Light

    Runs here

    The same RGB LED drifts round a color wheel, red to green to blue.

  12. 6.1

    NeoPixel

    Runs here

    The 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.

  13. 6.2

    Rainbow Light

    Runs here

    A 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.

  14. 7.1

    Doorbell

    Runs here

    While the button on GP16 is held, GP15 switches an S8050 and the active buzzer on 5 V sounds.

  15. 7.2

    Alertor

    Runs here

    The same circuit with the passive buzzer: PWM on GP15 sweeps its pitch like a siren while the button is held.

  16. 8.1

    Serial Print

    Runs here

    print() sends the seconds since the board started to the Serial Monitor once a second.

  17. 8.2

    Serial Read and Write

    Runs here

    Two jumpers join the Pico’s UARTs: text typed in the Serial Monitor goes out of UART1 on GP8 and comes back in on UART0.

  18. 9.1

    Read the Voltage of Potentiometer

    Runs here

    A potentiometer on GP26 (ADC0): its reading and its voltage, ten times a second.

  19. 10.1

    Soft Light

    Runs here

    The knob on GP26 sets the PWM duty, and so the brightness, of the LED on GP15.

  20. 10.2

    Soft Colorful Light

    Runs here

    Three knobs on GP26, GP27 and GP28 mix the blue, green and red of the RGB LED on GP13 to GP15.

  21. 10.3

    Soft Rainbow Light

    Runs here

    The 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.

  22. 10.4

    Soft Colorful Light

    Runs here

    The tutorial prints project 10.2 a second time under this number; it opens the same circuit.

  23. 10.5

    Soft Rainbow Light

    Runs here

    The tutorial prints project 10.3 a second time under this number; it opens the same circuit.

  24. 11.1

    Control LED through Photoresistor

    Runs here

    A photoresistor and a 10k on GP26: the darker it gets, the brighter the LED on GP15.

  25. 12.1

    Thermometer

    Runs here

    A 10k thermistor and a 10k resistor on GP26; the B equation turns the reading into degrees Celsius.

  26. 13.1

    Joystick

    Runs here

    X on GP28, Y on GP27 and the press switch on GP26, printed ten times a second.

  27. 14.1

    Flowing Water Light

    Runs here

    A 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.

  28. 15.1

    7-Segment Display.

    Runs here

    The 74HC595 shows the hex digits 0 to F on a common-anode digit, a 220 ohm on each segment.

  29. 15.2

    4-Digit 7-Segment Display

    Runs here

    The 74HC595 sets the segments and GP17 to GP14 pick the digit, fast enough that the display reads 0123.

  30. 16.1

    LED Matrix

    Coming soon

    Two 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.

  31. 17.1

    Relay & Motor

    Runs here

    Each 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.

  32. 18.1

    Control Motor with Potentiometer

    Runs, with a change

    The 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.

  33. 19.1

    Servo Sweep

    Runs here

    A servo on GP16 sweeps from 0 to 180 degrees and back, a degree every 15 ms.

  34. 19.2

    Servo Knob

    Runs here

    The 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.

  35. 20.1

    Stepper Motor

    Runs here

    A 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.

  36. 21.1

    LCD1602

    Runs here

    An I2C LCD1602 on GP14 (SDA) and GP15 (SCL): a greeting on line one and a counter on line two.

  37. 22.1

    Ultrasonic Ranging

    Runs, with a change

    An 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.

  38. 22.2

    Ultrasonic Ranging

    Runs, with a change

    The 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.

  39. 23.1

    Matrix Keypad

    Runs here

    A 4x4 keypad with its rows on GP13 to GP10 and columns on GP9 to GP6 prints each key you press.

  40. 23.2

    Keypad Door

    Runs here

    Type 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.

  41. 24.1

    Infrared Remote Control

    Runs here

    An 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.

  42. 24.2

    Control LED through Infrared Remote

    Runs here

    Remote keys 0 to 3, read on GP16, set four brightness levels for the LED on GP14 and beep the buzzer.

  43. 25.1

    Hygrothermograph

    Runs here

    A 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.

  44. 25.2

    Hygrothermograph

    Runs here

    The 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.

  45. 26.1

    Infrared Motion Detector with LED Indicator

    Runs here

    An 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.

  46. 27.1

    Read an MPU6050 Sensor Module

    Runs here

    An 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.

  47. 28.1

    RFID read UID

    Runs here

    An RC522 on SoftSPI (SCK GP2, MOSI GP3, MISO GP4, CS GP5) prints a card’s UID and reads block 8 with the factory key.

  48. 28.2

    RFID Read and Write

    Runs, with a change

    Text 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.

  49. 29.1

    Station mode

    Runs here

    The 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.

  50. 29.2

    AP mode

    Runs, with a change

    The 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.

  51. 29.3

    AP+Station mode

    Runs, with a change

    The 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.

  52. 30.1

    as Client

    Coming soon

    The 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.

  53. 30.3

    as Server

    Coming soon

    The 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.

  54. 31.1

    Control the LED with Web

    Runs here

    A 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.

  55. 32.1

    Bluetooth Passthrough

    Coming soon

    The 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.

  56. 32.3

    Bluetooth Control LED

    Coming soon

    Text 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.

Learning path

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)
  1. Pico W joins WiFi in MicroPython
  2. MicroPython blink on the Pico’s own LED, GP25
  3. MicroPython on a Pico: import a module of your own
  4. MicroPython serial print on a Pico: seconds since start
  5. MicroPython WiFi access point mode on a Pico W
  6. MicroPython WiFi station mode on a Pico W
  7. Pico W DHT11 temperature and humidity on GP16
  8. Pico W I2C LCD1602 on GP6 and GP7
  9. Pico W PIR motion sensor on GP14
  10. Pico W servo sweep on GP15
  11. Pico W WS2812 strip of eight on GP0
  12. MicroPython joystick on a Pico: X, Y and the press
  13. MicroPython I2C LCD1602 on a Pico, GP14 and GP15
  14. MicroPython NeoPixels on a Pico: 8 LEDs on GP16
  15. MicroPython on a Pico: read a potentiometer on GP26
  16. MicroPython rainbow on a Pico’s 8 LED module
  17. MicroPython servo sweep on a Pico, signal on GP16
  18. CircuitPython button on a Pico
  19. CircuitPython NeoPixel rainbow on a Pico
  20. DHT11 on a Pico with MicroPython
  21. Pico W button on GP14 with a pull-down
  22. Pico W fading LED with PWM on GP15
  23. Pico W MicroPython blink on GP15
  24. Pico W joystick on GP27, GP26 and GP22
  25. Pico W LED bar graph fills and empties
  26. Pico W photoresistor divider on GP28
  27. Pico W RGB LED mixes orange with PWM
  28. Pico W thermistor thermometer on GP28
  29. MicroPython blink on a Pico, LED on GP15
  30. MicroPython breathing LED on a Pico, PWM on GP15
  31. MicroPython DHT11 on a Pico: temperature and humidity
  32. MicroPython flowing light on a Pico’s LED bar graph
  33. MicroPython color wheel on a Pico’s RGB LED
  34. MicroPython random colors on a Pico’s RGB LED
  35. MicroPython servo knob on a Pico: a pot points the servo
  36. Pico chaser
  37. CircuitPython blink on a Pico
  38. HC-SR04 on a Pico with MicroPython
  39. Pico W chaser
  40. Pico W active buzzer beeps through an S8050
  41. Pico W knob on GP28 dims an LED on GP15
  42. Pico W passive buzzer plays notes with PWM
  43. MicroPython button on GP13 lights an LED on GP15
  44. MicroPython night lamp on a Pico: light sensor on GP26
  45. MicroPython motion sensor on a Pico: PIR on GP18, LED
  46. MicroPython dimmer on a Pico: a knob sets an LED
  47. MicroPython table lamp on a Pico: a button toggles an LED
  48. Motion light
  49. Pico button
  50. MicroPython knob dimmer
  51. Pico W button switches an LED through an S8050
  52. MicroPython doorbell on a Pico: button and buzzer
Intermediate (33)
  1. MicroPython UART loopback on a Pico: GP8 to GP1
  2. MicroPython WiFi AP and station at once on a Pico W
  3. Pico W 4x4 keypad on GP2 to GP9
  4. Pico W MPU6050 acceleration and rotation
  5. Pico W WiFi weather and time on an I2C LCD
  6. MicroPython 4x4 keypad on a Pico, GP13 to GP6
  7. MicroPython MPU6050 on a Pico: acceleration and rotation
  8. Pico W HC-SR04 distance on GP17 and GP16
  9. Pico W infrared remote decoder on GP17
  10. MicroPython HC-SR04 on a Pico, timed by hand
  11. MicroPython HC-SR04 on a Pico with a driver module
  12. MicroPython knob rainbow on a Pico: a pot turns 8 LEDs
  13. MicroPython meteor light on a Pico’s LED bar, PWM
  14. MicroPython thermometer on a Pico: thermistor on GP26
  15. Pico W 74HC595 counts 0 to 9 on a digit
  16. Pico W 74HC595 fills eight LEDs
  17. Pico W four-digit display counts seconds
  18. Pico W room temperature on an I2C LCD
  19. MicroPython 74HC595 flowing light on a Pico
  20. MicroPython 7-segment digit on a Pico through a 74HC595
  21. MicroPython DHT11 and LCD1602 on a Pico
  22. MicroPython IR remote on a Pico: print each button’s code
  23. MicroPython L293D motor on a Pico: a knob sets speed
  24. MicroPython color mixer on a Pico: three knobs, RGB LED
  25. MicroPython stepper motor on a Pico, GP21 to GP18
  26. Pico W passenger counter: PIR and four digits
  27. Pico W traffic light with a countdown display
  28. MicroPython alarm on a Pico: a siren on a passive buzzer
  29. Pico W light theremin: light sets the pitch
  30. Pico W relay through an S8050 switches an LED
  31. Pico W reversing aid: HC-SR04 and a beeper
  32. MicroPython IR remote dimmer on a Pico: keys 0 to 3
  33. MicroPython relay and motor on a Pico: a button toggles it
Advanced (10)
  1. MicroPython web server on a Pico W: switch the LED
  2. Pico W MFRC522 reads and writes RFID cards
  3. MicroPython RFID on a Pico: read a card’s UID, RC522
  4. MicroPython RFID on a Pico: write a card and read it back
  5. Pico W guess the number: keypad and LCD
  6. Pico W tilt controller: MPU6050 points a servo
  7. Pico W web server sets an RGB LED
  8. MicroPython four-digit display on a Pico, multiplexed
  9. Pico W RFID music player with a WS2812 strip
  10. MicroPython keypad door lock on a Pico: servo and buzzer
Level up

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.

In the box

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.

For the manual

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.

QR code for mokxi.com/k/freenove-pico

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.

FAQ

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.

Keep going

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.