Maple-SignalDuino
Maple-SignalDuino | |
---|---|
Allgemein | |
Protokoll | diverse |
Typ | Transceiver |
Kategorie | |
Technische Details | |
Kommunikation | Funk, 433MHz oder 868MHz |
Kanäle | f |
Betriebsspannung | 3,3V nach Spannungsregler |
Leistungsaufnahme | |
Versorgung | USB |
Abmessungen | 79 x 27 mm |
Sonstiges | |
Modulname | modifiziertes SIGNALduino |
Hersteller | Eigenbau |
Einleitung
Der Maple-SignalDuino (Maple-SDuino) ist ein I/O Gerät zur Funkübertragung basierend auf dem Maple-Mini, der ursprüglich von LeafLabs entwickelt wurde. Der STM32F103 bietet deutlich mehr Ressourcen als die Atmel/Microchip Mega-328 Mikrocontroller der bisherigen Arduino Plattformen.
Einfacher SIGNALduino mit nur einem cc1101 Modul (alternativ)
Es wird dabei nur das CC1101_1 (B) - für OOK/ASK verwendet.
Schaltplan siehe Maple-SignalDuino#Aufbau der Hardware. Es kann auch die Platine von @Ranseyer verwendet werden, wenn nur das zweite cc1101 Modul bestückt wird.
Es ist keine cc1101 Modul konfiguration notwendig, das Modul B wird automatisch initialisiert.
Zur Inbetriebnahme ist folgendes notwendig:
- Bootloader 2.0 über USB flashen
- Firmware flashen (die bin Datei muss ggf durch die aktuelle Version ersetzt werden)
sudo dfu-util -d 1eaf:0003 -a 2 -D Maple_sduino_USB_411dev200627.bin -R
- gegenüber der offiziellen Version von @Sidey enthält diese Version Optimierungen und Komfortfunktionen.
Software
Dieses Projekt ist NICHT zu verwechseln mit dem Originalprojekt. Es handelt sich hierbei um einen Clone von RFFHEM und SIGNALduino.
Neuerungen
Bei dieser Version für den Maple Mini gibt es u.a. die folgenden Neuerungen:
- Das Sendekommando kann eine maximale Länge von 600 Zeichen haben.
- Der Messagepuffer hat nun eine maximale Größe von 1500 Pulsen Es gibt nun zwei neue Konfigurationsvariablen ::CSmaxMsgSizex256 - damit kann die Größe des Messagepuffers konfiguriert werden. Der Wert wird mit 256 multipliziert, d.h. 4 ergibt eine Messagepuffergröße von 1024
- CSmaxMuPrintx256 - damit kann die maximale Länge von MU-Nachrichten konfiguriert werden. Der Wert wird mit 256 multipliziert
- Die zweite und folgenden MS-Nachrichten werden nun mit der vorherigen MS-Nachricht verglichen; sind sie gleich, wird am Ende ein "Q" ausgegeben. Werden drei gleiche MS-Nachrichten in Folge empfangen, so werden die folgenden MS-Nachrichten nicht mehr ausgegeben. Per default werden vier MS-Nachrichten ausgegeben, dies kann z.B. mit CSmscnt=8 auf acht erhöht werden. Wenn aktiviert, dann steht bei get config (CG): MSEQ=1; CEQ - aktivieren, dann werden die folgenden gleichen MS-Nachrichten nicht mehr ausgegeben CDQ - deaktivieren
- CR - configRadio Mit CRE<A-D> kann ein cc1101 Modul aktiviert werden. z.B. CREA aktiviert das erste cc1101 Modul A MIt CRD<A-D> kann ein cc1101 Modul deaktiviert werden. z.B. CRDA deaktiviert das erste cc1101 Modul A
- Der Befehl b wurde erweitert: b<A-D><0-9> damit wird ein cc1101 (A-D) mit einer Speicherbank (0-9) initialisiert. z.B. mit bA3 wird das das erste cc1101 Modul A mit der Speicherbank 3 initalisiert. b<A-D> damit wird ein cc1101 (A-D) selektiert. Die Befehle zum lesen und schreiben vom EEPROM und cc1101 Registern werden auf das selektierte cc1101 angewendet. Z.B. mit bA wird das erste cc1101 Modul A selektiert. mit nachgestelltem W wird es im EEPROM gespeichert
- br - damit wird von allen cc1101 eine Bankinfo ausgegeben
- bs - damit wird eine Übersicht von allen Bänken ausgegeben
- Mit V (get Version) bekommt man eine Übersicht über die Module z.B. (R: A1 B0*). Mit * wird das selektierte cc1101 Modul markiert. Ein "-" hinter dem Modul (A-D), bedeutet, dass dieses Modul nicht richtig erkannt wurde, ein "i" bedeutet, dass das Modul zwar korrekt erkannt wurde, aber noch keiner Bank zugeordnet wurde. Wenn ein Modul nicht aufgeführt ist, dann ist es noch deaktiviert.
- Mit XQ und XE wird jetzt bei allen cc1101 der Empfang deaktiviert oder aktiviert. Wird bei XQ oder XE ein A-D drangehängt, dann können einzelne Empfänger aktiviert oder deaktiviert werden. Bei der USB Version ist durch anhängen von W ein XQW zu empfehlen. Mit XQW wird nach einem Reset der Empfang des cc1101 nicht automatisch aktiviert. Dies kann in einigen Fällen zur Optimierung der Initialisierung beim Fhem Modul nötig sein und ist an "irx0" in der Version erkennbar.
- Die Datenkomprimierung für MS- und MU-Nachrichten (config: Mred=1) ist nun nicht mehr notwendig.
Kompilieren
Wer es selber compilieren will: https://github.com/Ralf9/SIGNALDuino/tree/dev-r41x_cc1101 (siehe auch diesen Forenbeitrag)
Bootloader
Ab der Version 4.1.0-dev200427 ist für die bin Files der Bootloader2.0 erforderlich. Details zum Flashen des Bootloaders sind in der Beschreibung des MapleCUN zu finden.
- siehe auch Bootloader 2.0 über USB flashen
Flashen
Hier ist die Firmware: https://github.com/Ralf9/SIGNALDuino/releases
Es gibt momentan Binaries für USB, LAN und serial (tx/rx vom DBG Anschluss)
- LAN gibt es momentan nur für den MapleSduino, siehe in diesem Forenbeitrag.
- serial ist z.B. für eine wifi-serial bridge mit dem ESP (z.B. ESP-link)
Es gibt für den MapleSduino und den MapleCul verschiedene Binaries:
Die "Maple_sduino....bin" ist für den MapleSduino
Die "Maple_cul_....bin" ist für den MapleCUL und MapleCUN.
sudo dfu-util -d 1eaf:0003 -a 2 -D Maple_sduino_USB_411dev200627.bin -R
oder
sudo dfu-util -d 1eaf:0003 -a 2 -D Maple_cul_USB_411dev200627.bin -R
Die verfügbare a-culw Firmware is in diesem Forenbeitrag beschrieben und herunterladbar.
Nutzung in FHEM
Für die komfortable Bedienung und für FSK ist ein angepasstes 00_SIGNALduino Modul notwendig. Weitere Informationen:
Neuerungen
Hardware
Als Hardware wird der STM32F103CBT6 Maple Mini verwendet:
- 128 Kbytes Flash
- 20 Kbytes SRAM
- 2 SPI
- Als optionales LAN Modul den USR-ES1 W5500.
Aufbau der Hardware
Ab der Version 4.1.0 werden bis zu vier cc1101 Module (A-D) unterstützt
Beim MapleSduino sind die cc1101 Module an SPI2 angeschlossen:
- 28 MOSI
- 29 MISO
- 30 SCLK
CC1101_0 (A)
- 31 CSN (Chip Select)
- 11 GD02 (Receive)
- 10 GD00 (send), optional für die a-culw
CC1101_1 (B) - 433 MHz für OOK/ASK
- 12 CSN (Chip Select)
- 18 GD02 (Receive)
- 17 GD00 (send)
CC1101_2 (C)
- 15 CSN (Chip Select)
- 16 GD02 (Receive)
- 13 GD00 (send), optional für die a-culw
Platine
Es gibt von Ranseyer eine Platine.
Es gibt zwei Bestückungsvarianten:
- normal (die USB Buchse und die Reset Taste sind oben),
- gedreht (USB Buchse ist unten in der Aussparung und kann z.B. mit Heisskleber fixiert werden.
Zur Orientierung ist Pin 31 beschriftet.
Wichtig: Bei den V0.1 und V0.2 Platinen ist die Beschriftung 433 und 868 MHz manuell zu ändern!
Teile
- Maple Mini / STM32F103CBT6: https://de.aliexpress.com/item/1400667476.html oder auch schneller bei Amazon
Funkmodule nach Wahl:
- CC1101 868MHZ: https://de.aliexpress.com/item/32635393463.html, https://de.aliexpress.com/item/4000594832541.html
- CC1101 433 Mhz: https://de.aliexpress.com/item/32472259186.html
Empfohlen:
- Puffer-Kondensator 10-500uF. Z.B. als C5 mit 10uF: Conrad Artikelnummer 457966
Optional:
- LAN Modul USR-ES1 W5500: https://de.aliexpress.com/item/32598945210.html
- Abblock-Kondensator mit ein paar pF bis nF an VCC des Maple. Z.B. als C6 mit 22PF: Conrad Artikelnummer 445432
- Koaxbuchsen: https://de.aliexpress.com/item/4000009303962.html
Antennen: Infos dazu gibt es reichlich im Internet, auch im Antennenthread im FHEM-Forum
Nutzung in FHEM
USB-ID ermitteln (bei der USB Variante)
Im Terminal den folgenden Befehl ausführen:
ls -l /dev/serial/by-id
Das ergibt z.B. diese Ausgabe:
lrwxrwxrwx 1 root root 13 28. Jun 19:13 usb-STMicroelectronics_MAPLEMINI_F103CB_CDC_in_FS_Mode_XXXXXXXXX-if00 -> ../../ttyACM0
SIGNALduino Definition
Für die USB-Version:
define <eigener-SIGNALduino-Name> SIGNALduino /dev/serial/by-id/usb-STMicroelectronics_MAPLEMINI_F103CB_CDC_in_FS_Mode_XXXXXXXX-if00@115200
Für die LAN-Version:
define <eigener-SIGNALduino-Name> SIGNALduino 192.168.0.244:23
Fehlersuche, Diverse
Der Stromverbrauch der Transceiver ist typischerweise 17 mA für RX und 34 mA für TX pro Modul. Bei Inaktivität: 4 Transceiver, LAN-Modul, MAPLE ca 100mA.
Wenn der SlowRF nicht mehr funktioniert: Per Default ist das cc1101 Modul der Bank 0 zugeordnet, dies kann mit get Version kontrolliert werden. Es muß in Version "B0" stehen z.B. (R: B0). Es kann auch ein Factory Reset vom Modul B versucht werden, dazu muß das Modul B selektiert sein (R: B0*)
get sduino raw e
Antwort:
ccFactoryReset done r=B b=0 rx=0 ccmode=0 sync=D391 ccconf=10B07157C43023B900070018146C070090 boffs=0000
Wenn es immer noch nicht funktioniert kann auch mit "eC" ein factory Reset der Konfigeinstellungen im EEPROM durchgeführt werden.
get sduino raw eC
Antwort:
Init eeprom to defaults detect B: Partn=0 Ver=0x14
Wenn ein nativer Mode (FSK) nicht mehr funktioniert: Dazu muss das entsprechende cc1101 Modul selektiert sein. Mit "get Version" kann dies kontrolliert werden. Ein "-" bedeutet, daß das Modul nicht erkannt wurde z.B. (A-). Ein "i" bedeutet, das dem Modul keine Bank zugeordnet wurde z.B.(Ai).
Es kann versucht werden mit den raw Befehlen "e" und "CW..." die Bank neu zu konfigurieren. Wenn dies alles nicht hilft, kann mit dem raw Befehl "eC" ein factory Reset der Konfigeinstellungen gemacht werden.