MapleCUN

Aus FHEMWiki
MapleCUN
MAPLE CUL (ohne LAN)
Allgemein
Protokoll diverse
Typ Transceiver
Kategorie CUL
Technische Details
Kommunikation Funk 433MHz oder 868MHz
Kanäle N/A
Betriebsspannung 3,3V nach Spannungsregler
Leistungsaufnahme
Versorgung USB
Abmessungen
Sonstiges
Modulname CUL
Hersteller Eigenbau


Einleitung

Der MapleCUN ist neuartiges CUN oder CUL Interface zum Selbstbau, entwickelt von Telekatz. Durch den STM32 Mikrocontroller ist die Basis sehr leistungsfähig. Der Controller ist deutlich schneller als ATMega und verfügt über mehr Flash und RAM sowie integriertes USB. Es können 1-4 Transceiver verbaut werden.


Alle 4 Transceiver werden über ein einziges serielles Device (alternativ LAN) angesprochen als "stackable" Modul ... Der MAPLE-Mini stellt jedoch noch über zwei UARTs noch zwei Serielle-Interfaces bereit die anderweitig genutzt werden können.



Aufbau

Benötigt werden dazu folgende Teile:

Der Aufbau kann auf Lochraster erfolgen, fertige Platinen siehe Foto sparen jedoch Zeit, reduzieren Fehlerquellen und erhöhen die Zuverlässigkeit.

Die Module werden gemäß Schaltplan miteinander verbunden. Da alle Module mit 3,3V laufen sind keine Bauteile für eine Pegelanpassung notwendig.


Bestückung der Module

Stand 07/2017: Es sind noch nicht alle Protokolle an den zusätzlichen Transceivern verfügbar. Nach einem Reset der Konfiguration ist die Frequenz von CC0 auf 868MHz und CC1 auf 433MHz voreingestellt. Lässt sich dann aber auch umkonfigurieren. Ende Juni 2017 wurde die automatische Erkennung der Module überarbeitet. Jetzt ist es auch möglich, einen Slot unbestückt zu lassen und die nachfolgenden Slots trotzdem verwenden zu können. Wenn alle 4 Slots belegt sind, funktioniert SlowRF an Slot0, Slot1 und Slot2. Ist irgend ein beliebiger Slot unbelegt, funktioniert es an den übrigen 3 Slots. Allerdings funktioniert das Senden von SlowRF nicht am letzten Slot, da dort kein Output Pin angeschlossen ist.


Neben SlowRF nutzt Intertechno und Somfy 433MHz. Wegen der fehlenden Out Leitung am vierten Steckplatz kann man dort diese Protokolle aber auch nicht verwenden. Nutzbar am vierten Steckplatz sind Homematic, MAX, RWE, LaCrosse und FastRF (alles 868MHz)

Weitere Infos zu SlowRF

Firmware / Flashen

Zum flashen wird noch ein USB/TTL Wandler benötigt. Da der UART1 Anschluss des Controllers 5V tolerant ist kann auch ein Wandler mit 5V Ausgang verwendet werden. Angeschlossen wird der Wandler an X4 (DBG).

Die Firmware ist in der a-culfw enthalten. Für den MapleCUN gibt es jetzt nur noch zwei verschiedene Firmware Dateien,je nach verwendeten Wizchip:

  • MapleCUNx4_W5100.bin
  • MapleCUNx4_W5500.bin

In diesen Versionen sind alle Protokolle enthalten. Für einen MapleCUL kann mein beide Versionen verwenden.

Falls kein Netzwerkmodul angeschlossen ist wird das automatisch erkannt. Auch die Anzahl der Transceivermodule wird automatisch erkannt.


Anmerkungen zur Firmware:

  • Die Umschaltung zwischen den RF Protokollen wurde angepasst. Dies funktioniert mit Ausnahme von KOPP_FC mit allen Protokollen.
  • Folgende Einschränkungen gibt es für den Betrieb mit mehreren Transceivern:
  • SlowRF funktioniert nur an CC0 und CC1.
  • MBUS funktioniert an jedem Transceiver aber insgesamt nicht an mehr als einem Transceiver gleichzeitig.
  • KOPP_FC funktioniert nur an CC0.
  • Die restlichen Protokolle funktionieren an allen Transceivern und auch mehrfach gleichzeitig.


