Compare commits

..

3 Commits

Author SHA1 Message Date
foley 8586a25547 Merge branch 'master' of https://gitea.cs.ru.is/RU-V207/rover-pi 2026-07-02 16:57:08 +00:00
foley aa83f5c957 got an LED to blink on GPIO18 2026-07-02 16:56:44 +00:00
foley b43d1d6798 added GPIO pinout document link 2026-07-02 16:13:20 +00:00
4 changed files with 49 additions and 6 deletions
+1
View File
@@ -13,6 +13,7 @@ Scripts and documentation for setting up a Raspberry Pi (Zero W 1 or 2) for use
- [Starting on Raspberry Pi Zero](https://reykjavik.instructure.com/courses/6589/pages/starting-on-raspberry-pi-zero-w)
## References and Links
- [Sparkfun GPIO pinout](https://cdn.sparkfun.com/assets/learn_tutorials/6/7/6/PiZero_1.pdf)
- [Guide to creating ssh keys](https://pimylifeup.com/raspberry-pi-ssh-keys/) Of note, this guide is a little dated as it suggests using RSA keys and many people are moving toward EDCSA keys.
- [Raspberry Pi Connect](https://connect.raspberrypi.com)
- [Setting up Raspberry Pi Connect](https://www.raspberrypi.com/documentation/services/connect.html)
+4 -6
View File
@@ -12,19 +12,17 @@ fi
# Is the dwc2 overlay installed? Nothing will work if it isn't.
if lsmod | grep -q "dwc2"; then
echo "DWC2 module loaded, setting up OTG gadget serial and ethernet" | logger -t $0 -p info
echo "DWC2 module loaded"
systemd-cat -t gadget.sh -p info echo "DWC2 module loaded, setting up OTG gadget serial and ethernet"
else
echo "DWC2 module missing. Aborting OTG setup." | logger -t $0 -p info
echo "DWC2 module missing"
systemd-cat -t gadget.sh -p warning echo "DWC2 module missing. Aborting OTG setup."
systemctl disable serial-getty@ttyGS0.service
exit 1
fi
modprobe libcomposite
sudo modprobe libcomposite
cd /sys/kernel/config/usb_gadget
if [ -d "MyGadget" ]; then
echo "MyGadget already exists. Aborting OTG setup." | logger -t $0 -p info
systemd-cat -t gadget.sh -p warning echo "MyGadget already exists. Aborting OTG setup."
exit 1
fi
Executable
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/python
# From https://raspberry.tips/en/raspberrypi-tutorials/raspberry-pi-gpio-python
import lgpio
import time
# Open GPIO chip (0 = /dev/gpiochip0, on Pi 5 gpiochip4 also possible)
h = lgpio.gpiochip_open(0)
try:
lgpio.gpio_claim_output(h, 18) # GPIO18 (pin 12) as output (MOTA1)
for _ in range(5):
lgpio.gpio_write(h, 18, 1) # HIGH
time.sleep(0.5)
lgpio.gpio_write(h, 18, 0) # LOW
time.sleep(0.5)
finally:
lgpio.gpiochip_close(h) # Always close!
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/python
# From https://raspberry.tips/en/raspberrypi-tutorials/raspberry-pi-gpio-python
import lgpio
import time
# Open GPIO chip (0 = /dev/gpiochip0, on Pi 5 gpiochip4 also possible)
h = lgpio.gpiochip_open(0)
try:
lgpio.gpio_claim_output(h, 16) # GPIO16 as output (MOTA2)
lgpio.gpio_write(h, 16, 0) # LOW
# Hardware PWM on GPIO18 (pin 12) must be PWM-capable
# Frequency: 1000 Hz, duty cycle: 50%
lgpio.tx_pwm(h, 18, 1000, 50)
time.sleep(2)
# Reduce duty cycle to 20%
lgpio.tx_pwm(h, 18, 1000, 20)
time.sleep(2)
lgpio.tx_pwm(h, 18, 0, 0) # Stop PWM
finally:
lgpio.gpiochip_close(h) # Always close!