Pico360

**** I have temporarily sold out but should have some “Rev 2″ boards available late April. These will include a reset button. Follow me on Twitter for news of when they are back in stock! ****

The Pico is a powerful but cheap microcontroller from Raspberry Pi which retails for just £3.60 in the UK. I thought it would be fun to design an easy-to-solder simple board to let you try out some of its features for a similar cost to the Pico itself – hence the Pico360!

You can make your own by downloading the gerber files and sending them to a PCB manufacturer (see below) or I am selling a limited quantity on Etsy for UK buyers.

The board has:

  • 8 LEDs
  • 2 buttons connected to GP3 and GP4
  • a potentiometer connected to ADC1 (a.k.a. GP27) which allows you to experiment with analogue inputs
  • a buzzer connected to GP21
  • 5 croc-clip friendly connections in a layout similar to the micro:bit
  • 7 header pins breaking out some GPIO for breadboard experiments

Ex5pvtTW8AADc6M

Thank you to Mike Horne for the above photo and other photos on this page – you can follow him on Twitter as @recantha and view his blog post that he kindly wrote about the Pico360.

Building the Pico360

Hopefully you can see enough from the photo above to construct the kit but Mike Horne has written about constructing the Pico360 in this blog post. The main pointers are:

  • The LEDs must be connected the correct way round with the longer wire going to the PCB pad marked with a “+” symbol.
  • The buzzer should have one wire marked with a “+” that should go to a similarly-marked PCB pad. Note that there are three holes drilled in the rev.1 PCB but you only need to solder two.

Coding the Pico360

All the existing documentation for the Pico applies and Mike Horne has kindly written some example code for Circuit Python. I have written some test code (below) in micropython. This code makes the LEDs chase along at a speed controlled by the position of the potentiometer (which you can adjust with a screwdriver). Pressing one of the buttons will illuminate the green LED and pressing the other button will sound the buzzer.

# Test micropython code for Pico360 board
# for the Raspberry Pi Pico.
# More details at www.pocketmoneytronics.co.uk

import machine
import utime

# set up outputs

led_pins=[7, 8, 9, 10, 11, 12, 17] # red LEDs plus the yellow one
leds = []
for i in led_pins:
    tmp = machine.Pin(i, machine.Pin.OUT)
    leds.append(tmp)

green_led = machine.Pin(16, machine.Pin.OUT)
buzzer = machine.Pin(21, machine.Pin.OUT)

# set up inputs

button3 = machine.Pin(3, machine.Pin.IN, machine.Pin.PULL_DOWN)
button4 = machine.Pin(4, machine.Pin.IN, machine.Pin.PULL_DOWN)
potentiometer = machine.ADC(27)

while True:
    for led in leds:
        led.value(1) # turn led on
        delay_length = 5+int(potentiometer.read_u16()/1000)
        for i in range(delay_length):
            green_led.value(button3.value()) # if button 3 pressed, light the green LED
            buzzer.value(button4.value()) # if button 4 pressed, sound the buzzer
            utime.sleep(0.01)
        led.value(0) # turn led off

# end

Note that to turn on the LEDs or buzzer you should set the corresponding output to 1 and set it to 0 to turn them off. For the button inputs, the input value is 1 if the button is pressed and 0 if it is not pressed.

By the way, you can connect my small Christmas Tree to the header pins! Note that the 3V3 pin (on the right hand side of this photo) is not required.

IMG_5938

FAQs

Can I buy a kit from you?

I am selling some kits on Etsy but only for delivery to the UK for now (sorry – this is to keep the logistics simple). If you are outside the UK, why not get get your own PCBs sent directly to you from a manufacturer (see below)?

If you would like me to put together some bulk bits e.g. for a school or STEM club, please get in touch.

Can I make my own PCBs?

Yes, you can download a zip file of the gerbers and then upload it to your preferred PCB manufacturer. I have had success in the past with Elecrow and JLCPCB and DirtyPCBs.

What components do I need?

  • 1 x PCB
  • 6 x red LEDs
  • 1 x yellow LED
  • 1 x green LED
  • 8 x 330Ω resistor e.g. Rapid 62-0358 – I think “carbon film” resistors are the best for beginners because the colour code is easier to read
  • 2 x 6mm tactile switch (n.b. future versions may need 3 switches)
  • 2 x 20 pin female headers e.g. Rapid 19-0088
  • 1 x 7-pin male header
  • 1 x potentiometer of 10K or greater e.g. Rapid 68-1576 (be careful that the pin spacing is the same)
  • 1 x buzzer suitable for being driven by a 3.3v GPIO with 5mm pin spacing
  • 3 x rubber feet e.g. Rapid 31-0632

You will also need 2 x 20-pin male headers for soldering to the Pico itself.

IMG_20210401_152512095_HDR

Is it OK for me to make my own PCBs and sell kits to other people?

Yes, please do! But please point them to this webpage, if possible, for information on building and using the Pico360. Please try to include all of the components in the list above when providing kits.

Why is there no reset button?

I designed this board before the “Great Reset Button Hoo-Ha of 2021″. If the first batch of kits sells out then I will add a reset button to a rev.2 of the board.

Why is your choice of GPIO numbers a bit odd?

I wanted to make the 7-pin header use the same GPIO numbers as a portion of the Raspberry Pi’s GPIO header so that some simple add-ons (e.g. my GPIO Xmas Tree) could work on both and the documentation could refer to the same GPIO pin numbers.

What is the circuit diagram?

Pico360

Why is it called the “Pico360″?

You may think that the “360” refers to the board being circular, but no! It’s because I wanted to sell it for the same price as the Pico itself i.e. 360p in the UK. I don’t know if that price will be sustainable for the future but that’s what I’m selling the first few batches for, at least.