Kommunikation mit Beurer BM65 über USB

OP #5276143
Lesenswert?

Hallo zusammen,

ich bin am Überlegen, wie ich folgendes Problem lösen kann. Ich möchte 
gerne ein Blutdruckmessgerät von Beurer BM56 mit einer Mini-USB Buchse 
und folgendem Datentransfer möglichst simpel per Funk an einem Linux 
Recher senden.

http://www.atbrask.dk/?p=98

Die Empfangsseite ist egal. Nur die Sendeseite macht mir Probleme.

Ich weiß zwar durch die Website wie das Python-Skript per Direkt USB 
aussehen würde aber wie mache ich das möglichst simpel und 
Energiesparend als Funkbasierte Lösung?

Vielen Dank für Tipps.

Gruß kami
Persönliche Seite #5276248
Lesenswert?

Sofern Du das Blutdruckmessgerät selbst modifizieren kannst, ist das 
Problem recht leicht lösbar. Öffne es, entferne die darin verbaute 
USB-Seriell-Bridge (Prolific PL2303) und schließe an deren 
Rx/Tx-Anschlüsse eine geeignetes Funkmodul an, wie z.B. ein HC-05 (das 
ist ein Bluetooth-Modul). Das nutzt SPP, was die Funktionalität einer 
seriellen Schnittstelle nachbildet.

Wenn das Gerät nicht modifiert werden kann, wird die Angelegenheit 
erheblich aufwendiger. Du brauchst einen µC, der USB-Host spielen kann 
und musst auf dem einerseits die Ansteuerung des PL2303 umsetzen, und 
andererseits mit einem wie auch immer gearteten Funkmodul kommunizieren.

Hattest Du Dir denn schon irgendeine Funktechnik ausgesucht, die Dein 
Linux-Rechner unterstützt?
#5276254
Lesenswert?

Stefan S. schrieb:
> aussehen würde aber wie mache ich das möglichst simpel und
> Energiesparend als Funkbasierte Lösung?

Wenn Du das Gerät nicht aufschrauben und drin rumlöten möchtest, müsste 
das Funk-Device ja ein USB Host sein, damit es mit dem BM65 
kommunizieren kann.

Da würde mir nur sowas wie ein Raspberry Pi einfallen. Oder man nimmt 
ein altes Android Telefon, aber es ist nicht sicher ob das den Treiber 
für den USB-Serialport (PL-2303) mitbringt.
OP #5277360
Lesenswert?

Hi,

das Gerät kann ich komplett öffnen und umlöten. Am liebsten hätte ich es 
das er nach jeder Messung ein Telegram versendet. Bluetooth wäre gar 
nicht meine erste Wahl ich habe hier mehr RF Funk im Haus. Hat da einer 
ne Idee zu.

Ich habe das Gerät jetzt gerade mal geöffnet. 2 interessante Platinen 
sind drauf. Aber leider nur USB Pins zu erkennen. Siehe Fotos. Auch 
keine Prolific Chips nur einer mit Lack drauf und die Rückseite. Hat 
einer ne Idee?

Brauche ich für den USB-Host dann einen selbstgeschriebenen Treiber?

Vielen Dank.

Gruß kami
Angehängte Dateien:
#5277374
Lesenswert?

> das Gerät kann ich komplett öffnen und umlöten. Am liebsten hätte ich es
> das er nach jeder Messung ein Telegram versendet. Bluetooth wäre gar
> nicht meine erste Wahl ich habe hier mehr RF Funk im Haus. Hat da einer
> ne Idee zu.

Ich kenne das Protokoll nicht aber wenn das Gerät "freiwillig" ein 
Telegramm schickt, dann gilt es das einfach weiterzuleiten.
Wenn das Gerät kein Telegramm schickt, musst du am PC oder an einem µC 
das selber abfragen. Dabei werden dann der Start Button und ggf. ein 
Ready Signal sehr hilfreich. Ist das Ready Signal nicht vorhanden, kann 
man es meist über einen Timer lösen.

> Ich habe das Gerät jetzt gerade mal geöffnet. 2 interessante Platinen
> sind drauf. Aber leider nur USB Pins zu erkennen. Siehe Fotos. Auch
> keine Prolific Chips nur einer mit Lack drauf und die Rückseite. Hat
> einer ne Idee?

entweder du findest die RX/TX Paare oder du emulierst einen USB Host, 
dann reichen auch die D+/D- Pins. So wie es aussieht, ist unter der 
schwarzen Masse ein µC (Thema Raspberry Pi oder Orange PI oder du nimst 
einen STM32, welches ggf. schwieriger wird).


