Raspberry Pi

Telldus duo raspberry pi

Raspberry Pi och en Tellstick
Tellstick från Telldus Technologies AB finns i tre varianter:
Tellstick (classic)
Tellstick Duo
Tellstick Net
Tellstick och Tellstick Duo kopplas till en dator (i vårt fall en Raspberry Pi) och kan sedan användas för att styra trådlösa stömbrytare och dimmers. Det fungerar med många olika märken av strömbrytare. Tellstick (classic) kan bara sända signaler medan Tellstick Duo också kan ta emot signaler.
Tellstick Net motsvarar Tellstic Duo men har “inbyggd dator” och är därför inte intressant ihop med Raspberry Pi.
Steg 1
Installera först bibliotek för FTDI. Programvaran från Telldus använder seriell USB kommunikation med Tellstick och använder de här biblioteken för detta.
sudo apt-get install libftdi1 libftdi-dev
Installera sedan libConfuse som används av programvaran från Telldus för att läsa textbaserade konfigurationsfiler.
sudo apt-get install libconfuse0 libconfuse-dev
Steg 2
Se till att din Tellstick är inkopplad i din Raspberry Pi. Vi behöver ta reda på om Raspbian har hittat och identifierat Tellstick-hårdvaran. Lista alla USB-enheter som hittats med kommandot:
lsusb
En Telldus Classic-sticka ska se ut så här i listan:
Bus 001 Device 00X: ID 1781:0c30 Multiple Vendors Telldus TellStick
medan en Tellstick Duo ser ut så här:
Bus 001 Device 00X: ID 1781:0c31 Multiple Vendors Telldus TellStick Duo
1781 är identifiering av tillverkaren och 0c30 eller 0c31 identifierar produkten.
Då ska vi manuellt ladda kernel-drivrutinsmodulen för FTDI med parametrar för vår Tellstick. Byt ut produkt-ID till 0x0c30 om du har en Tellstick (classic). Jag använder Tellstick Duo.
sudo modprobe ftdi_sio vendor=0x1781 product=0x0c31
Lista alla laddade kernel-moduler med kommandot:
lsmod
I mitt fall börjar listan så här och ftdi_sio har laddats.
Module Size Used by
ftdi_sio 29846 0
usbserial 26909 1 ftdi_sio
[…] För att modulen ska laddas automatiskt måste vi lägga till den i filen /etc/modules. Lägg till en rad som sr ut så här: ftdi_sio vendor=0x1781 product=0x0c31. Byt produkt-ID om det behövs.
sudo nano /etc/modules
Så här ser min fil ut när jag är klar:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with “#” are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
ftdi_sio vendor=0x1781 product=0x0c31
Steg 3
Då ska vi hämta programvaran telldus-core från Telldus hemsida. Vi hämtar den som källkod och kommer att kompilera den för Raspbian.
Först behöver vi hämta cmake för Raspbian, som vi kommer att använda vid kompileringen:
sudo apt-get install cmake
Sen ska vi hämta källkoden till telldus-core. När jag skriver det här är version 2.1.2 aktuell. Kontrollera på hämtningssidan vilken som är den senaste versionen och byt till den i följande kommandon om det kommit ny.
wget http://download.telldus.se/TellStick/Software/telldus-core/telldus-core-2.1.2.tar.gz
Packa upp den hämtade filen med följande kommando:
tar xfz telldus-core-2.1.2.tar.gz
Flytta till katalogen med den uppackade källkoden och kör cmake. När cmake är klar kompilerar du koden med make (ett kommando i taget, missa inte blanksteget och punkten efter cmake):
cd telldus-core-2.1.2/
cmake .
make
Steg 4
Dags att installera den kompilerade programvaran:
sudo make install
Skapa de symboliska länkar som behövs med kommandot ldconfig:
sudo ldconfig
Nu behöver vi skapa ett startupskript för Telldus-tjänsten. Skapa filen och börja editera den med följande kommando:
sudo nano /etc/init.d/telldusd
Klistra in följande kod i filen och spara den sedan.
#! /bin/sh
### BEGIN INIT INFO
# Provides: telldusd
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Tellstick service daemon
# Description: Tellstick service daemon controlling remove switches
### END INIT INFO

# Author: Kjell Haveskold (nimmis)

