Hallo zusammen,
da der bekannte Ultraschall-Sensor HC-SR04 (ohne P) nur mit 5V läuft
(schlecht bei meinen ESP-Projekten) habe ich mir ein paar andere
Varianten beschafft. Sehr interessant ist dabei der HC-SR04P in der
neusten Variante. Der hat Lötjumper auf der Platine für I2C und
UART-Übertragung. Bei Ali gibts auch Bilder:
https://de.aliexpress.com/item/32823722162.html
Allerdings findet man über den verbauten Chip keinerlei Infos. Der Chip
heisst RCWL-9600 und ist auch auf dem M5Stack Modul U098 verbaut (unter
dem Gehäuse gibt es da auch Lötjumper, der M5-Kram läuft aber meist über
I2C).
https://www.distrelec.biz/en/rcwl-9600-ultrasonic-distance-sensor-unit-m5stack-u098/p/30185753
Erkenntnisse bisher:
====================
Zunächst habe ich den UART-Modus untersucht. Da gibt es das ähnliche
Modul US-100, welches auch mit 3,3V läuft. Ein Beispielprogramm für das
US-100 läuft aber nicht mit dem HC-SR04P. Das US-100 antwortet nach dem
Befehl 0x55 mit 2 Bytes für den gemessenen Abstand.
Ich habe dann alles von 0-255 durchprobiert. Bei 0xA0 und 0xF1 antwortet
das Modul über UART.
Bei 0xA0 kommen 3 Bytes an, die der Messwert sein könnten - einfaches
Aneinanderhängen könnte der Abstand in µm sein(!)
Mein Testprogramm:
1
/* HC-SR04P neue Version
2
Die neuste Version des SR-HC04P hat 2 Lötjumper auf der Platine, um die Schnittstelle umzustellen
3
Der Chip hat die Bezeichnung RCWL-9600 (weiteres Stichwort zum Suchen: M5Stack Modul U098)
Die erste Hälfte ist scheinbar "Datenmüll", dann kommt ein NUL-Zeichen
(0x00) und anschließend lesbar ASCII - seltsam...
Besser lief dann der Versuch mit I2C-Bus. Das Beispiel für das
M5Stack-Modul läuft sofort.
https://github.com/m5stack/M5-ProductExampleCodes/blob/master/Unit/ULTRA/Arduino/ULTRA/ULTRA.ino
Etwas Unsinnig ist hier, den Messwert in Millimetern als float-Wert
umzuwandeln. Bei dem Teil brauche ich keine 123,45mm als Ergebnis. Daher
habe ich in meiner Variante das Ergebnis als ganze Millimeter belassen:
1
#include<Wire.h>
2
constintMySCL=27,MySDA=14;// den Hardware-I2C wollte ich hier gerade mal nicht nehmen. Geht natürlich auch auf 21+22
3
voidsetup(){
4
Serial.begin(115200);
5
Wire.begin(MySDA,MySCL);
6
Serial.printf("Register 0: 0x%02X\n",readRegUS(0));// Test, ob da was zurück kommt...
7
Serial.printf("Register 2: 0x%02X\n",readRegUS(2));// die 1 fehlt hier, das ist das Datenregister
Die Antworten auf meine einzelnen Registernabfragen (Adressen 0, 2-9)
sind abwechselnd 0x00 und 0xFF. Beim nächsten Aufruf gleich oder
umgedreht!?! Leider ist scheinbar kein Register dabei, in dem die
I2C-Adresse des Moduls drin steht.
Nach den ganzen Erkenntnissen kommen jetzt ein paar Fragen...
- Hat zuällig jemand ein Datenblatt vom Chip RCWL-9600?? Ich habe mir
einen Wolf gesucht :-(
- Beim I2C Modus wäre schick, wenn man die Bausteinadresse setzen
könnte. Gibt es da was bei M5Stack??
Bitte doch den Händler um Infos, nicht uns.
Ich habe kein Verständnis dafür, dass die Händler bei gewissen Produkten
großflächig die Katze im Sack verkaufen können, weil wir hier die
nötigen Infos erarbeiten, ohne dafür einen Cent zu bekommen. Das ist
unfair.
Wer Produkte verkaufen will, soll gefälligst auch die nötigen Infos dazu
beschaffen. Ansonsten bitte wieder zurück zur Damenunterwäsche, die hier
niemandem passt.
Genau! Nicht die billigen Module aus China kaufen, sondern hochwertige
Sensoren! Dann kommt auch direkt der passende Applikationsingenieur mit
ins Haus!!!
Es ist wirtschaftsschädigend, wenn Hobbyisten unter der Ausrede eines
kleinen Budgets anders als Konzernentwickler vorgehen!!!!
Walter T. schrieb:> Genau! Nicht die billigen Module aus China kaufen
Du hast es nicht verstanden. Ich will niemandem "billige Module aus
China" ausreden. Es geht um die fehlende Doku. Wer so etwas verkauft,
soll auch die Doku dazu mitliefern oder verlinken. Das ist nicht zu viel
verlangt. Einen Link setzen ist eine Sache von einer Minute! Bei jedem
seriösen Händler ist das selbstverständlich.
Stefan ⛄ F. schrieb:> Bitte doch den Händler um Infos, nicht uns.
Antworte doch einfach mal nicht wenn du keine Infos hast.
Wenn jeder der nichts weiss antworten würde, dann könntest du das Forum
gleich dicht machen.
Johannes,
antworte doch einfach mal nicht wenn du keine Infos hast.
Wenn jeder der nichts weiss antworten würde, dann könntest du das Forum
gleich dicht machen.
Stefan ⛄ F. schrieb:> Wer so etwas verkauft,> soll auch die Doku dazu mitliefern oder verlinken. Das ist nicht zu viel> verlangt.
Da bin ich ganz bei dir.
Entweder ich informiere mich vorher, ob ich irgendwo Dokumentationen
auftreiben kann und kaufe dann beim billigsten oder ich riskiere, dass
ich nicht mit der HW klarkomme und es dann Lehrgeld war.
Das ist dann aber mein Problem und nicht das des Forums.
Wie oft kommt das hier vor: man hat bei Ali, eBay, Amazon was gekauft
und weiß nicht mal, wie man es anschließt oder was es tatsächlich kann -
und fragt hier ...
HildeK schrieb:> Entweder ich informiere mich vorher ...
Wobei der Bernhard sie durchaus (mit simplem Logik-Signalen) nutzen kann
und vielleicht auch wollte. Vielleicht ist er erst durch den Lötjumper
auf die seriellen Schnittstellen aufmerksam geworden, und die haben
seine Neugier geweckt. Das er hier fragt, ist völlig OK. Er hat ja sogar
seine Erkenntnisse veröffentlicht.
Ich habe (wie viele andere hier auch) ein Talent zur Suche im Internet,
mit dem ich gerne helfe, wenn ich kann. Aber ich habe absolut nichts zum
Produkt gefunden. Was die Händler da abziehen, ist nicht in Ordnung.
HildeK schrieb:> Wie oft kommt das hier vor: man hat bei Ali, eBay, Amazon was gekauft> und weiß nicht mal, wie man es anschließt oder was es tatsächlich kann -> und fragt hier ...
Ständig. Wir arbeiten kostenlos für die Händler.
Von dem Sprücheklopfer Joachim erwarte ich, dass er sich jetzt Mühe gibt
und wenigstens bis zum Abend auf die Suche macht. Denn er ist ja ein
besserer Mensch als ich. Hilfsbereit, Wissend, ohne irgendwelche
Syndrome.
Wir werden sehen. Vielleicht gibt er mir an Ende doch Recht, dass man
den Händler fragen sollte.
ich habe eine HC04 Version die unaufgefordert alle 50 ms einen Messwert
sendet, das hat aber nur 3 Pins und keine Lötjumper.
Für I2C könnte das hier passen:
https://github.com/SGBotic/SGBotic_I2CPing
was aber auch dem M5Stack Code entspricht wie ich das sehe.
Stefan ⛄ F. schrieb:> Wobei der Bernhard sie durchaus (mit simplem Logik-Signalen) nutzen kann> und vielleicht auch wollte. Vielleicht ist er erst durch den Lötjumper> auf die seriellen Schnittstellen aufmerksam geworden, und die haben> seine Neugier geweckt. Das er hier fragt, ist völlig OK. Er hat ja sogar> seine Erkenntnisse veröffentlicht.
Ich hatte zunächst nur die 3,3V Option im Focus. Dann habe ich aber die
Signalbezeichnungen auf der Platine und die Lötjumper gesehen. Das weckt
Begehrlichkeiten...
> Ich habe (wie viele andere hier auch) ein Talent zur Suche im Internet,> mit dem ich gerne helfe, wenn ich kann. Aber ich habe absolut nichts zum> Produkt gefunden. Was die Händler da abziehen, ist nicht in Ordnung.
Ich finde eigentlich auch fast alles, aber trotz intensiver Suche bin
ich noch nicht einmal auf die Webseite des Chipherstellers gekommen.
RCWL ist auch nicht bei einer Logo-Suche zu finden :-(
Stefan ⛄ F. schrieb:> Ich habe kein Verständnis dafür, dass die Händler bei gewissen Produkten> großflächig die Katze im Sack verkaufen können, weil wir hier die> nötigen Infos erarbeiten, ohne dafür einen Cent zu bekommen. Das ist> unfair.
Das betrifft leider auch einige der "großen" Händler. Von Adafruit
bekommt man einen Ultraschallsensor unter der Bezeichnung RCWL-1601.
https://www.adafruit.com/product/4007
Da passt aber das Foto der Rückseite (mit dem RCWL-9600 Chip) nicht zur
Vorderseite (beachte die beiden Vias oben!). Auch bei dem Sensor ist
kein Datenblatt verlinkt und die Software-Beispiele nutzen nur die
bekannte Trigger/Echo Messung.
Es ist aber wirklich ungewöhnlich, dass man zu den ICs gar nichts
findet. Auch der Radar-Sensor RCWL-0516 mit dem IC RCWL-9196 - nix an
Details zu finden. Wahrscheinlich hat der Hersteller des ICs noch ein
paar Gimmicks für "den Verteidigungsfall" im Angebot und ist daher
untergetaucht...
Bernhard S. schrieb:> Das betrifft leider auch einige der "großen" Händler. Von Adafruit ...
Die habe ich sowieso gefressen. Von denen habe ich zum doppelten Preis
ein Display gekauft, weil sie dazu ein Buch mit Anleitungen angeboten
hatten. Geliefert wurde nur das nackte Display, ohne Buch und ohne
Pinbelegung.
Ich habe dann eine Nachlieferung oder wenigstens ein PDF angefordert,
habe sie ab verweigert. Angeblich gäbe es das Buch doch nicht, sorry.
Aber das Angebot im Shop wird nicht korrigiert, ist zu aufwändig, sorry.
Die Pinbelegung könnte ich von einem Quelletxt ableiten den ich mir
selbst bei GitHub suchen. Ein Link gibt's nicht, sorry.
Ich kaufe nie wieder bei Adafruit ein. Das ist der gleiche Ramsch wie
bei Aliexpress, nur teurer - wie auch beim Conrad.
Stefan ⛄ F. schrieb:> Wir werden sehen. Vielleicht gibt er mir an Ende doch Recht, dass man> den Händler fragen sollte.
Witzbold. Kann man machen, man bekommt aber nicht immer eine Antwort.
Das weiß man wenn man die billigen Module aus China kauft. Die meisten
Händler sind Kistenschieber, nimm oder lass es sein.
Und deinen gelöschten Text über Adafruit hatte ich gelesen. Ist schon
peinlich wenn man anderen empfiehlt sich erstmal schlau zu machen und
dann über andere Händler beschwert. LOL.
Und durch Reverse Engineering mit dem Schwarmwissen hier wurden auch
hier schon manche Pollin Reste veredelt und zu begehrten Schnäppchen.
Zum HC04 hatte ich vor Jahren auch schon mal hier nachgefragt, zur
serillen Version ist auch wenig zu finden.
Interessanter als stundenlang zu suchen wäre sicher es mit Engineering
zu versuchen. Auf den Modulen ist ja nicht viel drauf, das lässt sich
auch durch einen selbstprogrammierten µC ersetzen wenn man Sonderwünsche
hat. Eventuell kann die US Transducer direkter an den Xtensa anklemmen.
Stefan ⛄ F. schrieb:> Ich kaufe nie wieder bei Adafruit ein. Das ist der gleiche Ramsch wie> bei Aliexpress, nur teurer - wie auch beim Conrad.
was erwartest du? Das Lady Ada dir ein gebundenes Buch persönlich
vorbeibringt?
Johannes S. schrieb:> was erwartest du? Das Lady Ada dir ein gebundenes Buch persönlich> vorbeibringt?
Genau das haben sie in ihrem Shop versprochen. Das ist heute noch deren
Verkaufsmasche.
Ich hatte vor dem Kauf sogar nach der Doku gefragt und bekam die
Antwort, dass alle nötige Doku mit Links zu Beispielcodes mitgeliefert
wird.
War aber nicht so.
und trotzdem gehört Adafruit noch zu denen die auch Entwicklung
betreiben und von denen reichlich abgekupfert wird. Vielleicht hast du
da Pech gehabt. Die haben 1500 Repos auf Github, das ist doch schon was,
da muss man das richtige erstmal finden.
Holger L. schrieb:> Slave Adresse 0x57> Write: 0xAE Wert 0x01, ~200ms Messung> Read: 0xAF Antwort Byte_H, Byte_M, Byte_L> Ergebniss: (( Byte_H<<16) + (Byte_M<<8) + (Byte_L) / 1000) mm
Das ist doch genau, was mein Code macht. Slave (=Hardware) Adresse 0x57,
gibt (0x57<<1)=0xAE als Schreibadresse und (0x57<<1 +1)=0xAF als
Leseadresse.
Interessant wäre halt noch (sicher, vorab) zu wissen, was als weitere
Kommandos oder Register von dem Chip noch akzeptiert werden.
Hi
Bernhard S. (b_spitzer) schrieb
>Auch der Radar-Sensor RCWL-0516 mit dem IC RCWL-9196 - nix an>Details zu finden.
Bei dem IC RCWL-9196 würde ich auf Grund der Anschlussbelegung ganz
spontan auf einen BISS0001 (einer der weit verbreiteten Radar-ICs)
tippen.
MfG Spess
Spess53 schrieb:> Bei dem IC RCWL-9196 würde ich auf Grund der Anschlussbelegung ganz> spontan auf einen BISS0001 (einer der weit verbreiteten Radar-ICs)> tippen.
Der RCWL-9196 scheint kompatibel zum BISS0001 zu sein, trotzdem ist
davon (im Gegensatz zum BISS http://www.sc-tech. cn/en/0001en.htm
leerzeichen in der URL löschen) kein Hersteler und kein Datenblatt
verfügbar.
Also ist auch dieser Tipp eher fundierte Kaffesatzleserei.
Hier jat jemand einen ähnlichen Chip eines RCWL-0515 Radar-Moduls
analysiert, abgeschliffen und im Gehäuse 2(!) Dies entdeckt. Ein LD1117
und ein Chip mit der Kennzeichnung TT1712. Modulhersteller wieder
RCWL...
https://www.tinytransistors.net/2020/12/20/rcwl-0515-radar-motion-sensor/
Ich schätze, dass der Hersteller in China Teile für "den
Verteidigungsfall (mit Dual-Use)" produziert und daher offiziell nirgens
auftaucht.
Hi
>Also ist auch dieser Tipp eher fundierte Kaffesatzleserei.
Ich bin nicht der einzige, der auf diese Idee gekommen ist:
https://www.snapeda.com/parts/rcwl-9196/RCWL/datasheet/>Auch der Radar-Sensor RCWL-0516 mit dem IC RCWL-9196 - nix an>Details zu finden. Wahrscheinlich hat der Hersteller des ICs noch ein>paar Gimmicks für "den Verteidigungsfall" im Angebot und ist daher>untergetaucht...
Was hast du denn für feuchte Träume? Nichts ist billiger als einen
massenhaft hergestellten IC mit eigenem Making zu versehen.
>Hier jat jemand einen ähnlichen Chip eines RCWL-0515 Radar-Moduls>analysiert, abgeschliffen und im Gehäuse 2(!)
Warum sollte sich jemand für ein in D nicht zugelassenes 3,GHz Modul
diesen Auffwand treiben?
MfG Spess
Wolfgang schrieb:> Der RCWL-9196 ist ein Mikrowellen Doppler Radar. Mit einem PIR Motion> Detektor IC, wie dem BISS0001 kann der prinzipbedingt schon mal nicht so> viel gemeinsam haben.
Bei dem Modul macht ein einziger Transistor den 3GHz-Oszillator und die
Demodulation. Der Chip bekommt nur die gefilterte Doppler-Frequenz zu
sehen. Im RCWL ist keine (kaum) HF-Magie drin... Erklärungen hier:
https://www.youtube.com/watch?v=Hf19hc9PtcESpess53 schrieb:> Warum sollte sich jemand für ein in D nicht zugelassenes 3,GHz Modul> diesen Auffwand treiben?
Die Sendeleistung beträgt (geschätzte) 1mW. Die Reichweite im Raum
beträgt 4-5m und Glas schirmt komplett ab. Da kommt sicher kein
Messwagen der Telekom vorbei...
Davon abgesehen, hier geht es mir eigentlich um den Ultraschall-Sensor
und das IC RCWL-9600. Den RCWL-9196 habe ich nur als Beispiel eines
anderen ICs des selben Herstellers (RCW?) genommen, von dem auch keine
exakten Infos verfügbar sind.
gruß
Bernhard
Bernhard S. schrieb:> Wolfgang schrieb:>> Der RCWL-9196 ist ein Mikrowellen Doppler Radar. Mit einem PIR Motion>> Detektor IC, wie dem BISS0001 kann der prinzipbedingt schon mal nicht so>> viel gemeinsam haben.>> Bei dem Modul macht ein einziger Transistor den 3GHz-Oszillator und die> Demodulation. Der Chip bekommt nur die gefilterte Doppler-Frequenz zu> sehen.
Eben - ein PIR detektiert tangentiale Bewegungen und ein Dopplerradar
radiale.
Danke @Bernhard für die Recherche.
Bernhard S. schrieb:> Die erste Hälfte ist scheinbar "Datenmüll", dann kommt ein NUL-Zeichen> (0x00) und anschließend lesbar ASCII - seltsam...
Wie im Kindergarten oben schon dargestellt, ignorieren die frechen
Chinesen nicht nur den potenten Massenmarkt der Handvoll westlicher
Hobbyfrickler durch schändliche Unterschlagung gangbarer Datenblätter,
sondern haben sich da auch noch erlaubt, in ihrer eigenen Firmware
Chinesisch zu schreiben.
Der Datenmüll ist nämlich GB18030 kodiert und ergibt den Firmennamen
无锡日晨物联, Google übersetzt das als "Wuxi Richen IoT". Das Original führt
per Google-Suche zur Homepage des Herstellers https://www.sz-rcwl.com/,
wo es aber keine Datenblätter gibt, Anfrage getriggert, bisher ohne Echo
(pun intended).
Mein Wissen kommt von Recherchen, die ich mit anderen Sensoren des Typs
RCWL-1605 und RCWL-1005 unternommen habe. Für die gibt es auch keine
Datenblätter, aber auf diversen Produktseiten kann man sich Fragmente
davon zusammensuchen.
Aus diesen Infos habe ich mir meinen eigenen UART-Sketch gebastelt und
erst sehr spät gemerkt, dass es die neuere Version des HC-SR04P mit
ähnlichen Features gibt, und noch später diesen Thread gefunden und
gemerkt, dass alle offenbar Spielarten des gleichen RCWL-96XX Chips
verwenden. Duh.
Bei meinen sehr ähnlich gelagerten Tests habe ich aber leider auch nicht
viel mehr an Features ausgraben können. I2C scan reagiert noch auf 0x58,
dort aber keinerlei Funktionalität zu entdecken, genau wie unter 0x57
bei allen Registern außer 0x01.
I2C und UART Modus liefern tatsächlich beide die Messwerte in
Micrometern, deine Vermutung oben also richtig. Obwohl die
Datenblattfragmente auf die Relevanz einer Temperaturkorrektur
hinweisen, wird leider nicht dokumentiert, welche Temperatur der Sensor
selbst bei der Konversion in Micrometer zugrunde legt.
Meine weiteren, in ausbeuterischer Selbstversklavung unter Blut und
Tränen erarbeiteten Informationen habe ich zusammen mit einer kleinen
Library für den I2C Modus hier online gepackt:
https://github.com/ftjuh/RCWL_1X05
Interessant fände ich beim HC-SR04P noch, ob er im I2C Modus eine
ähnlich miese blind zone hat, die ist bei meinen beiden nämlich 25 cm.
Jan
Hallo,
nur für den Fall, dass noch Unklarheiten bestehen und für mein
zukünftiges Ich, poste ich hier nochmal die gesamte Geschichte:
Also den HC-SR04P (bei mir mit dem RCWL-9610) setzt man in den
I2C-Modus, indem man einen 10k Widerstand für Pin7=R8=M2 bestückt. Pin10
bleibt unbestückt.
Der Chip hat die I2C-SlaveAdresse 7bit=0x57/8bit=0xAE.
Zum Start der Messung schreibt (ReadWriteBit=0) man ein einziges
Datenbyte an den Slave. Also so:
S+0xAE+0x01+P
S: StartCondition; P: stoP condition
Nach 120ms liest man dann 3 Bytes von dem Baustein (ReadWriteBit=1).
Also so:
S+0xAF+Data[23:16]+Data[15:8]+Data[7:0]+P
S: StartCondition; P: stoP condition
Die Slave-Adresse ist dann immer noch die 7bit=0x57/8bit=0xAE aber mit
gesetztem RW-Bit => 0xAF auf dem Bus.
Es gibt keine Registeradressen, sondern nur das Startkommando 0x01.
Der Sensor liefert dann den Abstand in Micrometern!
Also die Werte 0x18, 0x8B, 0xC0 werden zu 0x188BC0, was dezimal
1608880um sind oder 1.608m bis zu meiner Zimmerdecke.