Breakout Gardener (preview)

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., 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]

1 Like

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) here today… 😉

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. =)

Thanks! I actually decided on the VEML6075 for the opposite reason - that it was a real UVA/UVB sensor - and the necessary code 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]

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.!AjOYwiwlwDtpgq8_0VrdS3_H5xL_AA

++ 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:

(…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 the datasheet reference code correctly into Javascript, but who knows… 😉)

BR//KHH [xoblite]

@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… 😎

BR//KHH [xoblite]

I believe the cover started out as this,

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,!AjOYwiwlwDtpgUMsp2qnevKpGEHb
If you’d like to take a look see.

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?

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


(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]

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.

1 Like

Try a thermocouple :D :D :D

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

1 Like

Danger will Robinson, danger danger, lol. :D

As per

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 plus the “overpriced fire extinguisher” add-on would also work I guess… 😉)


BR//KHH [xoblite]

Hello all,

next up after a long life-induced hiatus:

Order just in for an SGP30 Air Quality (TVOC and CO2eq) Sensor, VCNL4010 Proximity/Light Sensor, ADXL343 Triple-Axis Accelerometer, ADT7410 High Accuracy Temperature Sensor (nb. already implemented, but which I have yet to test myself), IS31FL3731 11x7 White LED Matrix Breakout, and the N76E003AQ20 MCU based Trackball 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]

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.

Upcoming RTC Breakout -> Link

I knew it was in the works from another source. Just didn’t know how close it was to being released. =)
I have RTC’s in three of my Pi setups at present. The setup is a bit cumbersome. It will be a pretty easy swap for me to switch to these new ones. Hardware wise. Unsolder the old and solder in the new. And change a couple of jumpers on my Proto Hat.

Another breakout I’d like to see is one that gives you the UV Index (calculates it for you ;) ) , and the ambient light level. I currently us an SI1145 for that. I display the UV index on my weather clock and use the ambient light level t adjust the display brightness on the fly.

Keep up the good work Pimoroni, it is well appreciated. =)

…making good progress towards the next major release… 😎

BR//KHH [xoblite]

I broke down and bought a VEML6075 UVA/B Sensor Breakout and a LTR-559 Light & Proximity Sensor Breakout. And one of the RV3028 Real-Time Clock (RTC) Breakout.
Only just in the testing phase, making sure they work.
I scored a couple of the glass strips you use for Microscope slides from my dogs veterinarian. Its fused quartz glass that will not block UV light. Its about as transparent as you can get. Two lengths side by side should do it. I’ll use RTV silicon to hold them in place. Apparently most plastics and glass block UV light.