# Do NOT “set -e”

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin
DESC=”Tellstick service daemon”
NAME=telldusd
DAEMON=/usr/local/sbin/$NAME
DAEMON_ARGS=””
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x “$DAEMON” ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon –start –quiet –pidfile $PIDFILE –exec $DAEMON –test > /dev/null \
|| return 1
start-stop-daemon –start –quiet –pidfile $PIDFILE –exec $DAEMON — \
$DAEMON_ARGS \
|| return 2
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon –stop –quiet –retry=TERM/30/KILL/5 –pidfile $PIDFILE –name $NAME
RETVAL=”$?”
[ “$RETVAL” = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon –stop –quiet –oknodo –retry=0/30/KILL/5 –exec $DAEMON
[ “$?” = 2 ] && return 2
# Many daemons don’t delete their pidfiles when they exit.
rm -f $PIDFILE
return “$RETVAL”
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon –stop –signal 1 –quiet –pidfile $PIDFILE –name $NAME
return 0
}

case “$1” in
start)
[ “$VERBOSE” != no ] && log_daemon_msg “Starting $DESC” “$NAME”
do_start
case “$?” in
0|1) [ “$VERBOSE” != no ] && log_end_msg 0 ;;
2) [ “$VERBOSE” != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ “$VERBOSE” != no ] && log_daemon_msg “Stopping $DESC” “$NAME”
do_stop
case “$?” in
0|1) [ “$VERBOSE” != no ] && log_end_msg 0 ;;
2) [ “$VERBOSE” != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc “$DAEMON” “$NAME” && exit 0 || exit $?
;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave ‘force-reload’ as an alias for ‘restart’.
#
#log_daemon_msg “Reloading $DESC” “$NAME”
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the “reload” option is implemented then remove the
# ‘force-reload’ alias
#
log_daemon_msg “Restarting $DESC” “$NAME”
do_stop
case “$?” in
0|1)
do_start
case “$?” in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo “Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}” >&2
echo “Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}” >&2
exit 3
;;
esac
Vi måste sätta rättigheter på filen så att den blir körbar:
sudo chmod +x /etc/init.d/telldusd
Sen installerar vi filen i startsekvensen så att den startas automatiskt:
sudo update-rc.d telldusd defaults
Om du inte vill starta om din Raspberry Pi nu, kan du starta Telldus-tjänsten med följande kommando:
/etc/init.d/telldusd start
För mig dög det inte att starta om tjänsten, jag fick boota om och bryta strömmen för allt skulle hoppa igång. Jag vet inte vad det berodde på men det kan handla om strömförsörjningen. Alla mina USB-enheter, inklusive Raspberry Pi, får sin ström från en USB-hub.
Steg 5
Nu måste vi konfigurera telldus-core för våra strömbrytare. Detta görs i filen /etc/tellstick.conf.
sudo nano /etc/tellstick.conf
Jag har bara några strömbrytare från Nexa av två modeller: PBR-2300 för inomhusbruk och LGDR-3500 för utomhusbruk. Båda modellerna är “självlärande”.
Här nedan följer min testversion av /etc/tellstick.conf:
user = “nobody”
group = “plugdev”
ignoreControllerConfirmation = “false”

device {
id = 1
name = “Testbrytare PBR-2300”
protocol = “arctech”
model = “selflearning-switch:nexa”
parameters {
house = “123456”
unit = “1”
}
}

device {
id = 2
name = “Testbrytare LGDR-3500”
protocol = “arctech”
model = “selflearning-switch:nexa”
parameters {
house = “123456”
unit = “2”
}
}
Efter varje gång man ändrar i /etc/tellstick.conf måste man starta om Telldus-tjänsten med kommandot:
sudo /etc/init.d/telldusd restart
Parametrarna i konfigurationsfilen har jag hittat på. Hus-koden house ska vara ett nummer mellan 1 och 67108863. Enhets-koden unit ska vara ett nummer mellan 1 och 16. Sedan måste man “lära” mottagaren sina parametrar genom att sätta dem i inlärningsläge. På LGDR-3500 finns det en learn-knapp dom man startar inlärningen med. En röd lysdiod blinkar under det några sekunder långa inlärningsläget. PBR-2300 går automatiskt in i inlärningsläge när den ansluts till vägguttaget och en röd lysdiod blinkar under några sekunder.
För att lära strömbrytaren med id = 1 sin kod försätter man den i inlärningsläge och ger kommandot:
tdtool –learn 1
och sen detsamma den med id = 2:
tdtool –learn 2
När strömbrytarna är upplärda så slår de av och på sig själva ett par gånger under två sekunder.
Därefter kan man styra dem med kommandot:
tdtool –on 1
respektive
tdtool –off 1
Om du har andra typer av enheter måste /etc/tellstick.conf anpassas till dem. Läs mer om detta i Telldus Wiki.
För med hjälp om kommandot tdtool skriv:
tdtool –help

http://tummelplatsen.se/wiki/Raspberry_Pi_och_en_Tellstick

Octoprint Update

Hur uppdatera Octoprint

