Review of the Maker Pi Pico from Cytron Technologies – a Raspberry Pi Pico project board worth your time

Also in my review box from Cytron (along with yesterday’s Edu:Bit) was a Maker Pi Pico. This is a board that houses a Raspberry Pi Pico and measures approximately 95mm x 70mm. The version I’ve got is the ordinary Maker Pi Pico, but there is also a Maker Pi Pico Base which just has a slot for a Pico that you may already own.

The idea of this board is to make it simpler to add components onto a project, but still keep it to a manageable size.

TL;DR – a great add-on home for your Raspberry Pi Pico at a great price. Find out where to buy it at the bottom of the post!

Features

It has the following features:

  • 6 Grove-compatible sockets for adding on inputs and outputs via Grove cables.
  • An SD card slot (so you can read and write files).
  • A 3.5mm audio output jack and a (fairly loud) buzzer for playing simple sounds (and, thank God, a small switch to disable the buzzer!).
  • Low-power LEDs on every pin so you can see what’s happening, input and output-wise.
  • A socket for an ESP-01 wi-fi module.
  • 3 user-defined buttons.
  • A RUN (reset) button.
  • A single Neopixel-style RGB LED.
  • A header that breaks out the debug pins and also allows you to wire up your own RUN/reset button.
  • All the Pico pins broken out as pin headers.

That’s quite a list, I think you’ll agree. They also provide lots of demo scripts to use when trying it out, so the software is “there”, too. These scripts come in both CircuitPython and MicroPython flavours, although the board is pre-loaded with CircuitPython. This is a wise choice – CP does give you a much easier way to develop – just drop the files on the “drive” that you get when the Pico is plugged in and away you go.

Initial impressions

What I liked about it most initially was that they have been very smart in deciding which pins to break out as Grove sockets. They have chosen lots of I2C but also chosen to break out two of the Pico’s analog pins as a Grove socket. Handy, because that means you can use Grove modules like a potentiometer. It’s an attractive board, too, in its purple colour and everything is well-labelled and well-engineered.

Experiments

Cytron were kind enough to send me a Grove OLED module and a Grove potentiometer module too, so I had a play with one of their demo scripts that shows the value of the pot on the OLED.

As you can see, the board also comes with a nifty pin reference card – very handy for looking up what pin does what quickly.

I did try and get the SD card reading and writing, but for some reason it didn’t recognise my card. I suspect this is just something to do with the card I was using, so I’ll try a different one at a later date.

The buzzer is certainly loud – the pre-loaded demo code plays the Mario theme immediately upon boot. Fortunately (and I can’t stress this enough), they’ve been good enough to provide a shut-off button for the buzzer! The audio jack is a nice touch for higher fidelity sound playing.

The three user-defined buttons, which are linked to GPIO pins 20, 21 and 22, are satisfyingly clicky and the Neopixel-like RGB LED is appropriately blinky. 🙂

Experiments in Wi-Fi

Cytron also sent over a cheap ESP-01 module which allows you to connect the Maker Pi Pico to the Internet. There is a socket on-board (bottom-right) for the module. They were good enough to give me some support in getting it going and I was soon able to ping an IP address by providing wi-fi credentials in a supplied template “secrets” file.

Quick instructions: The demo scripts are on their GitHub here. I renamed simpletest.py to code.py, uploaded that and the lib folder to the Pico then altered secrets.py to give it my own credentials.

Overall

I had a very satisfying experience with this product, overall. The SD card issue I’m sure waseither down to the card, or the way it was formatted, so I will see about that later on. Price-wise, the board is very competitive. On the Cytron site, it’s $9.90 including the Pico. Elsewhere, it can be found on The Pi Hut’s site for £11.50 with the Pico, or £8 for the Base version. It is also available from Kitronik (just the Base version) and you can find other international resellers on the Cytron page, at the bottom.

It’s a great board at an attractive price and it gives you really great options for getting going with the Pico if you don’t want to use jumper cables on the Pico’s pins (although that option is still available to you!). Great features, great price, great idea. What’s not to like?!

Review of the Cytron Technologies Edu:Bit STEM and Coding kit

SC Lim of Cytron Technologies was kind enough to send me a review sample of their Edu:Bit, which is based around the micro:bit. Originally a successfully-funded Kickstarter, the Edu:Bit is, primarily, a large, red circuit board which houses a micro:bit and various sensors, a motor controller and some other bits and pieces. The joy in this kit, however, is not so much the technology but is instead the great printed educational material that comes with the kit.

TL;DR – If you want to get into physical computing using the micro:bit, this kit is superb. See the bottom of the post for retailers.

The packaging

You know I like a good bit of packaging, and here it is!

The Edu:Bit comes in a sturdy box containing the physical book, additional cardboard “props”, the Edu:Bit circuit board itself plus other components including a servo motor, a DC motor and a load of Grove plug-in connectors. The plastic housing inside is strong enough that it will keep all the hardware safe for quite a while.

The hardware

The PCB that is the actual Edu:Bit is large at 16cm x 12cm, but that does make it kid-friendly. Everything is well labelled, as you can see. The micro:bit (which comes with the kit) is a version 2 and slots in the top. Cleverly, there is a cut-out behind the micro:bit giving access to the physical on-board reset button. The supplied cable has a USB plug that goes into your computer on one end and then a microUSB plug for programming the micro:bit and a barrel jack to power the Edu:Bit board and (primarily, I suspect) any motors that you may use. You can see the input sensors and outputs in the picture above. Sensibly, they have replicated the A and B buttons from the micro:bit into two big-capped buttons on the bottom right. This puts everything “together” at the bottom of the Edu:Bit. Of particular note is the sound output board bottom left which has an audio jack output which can be switched to using the INT/EXT switch. This really is an excellently-conceived kit – with all those inputs and outputs, you’ve got everything for a group of students (whether home or school-based) to explore the wonderful world of physical computing.

The bits and pieces are all programmable using the usual MakeCode block interface, so that’s wonderfully familiar if you’ve used a micro:bit before and a great way to start with visual programming.

Just as an aside: the sensors can all be broken off to be used with the Grove cables. I didn’t, because I want to keep it intact, but it’s a great way to allow you to take the pieces and put them inside something else, for instance a 3D printed case.

The additional components

Together with the main Edu:Bit, there is a servo motor, a DC motor, some Grove connector cables and some servo-compatible plastic pieces.

The prize of the package – the printed book!

I know I’m prone to gushing with praise occasionally, but in this instance the book that comes with the Edu:Bit is truly worthy of that praise. First of all, the book is the ideal thickness to be not-overwhelming for kids, but it’s no 10-page pamphlet. As you can see above, this has a proper spine, is about 6mm thick and is 126 pages long! It’s also, thank goodness, full colour which means that the appeal to kids continues inside…

The instructions are clear, with just enough help for a visual programming novice (which, as it turns out, is good because I’m *still* a bit clueless when it comes to visual stuff! 🙂 )

Obviously, it takes you through using all of the components on the Edu:Bit – and there is plenty of learning material here. My particular favourite chapter is the music chapter which gives you enough music theory knowledge to make up simple tunes using the on-board speaker (or audio jack) as an output. I was particularly impressed with the extra pages that challenge the reader to carry out a programming task without giving them much help apart from hints as to the way forward. Very good, because it means you have different challenges for different levels of skills, which is great for the classroom, for example. There’s a bonus chapter on using the radio functionality of the micro:bit to communicate with a second micro:bit that I really liked, too.

Reassuringly, the content has been tested by a 7-year old, as the book proudly proclaims!

As well as the book, you also get some cardboard components which are used throughout:

As you can see, there’s a Twister board and there’s also Snakes and Ladders – all great examples of the gamification of the learning, which is very encouraging and, obviously, aimed at children.

Conclusion

This really is a first-class box of fun for youngsters who want to take the leap into physical computing.

From the retail packaging to what is contained inside, Cytron have just got everything right.

I cannot recommend this kit enough – the amount of learning available is amazing, and it’s so well-produced.

Sorry to be so gushing but… No, I’m not really – good job, folks. Cytron Technologies has a winner.

Buying the Edu:Bit

Please note: some of the retailers do not supply the micro:bit with the Edu:Bit, so just keep an eye out for that.

If you’re in the USA, try RobotShop for the Edu:Bit or DigiKey.

In the UK, you can find the Edu:Bit at the following outlets: The Pi Hut, Kitronik and the UK arm of RobotShop.

If you’re in the Far East, you can find the Edu:Bit on the Cytron Technologies website.

Marty the Robot from Robotical – a review of this lovely educational robot

In 2016, Edinburgh-based Robotical introduced their robotic platform, Marty the Robot. Successfully funded through a Crowdfunding campaign, the robot has now been updated to version 2, via another successful campaign, and is now available to buy from their online shop. Robotical sent me a Marty to have a play with and look more closely at the product and, vitally, the (frankly) dizzying array of resources available on the website.

Retail packaging

First of all, I was blown away by the retail packaging for the product. The box is solid, held closed by a magnet and substantial, not to mention colourful as you can see above. The rear of the box is informative and contains ideas for how you will use Marty to explore robotics.

My Marty review unit (which I need to return, so I’m going to be completely honest as I get no long-term benefit!) came pre-assembled, but it was easy to see the way the interior packaging had been designed to house the kit parts and the completed robot.

As you can see, Marty sits in the packaging on the right hand side with a piece of foam to pack the cavity out. On the left hand side is a pocket for the Quick Start Guide (thank goodness!) – they’ve really thought about the fact that kids, with the excitement of getting Marty, will want to crack on. The box does say that the product is designed for 10+ years with adult supervision, but the educational material (which I will cover later) goes down to 8 years old, allowing for children whose intelligence is slightly ahead-of-the-curve.

Movement cards

Also included in the box (though I think these are available to be purchased separately) are a set of robotic movement cards. These intrigued me – what were they for? Then it occurred to me – they are ideal for “unplugged” action mapping.

The users could use the cards to map out a series of movements without touching the programming side, work out what they want Marty to do, and then program the robot to do their bidding. A very good idea, especially if you’re sharing a Marty in a large group of kids. Some can get straight into the programming, others can use the cards, then they can swap. The cards are in bright, solid colours so if one added a Raspberry Pi to Marty and a camera module, one could do some OpenCV programming and literally “follow the cards”.

I realised, later, that Marty has a colour sensor on his foot – these cards are actually usable as tools without doing any programming. Ingenious! You just need to use the colour sensing blocks in Scratch and then place Marty on them or you can just put Marty in colour-sensing mode by pressing the A button and then he’ll just move according to the cards. How clever is that?! There’s even a worksheet that covers this.

Getting the robot out

Marty comes easily out of the foam packaging and stands freely:

It has very good balance because the feet are big enough! This robot has character. It reminds me a little of Spongebob Squarepants in colour scheme. There are a bunch of stickers to use on Marty, but I didn’t because they need the unit back, but I can see that this would be a great thing for those more artistically, rather than technically, inclined to get involved with the robot.

First steps

I referred to the Quick Start Guide to get going:

The first thing to do was to insert and connect the battery. This was easy – a couple of clips hold the back of the head on and then the top comes off. I was slightly bewildered initially until I realised that the entire battery component, including the plastic case, needed to go into Marty. That’s just me over-thinking things, though, I think!

Next, I turned it on (yay, they pre-charged the battery!) and matched the indicator lights to determine that the battery had enough “juice” to play around with. It did, so next I downloaded the app from the Google Play Store for Android onto my phone. I made sure Bluetooth and Location Services were turned on as implied by the Guide and then started the app. I scanned for Marty robots and… Nothing. Nothing appeared. I tried a few more times at different distances from the robot, but it wouldn’t find it for some reason. I checked the Bluetooth scanning manually through the phone and, sure enough, there was a Marty waiting to be paired. Curious. Then, I remembered the old programmers question:

Have you tried turning it off and on again?

So, I disabled Bluetooth, waited two seconds and turned it back on again. This time, the app scanner picked up my Marty and paired with it. I ended up on the app dashboard. There were a few options here – remote control; calibration; programming with Scratch; update firmware. I thought I’d start with the remote control and, sure enough, pressing on the buttons in the app caused Marty to move about.

I was immediately struck by how good the movement was. They’ve clearly chosen some excellent servos for the job and everything “just works” in a very fluid way.

Calibration enables you to manually manipulate Marty into a “ready” position (arms straight down, legs straight and nothing bent, eyebrows straight across) and then record that position for later use.

The firmware update requires you to plug Marty into a USB socket for power and then wait while the update occurs. I didn’t need to bother – after all, Marty was already working, but I thought I’d see how long it took. The answer was: about 10 minutes for the over-the-air update. Not bad, considering.

Next up was programming in Scratch. I’m always a little apprehensive about Scratch (being from a text-based programming background) but I needn’t have worried. Even with my rudimentary Scratch knowledge, I was able (on my phone, no less!) to program Marty to do a sequence of movements based on the blocks provided.

Everything was very self-explanatory and it was, indeed, possible to do it using my mobile phone. In class, of course, phones tend to be banned, so you’d likely be using a tablet, which I expect would work even better, with a larger screen.

Resources, so many resources!

First of all, be aware that there are two sites for Marty the Robot – version 1 and version 2. I had version 2, so I started here, on the version 2 “Learn” site. I fed back to Robotical that having the multiple sites, and then having a further, separate site for the Knowledge Base, makes the experience feel a bit fragmented. The UI and fonts, for example, change depending on which site you are on. They’ve told me that they’re just about to start the process of unifying the resources and the look-and-feel, so that’s great news.

For educators the Learn site is fantastic. There are individual Lessons and grouped Lesson Packs for using Marty in the classroom. Each resource lists and explains the Curriculum areas it is aimed at:

… so with enough time to look around the Learn site, teachers will be able to find resources to hit specific learning points. It’s all very well-organised and structured for educators on the Learn site – there are the resources themselves, PowerPoint slides, Teacher Guides. I suspect that with a class set of Martys, teachers could fill at least an entire term if they wanted to!

Taking Marty further

This being a Raspberry Pi blog, it would be remiss of me not to mention that you can fit a Raspberry Pi into Marty! The Pi is screwed into the lid of Marty and then a cable used to connect the Pi to the RIC control board. You can take a look at the guide for doing this here. It seems quite a simple procedure.

Once you’ve done this, having prepared the Pi’s SD card beforehand, of course, the Pi is powered by Marty through the RIC board, so you don’t need to worry about a separate power supply. This does reduce the onboard battery’s usage time, though, of course. There are then lessons, beginning here on how to use Python on the Raspberry Pi to program Marty. You will need to make sure you’ve got a Pi 3 or Pi Zero W as the Pi 4 is not supported for some reason.

I ran out of time at this point, and didn’t have a spare Pi to hand, but you can see a demo video of the Marty working with the Raspberry Pi below:

See Marty in action

If you want to see Marty in action some more, take a look at the video below. It was for their Kickstarter (which is now successfully finished) but gives a real feel of the product and the people behind it. It also has a fantastic shot of Marty walking off a table and surviving the fall – it’s a robust little animal is Marty!

 

Free trial

If you are in Education and you would like to try Marty out for a couple of weeks, Robotical can arrange delivery and pick-up and also support you through the trial. All you need is a short call with them to arrange it. Take a look at this page on the website for more details and to book a slot.

Conclusion

A bit of history, first. Way back when, the first model of Raspberry Pi had been around for a little while and there was a Kickstarter campaign for a robot called Rapiro. It was a robot, driven by servos, with a Raspberry Pi in its head connected to an Arduino-alike controller board. It was twitchy, the servos weren’t up to much and calibration was a nightmare.

Marty the Robot gave me similar worries when it was on its way to me. Would it be difficult to use? Would it stand up to punishment? Would calibration be something from which it would never recover?

I’m pleased to say that Marty exceeds expectations as far as all these questions are concerned. Apart from that single Bluetooth connection problem (which you might not even come across – it might have just been my phone!) and the concern about fragmented documentation and resources which they are already addressing, it hits the spot as far as robotics in education is concerned. It is easy to use in the first instance – you can have a play right from the off by using the app on a tablet/phone and just moving the little dude about using remote control. That’s before you even get onto the more complex Scratch-based programming and, eventually, adding a Pi and using Python. It has quick wins all the way along. As evidenced by the video above, and from a short Twitter conversation I had with another trial user, the platform is robust and, if it’s treated with a child’s care, it should stand up to repeated usage. Calibration of the platform is easy, using the app, and it is so different from Rapiro in terms of twitchiness – it just doesn’t twitch and bounce at all. The servos are metal-geared, too, so the animation of the robot is smooth and these motors will last much longer than plastic-geared servos.

Now, let’s talk about price! Marty the Robot v2 is £314 plus VAT. This seems a little on the high side, but of course you’re buying not only the platform but also the resources to go with it. There are class packs, too, which are obviously more as you get more than one Marty. Looking at £314+VAT for a minute, though, just for the single, this is just about in reach of those who would like to buy it. I would like to see it more like £250 including VAT, personally, but then I am not privy to their development and ongoing costs. Is Marty worth that kind of money? A qualified yes. If you have the budget to stretch to buying a Marty, or even a class set of the robots, then it is well worth the investment as it should last you a long time. The resources are excellent, the platform is great.

What more can I say? I want one! 🙂

Raspberry Pi Digest – 10th June 2021 – a different way of blogging!

I’m trying something new out – a sort-of digest of Pi-related things I’ve found this week. Let me know what you think of the idea of these combined posts in the comments! 🙂

Air quality lamp

