Raspberry Pi¶
Hay data sobre los proyectos del Raspberry Pi en la sección de DIY.
Cosas para probar:
- matterbridge en un RPi: https://github.com/42wim/matterbridge
Sistemas Operativos¶
Ubuntu Server¶
El SSH no andaba, sin description de errores.
/usr/sbin/sshd -T
Algo andaba mal con los HostKey, todas las lineas en /etc/sshd/sshd_config estaban comentadas no sé por qué.
sudo ssh-keygen
Agregar al config
HostKey /root/.ssh/id_rsa
Igual no andaba, me decia:
Missing privilege separation directory: /var/run/sshd
Pero la solución fue crear otro directorio:
sudo mkdir /run/sshd
Y ahí finalmente pude hacer:
sudo apt full-upgrade
Y que funcionara... que sistema operativo conchudo por dios.
RPi OS / Raspbian¶
Bajar ISO: https://www.raspberrypi.org/software/operating-systems/
Leer: https://www.raspberrypi.org/documentation/installation/installing-images/linux.md
unzip -p 2020-12-02-raspios-buster-armhf-lite.zip | sudo dd of=/dev/sdd bs=4M conv=fsync status=progress
Headless setup:
- https://www.raspberrypi.org/documentation/configuration/wireless/headless.md
- https://www.raspberrypi.org/documentation/remote-access/README.md
- https://www.raspberrypi.org/documentation/remote-access/ssh/README.md
SSH en dos pasos:
- Montar
boot
partition. - Entrar a la particion y correr:
touch ssh
Con nmap se puede encontrar su IP en la LAN.
Achicar imagenes para una SD más pequeña¶
Eso se puede hacer con PiShrink! https://github.com/Drewsif/PiShrink
LibreELEC / Kodi¶
sudo dd if=LibreELEC-RPi4.arm-9.2.6.img of=/dev/sdc conv=fsync oflag=sync status=progress bs=4M
- https://libreelec.tv/raspberry-pi-4/
- https://forum.libreelec.tv/thread/10313-sudo-dd-if-libreelec-generic-x86-64-8-0-2-img-of-dev-sdb-bs-4m/
Ethernet tether¶
https://raspberrypi.stackexchange.com/a/77605/51575
Android 10¶
Lineage OS 17.1 para el Pi 3 y 4:
OmniROM para el Pi 4:
Android TV:
- https://pimylifeup.com/raspberry-pi-android-tv-lineageos/
- https://all3dp.com/2/android-tv-raspberry-pi-4/
Android Things para el Pi 3:
Configuraciones¶
XFCE4 NetworkManager Applet¶
https://raspberrypi.stackexchange.com/a/67635
Watchdog¶
https://medium.com/@arslion/enabling-watchdog-on-raspberry-pi-b7e574dcba6b
Snap¶
https://snapcraft.io/docs/installing-snap-on-raspbian
Install:
sudo apt update
sudo apt install snapd
sudo reboot
Latest snapd:
sudo snap install core
Test:
snap install hello-world
hello-world
Nextcloud¶
https://snapcraft.io/install/nextcloud/debian
Finalmente decidí instalarlo por Snap, la configuración manual no es fácil de seguir.
Si aparece este error después de hacer apt upgrade
, solo hay que reiniciar el raspberry.
$ sudo snap install nextcloud
error: system does not fully support snapd: cannot mount squashfs image using "squashfs": mount:
/tmp/sanity-mountpoint-869872477: unknown filesystem type 'squashfs'.
sudo
no parece querer ver los comandos en /snap/bin (lista de comandos), como nextcloud.occ, necesarios para configurar desde la línea de comandos.
Pero el puerto se puede configurar por otro lado:
# https://github.com/nextcloud/nextcloud-snap
$ sudo snap set nextcloud ports.http=81
Después de eso, solo hay que entrar a través del navegador y configurar la contraseña del admin.
Onlyoffice no funciona¶
Ellos no bancan la arquitectura ARM del procesador de la raspberry, así que mala suerte
Uptimed¶
Para saber si el raspberry se está reiniciando o en qué momentos estuvo inactivo.
sudo apt install ntp ntpdate uptimed
* http://raspberrypi.tomasgreno.cz/ntp-client-and-server.html
* https://askubuntu.com/a/254846
* https://vitux.com/how-to-install-ntp-server-and-client-on-ubuntu/
* https://codeyarns.com/2015/05/05/track-your-uptimes-using-uptimed/
* https://wiki.gentoo.org/wiki/Uptimed
* https://raspberrypi.stackexchange.com/questions/8231/how-to-force-ntpd-to-update-date-time-after-boot
* https://raspberrypi.stackexchange.com/questions/59860/time-and-timezone-issues-on-raspberry-pi
La fecha y hora del raspberry tiene que estar bien configurada.
HP Printer¶
sudo apt update
sudo apt install cups
sudo usermod -a -G lpadmin pi
sudo cupsctl --remote-any
https://192.168.2.144:631/
Configuracion por IPP¶
Funciona:
Error "File "/usr/lib/cups/filter/hpcups" not available¶
La configuracion con archivo PPD no me funciona :( tira ese error :(
Quizas falte instalar algo:
sudo apt install hpijs-ppds
Pero no funcionó:
ls -la /usr/lib/cups/filter/hpcups
ls: cannot access '/usr/lib/cups/filter/hpcups': No such file or directory
Leí:
Pi Zero W v1.1¶
pi camera v1.3¶
Para el openflexure.
Pruebas de la camara sin OFM:
- https://dantheiotman.com/2017/08/23/using-raspivid-for-low-latency-pi-zero-w-video-streaming/
- https://www.instructables.com/IP-Camera-Using-the-Raspberry-Pi-Zero-Home-Surveil/
- https://github.com/geerlingguy/pi-webcam
- https://www.tomshardware.com/how-to/use-raspberry-pi-as-pc-webcam
- http://www.davidhunt.ie/raspberry-pi-zero-with-pi-camera-as-usb-webcam/
- https://tutorial.cytron.io/2020/12/29/raspberry-pi-zero-usb-webcam/
Identificar la cámara:
v4l2-ctl -d /dev/video0 --list-formats-ext
por resolución.- Con unscript (no me aduvo): https://forums.raspberrypi.com/viewtopic.php?t=248575
- con python: https://raspberrypi.stackexchange.com/questions/46632/how-do-i-detect-the-type-of-camera-installed
- Output:
ov5647
(la 1.3 según el sitio oficial). - Hay que hace
ofm stop
para que esto ande: https://stackoverflow.com/a/63343354/11524079
- Output:
USB ethernet¶
Guia: https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/ethernet-gadget
Aparece esta network en mi PC, pero no me asigna IP:
client@computer $ ip a
12: enp0s20f0u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether a6:00:fa:53:d9:08 brd ff:ff:ff:ff:ff:ff
Entonces agregué un wired connection manualmente en NetworkManager, usando la GUI de KDE:
Despues de conectarme, todo quedó lindo! Y el pi es accesible en la ip 192.168.7.2
.
Ahora estoy siguiendo esto para ahorrarme la configuracion manual: https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/ip-addressing-options
Igual no me auto generó la red, pero al menos no me pidió que pusiera la IP, con "auto" anduvo:
Y uno se puede conectar con ssh pi@10.77.77.77
.
Trobleshooting¶
Al conectar todo a otra compu, no podia ver la red USB, y dmesg decia que quizas estaba mal el cable (no podia hacer "enable" o algo asi). Lo cambié de puerto un par de veces hasta que agarró en uno.
Luego, aunque wifi andaba bien, la webcam por la LAN USB no: se mostraba una imagen y quedaba congelada. Hasta que de casualidad vi que abriendo el stream en dos pestañas a la vez funcionaba joya. KSESHO.
USB (ethernet) webcam¶
Ver:
- https://gist.github.com/justinschuldt/36469e2a89d95ef158a8c4df091e9cb4
- http://www.davidhunt.ie/raspberry-pi-zero-with-pi-camera-as-usb-webcam/
- https://raspberrypi.stackexchange.com/questions/51243/how-do-you-configure-the-pi-zero-to-act-as-a-usb-webcam-using-the-plug-in-camera
- https://github.com/geerlingguy/pi-webcam
- https://www.tomshardware.com/how-to/use-raspberry-pi-as-pc-webcam
- https://hub.packtpub.com/how-to-stream-live-video-with-raspberry-pi/
- https://developpaper.com/how-to-install-mjpg-streamer-and-use-camera-in-raspberry-pie/
Guia de Tom's Hardware¶
La seguí con algunos problemas.
A la guia quizás hay que agregar esto antes, es una dependencia: sudo apt install libraspberrypi-dev
. Ver https://github.com/jacksonliam/mjpg-streamer/issues/203
Mi problema mayor fueron unas falsas commillas de mierda en el comando copiado de la guía:
# Incorrecto
mjpg_streamer -i “./input_raspicam.so” -o "output_http.so"
# Correcto
mjpg_streamer -i "input_raspicam.so" -o "output_http.so"
El comando que uso es este:
# Para especificar el sitio web
# Quizas falte correr antes:
# sudo cp -R mjpg-streamer/mjpg-streamer-experimental/www /usr/local/www
mjpg_streamer -i "input_raspicam.so" -o "output_http.so -w /usr/local/www"
Siguiendo la guía como ejemplo, mi script de inicio queda:
#!/bin/bash
mjpg_streamer -i "input_raspicam.so -x 1280 -y 720 -fps 30" -o "output_http.so -w /usr/local/www"
Hay que agregar /home/pi/Software/startcam.sh
antes de la línea exit 0
en /etc/rc.local
para que se inicie con el sistema.
Y el stream se puede ver visitando http://10.77.77.77:8080/?action=stream
en el browser, o abriendo esa URL como Network Stream en VLC, usando su GUI o desde la terminal:
vlc "http://10.77.77.77:8080/?action=stream"
La URL http://raspberrypi.local:8080/?action=stream
es mas linda y puede funcionar también.
opencv¶
Para pipettin grbl: https://forum.opencv.org/t/installing-opencv-on-raspberry-pi-zero-1-3-w-with-python-picamera/3999
Otros que compilan el source overnight:
- https://www.pyimagesearch.com/2015/12/14/installing-opencv-on-your-raspberry-pi-zero/
- https://raspberrypi.stackexchange.com/questions/112154/installing-opencv-on-a-raspberry-pi-zero
- https://raspberrypi.stackexchange.com/questions/112918/is-rpi-zero-sufficient-for-simple-image-detection-using-tensorflow
RPi 4¶
Ver watchdog y otras cosas de linux para el raspberry acá.
Octoprint en Raspbian¶
https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian/2337
Darnos permiso para usar los puertos serie o algo así:
sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi
# Then logout and login again to apply the change
Bajar, instalar
cd ~
sudo apt update
sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
mkdir -p Software/OctoPrint && cd OctoPrint
virtualenv venv
source venv/bin/activate
pip install pip --upgrade
pip install octoprint
deactivate
Probar que ande:
~/Software/OctoPrint/venv/bin/octoprint serve
Configurar que se inicie con el sistema:
wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init && sudo mv octoprint.init /etc/init.d/octoprint
wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default && sudo mv octoprint.default /etc/default/octoprint
sudo chmod +x /etc/init.d/octoprint
sudo nano /etc/default/octoprint
# DAEMON=/home/pi/Software/OctoPrint/venv/bin/octoprint
sudo update-rc.d octoprint defaults
sudo service octoprint start #{start|stop|restart} no hay enable :(
Prusa i3 MK3 Profile¶
https://community.octoprint.org/t/known-printer-profiles-for-octoprint/3032
Brand Model Form Factor Origin Heated Bed Width Depth Height Custom Bound-ing Box MaxX (inverted?) MaxY (inverted?) MaxZ (inverted?) E Nozzle Extruders Who Notes
Prusa (original) MK3 rect lower left yes 250mm 210mm 200mm X: 0/250, Y: -4/210, Z: 0/200 6000 mm/min 6000 mm/min 200 mm/min 300 mm/min 0.4 mm 1 foosel
Headless WiFi setup¶
Fácil
https://www.raspberrypi.org/documentation/configuration/wireless/headless.md
Si ya está andando, usando un teclado y monitor:
sudo systemctl enable ssh.service
sudo systemctl start ssh.service
Power supply¶
- https://maker.pro/raspberry-pi/tutorial/suninterruptible-power-supply-for-a-raspberry-pi
- https://maker.pro/raspberry-pi/tutorial/raspberry-pi-4-usb-c-power-problems-how-to-charge-your-new-board
- https://www.raspberrypi.org/forums/viewtopic.php?t=248280
Motion webcam monitor¶
https://www.instructables.com/id/How-to-Make-Raspberry-Pi-Webcam-Server-and-Stream-/
También hay que configurar bien el framerate en las opciones de "streaming" para que sea más de 1/segundo.
Le puse un "fan case" tipo framework con un ventilador de 50 mm arriba, conectado a 5V y GND del GPIO. El motor es de 12V pero parece que el RPi puede alimentarlo sin problemas de estabilidad, aunque el ventilador anda mucho más lento que a 12V.
Además de Pololou al CPU y a otro integrado que estaba por ahí. Debería conseguir mejores disipadores .
Mini propeller fan¶
Cabeza cooling reciclando un motorcito de cámara digital rota.
Me basé en un proyecto de Thingiverse y lo achiqué en tinkercad para que quedara bien:
- https://www.thingiverse.com/thing:4243/files
- https://www.tinkercad.com/things/6iLhqCKdqIG-stunning-jofo/edit
Print settings¶
Imprimirlo a 50% de velocidad no anduvo bien, además el agujero impreso no era de 1 mm ni en pedo.
Agrande el agujero a 1.35 mm y el conito de entrada a 1.5 mm de diametro. El diámetro del eje del motor es exactamente 1 mm, pero la impresora no está tan bien calibrada.
Dejé la velocidad de impresión a 100%.