FHEM Forum

Verschiedenes => Bastelecke => Thema gestartet von: juergs am 20 Juni 2019, 11:36:43

Titel: Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 20 Juni 2019, 11:36:43
Hallo Zusammen,

ich habe aus "Neugier" mir den Lötkolben TS100 zugelegt + bin begeistert!
Er hat einige Eigenschaften die das Bastlerherz höher schlagen lassen...
OLED-Display, Temperatur-Vorgabe Sollwert, Anheizzeit in 11 Sekunden auf 300°C und Idle-Mode mit Temperaturabsenkung (Stromsparmodus).
Konfiguration auch über: Ascii-Datei (https://static.rcgroups.net/forums/attachments/6/8/6/6/2/1/a9871174-180-Sequence%2001.00_01_28_19.Still026.png).

Was hat das mit dem MapleCUL zu tun?
Das Controllerherz besteht aus einem Controller STM32F103T8U6 (http://stefanfrings.de/stm32/stm32f1.html#usbbootloader) aus der STM32F1-Familie.
Der Lötkolben entfaltet seine Möglichkeiten (http://www.minidso.com/archiver/?tid-1797.html) mit der Programmierbarkeit mit OpenSource-Firmware in GitHub.
https://github.com/Ralim/ts100 (https://github.com/Ralim/ts100)
https://blog.seidel-philipp.de/ts100-soldering-iron-portabler-loetkolben/ (https://blog.seidel-philipp.de/ts100-soldering-iron-portabler-loetkolben/)
https://forum.sparkfun.com/viewtopic.php?t=41990 (https://forum.sparkfun.com/viewtopic.php?t=41990)
https://www.youtube.com/watch?v=t621xQc-xEQ (https://www.youtube.com/watch?v=t621xQc-xEQ)
http://www.minidso.com/forum.php?mod=viewthread&tid=892 (http://www.minidso.com/forum.php?mod=viewthread&tid=892)
Bootloader (https://www.youtube.com/watch?v=8gDynvIUQzs) @ 6:19  Innenleben @ 9:35


Aber: das Feature, den Bootloader als einfaches USB-Storage-Device zu handeln fand ich auch sehr interessant.
Kannte das schon von NXP-ARM-Prozessoren, aber noch nicht vom F103.
Einfach MicroUsb mit dem PC verbinden, die FW-Bin-Datei in das Laufwerk kopieren .
Das Ergebnis des Flash-Vorgangs steht als .ERR oder als .RDY-Datei nach der anschliessenden selbstständien Programmierung direkt zur Verfügung.

Meine Frage:

Grüße,
Jürgen
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Ranseyer am 20 Juni 2019, 16:54:47
Erfahrungen nur als TS100 User. Da läuft das ganze sehr geschmeidig.

Ich würde mit eher eine fertig kompilierte Firmware für den originalen (und schlechteren Bootloader) wünschen. Das wäre eim Arbeitsschritt und ggf.  eine Hürde weniger.

Wobei wenn man schon den Bootloader täuscht, gerne auch deinen... (Ist nur die Frage was der Platz frisst)

Zweitens: hat der TS100 evtl. noch einen externen Flash Speicher?

Gesendet von meinem VTR-L09 mit Tapatalk

Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 20 Juni 2019, 17:10:45
Hallo Martin,

der verwendete Bootloader des T100 ist mir (noch) nicht bekannt.
Größe bzw. Platzbedarf für den Bootloader ist natürlich ein Argument, besonders für den MapleCUL ...

Vielleicht hat jemand ein Hinweis auf diesen Bootloader?  (Ist wohl eher nicht nicht STD-DFU).


Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 20 Juni 2019, 18:14:50
https://github.com/lupyuen/bluepill-bootloader (https://github.com/lupyuen/bluepill-bootloader)
https://github.com/mmoskal/uf2-stm32f103/blob/master/README.md (https://github.com/mmoskal/uf2-stm32f103/blob/master/README.md)

ZitatCopy firmware.uf2 to the USB drive exposed by the bootloader
You will need a STLink/v2 (or other debugger) to flash it.
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Telekatz am 20 Juni 2019, 20:18:52
Nein, das ist nicht der passende Bootloader. Der macht zwar eine Mass Storage Class, funktioniert aber nicht mit .bin Files sondern nur mit UF2 Files.
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 20 Juni 2019, 22:21:42
Hallo Telekatz,
ja war mir bewusst. Der Bootloader scheint nicht einfach aufzufinden zu sein...
Nahe dran:
http://stm32duino.com/viewtopic.php?f=3&t=4530&p=52840&hilit=MSD#p52840 (http://stm32duino.com/viewtopic.php?f=3&t=4530&p=52840&hilit=MSD#p52840)
https://github.com/Squonk42/STM32_MSC_Bootloader (https://github.com/Squonk42/STM32_MSC_Bootloader)
https://github.com/Squonk42/STM32_HID_Bootloader (https://github.com/Squonk42/STM32_HID_Bootloader)


Hier noch ein Gag:
https://befinitiv.wordpress.com/2017/09/26/ts100-oscilloscope-hack/  (https://befinitiv.wordpress.com/2017/09/26/ts100-oscilloscope-hack/)
und
https://www.electronoobs.com/eng_arduino_tut32.php (https://www.electronoobs.com/eng_arduino_tut32.php)
https://www.electronoobs.com/eng_arduino_tut42.php (https://www.electronoobs.com/eng_arduino_tut42.php)
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Ranseyer am 21 Juni 2019, 06:50:35
Also falls der Schaltplan stimmt braucht der Bootloader keinen externen Speicher: https://de.scribd.com/document/368481754/TS100-V2-46-Schematic-Diagram-V1-0-pdf
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Telekatz am 22 Juni 2019, 22:30:22
Den uf2-stm32f103 Bootloader von UF2 nach bin Files umzubauen war jetzt gar nicht mal die komplizierteste Aufgabe. Schwieriger war es, den Bootloader auf unter 8kB Größe zu bekommen.
Anbei der Bootloader zum testen. Zum aktivieren des Bootloaders nach dem Loslassen der Reset Taste die zweite Taste gedrückt halten.
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 10:36:57
Cool ... + Respekt!  :)
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 11:45:50
Hallo Telekatz,

kann/muss BOOT1 dabei auf GND bleiben ? (Habe beide Varianten probiert)

Habe Bootloader auf Maple mit Demonstrator installiert (LED = PC13) .
Neue serielle Schnittstelle wird unter Windows angezeigt, aber neues USB-Laufwerk erscheint nicht.


Habe ich etwas nicht berücksichtigt?

Danke+Grüße
Jürgen



Probiere mal den UF2 Bootloader als "Referenz" aus ...
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: PeMue am 23 Juni 2019, 12:06:44
Hallo zusammen,

ich lese mal mit (ohne auch nur ansatzweise zu verstehen, was ihr da gerade diskutiert). Aber man ist ja lernfähig.
Und der Lötkolben hat was ..., vor allem der "Missbrauch" als "Oszi-Pen"  ;).

Gruß Peter
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 12:25:22
Hallo Telekatz,

unter RASPI wird im MSC-Modus folgendes erkannt:

usb 1-1.3: new full-speed USB device number 7 using dwc_otg
[  104.224047] usb 1-1.3: New USB device found, idVendor=1eaf, idProduct=0004, bcdDevice= 2.00
[  104.224063] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  104.224073] usb 1-1.3: Product: Maple
[  104.224082] usb 1-1.3: Manufacturer: LeafLabs


Ein USB-Stick liefert:
  873.246408] usb 1-1.3: Manufacturer: Kingston
