Inhaltsverzeichnis
GL-MT300N-V2
Ein einfacher, billiger, sehr kleiner Minirouter für vielfältige Anwendungen, nicht nur als Router.
Derzeit nur bei 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
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 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.
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 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.