https://github.com/foosel/OctoPrint/wiki/Setup-on-a-Raspberry-Pi-running-Raspbian

Updating

In order to update your installation to the current status from the repository, perform the following steps:

Password: raspberry

cd ~/OctoPrint/
git pull
sudo pip install -r requirements.txt
If you want to switch to a different branch, e.g. devel or a feature branch, perform the following commands:

cd ~/OctoPrint/
git pull
git checkout
sudo pip install -r requirements.txt
The stable branch is master, the development branch is devel, feature branches vary depending on the current development focus.

RepRap printing

Reprap printing from Raspberry Pi

Raspberry Pi controlling my RepRap

I just received my Raspberry Pi a few days ago and after seeing fellow RepRap-er RichRap’ssuccess, I wanted to start printing from it.  Since the RPi runs Linux (Specifically a specialty distro of Debian called Raspbian) I wanted to lay out the steps it took for me to get running.

Items needed:

4GB SD card or larger. (Raspberrypi.org suggests atleast 2GB, but trust me you’ll need more with the extra dependencies needed to run the needed Reprap programs)
Raspberry Pi
Micro USB powersupply (Its crucial to have at least 1A capacity, anything less and you’ll have issues)
Powered USB Hub (make sure it provides plenty of power, mine is capable of 2A)
Keyboard
Mouse
RepRap.  (I’m running RAMPS 1.4 w/Marlin Firmware, but anything that’ll connect to Pronterface should be fine.)

Initial RPi set up:

First and foremost, upon initial starting up your RPi, expand the partition to the full SD capacity.  It’ll save you a lot of hassle later on.

Optional:  Overclock the RPi.  This isn’t 100% neccessary but it will make future steps quicker.  There are multiple tutorials on this but it’s pretty easy.

From your root terminal enter:

sudo nano /boot/config.txt

This brings up the config file and allows you to overclock easily.
Scroll down to the bottom of the screen and type:

arm_freq=800
sdram_freq=500

Then press Cntrl O to write the file.
Then press Enter.

This will bring you back to the first menu, so now you can exit by pressing Cntrl X.
You should be back at the normal terminal screen now so it’s time to reboot:
Type reboot and press enter.

Once you reboot you should be running an overclocked Pi.  You can adjust the arm_freq higher (up to ~900.)  I have mine currently running at 850.  It worked at 900, but I started to have some booting issues.

Installing Dependencies:

You’ll need a few dependencies to run Pronterface.
Once again go back to root terminal and type:

sudo apt-get install python-serial

Note:  After all terminal commands you need to press enter.  This should be obvious so I won’t list that in the directions from this point on

This will install PySerial.  Once this is done type:

sudo apt-get install python-wxgtk2.8

This will install wxPython.
Both of these will take a bit to download and install so be patient.  You’ll know your done when you get back to the main terminal prompt.

Now is a good time to reboot.  Once again this can be done from terminal by simply typing “reboot” or “sudo reboot” if your not in sudo.

Downloading Pronterface:

Open up the web browser and navigate over to PrintRun on github.  Click downloads and save. (I’m sure there is a way to do this from terminal, I just didn’t know how.)

Now open up the file manager and open up /home/pi  and find kliment’s folder.

Scroll all the way down until you see pronterface.py and double click.  Then click execute and wait a few seconds.

Pronterface should now be up and running.

Connecting to printer.

On another computer change the baud rate on your firmware to 115200 if it isn’t already.  250000 won’t work.

Some of these steps may not be needed but they don’t take too much time so just go ahead and follow along.

Close Pronterface if you have it open.

Reboot (I like to make sure everything is fresh and clean before trying to connect.  I had some issues before.)

Plug in your printer.  Then open Pronterface.  You should see the appropriate port in the port box.

Assuming you haven’t run any other serial com ports yet, it should end in 0.

Now click connect.

This is where I’ve had some difficulties.  I’m not sure if they stem from power issues or if its a bug in the system some where.

It may take a bit to connnect.  Or it may not connect.  Sometimes I need to close pronterface and restart a couple times before it finally connects.  But eventually it will connect.

From this point on, it’s the same as it would be on any other computer.  Set your temps, load your G codes and print yourself a yoda.

I have attempted to install Slic3r but no luck so far.  I’m sure Skeinforge would be easier to install since it’s python, but thats slow on my regular computer so I figure it’ll put it off for now.

Tightvnc server Raspberry pi

Install and Configure Tight VNC Server

