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:
- Hat jemand schon Erfahrung mit diesem Bootloader sammeln können?
- Wäre der Einsatz im MapleCUL denkbar?
Grüße,
Jürgen
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
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).
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.
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.
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)
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
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.
Cool ... + Respekt! :)
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 ...
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
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" ... ;) :)
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.
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 ...
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 .. :-\ :'(
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.
Danke, probiere es aus ..
:)
Hallo Telekatz,
klasse funktioniert!
USB Laufwerk geht unter Win10 auf!
:D
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
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)
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.
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
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:
- C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\boards.txt => alle Vorkommnisse von 0x8005000 durch 0x8002000 ersetzt
- C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\variants\maple_mini\ld\flash.ld => nichts gefunden ... aber in dessen include:
- C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\variants\maple_mini\ld\mem-flash.inc
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 (!)
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.
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
Diese Toolchain: https://github.com/gnu-mcu-eclipse/arm-none-eabi-gcc/releases (https://github.com/gnu-mcu-eclipse/arm-none-eabi-gcc/releases)
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)