Hot answers tagged

172

I got the information below from here. The GPIO.BOARD option specifies that you are referring to the pins by the number of the pin the the plug - i.e the numbers printed on the board (e.g. P1) and in the middle of the diagrams below. The GPIO.BCM option means that you are referring to the pins by the "Broadcom SOC channel" number, these are the ...


60

You probably need to be running Raspbian to use RPi.GPIO as a non-root user, possibly it needs to be jessie as well. Does /dev/gpiomem exist? If so RPi.GPIO should use this device to access the GPIO. If /dev/gpiomem does not exist try: sudo rpi-update to make sure you are using a recent kernel, and sudo apt-get update sudo apt-get upgrade to make sure ...


51

Some interesting questions. I think you may be slightly misunderstanding how the "supercomputers" built with Raspberry Pis work. They do not function as an automatic load sharing system. They are designed for something called parallel programming, where a complex task is broken down into pieces that can be performed simultaneously. The main Pi in the cluster ...


51

Unroll your loop to understand what's happening here: for number in range(0,10): GPIO.output(21,GPIO.LOW) time.sleep(1) GPIO.output(21,GPIO.HIGH) turns into: GPIO.output(21,GPIO.LOW) time.sleep(1) GPIO.output(21,GPIO.HIGH) GPIO.output(21,GPIO.LOW) time.sleep(1) GPIO.output(21,GPIO.HIGH) GPIO.output(21,GPIO.LOW) ...


49

This answer is OBSOLETE. The Pi 3.3V rail is widely assumed to provide 50mA, but this is not officially documented for recent Pi models. The original Pi has an on-board linear regulator which was limited, but the B+ and later have a switch mode regulator which can supply more. The regulator chip (which supplies both 3.3V and 1.8V) is rated at 1A. Raspberry ...


46

TL;DR This is a 3.3V device. Using 5V peripherals requires a logic level converter. Output Maximum total of all pins 50 mA. Default 8 mA max per pin. (Returns to this configuration after reset.) Software configurable from 2 mA to 16 mA. Do not source or sink more than what you've configured. Don't drive capacitive loads. Input Threshold of 1.8V Maximum ...


39

Why not simply like this? Raspberry Pi switches between 0 and 3V3, more than enough to saturate Q1, which takes over the "heavy" work: switching the +5V relay on/off. Depending on the relays you're using, small modifications for D1 and Q1 might apply.


36

In your image, the SD-card reader would be positioned to the left and the front side of the card would be facing the viewer. Here's a better image which can't be misinterpreted:


32

