Benutzer-Werkzeuge

Webseiten-Werkzeuge


openwrt:gl-mt300n-v2

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:

SV1RouterSolarreglerFarbe
1gnd gnd grau
23,3V nicht fest verbunden rot
3GPIO46 reset (auf GND ziehen)violett
4tx rx blau
5rx txgelb
6D14, gl-mt300n-v2:green:powerSpannungsversorgung 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)
  • usb-modeswitch
  • fswebcam
  • coreutils-base64
  • openssl-util
  • bash (einfacher in while-Schleife read_rs232.sh)
  • curl

Über LUCI eth2 einrichten, zu WAN zuordnen

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:

  1. hex-File auf Router speichern (z.B. scp upload.hex root@192.168.1.1:/tmp/upload.hex)
  2. sichere Stromversorgung des Routers einschalten
  3. ATmega reset
  4. avrdude
  5. 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.

openwrt/gl-mt300n-v2.txt · Zuletzt geändert: 2019/10/25 01:24 von andmin