Raspberry Pi und RFDuino – Kommunikation über Bluetooth LE

Kompilieren der aktuellen bluez-sourcen:

git clone https://git.kernel.org/pub/scm/bluetooth/bluez.git
./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-library --with-systemdsystemunitdir=/lib/systemd/system --with-systemduserunitdir=/usr/lib/systemd
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-library --disable-systemd

Build und Konfiguration gemäss Linux from scratch:

git clone https://git.kernel.org/pub/scm/bluetooth/bluez.git
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-library --disable-systemd
make
sudo make install
sudo ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin
sudo install -v -dm755 /etc/bluetooth
sudo install -v -m644 src/main.conf /etc/bluetooth/main.conf

Den Bluetooth-Daemon automatisch starten und stoppen:

wget http://www.linuxfromscratch.org/blfs/downloads/svn/blfs-bootscripts-20140827.tar.bz2
bzip2 -d ...
tar xvf ...
sudo make install-bluetooth

Die Konfiguration liefert unter anderem folgenden Output für D-Bus:

checking for DBUS... yes
checking D-Bus configuration directory... /etc
checking D-Bus system bus services dir... /usr/share/dbus-1/system-services
checking D-Bus session bus services dir... /usr/share/dbus-1/services

Den Code Kompilieren und anschliessend installieren:

make
sudo make install
sudo ln -svf /usr/local/libexec/bluetooth/bluetoothd /usr/sbin
libtool: install: /usr/bin/install -c profiles/cups/bluetooth /usr/lib/cups/backend/bluetooth
 /bin/mkdir -p '/etc/dbus-1/system.d'
 /usr/bin/install -c -m 644 src/bluetooth.conf '/etc/dbus-1/system.d'
 /bin/mkdir -p '/usr/share/dbus-1/services'
 /usr/bin/install -c -m 644 obexd/src/org.bluez.obex.service '/usr/share/dbus-1/services'
Reloaded configuration
 /bin/mkdir -p '/usr/share/dbus-1/system-services'
 /usr/bin/install -c -m 644 src/org.bluez.service '/usr/share/dbus-1/system-services'
 /bin/mkdir -p '/usr/include/bluetooth'
sudo hciconfig hci0 up
sudo hcitool dev
sudo hcitool lescan

sudo gatttool --device=xx:xx:xx:xx:xx:xx --addr-type=random --interactive

Aufruf und Ausgabe im gatttool:

[xx:xx:xx:xx:xx:xx][LE]> char-read-uuid 2221
handle: 0x000e 	 value: fd 03 00 00 00 00 00 00 00 00 00 00

Links:

Desktop und xserver aus Raspbian entfernen

Nach einer Installation des Standard-Raspbian Images war auf meiner 4GB SD-Card bereits über 60% des Speichers verbraucht. Deshalb habe ich mich mal schlau gemacht, wie man den xserver und möglichst alle Desktoppakete entfernen kann.

Mit diesen drei Removes konnte ich den Footprint wieder auf etwas mehr als 1GB reduzieren:

sudo apt-get remove --auto-remove --purge libx11-.*
sudo apt-get remove desktop-base lightdm lxappearance lxde-common lxde-icon-theme lxinput lxpanel lxpolkit lxrandr lxsession-edit lxshortcut lxtask lxterminal obconf openbox raspberrypi-artwork xarchiver xinit xserver-xorg xserver-xorg-video-fbdev
sudo apt-get remove gnome-themes-standard-data
sudo apt-get remove desktop-file-utils xdg-utils
sudo apt-get autoremove
sudo apt-get autoclean

Quelle: http://raspberrypi.stackexchange.com/questions/4745/how-to-uninstall-x-server-and-desktop-manager-when-running-as-headless-server

Installieren von Bluez 5.x unter Debian

Bluez ist via apt-get nur in der Version 4.x verfügbar. Damit Bluetooth LE funktioniert ist Bluez in der Version 5.x nötig. Deshalb hier eine kurze Anleitung wie Bluez 5.18 unter Debian installiert werden kann. DIese Anleitung wurde auch auf einen Raspberry Pi erfolgreich getestet.

Benötigte Libraries installieren

sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev
libudev-dev libical-dev libreadline-dev

Aktuelle Version von Bluez herunterladen

Die aktuellste Version findet man unter https://www.kernel.org/pub/linux/bluetooth/

sudo mkdir bluez
cd bluez
sudo wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.18.tar.xz

Bluez Entpacken und installieren

tar -xvf bluez-5.18.tar.xz
cd bluez-5.18
./configure --disable-systemd
sudo make
sudo make install

Entwicklung von Arduino- und AVR-Projekten mit Eclipse

Glücklicherweise existiert bereits ein wunderbarer Blog über das Entwickeln von Arduino-Projekten in Eclipse unter Mac OS X:

http://robots.dacloughb.com/project-1/setting-up-the-arduino-eclipse-environment-on-mac-os-x-lion/

Eine weitere Möglichkeit ist Eclipse nur mit avr-gcc, avrdude und avr-eclipse zu nutzen:

http://interactive-matter.eu/how-to/developing-software-for-the-atmel-avr-with-avr-eclipse-avr-gcc-avrdude/

Wichtig – Nach dem Einrichten von Eclipse und AVR muss das Verzeichnis /var/lock/ erstellt und mit chmod 777 /var/lock angepasst werden. Ansonsten erscheint immer die Meldung “Serial Port Already in Use”

Weitere Infos:

http://playground.arduino.cc/Code/Eclipse

Eclipse unter Mac OSX installieren

  • Die passende Distribution von Eclipse hier herunterladen: http://www.eclipse.org/downloads/
  • Das heruntergeladene tar.gz extrahieren
  • Den extrahierten Folder in den Ordner Programme kopieren
  • Danach sollte Eclipse via Launchpad sichtbar sein

Falls das Kopieren via Finder nicht klappen sollte:

  • den extrahierten Ordner in einer Shell kopieren: sudo cp /Users/myUser/Downloads/eclipse /Applications/
  • Gruppe und Benutzer des Verzeichnis anpassen: sudo chown -R root:wheel
  • In a shell copy the extracted folder in the Applications folder (i.e: sudo cp /Users/gafnerpa/Downloads/eclipse /Applications/)
  • Change group and user on the folder: sudo chown -R root:wheel
  • After this you should see the Eclipse icon in the launchpad.

Sources: