PICO and Feather: What are the differences?

PIC and Feather.jpg

The Adafruit Feather and the Raspberry Pi PICO are boards based on the RP2040 processor from the Raspberry Pi people. They are obviously different (for a start one is black and the other green) but what other differences are worth knowing about?

Programming

Both of them are programmed in exactly the same way. The biggest difference is that you use a usb-c cable to connect to the Feather and a micro-usb cable for the PICO. You can write C++ or Python. Both have connections for hardware debugging. On the Feather you can solder a socket on to connect the debugger, on the PICO you add some pins.

Program Size

Both of the devices use the same chip, the RP2040, which has 264K of internal memory for code and data storage. If you install Circuit Python or MicroPython you end up with around 200K of free memory as reported by my tiny memory size reporting program:

import gc
print("Memory free:",gc.mem_free())

Loading a 500 line Python program left me with a reported 130K or so free so there is scope for these devices to run quite chunky amounts of code.

Data Size

EEPROMSizes.png

Both devices use an EEPROM (or ‘flash’) memory chip to store program code and data. If you use Circuit Python they appear as external usb storage devices where you can drop the files. Above you an see what Windows thinks of a PICO (called CheesBox - oops) and a FEATHER. Note that the Feather has much more storage space. This is because the Feather device has an 8Mb flash chip, while the PICO only has 2M.

This doesn’t affect the largest program size you can run - that’s down to the program memory size, but if you want your application to use graphics and sound samples or other data resources then the Feather is the way to go.

Connections

Both devices have lots of pins for connecting things. Things to know:

  • The Feather has four analogue inputs, the PICO only has three.

  • The Feather has a STEMMA QT connector that you can use with lots of I2C devices sold by AdaFruit and others. It also has an on-board Neopixel and an on-board led.

  • The Feather can be used with a rechargeable lithium ion battery. It has a connecter and circuit to control charging.

  • The Feather has both a BOOTSEL and a RESET button. The PICO only has a BOOTSEL button. You use the BOOTSEL button to boot a device into firmware loading mode after a reset. You don’t need to use this very often, you only do it when you want to load new firmware into the device. In other words, if you are using Python you use this once to install the Python firmware. However, having a RESET button makes this easier. For the PICO you have to hold the button down when you apply power, there is no other form of reset. For the Feather you can just hold down BOOTSEL and press RESET.

What you get in the box

With the PICO you get the PICO, nothing else. If you want to add pins or sockets you'll have to add them. With the Feather you get solder pins for the device, whether you need them or not.

Infrastructure

Both these devices are very well supported. The AdaFruit Feather system has loads of devices you can stack on top (or underneath) a Feather board. The PICO hasn't been around as long, but there are now a huge range of additions for that too.

Price

This is where the PICO comes in ahead of the Feather. It costs around £3.50 ($4.00) per device, against £12:00 ($12:00) for the Feather. Having said that, both are stupidly cheap for what you get.

Conclusion

These are amazing devices. For me I see the PICO as a Ford Focus and the Feather as a BMW. Both do the same job, but the Feather has extra features that make it easier to use (a reset button, an on-board neopixel and QT). If you really need lots of local storage, four analogue inputs or on-board charging, the Feather is the way to go. Otherwise, I'd pick the PICO on price.