Entwicklung SIGNALDuino Empfänger Firm- und Hardware V4 für Maple Mini und ESP32

Begonnen von Ralf9, 13 Dezember 2019, 12:48:26

Vorheriges Thema - Nächstes Thema

juergs

Hallo Ralf9,

wo hast Du den Namespace für z.B. "cc1101::regCheck())" definiert?

Processing maple_mini_origin (platform: ststm32; board: maple_mini_origin; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/maple_mini_origin.html
PLATFORM: ST STM32 6.0.0 > Maple Mini Original
HARDWARE: STM32F103CBT6 72MHz, 17KB RAM, 108KB Flash
DEBUG: Current (blackmagic) External (blackmagic, jlink, stlink)
PACKAGES:
- framework-arduinoststm32 3.10700.191028 (1.7.0)
- tool-dfuutil 1.9.200310
- toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
Converting SIGNALDuino.ino
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 15 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <CC1101> 1.0
|   |-- <SPI> 1.0
|-- <fastdelegate> 1.0.0   
|-- <output> 1.0.0
|   |-- <SPI> 1.0
|-- <SPI> 1.0
|-- <signaldecoder> 1.0.0   
|   |-- <output> 1.0.0     
|   |   |-- <SPI> 1.0       
|   |-- <fastdelegate> 1.0.0
|   |-- <bitstore> 1.0.0   
|-- <TimerOne> 1.0.0       
|-- <SimpleFIFO> 1.0.0     
|-- <EEPROM> 2.0.1
|-- <bitstore> 1.0.0
Building in debug mode
Compiling .pio\build\maple_mini_origin\src\SIGNALDuino.ino.cpp.o
Archiving .pio\build\maple_mini_origin\liba32\libsignalDecoder.a
Compiling .pio\build\maple_mini_origin\libc8e\TimerOne\TimerOne.cpp.o
Archiving .pio\build\maple_mini_origin\libc2f\libSimpleFIFO.a



Da ist noch einiges zu tun um es in PlatformIO zum Laufen zu bringen , bzw. erst mal den Code etwas aufräumen ...  ;)

juergs

Wer mag, kann sich das mal mit VSCode + PlatformIO mit anschauen ... + youtube mit ATOM-Editor.
Ich benutze allerdings VSCode, der auch unter Linux (Raspi) läuft. (code-oss)

Das Zip ist (unter Windows)  im PIO-Standard-Pfad  "C:\Users\<user>\Documents\PlatformIO\Projects" zu entpacken dann in VSCode mit PIO "Open project ... " zu öffnen.

Ist aber noch Status "preliminary"  ;) und noch buggy.

TODO: COM-PORT(s) in Platformio.ini anpassen! (Momentan muss er zum Compile mit F5 (Debug) leider vorhanden sein!
https://docs.platformio.org/en/latest/projectconf/index.html

Aber muss erst mal den Bootloader auf Ranseyers Board bekommen  :'(

Anmerkungen:
Bootloader für Maple: https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/STM32F1/binaries/maple_mini_boot20.bin
STMFlashLoader:       http://gechologic.com/how-to-use-stm32-flash-loader
Arduino Python Uploader :  C:\Users\<user>\Documents\Arduino\hardware\Arduino_STM32\tools\win     
Arduino Java Uploader  C:\Users\js\Documents\Arduino\hardware\Arduino_STM32/tools/win/maple_upload.bat COM17 1 1EAF:0003 C:\Users\js\AppData\Local\Temp\arduino_build_180552/Blink.ino.bin
Mit maple_upload.bat <Maple COM Port> 1 <USB Device ID>

Grüße
Jürgen

Bitte PlatformIO-Sourcen von hier nehmen.

Ralf9

ZitatObwohl ich nur noch Warnings im Output finden konnte...
Ein warning war, daß bei sprintf %i bei unsigned Variablen verwendet wurden, habs nach %u und %x korrigiert.

Andere warnings sind:
uint8_t bval;
message.getByte(bstartpos,&bval);

Wenn ich schreibe "uint8_t bval=0;" , erzeugt dies zusätzlichen unnötigen Code, oder ist dies besser, da dann die warnings weg sind?


Hallo Jürgen

Zitatbei meiner Platine ist der BOOT1-Pin nicht mit GND verbunden
Bei meiner ist der BOOT1-Pin mit GND verbunden.

ZitatAber muss erst mal den Bootloader auf Ranseyers Board bekommen
Momentan funktioniert USBserial nur mitr dem orginal Bootloader, wenn Du einen neuen Maple Mini hast dann sollte der orginal Bootloader schon drauf sein

Zitat... gerade die CC1101 eingelötet gehabt ;-(
ist es für Dich ein Problem die CC1101 wieder auszulöten?

Zum compileren mit der Arduino IDE werden nur die folgenden Dateien benötigt
bitstore.h
cc1101.h
FastDelegate.h
output.h
signalDecoder4.cpp
signalDecoder4.h
SimpleFIFO.h
tools.h
signalDecoder.ino


Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ranseyer

Zitatist es für Dich ein Problem die CC1101 wieder auszulöten?

Könntest du bitte im Startpost noch ergängen ?

"Bei den V0.1 und V0.2 Platinen ist die Beschriftung 433 und 868 MHz manuell zu ändern!"

(Unabhängig davon ob dies später mal ggf. konfigurierbar wird. Denke mal der eine oder andere will z.B. 2x 868 Mhz haben auf der bestehenden HW)
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

juergs

Hallo Ralf9,

auslöten ist kein Problem  ;-)

Im Moment fehlt mir die Angabe, welche Lib Du für die CC1101 nutzt:
cc1101.h => wo kommt die her ? Insbesondere der Namespaceaufruf mit cc1101::
Zitatbitstore.h
cc1101.h
FastDelegate.h
output.h
signalDecoder4.cpp
signalDecoder4.h
SimpleFIFO.h
tools.h
signalDecoder.ino

Ok, hab's gesehen: hole sie mir von da: https://github.com/Ralf9/SIGNALDuino/blob/master/cc1101.h

Welcher Branch?


Ralf9

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

Ich habe es so eingetragen:
Wichtig: Bei den V0.1 und V0.2 Platinen ist die Beschriftung 433 und 868 MHz manuell zu ändern!
433 ist CC0_A
868 ist CC1_B (433 MHz)

Zitat

Unabhängig davon ob dies später mal ggf. konfigurierbar wird. Denke mal der eine oder andere will z.B. 2x 868 Mhz haben auf der bestehenden HW
Die Frequenz ist frei konfigurierbar.
Es können auch alle 3 cc1101 mit 868 bestückt werden.
Momentan gibt es die Einschränkung, daß ASK/OOK (slowrf) nur auf dem zweiten Modul cc1 (B) geht.

Gruß Ralf

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ranseyer

FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

juergs

OK, hatte den falschen Branch genommen und das Platformio-Projekt mit den neuen Dateien des Branches: dev-r41x_cc110 angepasst.
Wenn der Compile durchläuft, stelle ich es wieder hier ein ...

juergs

Linking .pio\build\maple_mini_origin\firmware.elf
Building .pio\build\maple_mini_origin\firmware.bin
Checking size .pio\build\maple_mini_origin\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [===       ]  28.0% (used 4880 bytes from 17408 bytes)
Flash: [=====     ]  52.1% (used 57592 bytes from 110592 bytes)
========================= [SUCCESS] Took 3.84 seconds =========================


Mit einigen Änderungen + Korrekturen  und dem richtigen Branch ...

Dann schaue ich mal, ob der der Compile auch das tut, was er soll ;-)

Binary zum Flashen findet man nach dem Compile dort:  "C:\Users\<user>\Documents\PlatformIO\Projects\MapleSDuino\.pio\build\maple_mini_origin\firmware.bin"

Ralf9

Zitat von: Ralf9 am 22 März 2020, 11:08:44
Andere warnings sind: warning 'bval' may be unused uninitialized..
uint8_t bval;
message.getByte(bstartpos,&bval);

Wenn ich schreibe "uint8_t bval=0;" , erzeugt dies zusätzlichen unnötigen Code, oder ist dies besser, da dann die warnings weg sind?

Wie ist Eure Meinung zu solchen warnings?
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

Zitat von: Ralf9 am 22 März 2020, 14:43:40
Wie ist Eure Meinung zu solchen warnings?

