reviews:rt5350f-olinuxino-evb [2015/09/08 19:40] boxtec [RT5350F-OLinuXino und RT5350F-OLinuXino-EVB] |
— (current) |
- | ====== 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: | |
- | | |
- | <file> | |
- | 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 | |
- | ----------------------------------------------------- | |
- | </file> | |
- | ==== 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: | |
- | <code bash> | |
- | cat /sys/class/gpio/relay1/value | |
- | </code> | |
- | | |
- | Das Setzen eines GPIO Pins geht ähnlich einfach mit z.B. | |
- | <code bash> | |
- | echo 1 > /sys/class/gpio/relay1/value | |
- | </code> | |
- | | |
- | | |
- | ===== 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. | |
- | | |
- | <code bash> | |
- | #!/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 "<html>" | |
- | | |
- | 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 "<head>" | |
- | echo "<title>IP Switch Olinuxino</title>" | |
- | | |
- | if [[ "$cmd" = "SetPower" ]]; then | |
- | setpower $port $state | |
- | echo "<meta http-equiv='refresh' content='0,URL=/cgi-bin/powerset.cgi' >" | |
- | fi | |
- | | |
- | echo "</head><body>" | |
- | | |
- | 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 "<h2>Set Power:</h2>" | |
- | echo "<form action='/cgi-bin/powerset.cgi' method='get'>" | |
- | echo "<input type='hidden' name='cmd' value='SetPower' />" | |
- | echo "<input type='hidden' name='port' value='0' />" | |
- | echo "<input type='hidden' name='state' value=$newstate1 />" | |
- | echo "Relay1: <input type='checkbox' name='relay1' value=$pwr0 $checked1 onchange='submit();'/>" | |
- | echo "</form>" | |
- | | |
- | echo "<form action='/cgi-bin/powerset.cgi' method='get'>" | |
- | echo "<input type='hidden' name='cmd' value='SetPower' />" | |
- | echo "<input type='hidden' name='port' value='1' />" | |
- | echo "<input type='hidden' name='state' value=$newstate2 />" | |
- | echo "Relay2: <input type='checkbox' name='relay2' value=$pwr1 $checked2 onchange='submit();'/>" | |
- | echo "</form>" | |
- | | |
- | echo "</body></html>" | |
- | </code> | |
- | | |
- | 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]] | |