> Brauche ich für den USB-Host dann einen selbstgeschriebenen Treiber?

Am PC brauchst du meist keinen Treiber, weil es für die meisten Geräte 
bereits einen gibt.
Wenn du einen FTDI oder Profilic Chip verwendest, dann gibt den für 
jedes OS frei Haus.
Gast #5277376
Lesenswert?

Stefan S. schrieb:
> Ich habe das Gerät jetzt gerade mal geöffnet. 2 interessante Platinen
> sind drauf. Aber leider nur USB Pins zu erkennen. Siehe Fotos. Auch
> keine Prolific Chips nur einer mit Lack drauf und die Rückseite. Hat
> einer ne Idee?

Und wohin führen die Leiterbahnen der USB-Schnittstelle?
Vermutlich unter den Epoxid-Klecks?

Stefan S. schrieb:
> Brauche ich für den USB-Host dann einen selbstgeschriebenen Treiber?

Hast du das Gerät schon mal ohne den Herstellertreiber am PC hängen 
gehabt?
Als was wird das Ding erkannt?
Rufus meinte was bzgl. Profilic-Chip. Dann sollte den PC das Ding als 
CDC-Device (i.d.R. serielle Schnittstelle über USB) erkennen.
Wenn nicht, wird es richtig anstrengend...
#5277379
Lesenswert?

Ich hab mir den Blog Beitrag angeschaut. Dort steht, dass es als 
Profilic Chip UART2USB erkannt wird. Leider kann das auch von einem µC 
emuliert werden.
Spannende Frage also, ist es ein µC oder ein echter USB2Seriell Wandler. 
Danach könnte man sich auf die TX/RX Leitungen hooken ohne den Profilic 
zu benutzen.
#5277421
Lesenswert?

Ich hab mir die Platine nochmals angeschaut. Es schaut so aus, dass ein 
µC drauf ist, vermutlich PIC und der ist direkt an USB angeschlossen.
Obwohl die Platine gut dokumentiert ist, und auch sowas wie ein Debug 
drauf ist, finde ich keine RX/TX Beschriftung, somit wird es USB only 
sein.

Wenn du Zeit und Lust hast, könnt man sich noch ein paar Testpunkte 
ansehen, ob da was rauskommt an seriellen Daten, wenn dann wird es aber 
Debuginfo sein. Fernsteuerung nur schwer möglich. Vorschlag deswegen, 
USB zu emulieren mit µC und dann die Daten versenden über den Tranceiver 
deiner Wahl.
Persönliche Seite #5282623
Lesenswert?

Der USB-Host ist nur die halbe Miete. Du musst auf dem USB-Host die 
jeweilige Deviceansteuerung hinbekommen, um mit der verwendeten USB-UART 
"reden" zu können.

Dazu aber musst Du die USB-UART erst mal identifizeren, denn anders als 
es sich zu Beginn darstellte, scheint hier keine Prolific-USB-UART, 
sondern irgendwas anderes verbaut zu sein.

Wenn Du ein hochauflösendes und scharfes Bild des Bausteins anfertigen 
und hier hochladen würdest, bestünde die Chance, daß man mit etwsa 
Bildverarbeitung/Kontrastanhebung die Beschriftung entziffern kann.

Mit der VID/PID-Kombination (0c45/7406), die Du genannt hast, kann man 
jedenfalls nichts anfangen. Sicher, daß die von diesem Gerät ist, und 
nicht von irgendwas anderem an Deinem Rechner? Ist Dein Rechner 
zufälligerweise ein Sony Vaio?
#5283141
Lesenswert?

Wäre es nicht einfacher, sich per seriellem UART2USB Adapter auf die 
RX/TX Leitung zu hängen, womit man dann das ganze beipassen kann.
Das geht natürlich nur, wenn zwischen µC und USB Chip seriell 
kommuniziert wird und nicht z.B. SPI.
1
µC <---Com---> Chip <---USB--->PC
2
        |
3
        -----> USB2SER

Später könnte man dann die Verbindung auftrennen und mit dem Chip seiner 
Wahl drahtlos kommunizieren.
(Firma: matzetronics) #5283178
Lesenswert?

Benjamin S. schrieb:
> Wäre es nicht einfacher, sich per seriellem UART2USB Adapter auf die
> RX/TX Leitung zu hängen, womit man dann das ganze beipassen kann.

Da sind wir ja schon die ganze Zeit dran. Aber wenn der TE nichts über 
die Bezeichnung der USB Bridge sagt, die man auf dem Foto nicht lesen 
kann, kann man auch nicht sagen, wo und ob es überhaupt UART gibt.
Persönliche Seite #5283180
Lesenswert?