Guillaume Slizewicz has created a Raspberry Pi Zero W-driven lamp that lets you know about air quality. Called Canari, it turns air pollution data from APIs into light patterns. The two APIs are from smartcitizen.me and sensor.community. You can read more here and see a video on Vimeo or watch it below.

Pico VGA Library

Miroslav Nemecek has been busy developing a VGA library for the Raspberry Pi Pico. Able to output from the Pico to a VGA monitor in either PAL or NTSC, the library has been developed with gaming applications and technical demos in mind. Details of the wiring involved and the way you compile the library (Windows only, sorry) are available here, along with LOTS of lovely documentation. You can see a demo in the video below:

Apple eMate – a portable Raspberry Pi

“Billy the Kid” has taken an old Apple eMate 300 and converted it to house and use a Raspberry Pi 4 8GB model. This rare machine was launched in 1997 by Apple and had a screen and keyboard. This is a great project to make a Pi portable, although the procedure is long, complicated and definitely not something you want to mess up – Billy has estimated the cost at over $400. You can see the build over on YouTube or below (you might want to turn your volume down a bit as I almost jumped out of my chair when it started!):

Bop that Minecraft!

Seth Altobelli decided to make Minecraft just that little bit more difficult to control by using a Raspberry Pi Pico as the control board for a Bop It toy. You steer using an accelerometer that he added and the you hit one of the buttons to move. The other buttons are used for other commands and for jumping. He doesn’t go into the coding too much, but I assume he’s using the Pico to translate between the Bop It’s controls and a HID input. It makes Minecraft much easier incredibly difficult to control, but it’s certainly a cool project! You can see details of the “Technoblade” build and a long demo over on YouTube or watching the video below:

Build a simple physical mute button for video conferencing on Zoom using a Raspberry Pi Pico

Miguel Grinberg has written a really great beginners’ tutorial to the world of USB HID using the Raspberry Pi Pico. For this project, he adds a Pico to a breadboard then hooks up a simple momentary button. Pressing the button sends a keypress to Zoom which mutes and unmutes the software. The software is CircuitPython, which has USB_HID already available and it can easily be expanded to send other commands, like turning your video off, for example. You can read Miguel’s tutorial here.

For a more comprehensive StreamDeck example, take a look here.

Create a weather forecasting station using a Feather S2 and an OLED

At the moment, I am waiting for the second version of my PCB for the PicoPicorder. In a departure from my regular making, I decided to buy a Feather S2 from Pimoroni. This is a Feather-format board with built-in WiFI that comes with CircuitPython pre-installed (although I believe you can install MicroPython if you want to – but in the end, I stuck with CircuitPython). If you want to know more about the Feather S2, take a look at this website.

But what to do with it?

My step-daughter has recently started a (very) local waitressing job whilst waiting to find her dream job (we hope!). Until today, this was all very outside-based, due to COVID restrictions in the UK. WIth today’s slight relaxation of restrictions, she’ll be indoors some of the time, but they’re (very sensibly) keeping the outside area. I decided, therefore, that she needed a way of knowing what the weather was going to be like for upcoming shifts.

I also bought a FeatherWing OLED at the same time so decided to use that as the readout for a weather forecasting station. I decided that I didn’t just want to sandwich the two together (because that would give me quite a tall profile and I wanted something flatter. This meant either a PCB or a piece of stripboard. I will be going for the latter eventually, but first of all I decided to breadboard the two boards (as you can see in the image above). This involved soldering male headers to both boards, which was fairly easy (once I’d got used to my new varifocals!)

After sorting out the circuit, I wrote some code that would allow me to:

  • Select a location to forecast the weather for (because I wanted it to be multi-user, so added in my parents’ home town and the in-laws’ home town). (Button A on the OLED).
  • Retrieve a forecast from the OpenWeatherMap.org API (which I’d previously signed up for, on their Free tier). (Button B).
  • Display the current weather and the next 5 forecast weather readings. (Button C).

All my code is on GitHub if you’d like to take a look. Feel free to re-use and adapt if you’d like to. The API returns JSON, and there’s some conversion functions in there to get the data into a more manageable (smaller) packet. There’s probably a more efficient way to use the displayio library, but I wanted to get the code done in a day. I learned loads about Python, loops especially, doing this!

Here is a video demo of the device as it currently is on the breadboard. As you can imagine, it won’t take much to convert this to a stripboard version! I will then add a 3D printed box to put it in.

Let me know what you think of the project – and if you can think of any additional bells and whistles I can add!