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

RaspiLED

Sehe ich auch so, wenn wir schon 100-200 Maple CUL Platinen groß u d noch mehr Kleine haben, dann sollten wir das als Standard nehmen.

Gibt es eine Statistik, wieviele CUL an STACKABLE bzw *_CC hängen?

Gruß Arnd


Signalduino (Nano, ESP, ...), CUL (Busware, Nano, Maple, ...), Homematic (HM-MOD-UART-RPI, ESP, Maple, ...), LaCrosseGateway (LGW, ESP, ...), 1-wire, ESPEasy, Bravia, Yamaha, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Ralf9

list hier jemand mit der den Maple Mini mit der Arduino IDE programmiert?

Ich verwende mit der Arduino IDE 1.8.10 diesen core:
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

Ich bekomme die serielle Ein- und Ausgabe über USB nicht hin.

wenn ich dies eintrage
void setup() {
  SerialUSB.begin(BAUDRATE);
}

meldet sich kein USB device

ls -l /dev/serial/by-id
ls: Zugriff auf '/dev/serial/by-id' nicht möglich: Datei oder Verzeichnis nicht gefunden


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

papa

Bei der AskSin++ warte ich bei STM32 immer 2 Sekunden im setup(), damit USB genug Zeit hat, sich beim Host anzumelden. Außerdem nutzte ich einfach Serial - im Macro DINIT().
void setup () {
  delay(2000); // wait until Maple Mini USB-Serial is available
  DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
  ....
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Ralf9

Damit funktioniert es leider auch nicht.
Kann dies auch vom Bootloader abhängen? Ich habe zwar einen anderen Bootloader geflasht ich weiß aber nicht mehr welchen.
Ich kann zwar über USB flashen, aber nur mit Rootrechten und ich muss immer kurz vor dem flashen Reset drücken.
Im perpetual bootloader mode funktioniert bei mir das flashen über USB nicht.

# ./maple_upload ttyACM0 1 1EAF:0003 /tmp/arduino_build_700948/MapleMiniTest.ino.bin
Failed to open serial device.                                                                                                           
dfu-util 0.8                                                                                                                             
                                                                                                                                                                             
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.                                                                                                           
Copyright 2010-2014 Tormod Volden and Stefan Schmidt                                                                                                                         
This program is Free Software and has ABSOLUTELY NO WARRANTY                                                                                                                 
Please report bugs to dfu-util@lists.gnumonks.org                                                                                                                             

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 1eaf:0003
Run-time device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Setting #1 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
Copying data from PC to DFU device
Download        [=========================] 100%        19668 bytes
Download done.
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode
Waiting for /dev/ttyACM0 serial...Done

# ls -l /dev/serial/by-id
insgesamt 0
lrwxrwxrwx 1 root root 13 11. Jan 17:46 usb-STMicroelectronics_MAPLEMINI_F103CB_CDC_in_FS_Mode_8D7452895051-if00 -> ../../ttyACM0


Wenn ich nun reset drücke:
# ls -l /dev/serial/by-id
ls: Zugriff auf '/dev/serial/by-id' nicht möglich: Datei oder Verzeichnis nicht gefunden

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

papa

Ich habe den Bootloader (glaube ich) nicht geändert. Den Reset vor dem Flashen kenne ich auch. Mittlerweile benutzte ich hauptsächlich das Blue Pill Board - allerdings flashe ich den mit einem ST-Link. Damit kann man auch debuggen.
Schau mal hier https://asksinpp.de/Grundlagen/STM32/01_flashen.html - vielleicht hilft das irgendwie.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Ranseyer

Hi,

falls HW-Unterstützung gebraucht wird spendiere ich gerne etwas:
https://github.com/ranseyer/CUN-STM32/blob/master/HW-MAPLE-Small/top.png
https://github.com/ranseyer/CUN-STM32/blob/master/HW-MAPLE-Large/V4.0/4.1-top.png
(Dort gibt es auch Schaltpläne usw...)


Wenn man die "zweireihigen" LAN Module verbaut, so halten diese alleine durch das verlöten: https://de.aliexpress.com/af/usr%25252des1.html?d=y&origin=n&SearchText=usr-es1

Im Anhang mal das kleinere Desgn welches nicht so unbedingt für die LAN-Nutzung gedacht war...
Für die große Version gibt es  neben käuflichen auch ein schickes Ghäuse zum Drucken (von Gloob).

Grüße
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!

Ralf9

HW-Unterstützung brauche ich momentan noch keine.

Ich brauche erstmal programmier unterstützung.

Die Knackpunkte beim Programmieren sind hier auch mal wieder ganz wo anders als ich ursprünglich gedacht hatte.
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

RaspiLED

Hi Ralf,

mir fällt gerade noch ein, dass es bei der a-CulFW davon abhängt wie man mit Strom versorgt ob Serial/Debug ging oder nicht! Wie versorgst Du mit Strom? Per USB oder per VIN?

Gruß Arnd


Signalduino (Nano, ESP, ...), CUL (Busware, Nano, Maple, ...), Homematic (HM-MOD-UART-RPI, ESP, Maple, ...), LaCrosseGateway (LGW, ESP, ...), 1-wire, ESPEasy, Bravia, Yamaha, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Ralf9

da ich die serial über usb verwenden will, wird er auch über usb versorgt
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

RaspiLED

Ja macht Sinn ;-)

https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/updater_stm32f1/updater_stm32f1.ino

Hier ist ein Sketch als Beispiel für Serial, der gleichzeitig den richtigen Bootloader flashed ;-)

Siehe Readme dazu:

https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Bootloader

Gruß Arnd


Signalduino (Nano, ESP, ...), CUL (Busware, Nano, Maple, ...), Homematic (HM-MOD-UART-RPI, ESP, Maple, ...), LaCrosseGateway (LGW, ESP, ...), 1-wire, ESPEasy, Bravia, Yamaha, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Ranseyer

Ich flashe am liebsten per Bootloader. Falls man den Maple nimmt, dann finde ich den Maple-Bootloader am besten, denn man muss dazu nichts ändern.

Reseten vor dem Upload habe ich nie gemacht. Ich habe einfach dieses Scrip gestartet: https://wiki.fhem.de/wiki/MapleCUN#Trick_zum_USB-Flashen_.28Code_Schnipsel_f.C3.BCr_kleines_Skript.29
Nachdem das Skript läuft wird der Maple per USB angeschlossen und sofort geflasht...


Z.B. dieser Sketch ist funktionsfähig und überträgt die Daten die per Funk empfangen wurden per USB an den Host:
https://github.com/ranseyer/MySensors-HW/blob/master/Experimental/GW-STM32-RS485-RFM/Sketch/MyS-GW-MAPLE-RFM69/MyS-GW-MAPLE-RFM69.ino
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

Die STM32-Bootloader-Grundlagen:

Maple:
https://born2bastel.de/2017/02/08/maple-mini-clone-bootloader-flashen/

BluePill:
https://born2bastel.de/2017/02/08/stm32f103-minimal-board-bootloader-flashen/

MSC-Bootloader von Telekatz öffnet ein USB-Drive in dem man das zu programmierende File reinkopiert. Wird automatisch programmiert. (Aber: Adressoffset, leider nicht ohne Änderungen Arduino-kompatibel):
https://github.com/Telekatz/MSC-stm32f103-bootloader

Ranseyer

Kleine Ergänzung noch...

Der Maple-Mini hat schon einen Bootloader. Dieser ist schlechter als alle anderen Bootloader.
A) Das ist richtig
B) Ist trotzdem die Frage ob er gut genug ist, dann ohne Bootloader-Tausch ist der Nachbau einfacher wenn jemand nur ein einziges Device bauen will

Wenn man keinen Maple hat, oder sowie den Bootloader tauschen will (was ich meist als unnötig sehe), das wäre der MSC-Bootloader vermutlich am einfachsten für Enduser...
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!

Ralf9

sowies aussieht ist in dem aktuellen package in der SerialUSB ein bug:
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

Mit diesem package funktioniert das SerialUSB
http://dan.drown.org/stm32duino/package_STM32duino_index.json

Hat aber den Nachteil, das die EEPROM Emulation 16 Bit Werte schreibt und liest, ich möchte aber 8 Bit Werte schreiben und lesen.
Ich habe noch keine Idee wie ich das hinbekomme. 

Hier sind die Definitionen in der EEPROM.h
class EEPROMClass
{
public:
EEPROMClass(void);

uint16 init(void);
uint16 init(uint32, uint32, uint32);

uint16 format(void);

uint16 erases(uint16 *);
uint16 read (uint16 address);
uint16 read (uint16 address, uint16 *data);
uint16 write(uint16 address, uint16 data);
uint16 update(uint16 address, uint16 data);
uint16 count(uint16 *);
uint16 maxcount(void);

uint32 PageBase0;
uint32 PageBase1;
uint32 PageSize;
uint16 Status;



Der Bootloader ist das kleinste Problem, damit komme ich zurecht.
Kurz nach dem drücken von Reset führe ich den beim hochladen mit der Arduino IDE angezeigte Flashbefehl aus:
# ./maple_upload ttyACM0 1 1EAF:0003 /tmp/arduino_build_72752/MapleminiTest.ino.bin

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

papa

Zitat von: Ralf9 am 12 Januar 2020, 22:42:27
Hat aber den Nachteil, das die EEPROM Emulation 16 Bit Werte schreibt und liest, ich möchte aber 8 Bit Werte schreiben und lesen.
Ich habe noch keine Idee wie ich das hinbekomme. 

Vielleicht hift der Code aus der AskSin++ https://github.com/pa-pa/AskSinPP/blob/master/Storage.h
Die InternalEprom-Klasse nutzt für den STM32 1k des Speichern zum Spiegeln der letzten FlashPage. Gelesen wird das ganze im Konstruktor und gespeichert mit store(). Die selbe Klasse kann auch mit einem AVR verwendet werden und nutzt dann die "normale" Arduino-API.

Im Radio.h ist auch die Anbindung des CC1101 über die SPI-Library drin. Könnte auch interessant sein.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire