====== RT5350F-OLinuXino / RT5350F-OLinuXino-EVB ====== {{ http://cdn.boxtec.ch/images/33602.jpg?width=240 }} Das [[http://shop.boxtec.ch/rt5350f-olinuxino-openwrt-p-42480.html|RT5350F-OLinuXino]] und das darauf basierende Evaluation Board [[http://shop.boxtec.ch/rt5350f-olinuxino-evb-openwrt-p-42481.html|RT5350F-OLinuXino-EVB]] bieten jede Menge Schnittstellen sowie einen programmierbaren 5-port Ethernet Switch zu äusserst kleinem Preis. Als Betriebssystem ist [[https://openwrt.org/|OpenWRT]] vorinstalliert. Als besonderes Gadget enthält das Evaluation Board auch noch zwei integrierte 250V/10A Relais und einen Taster als Eingabemöglichkeit. Leider sind damit auch alle freien GPIOs des RT5350F verbraucht. ===== Erste Schritte ===== Die verfügbare Dokumentation zum Board ist leider etwas bescheiden, daher geben wir hier ein paar hilfreiche Informationen zum Einstieg. ==== Serielle Konsole ==== Die erste Hürde stellt sich, wenn man versucht zum ersten Start die serielle Konsole über einen handelsüblichen 3.3V USB-Serial Adapter wie dem Foca herzustellen - die Beschriftung der Pins auf dem vorliegenden Port benennt die Pins als GND, RXD2 und RXD2. Die richtige Belegung (vom PCB Rand nach innen) ist: | Olinuxino-RT5350F | GND | RXD | TXD | | USB-Serial | GND | TXD | RXD | {{ :reviews:rt5350f-evb1.jpg?200 |Olinuxino-RT5350F mit USB-Serial}} Damit sei auch bereits erwähnt, dass das TXD des Olinuxino natürlich ans RXD des USB-Serial Adapters gehört und umgekehrt. Als Geschwindigkeit ist 57600 Baud voreingestellt. ==== Spannungsversorgung ==== **Das Board darf nur mit 5VDC gespiesen werden!** Einmaliges Speisen mit höherer Spannung füḧrt laut Anwenderberichten dazu, dass das Gerät nur noch zur Indianerkommunikation mit Rauchzeichen taugt! Wird dies beachtet, steht einem ersten Start des Boards nichts mehr im Weg. ===== Erstes Booten ===== Wenn das Board eingeschaltet wird, sollte man auf der seriellen Konsole den Bootvorgang beobachten können. Mit einem beherzten Enter wird die Konsole aktiviert und erlaubt uns das System zu inspizieren: Please press Enter to activate this console. BusyBox v1.23.2 (2015-08-24 08:59:39 EEST) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- CHAOS CALMER (15.05-rc3, r46591) ----------------------------------------------------- * 1 1/2 oz Gin Shake with a glassful * 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup ----------------------------------------------------- ==== Default Konfiguration ==== Das Board wird einer OpenWrt Standardkonfig ausgeliefert, das heisst die beiden vorhandenen LAN Ports sind als LAN und WAN konfiguriert und das Board agiert als NAT-Router mit Firewall, die WiFi Schnittstelle ist per default deaktiviert. Die LAN Schnittstelle ist auf **192.168.1.1/24** konfiguriert, die WAN Schnittstelle darauf eine Adresse per DHCP zu beziehen. Die Netzwerkkonfiguration kann nun entweder durch bearbeiten der Datei ''/etc/config/network'' gemäss der OpenWrt Dokumentation bearbeitet werden - oder ab man verbindet seinen PC/Notebook mit der LAN Schnittstelle des Boards und greift mit Hilfe des OpenWrt eigenen Konfig Tools 'Luci' über die IP 192.168.1.1 mit dem Browser auf das Board zu: {{ :reviews:rt5350f-evb-luci1.jpg?480 |OpenWrt Luci GUI}} Die Luci Oberfläche ermöglicht die einfache Konfiguration des Routers und z.B. das einfache Aktivieren und Konfigurieren der WiFi Schnittstelle: {{ :reviews:rt5350f-evb-luci2.jpg?540 |WiFi Konfiguration in Luci}} ==== GPIO / Relais ==== Die GPIO Pins und damit auch die Relais sind im sysfs über Dateihandles zugänglich. So kann man den Status von Relais 1 z.B. auslesen mit: cat /sys/class/gpio/relay1/value Das Setzen eines GPIO Pins geht ähnlich einfach mit z.B. echo 1 > /sys/class/gpio/relay1/value ===== Möglichkeiten / Anwendungsideen ===== Das Olinuxino-RT5350F-EVB erlaubt es rel. einfach einen Ethernet Power Switch aufzubauen, das heisst eine Steuerung von zwei bis zu 230V Lasten über den Webbrowser oder eine eigene Netzwerkanwendung. ===== Beispiel: IP Power Switch ===== Nachfolgendes Code Beispiel kann unter ''/www/powerset.cgi'' gespeichert werden und mit ''chmod 755 /www/powerset.cgi'' ausführbar gemacht werden. Dieser schnelle Hack erlaubt das Ein- und Ausschalten der beiden Relais auf dem RT5350F-Olinuxino über den Webbrowser: **Hinweis:** Der Code ist als schnelle Demo und Anregung gedacht und keinesfalls für produktive Umgebungen. #!/bin/sh # # $Id: powerset.cgi,v 1.1 2015-09-08 11:08:27 boxtec Exp $ PWR1=/sys/class/gpio/relay1/value PWR2=/sys/class/gpio/relay2/value getpower () { pwr0=$(cat $PWR1) pwr1=$(cat $PWR2) } setpower () { if [[ "$1" == "0" ]]; then echo $2 > $PWR1 elif [[ "$1" == "1" ]]; then echo $2 > $PWR2 fi } echo "Content-type: text/html" echo echo -n "" URLARGS=$(echo $QUERY_STRING | awk -F '&' '{print $1 " " $2 " " $3 " " $4}') cmd=$(echo $URLARGS | cut -d " " -f1 | cut -d "=" -f2) port=$(echo $URLARGS | cut -d " " -f2 | cut -d "=" -f2 ) state=$(echo $URLARGS | cut -d " " -f3 | cut -d "=" -f2 ) getpower echo "" echo "IP Switch Olinuxino" if [[ "$cmd" = "SetPower" ]]; then setpower $port $state echo "" fi echo "" getpower if [[ $pwr0 == "1" ]]; then checked1="checked='checked'" newstate1="0" else checked1="" newstate1="1" fi if [[ $pwr1 == "1" ]]; then checked2="checked='checked'" newstate2="0" else checked2="" newstate2="1" fi echo "

Set Power:

" echo "
" echo "" echo "" echo "" echo "Relay1: " echo "
" echo "
" echo "" echo "" echo "" echo "Relay2: " echo "
" echo ""
Das sieht dann in etwas so aus und ermöglicht das komfortable Schalten von grossen Lasten über den Webbrowser: {{ :reviews:olinuxino-pwr-switch1.png?300 |IP Switch}} ===== Fazit ===== Das Olinuxino-RT5350F bietet sehr viele Möglichkeiten. Dass einem da in dieser kleinen Form ein programmierbarer 100Mbit/s Switch mit integriertem WiFi Access Point in die Finger kommt ist erstaunlich und macht jegliche IoT Projekte einfach. Der Stromverbrauch des Boards liegt bei offenen Relais, deaktiviertem WiFi bei unter 20mA. Wenn WiFi eingeschaltet ist, sind etwa 50-80mA im Betrieb zu erwarten. Je angezogenes Relais fallen etwa weitere 20-40mA an. Es sind zwar viele Schnittstellen wie I2C, USB etc. vorhanden, einen freien GPIO Pin für eigene Anwendungen sucht man aber vergebens bei der EVB Variante. Beim reinen RT5350F Modul sind 3 GPIO Pins vorhanden die beim EVB für Relais und Taster verwendet werden. Wenn man nun z.B. das Board um einen einfachen Temperatursensor erweitern möchte wirds also mit der EVB Version schon schwerer - der muss über eine der bestehenden Schnittstellen ans System. Der Versuch testweise einen Arduino Uno über USB anzuschliessen und über USB-seriell Messwerte an das Board zu übermitteln scheitert an der Tatsache, dass das OpenWrt im RT5350F-Olinuxino ohne den CDC Modem Treiber kommt - es müsste also erst ein neues OpenWrt mit dem entsprechenden Modulen kompiliert werden. Trotzdem, alles in allem ein leistungsfähiges Board fürs Heimnetzwerk und IoT Projekte - wenn auch mit gewissen Einschränkungen. ===== Referenzen / Links ===== * [[http://shop.boxtec.ch/rt5350f-olinuxino-evb-openwrt-p-42481.html|Produkteseite]] * [[https://www.bidouilliste.com/blog/2015/07/22/FreeBSD-on-Olimex-RT5350F-OLinuXino/|Installation von FreeBSD auf dem RT5350F-Olinuxino]] * OpenWrt: * [[http://wiki.openwrt.org/doc/uci/network/switch|OpenWrt: Switch Configuration]] * [[http://wiki.openwrt.org/doc/uci/network|OpenWrt: Network Configuration]] * [[http://wiki.openwrt.org/doc/uci/wireless|OpenWrt: Wireless Configuration]] * [[http://wiki.openwrt.org/doc/recipes/bridgedclient|OpenWrt: Bridge Configuration]] * [[http://wiki.openwrt.org/doc/hardware/port.gpio|OpenWRT: GPIO]] * [[https://www.olimex.com/wiki/RT5350F-OLinuXino|RT5350F-Olinuxino Wiki]]