====== GL-MT300N-V2 ====== Ein einfacher, billiger, sehr kleiner Minirouter für vielfältige Anwendungen, nicht nur als Router. Derzeit nur bei [[https://amzn.to/2WLy6JL|Amazon]] und Ebay erhältlich. ===== Hardware ===== * MTK 7628NN @580Mhzz * OpenWrt * Stromversorgung über USB * einfach zu öffnendes Gehäuse * Pins für RS-232-Schnittstelle, 3,3V * gebohrte Lötstellen für zusätzliche Pins Stromversorgung und GPIOs * zwei interne Antennen und Anschlussbuchsen für externe Antennen * 128 MB RAM, 16 MB Flash 2 Netzwerk (WAN, LAN), 1 USB2 * Abmessungen 58*58*25mm ==== Pins ==== | gnd | rx | tx | 3,3V | | GPIO 4 (SCLK) | GPIO 5 (SDA) | GPIO 45 | GPIO 46 | ==== Taster ==== * GPIO 1 ==== Schalter ==== Schiebeschalter mit drei Positionen. * GPIO 42 * GPIO 43 ==== LEDs ==== von links nach rechts, wenn schmaler Rand unten ist * gl-mt300n-v2:green:power * gl-mt300n-v2:blue:wan * gl-mt300n-v2:red:wlan Die Farbbezeichnung sind irreführend, alle LED sind weiß. ===== GL-MT300N-V2 mit ATmega ===== ==== Verbindung für Serielle Schnittstelle und Reset ==== {{ :openwrt:20190331_143534.jpg?400 |}} Anschluss mit GND, TX, RX, Reset. Wird die Stromversorgung des GL-MT300N-V2 vom ATmega geschalten muss dafür gesorgt werden, dass diese nicht während des Reset und Flashen abgeschalten wird. Anschluss des GL-MT300N-V2 an [[bienen:solarregler_v3|Solarregler der Bienenwaage]]: ^SV1^Router^Solarregler^Farbe^ |1|gnd |gnd | grau| |2|3,3V |nicht fest verbunden |rot | |3|GPIO46 |reset (auf GND ziehen)|violett | |4|tx | rx |blau | |5|rx | tx|gelb | |6|D14, gl-mt300n-v2:green:power|Spannungsversorgung eingeschalten lassen (auf 3V ziehen -> LED aus)|blaues Einzelkabel| | |4 (SCLK)| |braun| | |5 (SDA)| |orange| | |GPIO45| | grün| Für die Spannungsversorgung musste die LED gl-mt300n-v2:green:power genommen werden, da bei Verwendung der einfacher verfügbaren GPIO 45, 4 und 5 die Stromversorgung nicht mehr abgeschalten werden konnte. Das Einzelkabel ist einfach an die LED auf dem Routerboard angelötet. {{:openwrt:solarregler_monopost_rs232.png?400|}} ==== Software/Openwrt ==== === GPIO-Einstellungen === == Änderungen in der dts-Datei: == Ohne diese Änderungen lässt sich GPIO 46 nicht nutzen und der Router nicht abschalten. &pinctrl { state_default: pinctrl0 { gpio { ralink,group = "wdt", "gpio", "wled_an", "p0led_an", "p1led_an", "i2s", "i2c", "uart1"; ralink,function = "gpio"; }; }; }; gpio-leds {... power { label = "gl-mt300n-v2:green:power"; default-state = "off"; retain-state-shutdown; gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; }; == Einstellungen am laufenden Openwrt == * in /etc/config/system gl-mt300n-v2:green:power auf dauerhaft ein stellen, geht z.B. in LuCI (entspricht GND auf deren GPIO) * dmesg -D um die Ausgabe von Fehlermeldungen auf der Console zu deaktivieren. (-E schaltet dies wieder ein) Die macht das Script read_rs232.sh als erstes nach dem starten. ==== Zusätzliche Pakete auf dem Router ==== Openwrt auf dem Router mit den Paketen: * avrdude * coreutils-stty Bei der Verwendung in der [[bienen:bienenwaage|Bienenwaage]] zusätzlich die Pakete: * (kmod-usb-net-cdc-ether (für Nutzung von Huawei USB-Stick mit Hilink)) ab 2021 nicht mehr benötigt, WLAn erreichar * (usb-modeswitch) ab 2021 nicht mehr benötigt, WLAn erreichar * fswebcam * coreutils-base64 * openssl-util * bash (einfacher in while-Schleife read_rs232.sh) * curl Über LUCI eth2 einrichten, zu WAN zuordnen Der Huawei USB-Stick "vergisst" immer mal seine Einstellungen bezüglich des APN. Es kommt dann keine Internetverbindung zustande sondern man kann nur z.B. die Seiten von Vodafone erreichen. Umstellen unter 192.168.8.1 ==== Kommunikation GL-MT300N V2 mit ATmega über RS232 ==== Um die Kommunikation über die serielle Schnittstelle nicht zu stören muss die Ausgabe der Logdaten über diese ausgeschalten werden: * in /etc/sysctl.conf.d/ kernel.printk = 0 4 1 7 einfügen/anpassen * in /etc/inittab alles mit ttyS0, ttyATH0 und askconsole auskommentieren === Flashen des ATmega mit avrdude === Ablauf: - hex-File auf Router speichern (z.B. scp upload.hex root@192.168.1.1:/tmp/upload.hex) - sichere Stromversorgung des Routers einschalten - ATmega reset - avrdude - sichere Stromversorgung des Routers ausschalten Das Timing von Reset und avrdude scheint nicht perfekt zu passen und avrdude kann manchmal keine Verbindung zum Atmega aufbauen. Ist aber egal, da meist der zweite Versuch funktioniert. Das ganze zusammengefasst in einem Script: #!/bin/sh # einschalten der Stromversorgung, echo 0 > /sys/class/leds/gl-mt300n-v2:green:power/brightness # Script read_rs232.sh zur Kommunikation mit Arduino beenden ps | grep [r]ead_rs232.sh | awk '{print $1}' | xargs kill -9 $1 sleep 1 # Pin für Reset konfigurieren und Reset des Arduino auslösen echo 46 > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio46/direction echo 1 > /sys/class/gpio/gpio46/value echo 0 > /sys/class/gpio/gpio46/value # das unter /tmp/upload.hex hochgeladene Programm auf den Arduino flashen avrdude -C/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyS0 -b57600 -D -Uflash:w:/tmp/upload.hex:i sleep 2 # dauerhafte Stromversorgung des Routers ausschalten echo 255 > /sys/class/leds/gl-mt300n-v2:green:power/brightness # Script zur Kommunikation mit Arduino wieder ausführen bash /etc/scripte/read_rs232.sh & Beachtet werden sollte, dass der GL-MT300N V2 nach dem Flashen des ATmega eventuell anschließend vom Strom getrennt wird. Falls z.B ein USB-Stick als Speichermedium eingebunden ist kann dieses bzw. dessen Dateisystem Schaden nehmen.