[  873.246417] usb 1-1.3: SerialNumber: 1C6F654E3F31B211A9767CD2
[  873.247310] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[  873.254305] scsi host0: usb-storage 1-1.3:1.0
[  873.306362] usbcore: registered new interface driver uas
[  874.315884] scsi 0:0:0:0: Direct-Access     Kingston DT microDuo 3.0  PMAP PQ: 0 ANSI: 6
[  874.317493] sd 0:0:0:0: [sda] 30277632 512-byte logical blocks: (15.5 GB/14.4 GiB)
[  874.317946] sd 0:0:0:0: [sda] Write Protect is off
[  874.317972] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
[  874.318505] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  874.347150] sd 0:0:0:0: Attached scsi generic sg0 type 0
[  874.405510]  sda: sda1
[  874.408607] sd 0:0:0:0: [sda] Attached SCSI removable disk
[  874.860034] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.


Der TS-100 im MSC-Modus:
[ 1207.670051] usb 1-1.3: USB disconnect, device number 9
[ 1218.715832] usb 1-1.3: new full-speed USB device number 10 using dwc_otg
[ 1218.849294] usb 1-1.3: New USB device found, idVendor=0483, idProduct=5720, bcdDevice= 2.00
[ 1218.849310] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1218.849319] usb 1-1.3: Product: STM32 Mass Storage
[ 1218.849328] usb 1-1.3: Manufacturer: STMicroelectronics
[ 1218.849337] usb 1-1.3: SerialNumber: 1ÿoNU77W@%C
[ 1218.853243] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[ 1218.854591] scsi host0: usb-storage 1-1.3:1.0
[ 1219.917248] scsi 0:0:0:0: Direct-Access     Virtual  DFU Disk              PQ: 0 ANSI: 2
[ 1219.918797] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 1219.921589] sd 0:0:0:0: [sda] 4096 512-byte logical blocks: (2.10 MB/2.00 MiB)
[ 1219.922175] sd 0:0:0:0: [sda] Write Protect is off
[ 1219.922188] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 1219.922677] sd 0:0:0:0: [sda] No Caching mode page found
[ 1219.922689] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 1219.935927]  sda:
[ 1219.950196] sd 0:0:0:0: [sda] Attached SCSI removable disk