The ATMega chips specify Operating Voltage: ̶ 1.8 - 5.5V. If you read deeper the operating speed is dependent on voltage. They work at 3.3V but you have to limit the clock speed. The Arduino team presumably chose 5V because of the ready availability of systems which use this (a legacy of TTL). The SOC used on Pi run on 3.3V (and also require a couple of ...


29

Found it! sudo nano /boot/config.txt add : dtoverlay=w1-gpio this has to do with kernel update, find more info in this link


29

At powerup the GPIOs are pulled either high or low through the internal resistors. Whether the pull is high or low for a particular GPIO is detailed on page 102 of BCM2835 ARM Peripherals. As the Linux kernel is started and if device tree is enabled (likely) then it will reconfigure the GPIOs according to the device tree settings. Modules loaded from /etc/...


28

I've recently had some reason to start experimenting with PWM myself, and found that (as pointed out by one of the comments) the frequency seems to vary with duty cycle - bizzare, right? It turns out that Broadcom implemented "balanced" PWM in order to make the on and off PWM pulses as evenly distributed as possible. They give a description of the ...


25

Not sure if this is helpful, but under the latest copy of Raspbian I was able to install RPi.GPIO directly from the main repositories using apt-get as follows: sudo apt-get update sudo apt-get -y install python-rpi.gpio If you're running Python 3 (idle3 on the command line) instead of Python 2 (python on the command line) you need to install the RPi.GPIO ...


25

I've got a couple of Pis running my Ham Radio repeater and irrigation system - realistically, I'm rebooting them maybe once every 6 months for security updates or some other "maintenance" reason; but I've not seen issues where a reboot was REQUIRED to "keep things running"


25

In terms of hardware, the only reason you should ever need to reboot an ARMHF-y board is firmware changes, necessary changes to ROM, or possibly new devices that must be present at boot. For instance, adding a driver or close-to-metal kernel module and a device implementing that driver will probably need a reboot, just to tell the CPU and kernel memory ...


22

Try to replace your print by a time.sleep(0.05). You may occur this strange behavior as GPIO.output is switched too quickly from HIGH to LOW to be set/detected/seen. Increase/reduce the sleep duration until the program works fine (increase) and fast enough (decrease). import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO....


20

One of the main reasons why wiring buttons and logic to GND is favoured (and then copied all over the internet) is because of power optimization. Pulling a pin LOW with resistor to GND costs 0 watts. Pulling a pin HIGH with resistor to +Vcc costs power. On complex circuits or circuits that rely on batteries this power is very precious. Other reasons ...


18

Given that your sensor is a DS18B20, which uses the 1-wire protocol, and that the 1-wire driver on the latest RPi Linux kernel can do as many as 64 different addresses on the same 1-wire bus: If you just connect all of your sensors to the same 3 pins (3v3, GND and GPIO4 - pin number 4 on the connector), you will read their outputs from /sys/bus/w1/devices/28*...


18

I think you would call them P*-Headers, where the * designates which one exactly (5/2/3/6). What you call Opportunity B is known as the P5-Header, and you can use it just like the GPIO-Pins next to it (see also this link). Opportunity A (P6) can be used to reset your Raspberry Pi: Shorten it it reset. Be careful, though, as doing this while your SD-Card is ...


18

As mentioned in this article RPi.GPIO basics 3 – How to Exit GPIO programs cleanly, avoid warnings and protect your Pi, correct use of GPIO.cleanup(), Correct use of GPIO.cleanup() RPi.GPIO provides a built-in function GPIO.cleanup() to clean up all the ports you’ve used. But be very clear what this does. It only affects any ports you have set in the ...


18

Yes, all of the B+'s GPIO pins have internal pull-up or pull-down resistors that can be controlled from your code. Pull-up is 50K min – 65K max. Pull-down is 50K min – 60K max. More info on the GPIO can be found here and here. Example usage frm the PI4J documentation: // provision gpio pin #02 as an input pin with its internal pull down resistor enabled /...


18

If you want to drive a single low-voltage relay, using a 7-channel driver chip will be an overkill. You'll be perfectly fine with a single NPN transistor and a flyback diode: simulate this circuit – Schematic created using CircuitLab Note: R1 can be replaced by a LED and a 200 - 500 Ohm resistor in series if you want a visual clue about the state of ...


18

It's a breakout on a development oriented board, and ground is probably required more than anything -- everytime you connect one of the power rails, you need a ground connection, but in addition, attached devices with their own power still need a common ground. The breakout could be shrunk so that there are only two power pins instead of four, and only 1 ...


17

sudo systemctl enable pigpiod will enable it to auto-start on boot. sudo systemctl start pigpiod will start it immediately (just a posh way of doing sudo pigpiod :) If you change your mind, sudo systemctl disable pigpiod will undo the start-up behaviour. Similarly, sudo systemctl stop pigpiod will have an immediate effect.


17

Pin 1 has a square solder pad, all the rest are circular. This is a general convention in electronics.


16

Here is some Python I used to test the reliability of software serial. The input side is fairly trivial. You just make the appropriate bit bang serial open calls in Python or C. The output side is more involved as you have to use waveforms to construct the bit stream. The code here is using 7-bit rather than 8-bit data. The test was written at about the ...


16

I finally got a complete(ish) understanding from the bcm2835.h driver header file, so thought I would post and answer my own question for others. The relevant bits from the header: PWM The BCM2835 supports hardware PWM on a limited subset of GPIO pins. This bcm2835 library provides functions for configuring and controlling PWM output on these ...


16

A very secure solution uses an optocouple. A 1kΩ resistor is good for an input voltage range of 5 to 20 volts. You may connect the two grounds, but it's not required. The output is inverted, that means, the Pi senses low on its GPIO if there is 5–20V on the input, and high if not. simulate this circuit – Schematic created using CircuitLab


15

As shown here you can get I2S via P5: http://elinux.org/RPi_Low-level_peripherals#P5_header And here is a kernel driver for using it: http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html


15

The problem When I connect the circuit, and electricity flows to the input pin, the value it gives me is consistently TRUE or 1. True, but what happens when ground is connected to the GPIO input pin? The value it would give would always be false. When power is connected to the input pin: The input pin detects a 1 (true). When ground is connected to ...


Only top voted, non community-wiki answers of a minimum length are eligible