Add details and clarify the problem being solved. This will help others answer the question. You can edit the question.
(Viewable by the post author and users with the close/reopen votes privilege)Edit question
I want to buy a rasperry pi 4 but I need to use some relays used for rasperry 2 and 3, my question is, those same relays and sensors like bluetooh that I use in versions 2 and 3, are they compatible with version 4 of rasperrry pi?pi-3pi-2pi-4shareedit follow reopenflagedited 7 hours agotlfong013,28733 gold badges77 silver badges2121 bronze badgesasked 13 hours agoJDanVz911 bronze badge New contributor
- 3How would we know? You have given no details of the relays or sensors. It may help you to know that the GPIO are pretty much the same on all Pi models. – joan 13 hours ago
- 1i doubt very much that there is such a thing as a “Raspberry Pi” relay – jsotola 6 hours ago
I want to buy a Rpi4. My worry is that can the relays and sensors I have been using for Rpi2/3 still be used for Rpi4?.
Part 1 – Introduction to the actuator and sensor interface
My answer to you general question is yes.
But there is a complication that cause exception to the general rule. This complication is related to the high level programs (written in python language), and low level “drivers” (written in C language), used to interface to the actuators and sensors.
To explain things better, let us use the OP’s first example, a relay, as a case study and see what sort of teething problems he might face if trying to use a Rpi1/2/3 compatible relays for Rpi4.
To get to know better the actuators and sensors, we need to first understand what sort of interface protocol they use to communicate with Rpi.
Now let me introduce the most common protocols.
Of the four communication protocols listed above, GPIO is the simplest and most newbie friendly, so let us look at it first, and use the simplest examples to explain the principles which can actually applied to all sensors and actuators.
Actually we can instead of relay and use use a simpler example, the LED. Before we start, we need to first clarify the following:
(a) A LED is an actuator, like a relay, except that a LED lights and dims, while a relay switches on and off.
(b) A push button is a sensor, which can detect pressing or releasing, while a temperature sensor measures temperature.
Next we will talk about basic principles of interfacing, and the problem of compatibility which is what the OP concerns most.
Part 2 – About Backward Compatibility
Compatibility is a very import concept to consumers and engineers. More details can be found in the Wikipedia articles in the reference below.
Part 3 – Rpi Backward Compatibility of GPIO, UART, I2C, and SPI communication actuators and sensors
(1) For devices controlled by GPIO, we see that Rpi GPIO of different versions are backward compatible, so all Rpi2/3 devices are compatible, and can used for Rpi4 with no or only minor changes in software.
(2) For UART, I2C, and SPI, there might be hardware related name changes. For example Rpi2 programs or drivers may be hard coded to use the name i2c0 for the onboard I2C. But for Rpi3/4, the name might need to change to i2c1, or vice versa. Beside the small name changes, since these protocols have been used for many years and are very stable, so there is little chance that the protocol would change without backward compatibility. In other words, no other changes in software are necessary
(3) Actuators and sensors are relative simple and so it is usually not that difficult to modify the drivers and programs by simple changes parameters such as i2c0 to i2c0, spi1 to spi2 etc, and recompiled as necessary.
However, there are more complicated devices such as small LCD/LED displays by manufacturers who don’t always not following Rpi and other common standards, and often these small devices might be discontinued, so old drivers might not work for new hardware Rpi models. But of course the OP will not worry because he is only concerned with simple actuators and sensors, not complicated LCD displays.
Part 4 – Conclusion
In the last couple of years, I have been playing with various GPIO, UART, SPI, I2C, 1-Wire relays and sensors devices, and I have been moving these devices from Rpi1 to Rpi2 to Rpi3 to Rpi4 and almost always the transition is very smooth.