@Pemue:
war eher ein GAG gedacht, aber als  3V3 "Logic-Probe" ...  ;) :)
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Telekatz am 23 Juni 2019, 12:34:38
 
Zitat von: juergs am 23 Juni 2019, 11:45:50
Habe Bootloader auf Maple mit Demonstrator installiert (LED = PC13) .
Der Bootloader ist für den Maple Mini gemacht. LED an PC13 ist aber der Blue Pill. Da fehlt die Taste, um in den Bootloader zu kommen.
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 12:41:15
Zitat von: Telekatz am 23 Juni 2019, 12:34:38
Der Bootloader ist für den Maple Mini gemacht. LED an PC13 ist aber der Blue Pill. Da fehlt die Taste, um in den Bootloader zu kommen.

Hallo Telekatz,

glaube ist andersherum:
ZitatThe Black Pill does not come with any USB bootloader. This process should be roughly the same for all F103 boards.

    Download the correct bootloader binary, in this case generic_boot20_pb12.bin [2]
    Set the 'boot 0' pin/jumper high, and 'boot 1' low

            B0+ to center pin
            B1- to center pin

BluePill = PC12
Maple = PC13   Led leuchtet ja mit Deinem BL.

Aber: https://github.com/leaflabs/maplemini/blob/master/maplemini.pdf (https://github.com/leaflabs/maplemini/blob/master/maplemini.pdf)

Hatte frisches Maple-Board benutzt, aber kann auch ein BluePill nehmen ...
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 12:46:18
Schaue hier mal mal rein( wg "DFU:3.45"):
https://forum.seeedstudio.com/viewtopic.php?t=6942 (https://forum.seeedstudio.com/viewtopic.php?t=6942)
https://docs.google.com/document/d/1KtI75p771MsrvysjKE3TYNWSxzShYwZK9QapC75q7Is/edit (https://docs.google.com/document/d/1KtI75p771MsrvysjKE3TYNWSxzShYwZK9QapC75q7Is/edit)

Der Bootloader ist leider dort nicht mehr verfügbar ..  :-\ :'(
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Telekatz am 23 Juni 2019, 14:02:31
Nein, der Maple hat die LED an PB1, der Blue Pill an PC13 und der Black Pill an PC12.

Mit der angehängten Version braucht man die zweite Taste nicht mehr. Zweimal innerhalb einer Sekunde Reset betätigt startet den Bootloader. Funktioniert aber wegen der unterschiedlichen USB Reset Schaltung auch nicht mit dem Blue Pill.
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 14:50:19
Danke, probiere es aus ..
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 14:55:01
 :)

Hallo Telekatz,

klasse funktioniert!

USB Laufwerk geht unter Win10 auf!

:D
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 15:00:53
Wenn ich eine Arduino kompilierte Firmware ins Laufwerk lege, reagiert es wie erwartet.
Der Bootloader führt aber den ArduinoCode auch nach einem Reset nicht aus.
Muss da ein Adress-Offset für den Linker hinzugefügt werden? 

Memory Configuration

Name             Origin             Length             Attributes
ram              0x20000c00         0x00004400         xrw
rom              0x08005000         0x0001b000         xr
*default*        0x00000000         0xffffffff
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 15:58:12
Ständer (interessant "flatten" in Fusion360):

https://www.youtube.com/watch?v=K7X_7fUIjKI (https://www.youtube.com/watch?v=K7X_7fUIjKI)
https://www.thingiverse.com/thing:2518489 (https://www.thingiverse.com/thing:2518489)
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Telekatz am 23 Juni 2019, 16:07:44
Zitat von: juergs am 23 Juni 2019, 15:00:53
Muss da ein Adress-Offset für den Linker hinzugefügt werden? 
Das Programm muss an der Adresse 0x8002000 starten.
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 16:11:42
Ah, klar!
/edit: Das war auch das Problem in der ersten Version des Bootloaders ... 
Die sollte dann auch funktionieren....

