Flashen des BierBot Binary unter Linux

Du hast Fragen oder brauchst Hilfe rund um BierBot Bricks - hier ist der richtige Ort.
Post Reply
AchimPfaffhof
Posts: 4
Joined: Tue Mar 19, 2024 8:37 pm

Flashen des BierBot Binary unter Linux

Post by AchimPfaffhof »

Hallo zusammen,
die YouTube Videos, die ich bis jetzt gefunden habe, zeigen und erklären das Flashen z.B. eines SONOFF THR316 unter Windows.
Gibt es Erfahrung und ggf. Doku, wie das unter Linux funktioniert.
Danke für jegliche Hinweise und Links.
Achim
Chuckg
Posts: 56
Joined: Tue Feb 21, 2023 8:05 pm

Re: Flashen des BierBot Binary unter Linux

Post by Chuckg »

Das brewflasher-Projekt unterstützt jetzt Biebot Bricks. Dies ist wahrscheinlich der einfachste Weg, wenn Sie die Hardware-Einrichtung abgeschlossen haben. Brewflasher hat eine App für Windows und Mac. Sie können es über Python unter Linux ausführen. Anweisungen für Linux finden Sie auf der Titelseite des Projekts.

https://github.com/thorrak/brewflasher

Google aus dem Englischen übersetzt

Chuck
User avatar
Bernhard
Site Admin
Posts: 265
Joined: Sun Jan 23, 2022 3:53 pm
Location: Munich - Germany

Re: Flashen des BierBot Binary unter Linux

Post by Bernhard »

Hey Achim,

Brewflasher wird Bricks zwar gelistet, habe das aber noch nie ausprobiert und bin daher nicht sicher ob das funktioniert. Ich entwickle unter Ubuntu, du kannst daher auf jeden Fall VSCode + platform.io nehmen, oder direkt esptool.py, s. https://github.com/BernhardSchlegel/Bri ... ocs/DEV.MD.

Viele Grüße,
Bernhard.

PS: Chuck, thanks for jumping in in all those places. Message volume is currently not high enough, but you'd be my #1 pick for a mod.
Chuckg
Posts: 56
Joined: Tue Feb 21, 2023 8:05 pm

Re: Flashen des BierBot Binary unter Linux

Post by Chuckg »

Thanks for the vote of confidence.

Ich habe brewflasher einmal ausprobiert, um zu sehen, wie gut es funktioniert. Es blitzte. Aber ich verwende keine Sonoff-Steine, daher kann ich nicht sagen, wann es geblitzt hat.

Chuck
AchimPfaffhof
Posts: 4
Joined: Tue Mar 19, 2024 8:37 pm

Re: Flashen des BierBot Binary unter Linux

Post by AchimPfaffhof »

Bernhard wrote: Sun Mar 24, 2024 2:02 pm Hey Achim,

Brewflasher wird Bricks zwar gelistet, habe das aber noch nie ausprobiert und bin daher nicht sicher ob das funktioniert. Ich entwickle unter Ubuntu, du kannst daher auf jeden Fall VSCode + platform.io nehmen, oder direkt esptool.py, s. https://github.com/BernhardSchlegel/Bri ... ocs/DEV.MD.

Viele Grüße,
Bernhard.

PS: Chuck, thanks for jumping in in all those places. Message volume is currently not high enough, but you'd be my #1 pick for a mod.
Hey Bernhard,
inzwischen (nach einem mehrmonatigen Sommeraufenthalt in Finnland) wird das Bierbotbrick-Projekt konkreter. Ich hab mir inzwischen ein THR316 beschafft und auch die HW-Modifikation nach deiner Beschreibung in Youtube gemacht. Da ich ja unter Linux segle, habe ich bzgl. Programmierung wie von dir vorgeschlagen esptool.py verwendet. Ich bekomme Verbindung zum Board und kann z.B. chip- und flash-parameter auslesen.
(Was mich verwundert, ist, dass verify_flash fehlschlägt: "A fatal error occurred: ESP32 ROM does not support function read_flash.")
Mit etwas Recherche, wie das Kommando write_flash mit mehreren Dateien funktioniert, hat das Laden schon mal geklappt.
Vielleicht ist für andere Nutzer auch interessant, wie man unter Linux am besten den USB-Port ermittelt. Dafür habe ich dieses (etwas unlesbare) Skript gefunden

Code: Select all

#!/bin/bash                                                            
#findusbdev.sh
                                                           
if [[ "$1" =~ ^(-h|--help)$ ]]; then                                   
                                                                       
echo "Find which USB devices are associated with which /dev/ nodes     
Usage:                                                                 
  $0 [-h|--help] [searchString]                                        
                                                                       
  -h | --help   Prints this message                                    
  searchString  Print only /dev/<device> of matching output            
                With no arguments $0 prints information for all        
                possible USB device nodes                              
                                                                       
E.g. $0 \"FTDI_FT232\" - will show /dev/ttyUSBX for a device using     
the FTDI FT232 chipset.                                                
"                                                                      
    exit 0                                                             
fi                                                                     
                                                                       