1. Launch LXTerminal
2. Type: sudo apt-get update
3. Type: sudo apt-get install tightvncserver
4. Say YES to continue
5. Type: vncserver :1
6. Set the VNC password
7. Say NO to view-only password
8. Type: cd /home/pi
9. Type: cd .config
10. Type: mkdir autostart
11. Type: cd autostart
12. Type: nano tightvnc.desktop
13. Enter the following lines:
[Desktop Entry] Type=Application
Name=TightVNC
Exec=vncserver :1
StartupNotify=false
14. Press Ctrl-X, then Y, then Enter to Save and Exit
15. Close LXTerminal

Installera telldus center rasp

http://www.telldus.com/forum/viewtopic.php?f=23&t=2382#p17812

Följ denna

——————

Steg 1: Ladda ner OS till Raspberry Pi
Jag började med att ladda ner senaste versionen av Raspbian “wheezy” från www.raspberrypi.org och följa instruktionerna för hur man skriver denna till ett SD kort. Versionen jag laddade ner i skrivande stund är 2012-10-28-wheezy-raspbian.zip

 

Steg 2: Konfigurera bas OS
Satte i det förberedda SD kortet (i detta fall använde jag ett 8GB kort) i raspberry pi enheten och bootade och följde den installations guide som kom upp vid boot för att som exmeple sätta nytt lössenord, tidszone, tangentbords layout osv.

 

Steg 3: Updatera OS
När man sedan rebootat efter installationen bör man updatera OS:et så man har dom senaste paketen installerade. Det gör man enligt nedan

sudo apt-get update (för att updatera paket listan över tillgängliga paket)

sudo apt-get dist-upgrade (detta kollar mot den nya paketlistan vad som kommit nytt och behöver updateras kan även köra upgrade om man vill det då tar den bara “säkra” saker)

Svar yes eller ja på frågan om du vill updatera systemet. Detta kan ta en stund då det är en del paket att installera oftast när man ny inatsllerat. När updateringen är klar skadar det inte med en omstart för att aktivera eventuella ny kärna.

 

Steg 4: Installera telldus-core
Nu är det daxs att fixa in telldus-core som är det paket som behövs för att styra sin tellstick classic eller tellstick duo. Jag letade en del innan jag hittade hur man gör då det vanliga sättet inte fungerar då det är fel arkitektur så man måste kompilera paketet från källkod.

Börja med att lägga till kälkodskälla i din /etc/apt/sources.list.d/telldus.list på en ny rad enligt nedan

sudo nano /etc/apt/sources.list.d/telldus.list
deb-src http://download.telldus.com/debian/ stable main

Nu måste vi ladda ner nyckeln som signerar denna källa från telldus. Ladda ner nyckelfilen med nedan kommando.

wget http://download.telldus.se/debian/telldus-public.key
Sedan lägg in nyckeln med nedan kommando.

sudo apt-key add telldus-public.key

Efter detta kör nedan komando för att updatera din paketlista.

sudo apt-get update
Nu bör den updatera och lägga med telldus källkods paket.

Nu bör man installera build-essential dock bör redan detta vara installerat men kör kommandot för att dubbelkolla så ni har paketen installerade
sudo apt-get install build-essential

Installera alla beroenden
sudo apt-get build-dep telldus-core

Nästa installera övriga beroenden
sudo apt-get install cmake libconfuse-dev libftdi-dev help2man

Skapa nu en temporär katalog du kan jobba i med telldus kompileringen exempelvis enligt nedan
mkdir -p ~/telldus-temp
cd ~/telldus-temp

Nästa steg nu är att ladda ner källkoden och kompilera den. Detta moment kommer ta en del tid då Raspberry Pi som känt inte har så snabb CPU :) så en fika kan vara på sin plats.
sudo apt-get –compile source telldus-core (ska vara ––compile detta syns inte som det ska i bloggen)

När kompileringen gått klart och allt förhoppningsvis gått bra kör nedan för att installera dom kompilerade paketen
sudo dpkg –install *.deb (ska vara ––install detta syns inte som det ska i bloggen)

Nu kan man om man vill radera sin temp mapp man skapade för sin kompileringen gör enligt nedan isåfall
cd ; rm ~/telldus-temp

Om alla punkter i steg 4 gått som dom ska har du nu installerat telldus-core och bör ha en demon som autostartar under /etc/init.d/telldusd.

 

(Om inte tidigare utfört):
wget http://download.telldus.se/debian/telldus-public.key
sudo apt-key add telldus-public.key

sudo nano /etc/apt/sources.list.d/telldus.list
deb-src http://download.telldus.com/debian/ stable main

sudo apt-get install qt4-dev-tools
sudo apt-get install xsltproc
sudo apt-get install docbook-xsl
mkdir -p ~/tellduscenter-temp
cd ~/tellduscenter-temp
sudo apt-get build-dep tellduscenter
sudo apt-get –compile source tellduscenter
sudo dpkg –install *.deb