PMS5003 and MiniGarden

I am building my own Enviro from breakouts, a mini garden and some redundant rain and wind sensors. The code is an adaptation of nopheads EnviroPlusWeb.
I now want to connect the particle sensor PMS5003 using the Part.Mat.Breakout but the recommended GPIO connections, BCM22 and BCM27 are not available on my mini garden. This has prompted lots of questions!
https://shop.pimoroni.com/products/breakout-garden-mini-i2c
PMS5003 requires
5V > 5V
GND > GND
TX > TXD
RX > RXD
RESET > BCM27
EN > BCM22
And EnviroPlusWeb requires BCM4 for the fan speed control.

The breakout garden does offer some GPIO connections, 5, 6, 13, 19 and 26 but it is not clear to me if these are Pin numbers or BCM numbers. Does anyone know?
Also, can I rename BCM22 & 27 in my code to two of the available ones (5 6 13 19 26)?
And finally, BCM4 seems to be a dedicated clock output so possible can’t be redirected, might I have to peel this wire out of the ribbon cable to get it?

I would say the 5, 6, 13, 19 and 26 are BCM numbers. Pin 6 is a ground, and ground is already listed GND on the Mini.
If the ones you want to use aren’t in use by the Breakout garden Mini, you could use this to get access.


Just use the 11mm stacking header and put it between your Pi and Mini.
https://shop.pimoroni.com/?q=11mm

The pinout for the Mini i2c only should be something like this

BCM22 and 27 seem to just be digital I/O pins so I can’t see why you couldn’t redirect the software to other pins.

As you said BCM 4 seems to be a special clock pin so you probably can’t redirect that one. Something like a Pico Hat Hacker might work depending on your setup

BCM 4 is used with “some” breakouts as an Int pin. If the breakouts your using don’t use that Pin you should be able to use it with your particulate sensor.

Thanks all.
I am using the garden so it can be a ribbon cable away from the Zero, to minimise any thermal offsets.
But as I am only using 5 wires for most of the breakouts perhaps the way to go is use individual wires.
The I can just add the others I need.
I guess I will have do a continuity check to be certain what the numbers are.

I have my Mini SPI i2c breakout garden mounted on the Mini Black hat Hacker.

I then put a right angle female header on my Pi Zero. I can plug it in where the ribbon cable would normally go, and its pointed up to make connecting cables easy.

I have something similar to what your doing planned. A BME280, 0.96" SPI Color LCD, and RV3028 Real-Time Clock. And maybe some other bits. I’m just waiting for some of it to arrive. I’m hoping it shows up today so I can tinker with it over the weekend.

I have one setup with several i2c breakouts that I needed to mount in specific spots on my case. I used a Proto hat with male headers > female to female jumpers > male headers on the breakouts.

There is a Pi A+ in the back under the Proto Hat, and a Sense Hat plugs in on top of the Proto Hat.

Thanks Kerry,
I notice my breakout garden use ‘INT’ for all the sockets but I can’t relate that to a GPIO pin. Does anyone know which it is?

The i2c breakout garden breakouts are made to be plugged right onto the GPIO header.
Pins 1, 3, 5, 7 and 9. That equates to 3.3V, SDA, SCL, GPIO 4 and Ground.
Int is GPIO 4 physical pin 7.
And if you have a look at the pinout I linked to above you will see BCM4 interupt on pin 7. Assuming the min has the same pinout as the Hat. No real reason for it not too.
Plugging a breakout into the mini is the same as just plugging it on the GPIO header, its a pin for pin match. ;)

Thanks again Kerry. It can be confusing with Pin, GPIO and BCM numbers applied to the connections.
I am now building my own excel conversion table!

AND !! That just leaves PWM. That could be Pin 32 or 33 perhaps?

For me if I say GPIO # I’m referring to the BCM number, and if I say Pin # I’m referring to the physical pin number. It can get confusing if you don’t know for sure which one somebody is referring too. I usually only use the BCM term if its already been referenced by somebody.
I go here for reference

PWM0 is GPIO 18 physical pin 12 < I’m thinking this is the one used.
and PWM1 is GPIO 13 physical pin 33

I see them listed in the Breakout garden Hat pinout I linked to above. They aren’t shown as used, but I’m thinking that GPIO goes to the PCM pad on the breakout, with no components in between.

Yes consistency helps.
Pin 12 and 32 look to be the same, PWM0? Pin 12 being close could well be the one used. Although I have seen pin 12 listed as BCM18 and PCM_CLK
I think I will have to power down my setup and meter the connections, just to be sure.

I just had a another look here, https://pinout.xyz/#
And see PWM0 listed twice? GPIO 12 and GPIO 18?
I resorted to tracing the wiring of the SPI socket on my i2c SPI mini with an ohm meter.
I wanted confirm it used CEO1.

Powered down and checked the connections between my PI Zero W and mini-garden.
Those labelled with RSPi recognisable labels do indeed match. For example TX goes to TXD.
The less obvious ones traced out as follows: (BCM# same as GPIO#)
INT > BCM4 > GPCLK0 > Pin7
5 > BCM5 > Pin 29
6 > BCM6 > Pin 31
13 > BCM13 > PWM1 > Pin33
19 > BCM19 > PCM_FS > Pin35
26 > BCM26 > Pin37
PWM > BCM18 > PCM_CLK > Pin12

For my project it means I only have to software re-direct BCM22 and 27, then all the connections will be available.

That’s good news, and shouldn’t be to difficult to do.

Easy to say but not so obvious to do!
I have pins 5 and 6 available but I am unsure what part of the PMS5003 package to alter.
Would it be __init__.py ? Then re-install?
https://github.com/pimoroni/pms5003-python/blob/master/library/pms5003/init.py

Looked everywhere on my Pi and haven’t found where the pins get assigned, bit stuck now!

Looking at __init__.py, line 87 says:

def __init__(self, device='/dev/ttyAMA0', baudrate=9600, pin_enable=22, pin_reset=27):

So that’s probably where it should be edited. I don’t think you’ll need to reinstall.

Actually, you might not need to change that in the module, when you initialise the sensor you should be able to add pin_enable=x, pin_reset=y to your code.