sudo ./stm32flash -k /dev/ttyUSB1


Zum flashen kann entweder von ST der STM32 Flash loader demonstrator oder das Tool stm32flash benutzt werden. Flashen über den MAPLE Bootloader per USB funktioniert derzeit (noch?) nicht.

Firmware flashen:

Bitte jeweils die aktuelle README der Firmware beachten.


Probleme zu Flashen:

sudo ./stm32flash -w maple_mini_boot20.bin -v /dev/ttyUSB1
stm32flash 0.5

http://stm32flash.sourceforge.net/

Using Parser : Raw BINARY
Interface serial_posix: 57600 8E1
Version      : 0x22
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : 20KiB  (512b reserved by bootloader)
- Flash      : 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Got NACK from device on command 0x43
Can't initiate chip mass erase!
Failed to erase memory

Lösung:

sudo ./stm32flash -k  /dev/ttyUSB1                        
...
Read-UnProtecting flash

Einrichtung in FHEM (alt)

Per LAN:

define mapleCUN1 CUL 192.168.69.100:2323 1234

Per USB:

define mapleCUL  CUL /dev/ttyACM0@38400 4444


1234 oder 4444 muss oder besser kann durch eine eigene "FHTID" ersetzt werden.


Die zusätzlichen Transceiver werden als STACKABLE_CC angelegt.

define mapleCUN2 STACKABLE_CC mapleCUN1
define mapleCUN3 STACKABLE_CC mapleCUN2
define mapleCUN4 STACKABLE_CC mapleCUN3


Einrichtung in FHEM (kuenftig)

Achtung: Es gibt scheinbar noch ein paar genrelle probleme mit diese Methode, daher vorerst besser Stackable_CC verwenden !


Beispiel 4* ZWAVE Seriell:

define mCUL ZWCUL /dev/serial/by-id/usb-STM32_MapleCUL_71a7e023-if00 00000000 01
attr mCUL dataRate 100k

define SCC1 STACKABLE mCUL
define z100k ZWCUL FHEM:DEVIO:SCC1:9600 00000000 01
attr z100k dataRate 100k

define SCC2 STACKABLE z100k
define z40k ZWCUL FHEM:DEVIO:SCC2:9600 00000000 01
attr z40k dataRate 40k

define SCC3 STACKABLE z40k
define z9k6 ZWCUL FHEM:DEVIO:SCC3:9600 00000000 01
attr z9k6 dataRate 9600


Beispiel 2 fach:

define CULMGrau868 CUL /dev/serial/by-id/usb-STM32_MapleCUL_6bfbb14f-if00@38400 1432
attr CULMGrau868 group Gateways
attr CULMGrau868 icon cul_868
attr CULMGrau868 model CUN
attr CULMGrau868 rfmode SlowRF

define CULMGrau868Stack STACKABLE CULMGrau868

define CULMGrau433 CUL FHEM:DEVIO:CULMGrau868Stack:9600 0000
attr CULMGrau433 group Gateways
attr CULMGrau433 icon cul_cul
attr CULMGrau433 model CUN
attr CULMGrau433 rfmode SlowRF


Beispiel 3:

define MAPLECUL868 CUL 192.168.1.51:2323 4444
attr MAPLECUL868 group Gateways
attr MAPLECUL868 icon cul_868
attr MAPLECUL868 model CUN
attr MAPLECUL868 rfmode SlowRF
attr MAPLECUL868 room TRX
define MAPLECUL868Stack STACKABLE MAPLECUL868
attr MAPLECUL868Stack room TRX
define MAPLECUL433 CUL FHEM:DEVIO:MAPLECUL868Stack:9600 0000
attr MAPLECUL433 group Gateways
attr MAPLECUL433 icon cul_cul
attr MAPLECUL433 model CUN
attr MAPLECUL433 room TRX
define MAPLECUL433Stack STACKABLE MAPLECUL433
attr MAPLECUL433Stack room TRX
define MAPLECUL868HM CUL FHEM:DEVIO:MAPLECUL433Stack:9600 0000
attr MAPLECUL868HM group Gateways
attr MAPLECUL868HM hmId 308393
attr MAPLECUL868HM icon cul_868
attr MAPLECUL868HM rfmode HomeMatic
attr MAPLECUL868HM room 8.00_Zentral,TRX