Arduino startet @rom   0x08005000.
Mal schauen, wie man das in Arduino konfigurieren kann.

Vielen Dank! 

/Edit: Moving the start address to 0x8005000 (or 0x8002000) (http://stm32duino.com/viewtopic.php?t=568)

  C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\boards.txt (4 hits)
Line 26: mapleMini.menu.bootloader_version.original.build.vect=VECT_TAB_ADDR=0x8005000
Line 70: maple.build.vect=VECT_TAB_ADDR=0x8005000
Line 83: mapleRET6.build.vect=VECT_TAB_ADDR=0x8005000
Line 121: microduino32_flash.build.vect=VECT_TAB_ADDR=0x8005000


Memory Configuration

Name             Origin             Length             Attributes
ram              0x20000c00         0x00004400         xrw
rom              0x08002000         0x0001ec00         xr
*default*        0x00000000         0xffffffff

Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 16:58:18
Hallo Telekatz,

habe in Arduino die Maple Linker-Konfiguration auf ROM: 0x8002000 gesetzt...
... und siehe da!

Es geht!!!! Super!

Leider ist das nicht mehr Standard-Konform, aber immerhin!

Ich vermute, die Start-Adresse 0x8002000 macht den zusätzlich gewonnenen Flash-Bereich von 0x3000 Bytes für die Anwendung nutzbar ...

Hier meine Änderungen, die ich dafür durchgeführt habe:

Neu mem-flash.inc:
MEMORY
{
  ram (rwx) : ORIGIN = 0x20000C00, LENGTH = 17K
  rom (rx)  : ORIGIN = 0x08002000, LENGTH = 120K
}


Original stand drin:

MEMORY
{
  ram (rwx) : ORIGIN = 0x20000C00, LENGTH = 17K
  rom (rx)  : ORIGIN = 0x08005000, LENGTH = 108K
}


und voilá: "special", aber geht!

Allerdings würde das, (natürlich) den Wunsch aufwerfen: StartAdresse 0x08005000 um im Arduino-Standard bleiben zu können. ;D ;)

Kleine Korrektur: 108K + 0x3000 = 120K (!)

Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Telekatz am 23 Juni 2019, 18:25:54
Die Startadresse ist deshalb 0x8002000, um mit dem bisherigen MapleCUN Bootloader kompatibel zu sein.

Die Änderungen an dem Bootloader kann man hier (https://github.com/Telekatz/MSC-stm32f103-bootloader) finden. Damit kannst du dir auch einen Bootloader für eine andere Startadresse bauen.
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 23 Juni 2019, 18:31:06
Hallo Telekatz,
besser geht es nicht.

Mit welcher Toolchain? IAR? VSCode integriert?

Vielen Dank + Grüße!

Jürgen

/edit: environment:

            PREFIX: "~/toolchains/gcc-arm-embedded/bin/arm-none-eabi
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: Telekatz am 23 Juni 2019, 18:42:29
Diese Toolchain: https://github.com/gnu-mcu-eclipse/arm-none-eabi-gcc/releases (https://github.com/gnu-mcu-eclipse/arm-none-eabi-gcc/releases)
Titel: Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
Beitrag von: juergs am 13 Juli 2019, 13:52:17
Da die Arm-Toolchain nicht mal so einfach (unter Windows) zu installieren ist,
habe ich mich für die Docker-Lösung entschieden und werde diesen Weg über Docker ausprobieren:
https://dev.to/dalimay28/using-docker-for-embedded-systems-development-b16 (https://dev.to/dalimay28/using-docker-for-embedded-systems-development-b16)

/edit:
Kleine Ergänzung: mir der WSL (Windows Subsystem für Linux) explizip Ubuntu, geht der Compile mit der ARM-Toolchain rel. einfach, wenn man den Kompiler und die Tools explizit mit Pfad zur spezifischen Toolchain im Make-File versieht.  ;) :)
https://forum.fhem.de/index.php/topic,106278.msg1043378.html#msg1043378 (https://forum.fhem.de/index.php/topic,106278.msg1043378.html#msg1043378)
https://forum.fhem.de/index.php/topic,106278.msg1043704.html#msg1043704 (https://forum.fhem.de/index.php/topic,106278.msg1043704.html#msg1043704)
https://github.com/juergs/maple_binaries/blob/main/README.md (https://github.com/juergs/maple_binaries/blob/main/README.md)