Compare commits

..

5 Commits

4 changed files with 88 additions and 1 deletions
+2
View File
@@ -8,6 +8,7 @@ Scripts and documentation for setting up a Raspberry Pi (Zero W 1 or 2) for use
1. [Solder the GPIO header pins](solder-gpio.md) 1. [Solder the GPIO header pins](solder-gpio.md)
1. [Gadget Mode to setup a serial connection over USB](gadget.md) 1. [Gadget Mode to setup a serial connection over USB](gadget.md)
1. [Marcel's script on github to show the IP address on the OLED screen](https://github.com/mkyas/cpsy-display-ip) 1. [Marcel's script on github to show the IP address on the OLED screen](https://github.com/mkyas/cpsy-display-ip)
1. Install Blinka by following the guide [CircuitPython Libraries on Linux and Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi)]
## RU student-only guides at ROB-IOT ## RU student-only guides at ROB-IOT
- [Starting on Raspberry Pi Zero](https://reykjavik.instructure.com/courses/6589/pages/starting-on-raspberry-pi-zero-w) - [Starting on Raspberry Pi Zero](https://reykjavik.instructure.com/courses/6589/pages/starting-on-raspberry-pi-zero-w)
@@ -30,6 +31,7 @@ Scripts and documentation for setting up a Raspberry Pi (Zero W 1 or 2) for use
## TODO ## TODO
- Finding the Pi using `nmap` or `arp` - Finding the Pi using `nmap` or `arp`
- Create a interface HAT that makes it easy to attach to a digital analyzer (v207) and an Analog Discovery
# Some Tricks # Some Tricks
Here is a page of tricks we have discovered that may involve advanced techniques. Here is a page of tricks we have discovered that may involve advanced techniques.
+2 -1
View File
@@ -1,6 +1,7 @@
[Unit] [Unit]
Description=Serial and Ethernet over OTG USB Description=Serial and Ethernet over OTG USB
After=systemd-user-sessions.service #After=systemd-user-sessions.service
Before=serial-getty@ttyGS0.service
[Service] [Service]
ExecStart=/root/rover-pi/Scripts/gadget.sh ExecStart=/root/rover-pi/Scripts/gadget.sh
[Install] [Install]
+79
View File
@@ -0,0 +1,79 @@
# Bluetooth on the Raspberry Pi Zero W (1 or 2)
The Zero W series has Bluetooth capability because of the Wifi chip on the board.
**Warning: This is a work in progress!!!**
# Reference
- "Exploring Raspberry Pi" by Derek Molloy pg 537-544
- [Connecting to a Headless Raspberry Pi using Bluetooth](https://medium.com/@tomw3115/connect-to-a-headless-raspberry-pi-using-bluetooth-0e61c05e1b68)
- https://github.com/sorah/bluetooth-getty
- [Use dbus insteadd of sdptool](https://linuxvox.com/blog/bluez-adding-services-attributes-and-profiles-without-sdptool-command/)
# Getting Bluetooth working
1. Login to the pi via a USB-serial port or monitor-keyboard-mouse. Configuring bluetooth can sometimes kick you off the wifi.
1. Tell `rfkill` to unblock bluetooth. Perhaps this is a security thing?
```
sudo rfkill unblock bluetooth
```
1. Restart the bluetooth service and check it's status
```
sudo systemctl restart bluetooth
sudo systemctl status bluetooth
```
1. Figure out the address using `hcitool`
```
hcitool dev
```
1. If you have a laptop set to be discoverable, you can check if bluetooth is working
```
hcitool scan
```
1. You can then query that device for what services it offers
```
sdptool browse ADDRESS
```
1. Now we want to make the Pi discoverable to our phone, tablet, or laptop
```
sudo hciconfig hci0 piscan
sudo hciconfig hci name RaspberryPi
```
1. A Serial Port Profile(SPP) is needed for our serial port
```
sudo sdptool add SP
```
1. For some reason, we have to put the bluetooth daemon in compatibility mode. (True as of 2016-2026 --foley). Find the line with `ExecStart` and put `--compat` at the end
```
sudo nano /lib/systemd/system/bluetooth.service
```
1. Test the SPP is setup
```
sudo sdptool browse local
```
1. Time to pair it with a device
```
sudo bluetoothctl
discoverable on
agent on
pairable on
scan on
```
and once you have paired it
```
discoverable off
exit
```
1. If this works, you can install the `bluetooth.services` and `rfcomm.service` files to automate some of this setup.
```
sudo cp bluetooth.service /etc/systemd/system/bluetooth.target.wants/.
sudo cp rfcomm.service /etc/systemd/system/.
sudo systemctl daemon-reload
sudo systemctl enable rfcomm
sudo reboot
```
# Discussion
Apparently Bluez's `sdptool` is now depricated and they are telling people to use this new GATT via `busctl` or `dbus-send`. [linuxvox article on depricated sdptool](https://linuxvox.com/blog/bluez-adding-services-attributes-and-profiles-without-sdptool-command/)
+5
View File
@@ -4,15 +4,20 @@ The Raspberry Pi zero (1 and 2) have 2 PWM peripherals, allowing you to pulse pi
# References # References
- [CircuitPython Libraries on Linux and Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi)
- [Raspberry Pi Official Overlays information (github)](https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README) - [Raspberry Pi Official Overlays information (github)](https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README)
- Line 4235 starts the description of the "pwm" overlay configuration - Line 4235 starts the description of the "pwm" overlay configuration
- [Adding Basic Audio Ouput to Raspberry Pi Zero](https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/pi-zero-pwm-audio) - [Adding Basic Audio Ouput to Raspberry Pi Zero](https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/pi-zero-pwm-audio)
- [CircuitPython pwmio documentation](https://docs.circuitpython.org/en/latest/shared-bindings/pwmio/index.html)
# Important Points # Important Points
1. The `gpio` program is no longer available. It has been replaced with `pinctrl` which works a little differently. 1. The `gpio` program is no longer available. It has been replaced with `pinctrl` which works a little differently.
1. The Blinka/CircuitPython interface uses `lgpio` to do hardware PWM on the pins. This requires the `pwm-2chan` overlay to be setup correctly, which it's documented procedure does. Details on relevant pins on line 4267 of the [overleays README](https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README)
# Discussion # Discussion
My raspberry pi zero W 2 wasn't working reliably with the PWM. My raspberry pi zero W 2 wasn't working reliably with the PWM.
The `gpio` command has been depricated and is now replaced by the `pinctrl` commend. Running it did not list any PWM0 on any of the pins, which was concerning. The `gpio` command has been depricated and is now replaced by the `pinctrl` commend. Running it did not list any PWM0 on any of the pins, which was concerning.