Zusätzliche Serielle Schnittstellen

Über USB werden zwei weitere Schnittstellen angelegt, der Netzwerkzugriff erfolgt über die Ports 2324 und 2325.
Zur Einstellung der Baudrate über Netzwerk gibt es folgende Befehle:

  • UART0 Baudrate einstellen: pb0@38400
  • UART1 Baudrate einstellen: pb1@9600
  • Baudrate im EEPROM speichern: ps
  • Baudrate anzeigen: pi

Ein am UART0 angeschlossener HM-MOD-UART kann z.B. mit folgender Definition in FHEM eingebunden werden:

define myRemoteHmUART HMUARTLGW uart://192.168.42.23:2324


Weiteres:

UART0= 8+9 = PA3+2

UART1= 0+1 = PB11+10

Für die Anbindung des MapleCUL ist die Baudrate egal, da kann man nichts falsch einstellen. Sie wird nicht benötigt, da der MapleCUL nicht über RS232 angebunden ist. Anders verhält es sich mit den beiden zusätzlichen UART0 und UART1 Ports. Dort ist die Baudrate relevant, da die serielle Schnittstelle dort auch physikalisch existiert.

Debugging / weiteres

  • Stromverbrauch der Tranceiver: Typischerweise 17 mA für RX und 34 mA für TX pro Modul. (Bei Inaktivität: 4 Transceiver, LAN Modul, MAPLE ca 100mA)
  • Auf die OUT-Leitung kann bei den meisten FastRF Protokollen verzichtet werden. MAX und HM funktionieren z.B. ohne OUT Leitung
  • Beim ersten Transceiver ist der Status nicht "Initialized": Möglicherweise ist die Verdrahtung fehlerhaft
  • Der MAPLE-CUN startet ständig neu (Z.B. unter linux zu sehen bei tail -f /var/log/syslog, hier taucht das selbe USB Gerät ständig neu auf): Eventuell wurde eine veraltete Firmware für LAN-Modul aufgespielt, aber kein LAN Modul erkannt
  • Devices auf einem Linux Rechner:
pi@raspberrypi:/dev/serial/by-id $ ls -la
total 0
drwxr-xr-x 2 root root 100 Jul 27 18:52 .
drwxr-xr-x 4 root root  80 Jul 27 18:52 ..
lrwxrwxrwx 1 root root  13 Jul 27 18:52 usb-STM32_MapleCUL_2788282f-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root  13 Jul 27 18:52 usb-STM32_MapleCUL_2788282f-if02 -> ../../ttyACM1
lrwxrwxrwx 1 root root  13 Jul 27 18:52 usb-STM32_MapleCUL_2788282f-if04 -> ../../ttyACM2


  • Wenn gar nicht mehr klar ist wie der MAPLE-CUL eingestellt ist, ggf mal zurücksetzen (statt CUL1 das erste Gerät angeben):
set CUL1 raw e


  • Beispiel für Meldungen am Debug-Port mit 4 Transceivern und LAN Modul:
-I- Getting new Started Project --
-I- MapleCUNx4
-I- Compiled: Mar 18 2017 15:46:32 --
-I- init Flash
-I- init Timer
-I- init EEprom
-I- init Ethernet
WIZCHIP Initialized success.
-I- Detected CC0: PN 0x00  VER 0x14 
-I- Detected CC1: PN 0x00  VER 0x18 
-I- Detected CC2: PN 0x00  VER 0x14 
-I- Detected CC3: PN 0x00  VER 0x14 
-I- Detected ethernet 
-I- init USB
-I- init Complete

Links

Diskussion im Forum

Sourcecode

Fertige Platinen mit Erweiterungen wie mySensors, ESP8266, ...