in diesem Fall wird der Speicher der Variablen nicht initialisiert, evtl. macht es der Compiler unter der Haube doch....
Sie sollte ja dann in Deinem genannten Fall den Rückgabewert enthalten.

Bei der Arduino-IDE ist der Output des Compilers farblich gleichförmig, da geht ein error schon mal vor lauter warnings unter.... meist muss ich dann den Output per copy & paste in einen Editor reinnehmen, um den expliziten Error zu entdecken...

Hier ist ein anderer Fall :
"resource": "/c:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/cc1101.h",
   "owner": "cpp",
   "severity": 4,
   "message": "unused variable 'ret' [-Wunused-variable]",
   "startLineNumber": 236,
   "startColumn": 11,
   "endLineNumber": 236,
   "endColumn": 11

C:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/SIGNALDuino.ino:1198:11: warning: unused variable 'statRadio' [-Wunused-variable]
   uint8_t statRadio = tools::EEread(addr_statRadio + radionr);
           ^~~~~~~~~
C:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/SIGNALDuino.ino: In function 'void cmd_toggleBank()':
C:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/SIGNALDuino.ino:1444:11: warning: variable 'bankOffs' set but not used [-Wunused-but-set-variable]
  uint16_t bankOffs;
           ^~~~~~~~
In file included from src/tools.h:6:0,
                 from src/cc1101.h:12,
                 from C:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/SIGNALDuino.ino:130:
C:\Users\js\.platformio\packages\framework-arduinoststm32\libraries\EEPROM\src/EEPROM.h: At global scope:
C:\Users\js\.platformio\packages\framework-arduinoststm32\libraries\EEPROM\src/EEPROM.h:247:20: warning: 'EEPROM' defined but not used [-Wunused-variable]
static EEPROMClass EEPROM;
                    ^~~~~~
C:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/SIGNALDuino.ino: In function 'void configSET()':
C:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/SIGNALDuino.ino:1876:27: warning: 'val16' may be used uninitialized in this function [-Wmaybe-uninitialized]
   musterDec.MuSplitThresh = val16;
   ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
C:/Users/js/Documents/PlatformIO/Projects/MapleSDuino/src/SIGNALDuino.ino:1872:10: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
   ccmode = val;
   ~~~~~~~^~~~~

Ralf9

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

Hallo Ralf9,

werde meine Platformioversion in Github mit Deinen Änderungen einpflegen, dann ist der Platformio-Stand für alle transparent.

Aktueller Stand: USB-Bootloader waren in meinen Maples schon geflasht, aber der aktuelle Compile läuft noch nicht nach dem Hochladen.
Aber es fehlen bisher ja auch noch spezifische Einstellungen: configuration

Das Hochladen mit PlatformIO und dem Maple ist auch noch eine Sache. Bevorzugt scheint zu sein: STLINK. Alternative: STM32FlashLoader per Kommandozeile. Per Python3-Skript

STLINK muss ich bei mir noch installieren und einen STLink-Adapter oder BluePill als Adapter könnte ich mir auch vorstellen, muss aber noch mehr Infos dazu sammeln ...

Im Moment lade ich noch per Arduino-Batch-File hoch :

C:\Users\<user>\Documents\Arduino\hardware\Arduino_STM32/tools/win/maple_upload.bat COM17 1 1EAF:0003 C:\Users\<user>\Documents\PlatformIO\Projects\MapleSDuino\.pio\build\maple_mini_origin\firmware.bin

Slashes ggf anpassen ...

Sollte aber eigentlich doch eleganter gehen ...  ;)

Grüße,
Jürgen

PS: BluePill-Bootloader per USB-Drive: bluepill-bootloader (HID) und HowTo

locutus

Zitat von: Ralf9 am 22 März 2020, 23:05:35
Es gibt eine neue Version 4.1.0-dev200322

get <name> cmds
scheint nicht zu funktionieren.

Gibt es einen Grund für die stark abweichende Frequenz nach der Speicherbankinitialisierung?
version V 4.1.0-dev200322 SIGNALduino cc1101 (R: A1* B0) - compiled at Mar 22 2020 21:48:22
ccconf freq:800.000MHz bWidth:203KHz rAmpl:33dB sens:8dB (DataRate:115051.27Baud)