When products first come out, and the inevitable add-on boards appear, one of the things that you pray for are clear, concise instructions that take you through, step-by-step how to do something basic. The Raspberry Pi Pico is incredibly “new and exciting”, but I found myself struggling this afternoon trying to get an add-on board going in a basic fashion – the Pico Explorer from Pimoroni. This board, which comes in at £22.50, is programmed using MicroPython, more specifically a version of MicroPython especially written to interface with their products. It would be nice, of course, if you could just install the MP library for their products into a basic MicroPython install (in a similar way that you drop library files onto a Pico running CircuitPython. However, this will do “for now”, so I thought I’d let you know how I faired and how to do it yourself.
The picture above is a demo picture from Pimoroni – I did not manage to get anything like as complicated as that running!
Beware! Windows user ahead
Please note, I’m using Windows (shock, horror), but as this is still the number one Operating System in the world, and it’s what I’ve got at the moment (my desk space is set-up for work as a home office), I don’t think that’s a bad thing, exactly.
Instructions
Step 1: Install the MicroPython firmware
Go to this page on GitHub and download the latest version of MicroPython from Pimoroni (NOT the normal MicroPython firmware). You want the .uf2 file (which we’ll refer to as UF2) listed nearest the top. It’s an “alpha” but don’t let that put you off too much. Unplug your Pico, hold down the BOOTSEL button and plug it back in again. You will get a drive called RPI-RP2 on your computer. Drop the UF2 file onto that drive.
The Pico will reboot and then you will be told that another device is being set-up on Windows. Another drive does not appear – this isn’t CircuitPython, this is MicroPython. It works differently.
Step 2: Install Thonny
Download the latest release of the Thonny editor from their website. This lets you interact with the Pico in the right way. Thonny’s pretty good (a favourite amongst the Raspberry Pi engineers) but it would be nice if the more user-friendly Mu was an option. That will probably come in time.
Anyway, once you’ve got it installed, run it and then immediately go to the bottom-right of the window. Change the interpreter to MicroPython (Raspberry Pi Pico). This lets you use the REPL of the Pico, if you want to. This is an interactive prompt (which appears at the bottom of Thonny) where you can run code directly on the Pico. To be honest, it’s just as easy to create a file and save it to the Pico rather than mess around with the REPL interpreter.
More importantly, it lets you save MicroPython files direct to the Pico and run them interactively.
Step 3: Get the demo sketch up-and-running
Visit this page on GitHub and copy the code from there.
In the main editor area of Thonny, paste in this code. Do Ctrl-S to save and choose to save it to the Raspberry Pi Pico. Save it as main.py on the Pico (the name is important as it specifies that, once it’s uploaded, the code should run automatically).
At the moment, all it will do is display some text on the LCD.
Step 4: Make some noise
As it says on the screen, if you plug in a Male-to-Male jumper to GP0 and then the other end into ‘AUDIO’, this should make a very 8-bit-type sound.
What next?
To go further, you’ll need a pinout diagram (thanks to Pimoroni):
This tells you what is connected to what pin. I then suggest taking a look at the Raspberry Pi MicroPython tutorial which will tell you how to define inputs and outputs.
For instance, to use one of the buttons that border the LCD, you’ll want to do something like:
button = Pin(16, Pin.IN, Pin.PULL_DOWN)
This should, although I haven’t tried it, give you a button object to query to see if value() is True or False.
Apart from that, there’s a lot of things you can do with the Explorer.
- You can use the mini breadboard to do your own electronics (such as that pictured at the top of the screen). I plugged in an LED, resistor and button and created a button-activated lamp. That’s a small thing, but it’s a good first step.
- You can use the Breakout slots to try interfacing with the Breakout Garden set of products (but I’m not sure how well supported they’ll be yet).
- You can use the buttons bordering the LCD, as I mentioned above, to get inputs to do things.
- You can use the DRV8833 chip on the bottom to activate motors, the pins for which are broken out on top.
- You can read analog inputs (these are also broken out) – be careful here as you can only use 3v3 analog sensors with the Pico (without lots of messing about with level converters!)
What did I think of the Pico Explorer?
I think it’s a great product to get you going – there’s lots of in-built functionality, the breadboard area is great as it means you can do your “Hello World” LED lighting and button inputs. However, the documentation is a bit “all over the place” and, as far as I can tell, the MicroPython functions aren’t quite fully documented yet – you have to infer them from the demo code that you cut-and-pasted in step 3. That’s fine, but some additional documentation and a “bringing it all together” needs to be done if Pimoroni expect beginners not to get lost, bewildered and dispirited by the experience. I was just about okay, but a beginner may not be.
Agreed. When the Pico launched, I picked up two boards, plus an Explorer, Display Pack and the Unicorn Pack from Pimoroni. Fortunately, the community have already started to help out with the missing examples and documentation, but right now, I would have to concur that it is all a bit early days, particularly a) the C/C++ path for Windows users, and even in my case – as an experienced user across all three major OSes, currently typing this out on a Pi 400, I completely missed that I’d need to reset UART so that Thonny could talk to the board to get a MicroPython REPL. It all feels a bit rushed.
That said, I’m very excited about the Pico and the RP2040 in general (https://dev.to/andypiper/raspberry-pi-pico-getting-excited-about-the-smallest-things-km5) and I’m heartened to see developers start to help out to document some of what might be seen as missing or “all over the place” 🙂
Once again, the community comes to the rescue, which is intriguing and slightly… I dunno… mind-boggling considering how big a company Raspberry Pi is now.
There is a great deal Pimoroni needs to do with the examples for what they have released for the Pico. “Give us a chance its new” isn’t great as the documentation and examples from the foundation at launch were exceptional – they allowed a product to be sold as “supported”.
What Pimoroni have with all their Pico add on packs is examples that are rudimentry , and not focussed at the target micropython learner – expecting a lot of the user. The demo for the rgb keypad is at best described as shocking when you consider how the product is marketed.
I agree. But I suspect they didn’t have the Pico for long enough to do the software AND the hardware. But perhaps sometimes it’s best NOT to launch something if the documentation isn’t there, especially considering how much more difficult (and different) a Pico is over a “full” Raspberry Pi?
An excellent review Mike. Unfortunately, the Pico isn’t as easy to use as an Arduino. Hopefully, things will get better as time goes by.
I love this board and the best bit is the screen – high resolution, bright, colourful and fast.
Unfortunately, Pimoroni have provided very few graphics commands: pen_colour, pixel, filled circle & rectangle, and fill_screen. Not enough help for a novice.
I used to teach mathematics and I’ve had great fun writing routines for lines, hollow rectangles and circles, bar-graphs and plotting curves, which I’m happy to share.
Driving this screen really improves your knowledge of coordinate geometry and trigonometry but could cause frustration without suitable commands.
No support yet for the I2C, SPI and breakout sockets.
A similar situation happened when the Raspberry Pi was launched. Plenty of excellent add-on hardware but not enough documentation or examples for a novice to build on. I hope it comes quicker this time.
As usual the documentation for these new products leaves a lot to be desired, which is a shame because the Pico Explorer Base could have been a useful learning tool. However, the RP2040 Pico itself is not a patch on the RPi Zero which beats the Pico hands down when it comes to building compact robots. And if you’re a complete nerd like me, then there’s nothing quite like using a single chip like the Atmega32 (very big brother of the Arduino’s Atmega328P) to build small dynamic robots. All in all, I think you’re better off buying a couple of RPi Zeros and a handful of Atmega32 chips rather than the Pico Explorer Base.
To each their own. It’s come in handy so far.
Hi Michael, great review, thanks.
I thought that when I bought this there would be some example projects included, or at least a pointer to some.
As an old newbie I’ve messed about with Pi’s as a hobby and currently have my Home Assistant running on a Pi4.
Got to say I’m disappointed with the information supplied so far from pimoroni.
This board is surely for people who are new to this to try things for themselves, but there isn’t any documentation or sample projects.
Or am I missing something here?
I know you are just reviewing this board so I realise it’s not anything that you have any control over – just letting others know because doing a google search for pico explorer brings me here.
Yeah – the documentation stack isn’t quite there, is it. It’s difficult, because I think they wanted to be “first to market” with some add-ons. But there should at least have been a decent number of tutorials released at the same time. I’ve decided to switch to CircuitPython for most of it – it’s quite easy to find the components used in the Pim products (they’re normally written on the silkscreen!) and then find the analogue CircuitPython library on Adafruit.
I quite agree
Another month on and Pimoroni have still not given any help with using the Breakout sockets on the Explorer board with MicroPython. If you want to use I2C or SPI sensors you will be forced to move to CircuitPython and the wonderful set of resources and support provided by Adafruit. Once users experience their service and support they will purchase the RP2040 boards in the pipeline made by Adafruit, such as the new Itsybitsy. These will have more memory and full support.
I’m lucky to have plenty of time to ‘play’, as I’m retired, and find out how to do things. I’ve been regularly posting on the Pimoroni Forum and Instructables.com to help others along the way with things that I have found out.
If you think back to the launch of the original Raspberry Pi; there were many similar complaints about lack of documentation the early days. The first big Jam in Cambridge was full of requests for better documentation. Thinking back even earlier to the launch of the BBC micro; it was BeeBug Magazine that really got things going, with users sending in articles/programs on cassette tapes to help reduce typing errors in the listings, which reader then had to type out and debug the typos before they would work. (I had a Mode 7 screen dump program in issue #1)
Many of us are sharing things we have discovered but better documentation and a few MicroPython I2C libraries from the equipment manufactures are sorely needed. I suggest the BMP/BME 280 would be a good starting point or we will have to stick to the analogue sensors like TMP35/6.
I hope the Arduino IDE update to include RP2040 does not take too long. I started working on the C/C++ SDK but feel it is far too complicated to be used by many.
Hi, I received a couple of Picos yesterday plus a Pico_explorer and the Getting started with uPython on RPi Pico book…
Thus far, with the Pico plugged into the explorer and Thonny installed on my Win10 laptop, I’ve managed to get the internal LED flashing – all good. However, attempting to get the explorer to do anything is failing at the first hurdle. Uploading the demo py into the pico (as main.py) results in nothing… Running the script from Thonny gives me:
Traceback (most recent call last):
File “”, line 2, in
ImportError: no module named ‘picoexplorer’
Basically, how do I import Pico_explorer into Thonny…?
Thanks
Andrew
Re: my previous comment. I was using the wrong firmware. I downloaded the latest one from raspberry.org not the Pimoroni customised firmware. I think the tutorials provided by pimoroni should make this blindingly obvious for eager beavers like me who skip across the text desperate to see things work…
Sorry, only just saw your comments. Glad you got it sorted. And yes, I quite agree!
Took about 2 hours and a lot of web browsing to get this going. In step 1, on that website, there are 10 UF2 files. The one we need is pimoroni-pico-vx.y.z-micropython.uf2. This wasn’t obvious to an absolute beginner to the pico. Thonny kept saying picographics not found but all the articles said it was already implemented.
Somehow it didn’t dawn on me that the second word was the model and that the first file wasn’t the file I actually needed.
The new Pimoroni software is much better than at the start. The corrupt pixels problem has been fixed. It takes a great deal of time and effort to keep up with the gradual improvements over time – but well worth the effort.
I prefer to see ‘how it really works’ rather than ‘fully wrapped up and hidden’ libraries. Gives you a better chance at seeing what is going wrong.