devs=$( (                                                              
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev ); do    
    # ( to launch a subshell here                                      
    (                                                                  
        syspath="${sysdevpath%/dev}"                                   
        devname="$(udevadm info -q name -p $syspath)"                  
        [[ "$devname" == "bus/"* ]] && exit                            
        eval "$(udevadm info -q property --export -p $syspath)"        
        [[ -z "$ID_SERIAL" ]] && exit                                  
        echo "/dev/$devname - $ID_SERIAL"                              
    )& # & here is causing all of these queries to run simultaneously  
done                                                                   
# wait then gives a chance for all of the iterations to complete       
wait                                                                   
# output order is random due to multiprocessing so sort results        
) | sort )                                                             
                                                                       
                                                                       
if [ -z "$1" ]; then                                                   
    echo "${devs}"                                                     
else                                                                   
    echo "${devs}" | grep "$1" | awk '{print $1}'                      
fi    
Für's Flashen habe ich dann dieses kleine Skript gemacht:

Code: Select all

#!/bin/bash

# original command from espressif web site
#$ python esptool.py -p /dev/tty.usbserial-0001 -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/hello_world.bin

port=/dev/ttyUSB0
sudo sudo chmod 777 ${port}
#flashsize=4MB
commonswitches="--before no_reset --after no_reset  --chip auto -p ${port} "
writeswitches="--flash_mode dio --flash_size detect --flash_freq 40m"

esptool ${commonswitches} chip_id
esptool ${commonswitches} flash_id

# Zum Testen, ob die Verbindung funktioniert, kann dieser Teil
# erstmal übersprungen werden true→false
if true;then
esptool ${commonswitches} write_flash ${writeswitches} \
0x1000  0x1000_bootloader_dio_40m.bin  \
0x8000  0x8000_partitions.bin \
0xe000  0xe000_boot_app0.bin  \
0x10000 0x10000_firmware.bin  \


fi

Ich hoffe jetzt mal, dass die restlichen Schritte auch noch klappen :D
LG
Achim
AchimPfaffhof
Posts: 4
Joined: Tue Mar 19, 2024 8:37 pm

Re: Flashen des BierBot Binary unter Linux

Post by AchimPfaffhof »

Hallo Bernhard,
bin einen Schritt weiter. Der Brick ist in meiner "Brauerei" angemeldet und auch "aktiv". Ich kann manuell die Heizung anschalten.
Allerdings scheint die Software keine Daten vom Temperatursensor zu bekommen. Ich hatte den THR mit Orignalfirmware getestet und mit der eWeLink App eine ganz einfache Zweipunkt-Regelung gemacht. Hat funktioniert. Der Sensor scheint also o.k.
Wenn ich im "Manuell-Modus" eine Zieltemperatur einstelle, dann wird auch die Heizung angemacht, aber die Temperatur bleibt auf -127°.
Wird der Sensor von deiner Firmware nicht unterstützt? Es ist der Sonoff WTS01.
Grüße Achim
User avatar
Bernhard
Site Admin
Posts: 265
Joined: Sun Jan 23, 2022 3:53 pm
Location: Munich - Germany

Re: Flashen des BierBot Binary unter Linux

Post by Bernhard »

Hey Achim, der WTS01 ist noch nicht supported, ich warte auf einen freundlichen Open Source contributor der dafür einen Pull-Request stellt: https://github.com/BernhardSchlegel/Brick-32/issues/13

Du könntest einen alten sonoff DS18B20 holen (mit Klinke) und einen Adapter: https://www.berrybase.de/sonoff-adapter ... -rj9-al010

Viele Grüße,
Bernhard.
AchimPfaffhof
Posts: 4
Joined: Tue Mar 19, 2024 8:37 pm

Re: Flashen des BierBot Binary unter Linux

Post by AchimPfaffhof »

Bernhard wrote: Thu Oct 24, 2024 5:04 am Hey Achim, der WTS01 ist noch nicht supported, ich warte auf einen freundlichen Open Source contributor der dafür einen Pull-Request stellt: https://github.com/BernhardSchlegel/Brick-32/issues/13

Du könntest einen alten sonoff DS18B20 holen (mit Klinke) und einen Adapter: https://www.berrybase.de/sonoff-adapter ... -rj9-al010

Viele Grüße,
Bernhard.
Hey Bernhard, guten Morgen,
deine schnelle Antwort freut mich, auch wenn es mich erstmal wieder ein Stück zurück wirft. :(
Der Verdacht liegt ja nahe (Linux user), dass ich ein potenzieller contributor sein könnte. In der Tat bin ich Softwarearchitekt im Ruhestand. Ich fürchte allerdings, ich bin hier zuhause für HW nahe Entwicklung nicht ausgestattet, bin auch lieber in c# unterwegs, auch wenn ich mein Leben lang mit c++ umgehen musste.
Natürlich schaue ich mir mal den Source-Code an, schon aus Neugier. Aber die schnelle Lösung werden wohl die paar Euro fünfzig für einen alten Sensor und den Adapter sein.;)
Was brauche ich denn für einen Klinkenstecker auf der Sensorseite :?: (die DS18B20 bekommt man i.d.R. ja ohne Stecker)
Und wie muss ich die drei (?) Drähte anschließen (→vier auf RJ9-Seite) :?:
LG
Achim
Post Reply