# Breakout Gardener (preview)

**URL:** <https://forums.pimoroni.com/t/breakout-gardener-preview/9871>\
**Category:** Projects\
**Created:** [February 5, 2019, 10:05pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871 "2019-02-05T22:05:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 5, 2019, 10:05pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/1 "2019-02-05T22:05:38Z")

</div>

![breakouts](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/4/4762c6652eae47f1cf2b3c1b80bd060215faadd1.png)

_PREVIEW RELEASE == REQUEST FOR EARLY FEEDBACK 😉_

**[Breakout Gardener](https://github.com/xoblite/BreakoutGardener)** is a framework application based on Node.js using the [i2c-bus](https://github.com/fivdi/i2c-bus) library. The name is a pun on the Pimoroni Breakout Garden, as the project started out as a way to present various sensor data on that system’s OLED display. As geeky projects often do, however, it eventually grew into something bigger, with more elaborate interworking…

Breakout Gardener currently supports the following devices and sensors (I2C unless otherwise noted) through modules:

- **ADS1015** : Texas Instruments ADS1015 Analog-To-Digital Converter
- **ADT7410** : Analog Devices ADT7410 Digital Temperature Sensor _(preliminary/untested)_
- **BMP280** : Bosch Sensortec BMP280 Barometric Pressure Sensor
- **CAP1166** : Microchip Technology CAP1166 Capacitive Touch Controller
- **DS18B20** : Maxim Integrated DS18B20 Digital Thermometer (1-Wire)
- **IS31FL3731** : Integrated Silicon Solution Inc (ISSI) IS31FL3731 Matrix LED Driver
- **LSM303D** : STMicroelectronics LSM303D eCompass 3D Accelerometer and 3D Magnetometer
- **MCP9808** : Microchip Technology MCP9808 Digital Temperature Sensor
- **SH1107** : Display Future / Sino Wealth SH1107 Dot Matrix (128x128 pixel) Mono OLED Driver/Controller
- **TCS3472** : ams TCS3472 Color Light Sensor
- **VEML6075** : Vishay Semiconductors VEML6075 UVA and UVB Light Sensor

It also supports additional display modes through its **SYSTEM** , **CLOCK** and **KOMPIS** modules, data [exposure](https://prometheus.io/) and related [visualization](https://grafana.com/) through its **PROMETHEUS** module, as well as a HTML5/CSS3 browser **DASHBOARD** module (see image above) that provides an overview of the current status and readings of all sensors and devices available on the system (nb. the “Shop” button is there just to support the tinkering community’s favourite suppliers; Pimoroni (UK) and Adafruit Industries (US)) (no affiliation to either, I just like their products and geeky dedication to the cause 😉)).

_Note that, as this is a first preview release, there is still some cleaning up and optimizing under the hood to do (I have been reworking a lot of stuff along the way but some parts are older/newbie stuff that I just haven’t gotten to yet), but it should be in good enough shape for general use already. The product examples linked to on the GitHub page (nb. I couldn’t include actual links into this post due to forum restrictions) are the actual products I have used during development, but with some minor caveats (e.g. differences in physical orientation of an accelerometer sensor and similar) the module implementations should hopefully be mostly generic. Last but not least, any further project information and/or updates (no promises 😉) will be uploaded to the GitHub project page and referenced here along the way._

Anyway, without further ado:

_- Install Node.js_  
_- Clone the repository_  
_- Install i2c-bus_  
_- Run!_

Enjoy! 😎

…and if you do, please Star this project on GitHub, add your comments and feedback here, and perhaps also tag me on Twitter (@xoblite) or Instagram (@xoblitedotnet). Thanks! 😄

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 5, 2019, 10:43pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/2 "2019-02-05T22:43:59Z")

</div>

PS. The [Mono OLED Breakout](https://shop.pimoroni.com/products/1-12-oled-breakout) and [5x5 RGB Matrix Breakout](https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout) (nb. the SH1107 and IS31FL3731 modules, respectively) complement each other nicely using Breakout Gardener - check it out if you have them both! 😄

_A not-so-good-but-hopefully-at-least-illustrative photo of the two taken in a dark room:_

![oled-and-rgb-matrix2](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/1/18308ce05c841590b9bf8405620832f6d2693882.jpeg)

---

<div class="post-metadata">

**Author:** ![gadgetoid](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/gadgetoid/32/13_2.png) [@gadgetoid](https://forums.pimoroni.com/u/gadgetoid)\
**Post date:** [February 8, 2019, 11:37am UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/3 "2019-02-08T11:37:34Z")

</div>

This is awesome- thank you for sharing! I’ve bumped your forum trust level so it should be easier for you to post images/links now.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [February 10, 2019, 9:41pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/4 "2019-02-10T21:41:28Z")

</div>

Ditto to the above awesome comment. Taking pictures of lit up LEDS is tricky. Its a struggle for me anyway with my camera. They always seem to bloom. Even behind a difusser.  
I like putting my LED Shim etc behind the black ninja difussers. It takes away the little pin prick of light you see in some RGB LEDS.

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 11, 2019, 10:24pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/5 "2019-02-11T22:24:45Z")

</div>

Thanks Phil, thanks Kerry, much appreciated!

**Version 19.2.8** (aka RC1b), including some bug fixes (e.g. there were some missing device availability checks that I forgot to add before the original release, sorry about that) as well as preliminary support for the **Analog Devices ADT7410 Digital Temperature Sensor** (see e.g. [https://www.adafruit.com/product/4089](https://www.adafruit.com/product/4089)), is available on the GitHub project page since a few days back. If anyone happens to have an ADT7410 nearby already, please check it out and let me know if it works as expected; the current implementation was based purely on the information available in the datasheet but should hopefully be ready for prime time already 😉

If time allows, I will use my new-found forum powers to add some more photos etc within the next few days - stay tuned!

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 26, 2019, 12:39pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/6 "2019-02-26T12:39:00Z")

</div>

**Version 19.2.26** (aka RC1c) is now available on the GitHub project page. Thanks to some nice weather (finally! 😄) here in Sweden, I had the chance to properly test and adjust the VEML6075 (UVA/UVB sensor) module under more than gloomy indoors conditions… This release also includes some minor bug fixes and refinements to the I2C device identification functionality.

BR//KHH [xoblite]

PS. We peaked at UV index 2.7 (i.e. still “Low”, see e.g. [this link](https://en.wikipedia.org/wiki/Ultraviolet_index)) here today… 😉

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [February 26, 2019, 1:00pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/7 "2019-02-26T13:00:55Z")

</div>

I have a Si1145 in my portable weather clock that I use to get the UV index. It hit Moderate 3 the other day in bright sunlight. It was -8c or so at the time, lol. I have mine round off to whole number. It just makes it easier to read when displayed in my scrolling message.  
My Si1145 kind of fudges the reading anyway. It doesn’t actually read UV light. It reads IR and ambient and calculates the UV index from that. I compromised on this sensor because it does the math for me and calculates the UV index all on its own. And reads the ambient light level. I use that to auto adjust my display brightness. Didn’t want to have to use two sensors.  
Anyway, keep up the good work. =)

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 27, 2019, 11:47am UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/8 "2019-02-27T11:47:50Z")

</div>

Thanks! I actually decided on the VEML6075 for the opposite reason - that it was a _real_ UVA/UVB sensor - and the necessary [code](https://github.com/xoblite/BreakoutGardener/blob/master/modules/VEML6075.js) was actually fairly simple:

```
var uva = I2C_BUS.readWordSync(I2C_ADDRESS_VEML6075, 0x07); // Uncalibrated UVA
var uvb = I2C_BUS.readWordSync(I2C_ADDRESS_VEML6075, 0x09); // Uncalibrated UVB
var uvcomp1 = I2C_BUS.readWordSync(I2C_ADDRESS_VEML6075, 0x0a); // UV compensation value 1
var uvcomp2 = I2C_BUS.readWordSync(I2C_ADDRESS_VEML6075, 0x0b); // UV compensation value 2

var uva_adjusted = Math.round(uva - (uva_a_coef * uvcomp1) - (uva_b_coef * uvcomp2));
var uvb_adjusted = Math.round(uvb - (uvb_c_coef * uvcomp1) - (uvb_d_coef * uvcomp2));

var uv_index = ((uva_adjusted * uva_resp) + (uvb_adjusted * uvb_resp)) / 2;

```

All according to information readily and easily available in the datasheet and related application notes (which is more than you can say for some other devices/vendors…).

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [February 27, 2019, 12:13pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/9 "2019-02-27T12:13:37Z")

</div>

It was years ago when I was mulling over what sensor to buy. I started out wanting something that actually measured UV light, but all that was available at the time, wouldn’t also give me an ambient light reading? It seemed to be one or the other, but not both?  
I am keeping an eye out for a replacement for my Si1145, something that actually measures UV light “and” ambient light.  
My info is displayed in a continuously scrolling message on my Sense Hat LED matrix. In normal light conditions the different elements are color coded based on conditions. Temp text is Red if its hot out and Blue if its cold out etc for example. Problem is my eyes have a hard time seeing Red text in very bright sunlight. Blue text is a struggle too, so I toggle all text to bright white to make it easy to read from a distance. And in dark low light conditions I set the display back to colored text and dim it. Its easier on the eyes and doesn’t distract you. My portable weather clock is headless with no keyboard mouse etc. And minimal buttons and switches. A shutdown button and a power switch. It’s for the most part water resistant. Vent holes on the bottom of the case and the buttons on the bottom out of the weather. The light sensing and adjustment are all automatic. Build pictures are in the link below. On my indoor version I just use the sense hat joystick to switch things if need be. It pretty well just runs 24/7 with colored text and the display dimmed.

[https://1drv.ms/f/s!AjOYwiwlwDtpgq8\_0VrdS3\_H5xL\_AA](https://1drv.ms/f/s!AjOYwiwlwDtpgq8_0VrdS3_H5xL_AA)

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 27, 2019, 8:46pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/10 "2019-02-27T20:46:15Z")

</div>

++ Adding an example of a simple Grafana visualization dashboard, enabled by the **PROMETHEUS** module, showing off the indoors (read: sunlight through the window) UV radiation earlier today:

 ![breakout_gardener_grafana_example](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/c/c3babe2028777f947e8e1c0849c6802f0b241b6e.jpeg)

_(…yes, the BMP280 device [on an Enviro pHAT], its readings and/or the necessary related proprietary math code [grr!] is behaving oddly, not sure which or why yet… @gadgetoid, have you seen anything like this on your side? Anything above 26.4 degrees C and it seems to consistently wrap around or something. I think I’ve [translated](https://github.com/xoblite/BreakoutGardener/blob/master/modules/BMP280.js) the datasheet reference code correctly into Javascript, but who knows… 😉)_

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 27, 2019, 9:27pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/11 "2019-02-27T21:27:28Z")

</div>

@alphanumeric: Nice illustrative photos of your work, thanks for posting! What did you use as cover for the UV sensor though? (I don’t think it was shown in any photo)

My BG related stuff still sits on a pHAT Stack with various extensions… 😎

 ![xoblite_phat_stack](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/4/495eb8c05923beaed07984a467848785d489cdc0.jpeg)

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [February 27, 2019, 10:06pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/12 "2019-02-27T22:06:43Z")

</div>

I believe the cover started out as this,

> **[Raspberry Pi Model B+ / Pi 2 / Pi 3 Case Lid - Clear](https://www.adafruit.com/product/2257)**
>
> Now that we have The Single Greatest Raspberry Pi Model B+ / Pi 2 / Pi 3 Case Ever - we decided to make it even better by adding COLORS!!!!! Mix and match snap-on lids and ...

I just cut it down to size with my dremel and then used silicon bathtub caulking to seal around it and hold it in place. Best I could do at the time I built it. I have yet to find a better solution.  
I toyed with using one of the Pimoroni frosted difussers but it blocked some of the light and skewed the reading a bit.  
I do like the black ninja diffusers though as covers for LED display etc.

EDIT: Build pictures of most of my Pi projects are here,  
[https://1drv.ms/f/s!AjOYwiwlwDtpgUMsp2qnevKpGEHb](https://1drv.ms/f/s!AjOYwiwlwDtpgUMsp2qnevKpGEHb)  
If you’d like to take a look see.

---

<div class="post-metadata">

**Author:** ![gadgetoid](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/gadgetoid/32/13_2.png) [@gadgetoid](https://forums.pimoroni.com/u/gadgetoid)\
**Post date:** [February 28, 2019, 12:27am UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/13 "2019-02-28T00:27:26Z")

</div>

> [@xoblite](#):
>
> have you seen anything like this on your side? Anything above 26.4 degrees C and it seems to consistently wrap around or something.

I’ve come across things like this before- always good fun to debug. In this case, though, I can’t see that your code differs all that much from my Python implementation so I don’t know where this bug could be creeping in.

Can you print out the raw register data and compensation values alongside the temperature?

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 28, 2019, 11:25am UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/14 "2019-02-28T11:25:46Z")

</div>

…and sometimes one is just looking in the wrong place… (simple typo) 😊

![bmp280_typo](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/c/cd28d042350f1297b7d07b4448560fa1e866e2ea.jpeg)

_(As per the datasheet: “The data are read out in an unsigned 20-bit format both for pressure and for temperature.”)_

Thanks for the inducing trout slap Phil… 😉

…new **version 19.2.28** uploaded.

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [February 28, 2019, 11:59am UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/15 "2019-02-28T11:59:04Z")

</div>

That one of the “fun” things with working with say a temp sensor. How do you test all your code? Do you put it in your fridge, or stove, lol, to get the whole range of readings?  
My portable weather clock was occasionally glitching on me. It would just quit and stop showing any message. I went over and over my code looking for a typo but didn’t see anything? And of course, it never did it while I was watching it so I had no idea if it was the temp, humidity or pressure code that was erroring out. Or even if that was what was happening?  
While fixing another hardware issue I found I had a glitchy powerboost board. Since replacing that and replacing a very overworked proto hat (from modifications etc) all seem fine again.  
I toyed with just setting temp as a variable and doing a t = t +1 starting low and letting it cycle through to a high. Then watch the temp slowly climb. If that was fine I’d then wash rinse and repeat with humidity and pressure. I’d at least know my code was Ok and it was a hardware issue.

---

<div class="post-metadata">

**Author:** ![gadgetoid](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/gadgetoid/32/13_2.png) [@gadgetoid](https://forums.pimoroni.com/u/gadgetoid)\
**Post date:** [February 28, 2019, 12:19pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/16 "2019-02-28T12:19:08Z")

</div>

> [@alphanumeric](#):
>
> That one of the “fun” things with working with say a temp sensor. How do you test all your code?

Try a thermocouple :D :D :D

Turns out there aren’t many readily available safe sources of 800 degrees C around :D

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [February 28, 2019, 12:25pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/17 "2019-02-28T12:25:34Z")

</div>

Danger will Robinson, danger danger, lol. :D

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [February 28, 2019, 1:11pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/18 "2019-02-28T13:11:15Z")

</div>

As per [reference.com](https://www.reference.com/science/temperature-burning-match-c017826a9e115258):

> The temperature of a burning match is 600 to 800 degrees Celsius. The temperature of a burning candle is 600 to 1,400 degrees Celsius, and that of a Bunsen burner is 1,570 degrees Celsius.

(That’s unless you’re a fan of Elon, of course; then a [not-a-flamethrower](https://www.boringcompany.com/not-a-flamethrower) plus the “overpriced fire extinguisher” add-on would also work I guess… 😉)

“YMMV”

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![xoblite](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/xoblite/32/5175_2.png) [@xoblite](https://forums.pimoroni.com/u/xoblite)\
**Post date:** [April 30, 2019, 6:34pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/19 "2019-04-30T18:34:53Z")

</div>

Hello all,

next up after a long life-induced hiatus:

Order just in for an **[SGP30](https://shop.pimoroni.com/products/adafruit-sgp30-air-quality-sensor-breakout-voc-and-eco2)** Air Quality (TVOC and CO2eq) Sensor, **[VCNL4010](https://shop.pimoroni.com/products/vcnl4010-proximity-light-sensor)** Proximity/Light Sensor, **[ADXL343](https://shop.pimoroni.com/products/adafruit-adxl343-adt7410-sensor-featherwing)** Triple-Axis Accelerometer, **[ADT7410](https://shop.pimoroni.com/products/adafruit-adxl343-adt7410-sensor-featherwing)** High Accuracy Temperature Sensor (nb. already implemented, but which I have yet to test myself), IS31FL3731 **[11x7 White LED Matrix](https://shop.pimoroni.com/products/11x7-led-matrix-breakout)** Breakout, and the N76E003AQ20 MCU based **[Trackball](https://shop.pimoroni.com/products/trackball-breakout)** Breakout! 😊

_By the way, @gadgetoid, since we now have both multiple display breakout options as well as a straightforward control breakout option thanks to the trackball, could you please also poke your peers about some kind of **sound/audio breakout** maybe? 😉 (e.g. in its simplest form maybe something like the small speaker/buzzer on the Adafruit Circuit Playground Express; not sure whether there are e.g. more elaborate MEMS options or similar out there if the needed sound levels are kept low enough (?)). And, just out of curiousity but possibly related, does the N76E003AQ20 MCU based implementation used on the Trackball Breakout open up for other, new non-I2C-native (?) stuff in the future, and if so what are its capabilities/constraints on a high level? Do you provide the microcode yourselves? (etc; note that I haven’t yet had time to look at your reference code for it so maybe the answer is partly in there somewhere; any further comments appreciated though)_

Stay tuned!

BR//KHH [xoblite]

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [April 30, 2019, 7:22pm UTC](https://forums.pimoroni.com/t/breakout-gardener-preview/9871/20 "2019-04-30T19:22:25Z")

</div>

An i2c Real Time Clock Breakout, with a simple one line installer is what I’m wanting. I’m using Adafruits DS3231’s at the moment. Hookup is pretty easy, the setup procedure to get them working is a bit of a pain.

[Next page](https://forums.pimoroni.com/t/breakout-gardener-preview/9871.md?page=2)
