Skip to content

Raspberry Pi

Hay data sobre los proyectos del Raspberry Pi en la sección de DIY.

Cosas para probar:

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:

SSH en dos pasos:

  1. Montar boot partition.
  2. 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

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:

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

https://nextcloud.com/box/

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:

20210525-173940.png

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í:

20210525-173824.png

Pi Zero W v1.1

pi camera v1.3

Para el openflexure.

Pruebas de la camara sin OFM:

Identificar la cámara:

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:

20211105-080443.png

20211105-080456.png

Despues de conectarme, todo quedó lindo! Y el pi es accesible en la ip 192.168.7.2.

20211105-080623.png

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:

20211105-081732.png

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:

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"

20211105-083746.png

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:

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

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 🤷.

20200125-172912.png

Mini propeller fan

Cabeza cooling reciclando un motorcito de cámara digital rota.

img_6220.png

Me basé en un proyecto de Thingiverse y lo achiqué en tinkercad para que quedara bien:

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%.