saks 0.1.1

Swiss Army Knife Shield for Raspberry Pi
Documentation
# SAKS hat for raspberry_pi

SAKS = Swiss Army Knife Shield for Raspberry Pi

![](https://shumeipai.nxez.com/wp-content/uploads/2015/03/20180301135557875.jpg)

---

## How other library control GPIO

wiringpi system but uses the /sys/class/gpio interface **rather than accessing the hardware directly**(softPwmWrite)

[sprintf(fName, "/sys/class/gpio/gpio%d/value", i)](https://github.com/WiringPi/WiringPi/blob/093e0a17a40e064260c1f3233b1ccdf7e4c66690/gpio/gpio.c#L428)

1. /sys/class/gpio: sysfs_gpio(deprecated), gpio(deprecated), maybe not working in pi4B
2. /dev/gpiomem or /dev/gpiochip0: rppal, wiringpi, gpio-cdev
3. /dev/pigpio and pigpio daemon process: pigpio

## Some questions need to solve

- [ ] Why gpio access from /dev/gpiomem via mmap syscall is faster than `format!("/sys/class/gpio/gpio{}/active_low", gpio_num)`
- [ ] Why gpio pin number has three encoding?(BOARD, BCM, wiringpi)
- [ ] About the onboard_led(/sys/class/leds/led0/) like arduino's LED_BUILTIN

---

## My raspberry_pi notes

### CPU temperature

> vcgencmd measure_temp

### Setup raspberry_pi

How to connect raspberry_pi without internet/display/GUI Desktop? 

1. put empty ssh file to SD card root directory in order to enable SSH on first time boot
2. SSH to pi via ethernet cable or serial(RS-232 with RXD+TXD+GND, don't connect 5V pin!) port