Benjamin S. schrieb:
> Wäre es nicht einfacher, sich per seriellem UART2USB Adapter auf die
> RX/TX Leitung zu hängen, womit man dann das ganze beipassen kann.

Dazu müsste man erst mal wissen, was die RX/TX-Leitungen sind. Da aber 
weder der Prozessor in dem Gerät noch das, was vermutlich die 
USB/Seriell-Bridge ist, bekannt sind, dürfte das nicht einfach sein.

Vor allem ist in Anbetracht der VID/PID-Kombination noch nicht mal 
gesagt, ob das überhaupt eine USB/Seriell-Bridge ist, oder nicht 
eventuell doch was ganz anderes.

"Beipassen"? Echt?
Gast #5283246
Lesenswert?

Ich habe mir den obigen Thread nochmal genau angeschaut, da passt 
einiges nicht.

Laut http://www.atbrask.dk/?p=98 ist der USB-Chip ein PL2303, das passt 
aber nicht zum Photo des TE. Auf dem Photo ist ein QFN16 mit den 
USB-Datenleitungen verbunden, der PL2303 ist aber ein QFN32 und PID/VID 
passen auch nicht.

Der Beitrag von mcmc passt schon eher, ein FT230 würde passen (QFN 16, 
USB an Pin 6 und 7), aber die Beschriftung des FT230 ist 4-zeilig, auf 
dem Photo sind nur 3 Zeilen zu sehen. Es gibt aber noch andere Chips von 
FTDI im QFN16, der FT121 ist QFN16 mit 3 Zeilen Beschriftung, da passen 
aber die USb-Anschlüsse nicht.
OP #5284226
Lesenswert?

Hi,

so ich habe mal etwas geforscht. Also erstmal ja sorry es ist ein BM55.

Es wird bei mir unter Windows als USB-Eingabegerät mit Windowstreiber 
und der genannten VID und so angezeigt. Das Auslesen unter Windows 
klappt dann auch nicht so sauber. Aber das Gerät wird angesteurt. Den 
Chip konnt e ich nun erkennen es ist Ein Sonix IC mit der Bezeichnung 
8F2271BJ. Hat da jemand eine Idee zu?

Gruß kami
Persönliche Seite #5284272
Lesenswert?

Stefan S. schrieb:
> Es wird bei mir unter Windows als USB-Eingabegerät mit Windowstreiber
> und der genannten VID und so angezeigt.

Aha.

Dann ist da keine UART im Spiel; das Ding spricht HID.


> es ist Ein Sonix IC mit der Bezeichnung 8F2271BJ.

Das ist ein Microcontroller mit USB-Schnittstelle.

Ein für die meisten (und mich auch) unverständliches Datenblatt gibt's 
hier:

http://www.atech.com.tw/%5Cproduct%5Csonix%5C8bit%5CSN8F22%20Series%5CSN8F2271B_V10_SC.pdf

Immerhin kann man auf Seite 8 die Pinbelegung erkennen.

Eine UART scheint es nicht zu geben, dafür aber eine 
Hardware-SPI-Schnittstelle.

Also:

Da das keine USB-UART-Bridge ist, kann man nicht einfach irgendwo einen 
seriellen Datenstrom abgreifen. Um mit einem USB-Host mit dem Ding 
"reden" zu können, müsste man zunächst das USB-Protokoll analsysieren, 
das dem Ding vom zugehörigen Devicetreiber geschickt wird, was ich für 
kaum vertretbaren Aufwand halte.

Ich fürchte, die Idee wirst Du Dir abschminken können.
Persönliche Seite #5285390
Lesenswert?

Dein Python-Skript funktioniert nicht, denn das ist für ein anderes 
Gerät, das eine USB-Seriell-Bridge von Prolific verwendet.

Da so etwas aber in Deinem Gerät gar nicht verbaut ist, sieht also auch 
die Kommunikation mit dem Gerät komplett anders aus.

Nachtrag:

In den Kommentaren zur Webseite mit dem Python-Skript findet sich 
immerhin auch jemand, der Dein Problem mit dem HID-Interface hat, und 
ein eigenes Python-Skript gebastelt hat:

https://muling.lu/beurer-bm58

Wenn Du Dich darauf bezogen hast, vergiss' meine Anmerkung am Anfang 
dieses Beitrags.


Mit diesen Daten kann man auf den Raspberry Pi verzichten und einen 
einfacheren host-fähigen Microcontroller verwenden, oder auch 
irgendeinen und einen dedizierten USB-Host-Controller wie z.B. den 
"Vinculum" von FTDI.

Damit hast Du vielleicht dann doch Chancen, Dein Projekt umzusetzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren