Forum: Mikrocontroller und Digitale Elektronik Kommunikation mit Beurer BM65 über USB


von Stefan S. (kami)


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

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Jim M. (turboj)


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.

von Stefan S. (kami)


Angehängte Dateien:

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

von Benjamin S. (recycler)


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.

von STK500-Besitzer (Gast)


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...

von Benjamin S. (recycler)


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.

von Stefan S. (kami)


Lesenswert?

Hi,

also die Leitungen führen direkt ins Epoxid. Erkannt wird das Gerät als 
Microdia. Keine Ahnung finde dazu nicht direkt unter Google.

Gruß kami

von Stefan S. (kami)


Lesenswert?

Ich muss noch ein richtig stellen. Mein Gerät ist ein BM55 hat einen 
USB-Miniport und wird auch als Microdia mit USB ID VID 0c45 und PID 7406 
erkannt.

Also Baugleich oder ähnlich.

Gruß kami

von Benjamin S. (recycler)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Für mich sieht das so aus, als würde USB auf R96 und R97 landen an den 
roten Kreisen - solltest du mal durchpiepsen.
Es wäre schon interessant, was der blau umringte Chip für einer ist.

von STK500-Besitzer (Gast)


Lesenswert?

Matthias S. schrieb:
> Es wäre schon interessant, was der blau umringte Chip für einer ist.

könnte man die Beschriftung erkennen, könnte man das herausfinden...

von mcmc (Gast)


Lesenswert?

Benjamin S. schrieb:
> Es schaut so aus, dass ein
> µC drauf ist, vermutlich PIC

Es gibt keine PICs mit 16 Anschlüssen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

STK500-Besitzer schrieb:
>> Es wäre schon interessant, was der blau umringte Chip für einer ist.
>
> könnte man die Beschriftung erkennen, könnte man das herausfinden...

So wars gemeint :-P

von STK500-Besitzer (Gast)


Lesenswert?

Matthias S. schrieb:
> So wars gemeint :-P

Auf dem Bild erkennt man auf jeden Fall keine IC-Beschriftung.

von mcmc (Gast)


Lesenswert?

Matthias S. schrieb:
> Es wäre schon interessant, was der blau umringte Chip für einer ist.

Es könnte ein FTDI-Chip sein, z.B. ein FT230

von Stefan S. (kami)


Lesenswert?

Hi,

ja das ist auch leider auf der Original Platine ohne Foto nicht zulesen.

Schade. jemand sonst noch eine Idee zu einem guten kleinen USB-Host µC?

Danke.

Gruß kami

von Stefan S. (kami)


Lesenswert?

Hi,

nochmal ne Frage, wenn ich das so richtig sehe, dann könnte ein Arduino 
mit SAM-Controller als USB-Host fungieren. Ich würde erstmal gerne nicht 
anfangen alles selber zuschreiben. Als Libraries dazu für Arduino finde 
ich:

https://www.arduino.cc/en/Reference/USBHost

Hat einer Erfahrungen damit, ob ich meine Befehl irgendwie darüber 
hinkriege?

Danke.

Gruß kami

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Stefan S. (kami)


Lesenswert?

Hi,

okay habe ich verstanden. Werde versuchen die Bezeichnung rauszufinden.

Die VID/PID-Kombination ist definitiv richtig und von dem Gerät.

Sony Vaio habe ich aber nicht.

Gruß kami

von Benjamin S. (recycler)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rufus Τ. F. schrieb:
> Mit der VID/PID-Kombination (0c45/7406), die Du genannt hast, kann man
> jedenfalls nichts anfangen

Jo, bleibt alles offen. Immerhin ist bei dem Hersteller (Microdia) eine 
Lücke in den Device IDs bei 7406, aber das kann ja alles bedeuten.

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, hast Du denn den Devicetreiber, der zum Gerät gehört? Wie sieht der 
denn aus?

(Dateinamen etc.)

von STK500-Besitzer (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Nun, hast Du denn den Devicetreiber, der zum Gerät gehört? Wie
> sieht der
> denn aus?
>
> (Dateinamen etc.)

Die Bediensoftware gibt es zumindest hier:
https://connect.beurer.com/Download/Common/Software.aspx?culture=de-DE

von bingo (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

STK500-Besitzer schrieb:
> Die Bediensoftware gibt es zumindest hier:

Klick da mal auf den "download"-Knopf.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rufus Τ. F. schrieb:
> Klick da mal auf den "download"-Knopf.

Jupp, das grosse 'Es passiert gar nix'. Da fragt man sich doch, ob der 
Webdesigner das je getestet hat. Bei 'Treiber' genauso. Die *.inf hätte 
ja vllt. schon gereicht. Aber die Dilettanten waren eben wieder da.

: Bearbeitet durch User
von bingo (Gast)


Lesenswert?

Matthias S. schrieb:
> Jupp, das grosse 'Es passiert gar nix'

Bei mir (Firefox 57.0.4 bzw. Chromium 63.0.3239.84) werden meine Email 
und Passwort abgefragt bzw. eine Registrierung verlangt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

bingo schrieb:
> werden meine Email und Passwort abgefragt bzw. eine Registrierung
> verlangt.

Eben.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rufus Τ. F. schrieb:
> Klick da mal auf den "download"-Knopf.

Habs jetzt mal bei 'Treiber'->'BM65'->'Win10-64bit' probiert und er will 
den PL2303 Treiber runterladen - ohne Registrierung. PL2303? Schon sehr 
eigenartig.

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der Threadersteller kann hier weiterhelfen, indem er auf seinem PC 
nachsieht, welcher Treiber tatsächlich für sein Gerät installiert ist. 
Da er es geschafft hat, die VID/PID-Kombination herauszufinden, sollte 
auch das mit dem Treiber klappen.

von Infoguy (Gast)


Lesenswert?

Achtung: im Titel steht 65 kami hat aber den bm55

von Stefan S. (kami)


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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Stefan S. (kami)


Lesenswert?

Hallo zusammen,

das sind ja echt schlechte Nachrichten. Ich hatte gehofft ich komme da 
doch irgendwie ran. So bleibt mir wohl nicht viel mehr möglich als einen 
Raspberry mit USB einzusetzen. Schade.

Trotzdem vielen Dank.

Gruß kami

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan S. schrieb:
> So bleibt mir wohl nicht viel mehr möglich als einen Raspberry mit USB
> einzusetzen.

Gibt es denn die Software für Dein Gerät in einer Variante, die auf dem 
Raspberry läuft?

Wenn es die nicht gibt, dann kannst Du den Raspberry Pi nur als 
USB-Device-Server (d.h. als "virtuelle USB-Karte" für einen PC) 
einsetzen.

von Stefan S. (kami)


Lesenswert?

Hi,

nee es gibt ein Python-Skript dafür wie oben auf der Website 
beschrieben. Die Software ist nur für Windows.

Gruß kami

von Rufus Τ. F. (rufus) Benutzerseite


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.

: Bearbeitet durch User
von Benjamin S. (recycler)


Lesenswert?

Ist es ggf. möglich ein anderes Gerät (wie das BM65 anstatt BM55 zu 
nehmen) und sich dort in die serielle Verbindung einzuklinken oder muss 
es das BM55 sein?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.