{"id":20924,"date":"2021-04-05T06:13:37","date_gmt":"2021-04-05T05:13:37","guid":{"rendered":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924"},"modified":"2021-04-21T16:05:53","modified_gmt":"2021-04-21T15:05:53","slug":"picopicorder-notes","status":"publish","type":"page","link":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924","title":{"rendered":"The PicoPicorder Project"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20992\" src=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=560%2C419&#038;ssl=1\" alt=\"\" width=\"560\" height=\"419\" srcset=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=1024%2C766&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=768%2C575&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=560%2C419&amp;ssl=1 560w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=260%2C195&amp;ssl=1 260w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=160%2C120&amp;ssl=1 160w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?w=1120&amp;ssl=1 1120w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n<p>If you&#8217;ve been reading this blog for a long time, you&#8217;ll know that <a href=\"https:\/\/www.recantha.co.uk\/blog\/?p=2663\">my first Raspberry Pi project was a version of a Star Trek Tricorder<\/a>. The first version was made out of LEGO and used a Pi in combination with an Arduino Leonardo clone.<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/NOPPqk-WHG0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<p>It was rather large, it didn&#8217;t do a LOT but I liked it and it taught me so much. It also started my unhealthy obsession with sensors!<\/p>\n<p>Flash forward nine years from the original conception (!). I have since moved on with the project to using <a href=\"https:\/\/www.recantha.co.uk\/blog\/?p=6662\" target=\"_blank\" rel=\"noopener\">more sensors, better enclosures and exploring battery power<\/a>.<\/p>\n<h2>The arrival of the Pico<\/h2>\n<p>This year, <a href=\"https:\/\/www.recantha.co.uk\/blog\/?p=20745\" target=\"_blank\" rel=\"noopener\">the Raspberry Pi Pico was launched<\/a>. This was the first Raspberry Pi microcontroller (featuring their own silicon, no less!) and it immediately made me think of my old project. Could this be the low-power device I was looking for? Could this device which didn&#8217;t have the boot-up time of the regular Raspberry Pi and with no SD card to corrupt, be the thing that I had been looking for?<\/p>\n<h2>Getting the kit together<\/h2>\n<p>I wanted to just check that I could use everything that I <em>wanted<\/em> to use in the latest iteration of the Picorder. In nine years, sensors have become more widely available, more complex and there were a lot more types to choose from. I settled on the following components:<\/p>\n<ul>\n<li>1 x Raspberry Pi Pico (this one from <a href=\"https:\/\/thepihut.com\/collections\/pico\/products\/raspberry-pi-pico\" target=\"_blank\" rel=\"noopener\">The Pi Hut<\/a>)<\/li>\n<li>1 x <a href=\"https:\/\/www.ebay.co.uk\/itm\/Pack-of-4-Stripboard-Strip-Matrix-Vero-Board-Large-100-x-160mm-Quality\/362423051900\" target=\"_blank\" rel=\"noopener\">piece of 160x100mm stripboard<\/a><\/li>\n<li>Various male and female pin headers (anywhere I could find them)<\/li>\n<li>Lots of female-to-female jumper cables (anywhere I could find them)<\/li>\n<li>1 x BME680 air quality sensor (<a href=\"https:\/\/shop.pimoroni.com\/products\/bme680-breakout\" target=\"_blank\" rel=\"noopener\">Pimoroni Breakout Garden<\/a>)<\/li>\n<li>1 x VEML6075 UVA\/UVB sensor (<a href=\"https:\/\/shop.pimoroni.com\/products\/veml6075-uva-b-sensor-breakout\" target=\"_blank\" rel=\"noopener\">Pimoroni Breakout Garden<\/a>)<\/li>\n<li>1 x 11&#215;7 Matrix (<a href=\"https:\/\/shop.pimoroni.com\/products\/11x7-led-matrix-breakout\" target=\"_blank\" rel=\"noopener\">Pimoroni Breakout Garden<\/a>)<\/li>\n<li>1 x BMP280 atmospheric sensor (cheap Chinese version from AliExpress)<\/li>\n<li>1 x AMG8833 thermal sensor (<a href=\"https:\/\/learn.adafruit.com\/adafruit-amg8833-8x8-thermal-camera-sensor\" target=\"_blank\" rel=\"noopener\">Adafruit<\/a>, but from <a href=\"https:\/\/shop.pimoroni.com\/products\/adafruit-amg8833-ir-thermal-camera-breakout\" target=\"_blank\" rel=\"noopener\">Pimoroni<\/a>)<\/li>\n<li>1 x Ultimate GPS Breakout v3 (<a href=\"https:\/\/www.adafruit.com\/product\/746\" target=\"_blank\" rel=\"noopener\">Adafruit<\/a>, but from <a href=\"https:\/\/shop.pimoroni.com\/products\/adafruit-ultimate-gps-breakout\" target=\"_blank\" rel=\"noopener\">Pimoroni<\/a>)<\/li>\n<li>1 x MAX98357A I2S mono amp (<a href=\"https:\/\/www.adafruit.com\/product\/3006\" target=\"_blank\" rel=\"noopener\">Adafruit<\/a>, but from <a href=\"https:\/\/thepihut.com\/products\/adafruit-i2s-3w-class-d-amplifier-breakout-max98357\" target=\"_blank\" rel=\"noopener\">The Pi Hut<\/a>)<\/li>\n<li>1 x small 3W speaker (<a href=\"https:\/\/shop.pimoroni.com\/products\/mini-speaker-4-3w\" target=\"_blank\" rel=\"noopener\">Pimoroni<\/a>)<\/li>\n<li>1 x 2.8&#8243; TFT LCD Breakout with resistive touchscreen (<a href=\"https:\/\/www.adafruit.com\/product\/1770\" target=\"_blank\" rel=\"noopener\">Adafruit<\/a>, but from <a href=\"https:\/\/thepihut.com\/products\/adafruit-2-8-tft-lcd-with-touchscreen-breakout-board-w-microsd-socket\" target=\"_blank\" rel=\"noopener\">The Pi Hut<\/a>)<\/li>\n<li>1 x STMPE610 Resistive Touchscreen Controller (<a href=\"https:\/\/www.adafruit.com\/product\/1571\" target=\"_blank\" rel=\"noopener\">Adafruit<\/a>, but from <a href=\"https:\/\/thepihut.com\/products\/adafruit-resistive-touch-screen-controller-stmpe610\" target=\"_blank\" rel=\"noopener\">The Pi Hut<\/a>)<\/li>\n<\/ul>\n<p>Why these components? In one word: <span style=\"text-decoration: underline;\">quality<\/span>.<\/p>\n<p>Both Adafruit and Pimoroni products are very high quality (and they&#8217;re not cheap!) and they have a lot of support available in terms of tutorials and libraries. For the Adafruit products, there is one trade-off &#8211; you need to use their fork of MicroPython (called CircuitPython) in order to get the most out of their support material. More on this decision later! For the Pimoroni products, I just had to make sure that there were Adafruit CircuitPython libraries available for the bare components &#8211; which there are!<\/p>\n<p>For some of the sensors (as you can see), I chose to use components from the <a href=\"https:\/\/shop.pimoroni.com\/collections\/breakout-garden\" target=\"_blank\" rel=\"noopener\">Pimoroni Breakout Garden<\/a> series. I already had some of them, but mostly I chose them as they offer the smallest form-factors out there for sensors of those particular types. For the GPS, I did consider the <a href=\"https:\/\/shop.pimoroni.com\/products\/pa1010d-gps-breakout\" target=\"_blank\" rel=\"noopener\">Breakout Garden PA1010D sensor<\/a>, but as I already had the Adafruit Ultimate GPS board, I thought I&#8217;d save some pennies! First time for everything&#8230; \ud83d\ude09<\/p>\n<h2>Where to start?<\/h2>\n<p>First of all, I started to solder-up all the components. I really wanted to just solder wires directly to the boards (to make it more &#8216;solid&#8217;) but I realised that I wasn&#8217;t completely stupid, so decided to go for headers on everything. Much digging around for headers ensued&#8230;<\/p>\n<h2>11&#215;7 matrix screen<\/h2>\n<p>You know what makes a good project? Blinkies! \ud83d\ude42<\/p>\n<p>One of my components was the <a href=\"https:\/\/shop.pimoroni.com\/products\/11x7-led-matrix-breakout\" target=\"_blank\" rel=\"noopener\">11&#215;7 matrix screen from Pimoroni&#8217;s Breakout Garden range<\/a>.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20905\" src=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?resize=560%2C560&#038;ssl=1\" alt=\"\" width=\"560\" height=\"560\" srcset=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?resize=768%2C768&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?resize=560%2C560&amp;ssl=1 560w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?resize=260%2C260&amp;ssl=1 260w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/03\/11x7_matrix_breakout_2_of_4_1024x1024.jpg?resize=160%2C160&amp;ssl=1 160w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n<p>Getting this working was a bit of a trial (<a href=\"https:\/\/www.recantha.co.uk\/blog\/?p=20904\" target=\"_blank\" rel=\"noopener\">see this blog post<\/a>) and involved hacking one of the Adafruit CircuitPython libraries to include the module. I received lots of help on this one from David Gaunt (who worked out the translation maths).<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/9ZL04M7t1b0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<p>When we eventually got the pixels up the right way (the display in the video above was rendering upside down, but I didn&#8217;t know that to start with!), I was able to display text and other things on it. It was a small step to the final project, but it was a start! I&#8217;ve since pushed a change to the <a href=\"https:\/\/github.com\/adafruit\/Adafruit_CircuitPython_IS31FL3731\/\" target=\"_blank\" rel=\"noopener\">Adafruit GitHub repository<\/a> (which was then superseded, but heigh ho!). It was an <em>interesting<\/em> experience, contributing to an open source library&#8230;!<\/p>\n<h2>Playing sound<\/h2>\n<p>One of the things I&#8217;d never quite managed with other versions of the Picorder is to make it play the appropriate sounds when controls are pressed and when sensors are having readings taken. You can read all about getting sound to work on the Pico in <a href=\"https:\/\/www.recantha.co.uk\/blog\/?p=20950\" target=\"_blank\" rel=\"noopener\">this blog post<\/a>. Here&#8217;s what it sounded like eventually:<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/8NqELG6jm34?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<p>As I&#8217;ve said in the blog post, sound works best when you&#8217;re not using the USB connection to read the CircuitPython &#8216;flash drive&#8217;. You can make some truly horrific sounds, and I&#8217;m still not quite sure about the settings I need to produce the <em>best<\/em> sound from the little Pico, but that&#8217;s for later investigation. I found the sounds I wanted on <a href=\"https:\/\/www.trekcore.com\/audio\/\" target=\"_blank\" rel=\"noopener\">TrekCore<\/a>, by the way.<\/p>\n<h2>Screen and thermal sensor module<\/h2>\n<p>The next thing to get working was the 2.8&#8243; touch screen. I hadn&#8217;t totally settled on using the &#8220;touch&#8221; capabilities of the screen yet, but to save myself time later, I soldered all the pins on the SPI side of the screen plus the three &#8220;jumper points&#8221; to enable that side. Fortunately, <a href=\"https:\/\/learn.adafruit.com\/adafruit-2-8-and-3-2-color-tft-touchscreen-breakout-v2\" target=\"_blank\" rel=\"noopener\">Adafruit has this great guide for wiring up the module and using CircuitPython to display stuff on it<\/a>.<\/p>\n<p>I wanted the thermal sensor to be one of the &#8220;stars of the show&#8221; in the PicoPicorder, so I decided to get that working first of all. You can <a href=\"https:\/\/www.recantha.co.uk\/blog\/?p=20959\" target=\"_blank\" rel=\"noopener\">read all about that on my blog post here<\/a>. Here&#8217;s the video of it in action at a basic, no-additional-UI level:<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/HZRPm81lcq8?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<h2>Sensors, sensors and more sensors<\/h2>\n<p>I dug into <a href=\"https:\/\/circuitpython.org\/libraries\" target=\"_blank\" rel=\"noopener\">the Adafruit CircuitPython libraries<\/a> a bit more and was delighted to find library modules for the BME680 air quality sensor, the good-old BMP280 atmosphere sensor and the VEML6075 UVA\/UVB sensor. These are easy to install for a CircuitPython program &#8211; you just drop them in the lib folder on your Pico&#8217;s &#8216;flash drive&#8217;. The same went for the Adafruit Ultimate GPS v3 breakout &#8211; <a href=\"https:\/\/learn.adafruit.com\/adafruit-ultimate-gps\/circuitpython-parsing\" target=\"_blank\" rel=\"noopener\">there was a tutorial for this last module as well, detailing all the information you could get back<\/a>.<\/p>\n<h2>Getting the touchscreen working<\/h2>\n<p>At this point, I decided that I\u00a0<em>did<\/em> want to use the touchscreen of the 2.8&#8243; screen. At first, I thought I could simply hookup the outputs of the touchscreen from the breakout to the analog inputs of the Pico. This didn&#8217;t work, but I have no real idea why, but I then looked at <a href=\"https:\/\/thepihut.com\/products\/adafruit-2-8-tft-lcd-with-touchscreen-breakout-board-w-microsd-socket\" target=\"_blank\" rel=\"noopener\">the description of the screen on The Pi Hut site<\/a> which mentioned the need for a touchscreen controller. Sighing heavily at <em>yet another<\/em> lot of postage, I ordered <a href=\"https:\/\/thepihut.com\/products\/adafruit-resistive-touch-screen-controller-stmpe610\" target=\"_blank\" rel=\"noopener\">the controller board from The Pi Hut<\/a>. In the meantime, I looked up the software options. I found <a href=\"https:\/\/github.com\/adafruit\/Adafruit_STMPE610\" target=\"_blank\" rel=\"noopener\">the Arduino example<\/a> and eventually (after many an hour) found that there was <a href=\"https:\/\/circuitpython.readthedocs.io\/projects\/stmpe610\/en\/latest\/\" target=\"_blank\" rel=\"noopener\">a CircuitPython equivalent<\/a>. Hurrah. The component arrived, I hooked it up (again using headers and jumpers) and attached it to the I2C area on my stripboard. A quick I2C scan showed that it had appeared immediately and I integrated the Adafruit library.<\/p>\n<h2>Designing the user interface<\/h2>\n<p>The project was inspired by Star Trek, so to Star Trek I would go again for the user interface. LCARS was what I&#8217;d always wanted, which was the style used on Star Trek: The Next Generation. Big thanks to <a href=\"https:\/\/www.lcarscom.net\/faq\/\" target=\"_blank\" rel=\"noopener\">Mike Okuda and the Star Trek: The Next Generation Team for the LCARS design<\/a> in the first place (no copyright infringement intended!) I found some <a href=\"https:\/\/www.deviantart.com\/retoucher07030\/art\/LCARS-Vector-Shapes-156730231\" target=\"_blank\" rel=\"noopener\">LCARS Photoshop shapes<\/a> and <a href=\"https:\/\/www.deviantart.com\/retoucher07030\/art\/LCARS-Color-Palette-156731034\" target=\"_blank\" rel=\"noopener\">a colour palette<\/a> from Retoucher07030 on DeviantArt. I also found the <a href=\"https:\/\/www.dafont.com\/okuda.font\" target=\"_blank\" rel=\"noopener\">Okuda font on dafont.com<\/a> so I had everything I needed. The screen is 320x240px, so I knew that was my footprint. The following is what I came up with (you&#8217;ll notice there&#8217;s plenty of space for expansion!):<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20998\" src=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/picorder_graphic_dec.jpg?resize=320%2C240&#038;ssl=1\" alt=\"\" width=\"320\" height=\"240\" srcset=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/picorder_graphic_dec.jpg?w=320&amp;ssl=1 320w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/picorder_graphic_dec.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/picorder_graphic_dec.jpg?resize=260%2C195&amp;ssl=1 260w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/picorder_graphic_dec.jpg?resize=160%2C120&amp;ssl=1 160w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/p>\n<p>Onto this, I would add the labels and values from the sensors on-the-fly.<\/p>\n<p><em>Note to self: I <strong>could<\/strong> create two &#8220;pages&#8221; for the interface and then just add the labels in the bitmap file. That way, I&#8217;d only need to render the values on-the-fly. This is something to think about &#8211; with each library and bitmap and wave file, I am using up the memory on the Pico and it isn&#8217;t infinite!<\/em><\/p>\n<p>I found I also needed to load the Okuda font onto the Pico (obviously) so the look of the coded labels and values would match the other labels on the bitmap.<\/p>\n<p>The next thing to do was to code the system so that the touch &#8220;areas&#8221; correctly triggered the relevant actions (more on this later).<\/p>\n<h2>Current status of the PicoPicorder project<\/h2>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20992\" src=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=560%2C419&#038;ssl=1\" alt=\"\" width=\"560\" height=\"419\" srcset=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=1024%2C766&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=768%2C575&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=560%2C419&amp;ssl=1 560w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=260%2C195&amp;ssl=1 260w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?resize=160%2C120&amp;ssl=1 160w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?w=1120&amp;ssl=1 1120w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n<p>Close-up of the main &#8220;atmosphere&#8221; screen:<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20999\" src=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?resize=560%2C420&#038;ssl=1\" alt=\"\" width=\"560\" height=\"420\" srcset=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?resize=1024%2C768&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?resize=560%2C420&amp;ssl=1 560w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?resize=260%2C195&amp;ssl=1 260w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?resize=160%2C120&amp;ssl=1 160w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-temperature-screen_sm.jpg?w=1120&amp;ssl=1 1120w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n<p>Close-up of the GPS screen (I&#8217;m inside at this point, but I do know the module works as I did manage to get a fix at one point):<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-21000\" src=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?resize=560%2C427&#038;ssl=1\" alt=\"\" width=\"560\" height=\"427\" srcset=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?resize=300%2C229&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?resize=1024%2C781&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?resize=768%2C586&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?resize=560%2C427&amp;ssl=1 560w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?resize=260%2C198&amp;ssl=1 260w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?resize=160%2C122&amp;ssl=1 160w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-GPS-screen_sm.jpg?w=1120&amp;ssl=1 1120w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n<p>Close up of the thermal camera screen:<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-21001\" src=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?resize=560%2C419&#038;ssl=1\" alt=\"\" width=\"560\" height=\"419\" srcset=\"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?resize=1024%2C766&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?resize=768%2C575&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?resize=560%2C419&amp;ssl=1 560w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?resize=260%2C195&amp;ssl=1 260w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?resize=160%2C120&amp;ssl=1 160w, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-thermal-camera_sm.jpg?w=1120&amp;ssl=1 1120w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n<p><a href=\"https:\/\/github.com\/recantha\/picopicorder\" target=\"_blank\" rel=\"noopener\">The code for the project is all available on GitHub<\/a>. Not\u00a0<strong>all\u00a0<\/strong>of the files are used &#8211; some are just prototyping code. The key ones, in addition to the CircuitPython library files under lib are:<\/p>\n<ul>\n<li><strong>code.py<\/strong> &#8211; the main routine that instantiates the PicoPicorder class and then works out what mode you are in at any given time.<\/li>\n<li><strong>PicoPicorder.py<\/strong> &#8211; the main object class, mostly controlling the display and the various things displayed on it.<\/li>\n<li><strong>ThermalCamera.py<\/strong> &#8211; the object class that deals with the thermal sensor and displaying the 8&#215;8 grid.<\/li>\n<li><strong>Colours.py<\/strong> &#8211; the object class that deals with the colours available to the PicoPicorder &#8211; this is useful for both the ThermalCamera and the main object.<\/li>\n<li>The <strong>img<\/strong> folder contains the bitmap for the main UI.<\/li>\n<li>The <strong>fonts<\/strong> folder, obviously, contains the Okuda font.<\/li>\n<li>The <strong>snd<\/strong> folder contains the sound effects as they currently are (such as they are!)<\/li>\n<\/ul>\n<h2>Video demonstration of the system as it currently is<\/h2>\n<p>This is the situation as it was on 3rd April 2021. It&#8217;s&#8230; okay&#8230; See below for some notes on what I need to do next!<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/NGL9rmXOsYM?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<h2>Future of the project<\/h2>\n<p>I&#8217;ve noticed a few flaws with the PicoPicorder, and these need to be fixed:<\/p>\n<ul>\n<li>The initial render of the labels onto the bitmap is a bit slow. (This may be an un-fixable issue, who knows?).<\/li>\n<li>The touchscreen (and this is the main flaw!) is extremely sluggish to register the touches. Now, to explain: CircuitPython does not have &#8220;interrupts&#8221;. So, I cannot just say &#8220;when there&#8217;s a touch, do something&#8221;, I have to keep on checking to see if there&#8217;s a touch each time around the main control loop. The trouble is, when the sensors are being interrogated, I can&#8217;t see the state of the touchscreen! So, for instance, on the first screen, you end up with:\n<ol>\n<li>Check touchscreen.<\/li>\n<li>Check a sensor and output the sensor reading (x5)<\/li>\n<li>Check touchscreen.<\/li>\n<\/ol>\n<\/li>\n<li>This means that I&#8217;m only checking the touchscreen once every half-to-three-quarter seconds. Unfortunately, the touchscreen chip also buffers the touches, so I&#8217;m checking the coordinates of the touch on the screen as it was when I touched it&#8230; that number of seconds ago. In the meantime, it&#8217;s buffered a good dozen or more readings. This could mean that I&#8217;m touching the bottom-right of the screen, but the code thinks I&#8217;m still touching top-left, like I was X seconds ago. Talk about frustrating!<\/li>\n<li>Due to these factors, I might have to rewrite completely using MicroPython which\u00a0<em>does<\/em> have interrupts! ARGH!<\/li>\n<\/ul>\n<p>Oh, yes. I also need to come up with a 3D printable design for the case. I&#8217;m not very good at 3D modelling, so this will be a stretch! I want something with a hinge so the screen is protected, too!<\/p>\n<p>I&#8217;ve also decided that I will create my own circuit board. I&#8217;ve used Fritzing to do the first version (I know, it&#8217;s not brilliant, but it&#8217;s what I can cope with at the moment!) and am expecting the boards sometime next week or the week after.<\/p>\n<p>Also, I want to <a href=\"https:\/\/tutorial.cytron.io\/2021\/04\/13\/play-mp3-file-on-maker-pi-pico-using-circuitpython\/\" target=\"_blank\" rel=\"noopener\">convert the sound samples to MP3 to save space<\/a>.<\/p>\n<p>Plenty to do, then, but at least I&#8217;ve got a prototype! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve been reading this blog for a long time, you&#8217;ll know that my first Raspberry Pi project was a version of a Star Trek Tricorder. The first version was made out of LEGO and used a Pi in combination&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":20992,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-20924","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The PicoPicorder Project - Raspberry Pi Pod<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The PicoPicorder Project - Raspberry Pi Pod\" \/>\n<meta property=\"og:description\" content=\"If you&#8217;ve been reading this blog for a long time, you&#8217;ll know that my first Raspberry Pi project was a version of a Star Trek Tricorder. The first version was made out of LEGO and used a Pi in combination&hellip;Read more &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924\" \/>\n<meta property=\"og:site_name\" content=\"Raspberry Pi Pod\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/recantha\/\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-21T15:05:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i1.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"898\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@recantha\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924\",\"url\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924\",\"name\":\"The PicoPicorder Project - Raspberry Pi Pod\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.recantha.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1\",\"datePublished\":\"2021-04-05T05:13:37+00:00\",\"dateModified\":\"2021-04-21T15:05:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.recantha.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.recantha.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1\",\"width\":1200,\"height\":898},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?page_id=20924#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The PicoPicorder Project\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/\",\"name\":\"Raspberry Pi Pod\",\"description\":\"Experiences with the Raspberry Pi micro computer and microcontroller\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/#organization\",\"name\":\"Raspberry Pi Pod\",\"url\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.recantha.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/cropped-PiPod-Logo-v3.png?fit=800%2C337&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.recantha.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/cropped-PiPod-Logo-v3.png?fit=800%2C337&ssl=1\",\"width\":800,\"height\":337,\"caption\":\"Raspberry Pi Pod\"},\"image\":{\"@id\":\"https:\\\/\\\/www.recantha.co.uk\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/recantha\\\/\",\"https:\\\/\\\/x.com\\\/recantha\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/recantha\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCK4F9blabxzmk8Inzhs8tpg\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The PicoPicorder Project - Raspberry Pi Pod","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924","og_locale":"en_US","og_type":"article","og_title":"The PicoPicorder Project - Raspberry Pi Pod","og_description":"If you&#8217;ve been reading this blog for a long time, you&#8217;ll know that my first Raspberry Pi project was a version of a Star Trek Tricorder. The first version was made out of LEGO and used a Pi in combination&hellip;Read more &rarr;","og_url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924","og_site_name":"Raspberry Pi Pod","article_publisher":"https:\/\/www.facebook.com\/recantha\/","article_modified_time":"2021-04-21T15:05:53+00:00","og_image":[{"width":1200,"height":898,"url":"https:\/\/i1.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@recantha","twitter_misc":{"Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924","url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924","name":"The PicoPicorder Project - Raspberry Pi Pod","isPartOf":{"@id":"https:\/\/www.recantha.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924#primaryimage"},"image":{"@id":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1","datePublished":"2021-04-05T05:13:37+00:00","dateModified":"2021-04-21T15:05:53+00:00","breadcrumb":{"@id":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.recantha.co.uk\/blog\/?page_id=20924"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924#primaryimage","url":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2021\/04\/PicoPicorder-prototyping-stage_sm.jpg?fit=1200%2C898&ssl=1","width":1200,"height":898},{"@type":"BreadcrumbList","@id":"https:\/\/www.recantha.co.uk\/blog\/?page_id=20924#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.recantha.co.uk\/blog"},{"@type":"ListItem","position":2,"name":"The PicoPicorder Project"}]},{"@type":"WebSite","@id":"https:\/\/www.recantha.co.uk\/blog\/#website","url":"https:\/\/www.recantha.co.uk\/blog\/","name":"Raspberry Pi Pod","description":"Experiences with the Raspberry Pi micro computer and microcontroller","publisher":{"@id":"https:\/\/www.recantha.co.uk\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.recantha.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.recantha.co.uk\/blog\/#organization","name":"Raspberry Pi Pod","url":"https:\/\/www.recantha.co.uk\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.recantha.co.uk\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2016\/03\/cropped-PiPod-Logo-v3.png?fit=800%2C337&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2016\/03\/cropped-PiPod-Logo-v3.png?fit=800%2C337&ssl=1","width":800,"height":337,"caption":"Raspberry Pi Pod"},"image":{"@id":"https:\/\/www.recantha.co.uk\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/recantha\/","https:\/\/x.com\/recantha","https:\/\/www.linkedin.com\/in\/recantha\/","https:\/\/www.youtube.com\/channel\/UCK4F9blabxzmk8Inzhs8tpg"]}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P2RsaV-5ru","jetpack-related-posts":[{"id":21362,"url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=21362","url_meta":{"origin":20924,"position":0},"title":"Models for Heroes project using a Raspberry Pi Pico","author":"Michael Horne","date":"26 June 2022","format":false,"excerpt":"In June 2022, a friend that I know through amdram asked me for some help with his modelling project. First of all, some background: Steff is part of an organisation called Models for Heroes. Models for Heroes is a UK charity that helps ex-Armed Forces personnel with their physical and\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2022\/06\/full-test-bed.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2022\/06\/full-test-bed.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2022\/06\/full-test-bed.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2022\/06\/full-test-bed.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2022\/06\/full-test-bed.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2022\/06\/full-test-bed.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":17115,"url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=17115","url_meta":{"origin":20924,"position":1},"title":"Getting started with Digital Making on the Raspberry Pi","author":"Michael Horne","date":"24 July 2017","format":false,"excerpt":"The Raspberry Pi is your gateway to digital making. There are other boards out there, such as Arduino, ODROID, Wemos, micro:bit and Orange Pi, to name a few, but none have got the great combination of\u00a0power and\u00a0great community support that the Raspberry Pi offers. Digital Making Digital making is, essentially,\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/digital.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/digital.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/digital.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/digital.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/digital.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":11986,"url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=11986","url_meta":{"origin":20924,"position":2},"title":"Raspberry Pi &#8211; Where do I start?","author":"Michael Horne","date":"11 February 2015","format":false,"excerpt":"I frequently get emails from people asking how they get started with the Raspberry Pi.\u00a0So, I've taken one of my responses and turned it into this\u00a0page. I hope it's useful. If you've got anything to add, please leave a comment and I'll see about adding it. Remember, this is for\u00a0beginners\u2026","rel":"","context":"With 29 comments","block_context":{"text":"With 29 comments","link":"https:\/\/www.recantha.co.uk\/blog\/?page_id=11986#comments"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2015\/02\/pi_magician_small_03__98633.1391019830.1280.1280.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":17208,"url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=17208","url_meta":{"origin":20924,"position":3},"title":"Sensors &#8211; I2C and SPI","author":"Michael Horne","date":"24 July 2017","format":false,"excerpt":"The Raspberry Pi has several 'busses' (think of them as signal paths!) that can be used to read more complicated sensor signals. I2C Pronounced \"Eye-squared-see\" or \"Eye-two-see\", the I2C bus allows you to read from multiple sensors on just two GPIO pins. Each I2C sensor board has a different 'address'\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/gpio.jpg?fit=1000%2C873&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/gpio.jpg?fit=1000%2C873&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/gpio.jpg?fit=1000%2C873&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.recantha.co.uk\/blog\/wp-content\/uploads\/2017\/07\/gpio.jpg?fit=1000%2C873&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":11696,"url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=11696","url_meta":{"origin":20924,"position":4},"title":"Review of the year 2014","author":"Michael Horne","date":"1 January 2015","format":false,"excerpt":"What a year it has been. I've just been reviewing over 900 blog posts and 2014 has certainly taken us on a journey in the Pi world. In this blog post, the first\u00a0of 2015,\u00a0I'll review some of the trends and highlight some of the best posts over the last 12\u2026","rel":"","context":"With 7 comments","block_context":{"text":"With 7 comments","link":"https:\/\/www.recantha.co.uk\/blog\/?page_id=11696#comments"},"img":{"alt_text":"","src":"https:\/\/camo.githubusercontent.com\/4473fbc2b7250646dae2b980853d9d315366e9f1\/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d76324e79414f364b6f36732f5643434a677a48682d68492f414141414141414151486b2f7076667066796d6a624a592f77313135332d683836352d6e6f2f32303134303831335f3231333530332e6a7067","width":350,"height":200,"srcset":"https:\/\/camo.githubusercontent.com\/4473fbc2b7250646dae2b980853d9d315366e9f1\/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d76324e79414f364b6f36732f5643434a677a48682d68492f414141414141414151486b2f7076667066796d6a624a592f77313135332d683836352d6e6f2f32303134303831335f3231333530332e6a7067 1x, https:\/\/camo.githubusercontent.com\/4473fbc2b7250646dae2b980853d9d315366e9f1\/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d76324e79414f364b6f36732f5643434a677a48682d68492f414141414141414151486b2f7076667066796d6a624a592f77313135332d683836352d6e6f2f32303134303831335f3231333530332e6a7067 1.5x, https:\/\/camo.githubusercontent.com\/4473fbc2b7250646dae2b980853d9d315366e9f1\/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d76324e79414f364b6f36732f5643434a677a48682d68492f414141414141414151486b2f7076667066796d6a624a592f77313135332d683836352d6e6f2f32303134303831335f3231333530332e6a7067 2x, https:\/\/camo.githubusercontent.com\/4473fbc2b7250646dae2b980853d9d315366e9f1\/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d76324e79414f364b6f36732f5643434a677a48682d68492f414141414141414151486b2f7076667066796d6a624a592f77313135332d683836352d6e6f2f32303134303831335f3231333530332e6a7067 3x"},"classes":[]},{"id":567,"url":"https:\/\/www.recantha.co.uk\/blog\/?page_id=567","url_meta":{"origin":20924,"position":5},"title":"Pi in Print &#8211; October 2012","author":"Michael Horne","date":"8 November 2012","format":false,"excerpt":"MagPi Tutorial - Skutter project - Adding a motorised base Tutorial - Create a portable power supply for the Pi Letter - FET buffer stage for GPIO Tutorial - Pumpkin Pi! Interview - CameraPi with David Hunt Interview - Our Raspberry Pi Summer Tutorial - Ada language introduction Tutorial -\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"\/blog\/wp-content\/uploads\/2012\/11\/magpi61-212x300.jpg","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/pages\/20924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=20924"}],"version-history":[{"count":5,"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/pages\/20924\/revisions"}],"predecessor-version":[{"id":21019,"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/pages\/20924\/revisions\/21019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/media\/20992"}],"wp:attachment":[{"href":"https:\/\/www.recantha.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}