Forum: Mikrocontroller und Digitale Elektronik Sigma BC1009 PC Interface


von Johannes R. (johannes_r29)


Lesenswert?

Hallo,

da mein neuer Tacho die Möglichkeit der Kommunikation mit dem PC bietet, 
die passende Dockingstation jedoch 20€ kostet und mir diese Spielerei so 
viel nicht wert ist, suche ich eine Möglichkeit, diesen Adapter selbst 
zu bauen.

Hat schon mal einer von euch an dem Tacho gemessen und herausgefunden, 
über welches Protokoll der über seine 2 Pins mit dem PC Daten 
austauscht?

http://www.amazon.de/Sigma-Fahrradcomputer-BC-1009-schwarz/dp/B002NGZIRE

http://www.amazon.de/Sigma-Docking-Station-Topline-09/dp/B003309PH8

Ich werde mal nacher mit dem Oszi messen ob der Tacho bereits so Signale 
an den beiden unteren Pins ausgibt, wobei ich das bezweifle, sprich die 
Übertragung muss initialisiert werden, vermutlich durch das anlegen 
einer externen Spannung.

Wenn jemand schon einen Adapter gebastelt hat, wäre das natürlich sehr 
praktisch.

Danke schon mal im Voraus für eure Antworten.

MFG Johannes

von Peter (Gast)


Lesenswert?

hi johannes,

ich habe gerade mehrere stunden nach der gleichen thematik gegoogelt 
bevor ich überhaupt mal auf diesen thread gestoßen bin.
es wundert mich sehr, dass anscheinend noch niemand ähnliches versucht 
hat.

bleib dran, ich zähl auf dich.
vll kann ich dich demnächst unterstützen.

hier mal ein bisschen input: http://paste.ubuntuusers.de/392335/

es scheint sich dem treiber nach um eine serielle (uart ?) zu handeln.
hast du die datacenter software? kann sie leider nirgends im internet 
finden,

g peter

von Peter (Gast)


Lesenswert?

sorry, bin hier nicht angemeldet und kann deshalb meine posts nicht 
editieren.


da die kommunikation bei den "sigma rox" modellen auch nur über 2 pins 
funktioniert, gehe ich davon aus, dass sie identisch mit den anderen 
modellen ist.

die datacenter version für die rox modelle kann kostenlos 
heruntergeladen werden:
http://www.update.sigmasport.com/en/update/


in diesem packet sind keine treiber dateien (.sys) enthalten.
In den .inf dateien wird wie oben schon verlinkt, auf eine usbser.sys 
verwiesen die schon bei windows dabei ist.
daher gehe ich davon aus, dass in der docking station keine proprietäre 
hardware verbaut ist.
bitte korrigiert mich wenn ich falsch liege.

die nutzung dieses treibers ist sogar "dokumentiert":
http://support.microsoft.com/kb/837637


es müsste doch möglich sein im www jemanden zu finden der diese software 
nutzt und uns sagen kann, als was sich die dockingstation am pc meldet.
(kann mit sicherheit auch aus der inf erschlossen werden)
mehr in kürze :)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter schrieb:
> In den .inf dateien wird wie oben schon verlinkt, auf eine usbser.sys
> verwiesen die schon bei windows dabei ist.
> daher gehe ich davon aus, dass in der docking station keine proprietäre
> hardware verbaut ist.

Naja, dann wird wohl in der Dockingstation eine Hardware enthalten sein, 
die sich zum PC hin als CDC verkauft.
Welches Protokoll die Dockingstation wiederum zum Tacho verwendet, ist 
dadurch nicht festgelegt, das kann irgendwas sein.

von Peter P. (hackrid)


Lesenswert?

hi,

danke für die info, was heist den "CDC" ? konnte auf die schnelle nix 
finden.

ps: habe doch noch meinen account für mikrocontroller.net gefunden.


g peter

von Peter P. (hackrid)


Lesenswert?

CDC heist "Communication Device Class"

von Peter P. (hackrid)


Lesenswert?

wow. überwältigendes interesse :-D

von Peter P. (hackrid)


Angehängte Dateien:

Lesenswert?

Hi Fans,


statt mich um die anstehenden klausuren zu kümmern habe ich mich etwas 
in die sigma-docking geschichte reingesteigert.

Habe bei ebay sone dockingstation ersteigert und sie gleich mal 
auseinander gerissen.

Hatte gehofft etwas anderes in dem gehäuse zu finden, wo es sich doch so 
schön als virtuellen comport präsentiert.
Nnach stunden langer suche bei der frage wie wohl das 1-Wireinterface 
realisiert sein könnte bin ich auf diesn link gestoßen:
http://www.maxim-ic.com/app-notes/index.mvp/id/214


scheint wohl hinfällig :(

der Contröller kann ja alles mögliche anstellen.

Habe dann gleich mal mit fädeldraht die kontakte nach außen geführt um 
mit dem oszi mal mit zulauschen.
Meiner bescheidenen meinung nach sieht das irgendwie nach UART aus... 
aber ich hab ja keine ahnung.

Vielleicht kann sich das mal einer von euch anschauen?
Ich bin mit meinem Latein am Ende.


Ist es möglich über die offensichtlich vorhandene JTAG-Schnittstelle an 
die Speicherinhalte des AT90USB162 zu kommen?
So könnte man wenigstens den USB-Discriptor ändern um die Station auch 
mit anderen Tachos? nutzen zu können...

von Florian S. (florian_s12)


Lesenswert?

Moin,

hast du an den beiden Pins gemessen als der Tacho dran war? Und was hast 
Du gemacht? Die Software gestartet/Tache erkennung gestartet?

Man müsste mal mitloggen wie die Kommunikation aussieht wenn man z.B. 
die Radgröße per Software verändert. Also zweimal mit Größe X und einmal 
mit Y konfigurieren und die Unterschiede vergleichen....

von Peter P. (hackrid)


Lesenswert?

hi,

ja habe die beiden pins des tachos belauscht.

wenn ich es richtig weis ist das teil der sequenz wie sich der tacho bei 
der software meldet.


habe mir schon einen logic analyzer gekauft. hatte allerdings noch keine 
zeit/lust die kommunikation zu belauschen.
Das equipment wäre da...

happy hacking ;)

peter

von Florian S. (florian_s12)


Lesenswert?

Das Problem is halt nur wieder mal: Woran merkt der Tacho dass nicht der 
Reedkontakt sondern ein Mikrocontroller an der anderen Seite ist.

Vorstellen kann ich mir so einiges, z.B. zwei Widerstände in Reihe von 
denen der Kontakt einen überbückt und ein pullup in der dockingstation, 
so dass der tacho da eine externe spannung detektieren kann.

Der Schaltplan der Dockinstation wäre da in Auszügen interessant :=)
(Also wie ist der Atmel mit dem Tacho verbunden. Die USB und LED's sind 
uninteressant, aber auf welchen Pins der liegt währe nett....)

von Peter P. (hackrid)


Angehängte Dateien:

Lesenswert?

also das oszillogramm zeigt die "introsequenz" wenn sich der tacho bei 
der dockingstation meldet.

dieses telegramm wird vermutlich dann ausgelöst, wenn der 
dockingcontroller den highpegel des tachokontaktes bermerkt ?!

die vorrausgehende "0010" sequenz sagt dem tacho wohl "bitte melde dich"

vermutlich ist dieses "0010" stark vom reed-impuls verschieden.

habe mal das bild editiert und die stellen markiert an denen die 
tachokontakte an den kontroller angeschlossen sind.
die beiden pulldown widerstände gegen massen sind wohl 1Meg.


hab den logic analyser parat und werde heute abend mal nen durchlauf 
machen.

in welchem format stell ich die daten vom logic analyzer am bsten hier 
rein?

vg

von Florian S. (florian_s12)


Lesenswert?

Magst Du noch ein Bild von der Rückseite der Platine machen?

Die Widerstände sind vermutlich eher ein Schutz des Controllers. Ein Meg 
ändert den Pegel kaum. Ich hab im Moment leider nicht so viel Zeit, 
sonst würde ich schnell im Datenblatt schauen welche Pins das sind, an 
die der Tacho da kommt. Ich vermute der Atmel wird einen Pin auf Masse 
und einen auf High legen - damit erkennt der Tacho dass da eine externe 
Spannung anliegt und er wird in den PC-Modus wechseln. Jedenfalls ist 
sowas denkbar :)

Zum Format kann ich nichts sagen, hab noch nie mit nem LA gearbeitet. 
Interessant fände ich wie die Pegel auf den beiden Pins der Docking 
station gegen Masse aussehen, wenn kein Tacho angeschlossen ist.


Grüße,
  Florian

von Peter P. (hackrid)


Lesenswert?

also die pegel ohne tacho sind exakt 0V.

deshalb gehe ich davon aus, dass der tacho dadurch erkannt wird, dass 
sein "permanent high" pin in kontakt mir dem docking controller kommt.

daraufhin wird vom dockingcontroller die gesehene sequenz gesendet 
worauf sich dann der tacho meldet. nur ne überlegung.



die rückseite ist unbestückt und hat auch sonst nicht viel zu bieten.

alle signale sind von der vorderseite erreichbar.

zu den controller pins:

Pin6 : (OC.0B / INT0) PD0
Pin7 : (AIN0 / INT1) PD1

aus datenblatt seite 3 : 
http://www.atmel.com/dyn/resources/prod_documents/doc7707.pdf

von Florian S. (florian_s12)


Lesenswert?

Peet P. schrieb:
> also die pegel ohne tacho sind exakt 0V.
>
> deshalb gehe ich davon aus, dass der tacho dadurch erkannt wird, dass
> sein "permanent high" pin in kontakt mir dem docking controller kommt.

Ah, okay, das macht Sinn - im tacho ist ja eh ein pullup für den reed 
kontakt.

>
> daraufhin wird vom dockingcontroller die gesehene sequenz gesendet
> worauf sich dann der tacho meldet. nur ne überlegung.


Und wenn die Dockingstation da keinen Kurschschluss hinwirft (wie der 
Reed kontakt das tun würde) kann ein ADC im Tacho das erkennen. Oder der 
Reedkontakt hat noch nen Widerstand drin. (Hab das Teil grade nicht 
hier, kann also nicht messen). Ist das Low da in dem Plot ein 0V?

> die rückseite ist unbestückt und hat auch sonst nicht viel zu bieten.
okay, wollte nur schauen was da womit verbunden ist :)

/Florian

von Peter P. (hackrid)


Lesenswert?

ja das ist 0v +- rauschen.

der reedkontakt hat mit sicherheit noch einen widerstand drin.
auf jeden fall steckt irgendo in / an der fahrrad halterung ein 
widerstand.


wie sonst könnte der tacho zwischen rad1 und rad2 unterscheiden? es gibt 
ja von sigma extra "zweitrad halterungen" für den tacho. aber nur eine 
vermutung.

von A.H. (Gast)


Lesenswert?

Zumindest für die Software-Seite gibt es etwas Code und Analysen:

   http://www.freakysoft.de/rox_sigma/

Eventuell lässt sich schon daraus ermitteln, ob die Dockingstation nur 
ein Protokollübersetzer ist oder ob sie eigene Logik enthält.

von Peter P. (hackrid)


Lesenswert?

netter link. wundert mich dass ich bei meiner suche nicht schon selbst 
drauf gestoßen bin.
leider kann ich sogut wie garnicht programmieren und linux ist auch ein 
großes rätsel für mich :(


hab gerade am fahrrad gemessen und es gibt weder parallel noch serielle 
widerstände in der fahrradhalterung.

das (schrottige) multimeter zeigt 700mOhm an wenn der reedkontakt 
geschlossen ist.

von Peter P. (hackrid)


Lesenswert?

in wie weit lässt sich diese opensource software auf tachos anwenden die 
nicht aus der ROX reihe sind?

von Peter P. (hackrid)


Angehängte Dateien:

Lesenswert?

und post nummer 3...
schade dass man nicht editieren kann....



habe mal den logic analyzer angeworfen und die "intro sequenz" 
mitgeloggt.
Diese sequenz wird übertragen wenn ich das "Sigma DataCenter" öffne.

daten liegen als csv vor und ich habe noch einen screenshot angehängt.

die pegel sind masse bezogen. das oszillogramm oben nicht. da hatte ich 
die masse des oszis mit einem kontakt des tachos verbunden.



shot2.png zeigt die kurze nadel auf kanal 6 besser aufgelöst.
möglich dass diese nadel als "moduswechsel" interrupt ausgewertet wird??

von Peter P. (hackrid)


Lesenswert?

oh man... und post nummer 4:



gibt es ne möglichkeit die senderichtung zu unterscheiden?


denke da an folgendes: es muss ja ein kleiner strom fließen um am 
eingangswiderstand des kommunikationsparters einen spannungsabfall zu 
erzeugen.

kann ich jetzt einen "shunt widerstand" in die leitung einbauen und 
somit an der strom richtung erkennen wer sendet und wer empfängt?

bitte her mit meinungen zu diesem vorschlag :)


hat vielleicht jemand schonmal irgendwo bilder von einem offenen tacho 
gesehen?
hat jemand zufällig einen kaputten sigma tacho mit twistlock den er mir 
für forschungszwecke überlassen will? :)

von Peter P. (hackrid)


Angehängte Dateien:

Lesenswert?

also hier kommt jetzt dann der 5. post in folge.


war heute nicht nur daheim relativ fleißig.

anbei einpaar bilder des heutigen testlaufes.

die widerstände: 10k.


auf den oszi plotts ist schön zu erkennen, dass es an dem widerstand je 
nach senderichtung zu einem spannungsabfall kommt.

NewFile0.png:
Von der Dockingstation zum Tacho.

NewFile1.png:
Vom Tacho zur Dockingstation


bei der gelegenheit hab ich auch mal noch ein bild von der unterseite 
der platine gemacht.


wie gehts weiter?!

von Georg Alexander K. (georgalexander_k)


Lesenswert?

Ich denke jetzt muessen wir die Daten dekodieren. Ich hab auch so einen 
Tacho aber keine Dockingstation. Ich werd bei gelegenheit mal versuchen 
ob ich nicht auch die serielle Kommunikation triggern kann.

von mensch (Gast)


Lesenswert?


von Andre (Gast)


Lesenswert?

Moin moin,
Hat jemand von euch zufällig das Datenprotokoll das zum Rechner geht 
analysiert? Ist das irgendwas proprietäres oder ein einfaches Protokoll?

Gruß, Andre

von Delphir (Gast)


Lesenswert?

Hi all, hope this thread is still monitored.
Does anyone have any specs about BC 1009 firmware/microcontroller used?
Would be interesting to play with it an build some custom firmware ;)

von Josef M. (Firma: Privat) (jmoellers)


Lesenswert?

Ist das hier noch relevant?

Ich habe auch einen Sigma Fahrradcomputer und habe mal kurz 
nachgemessen.

Seltsam, daß das noch keiner erwähnt hat: wenn man den Computer auf die 
Display-Seite legt und die Taste nach "unten" (also zu einem selbst) 
zeigt, liegen an den beiden Pins eine Spannung von ~3V. (links +, rechts 
-).

Ich könnte mir nun vorstellen, daß die Kommunikation auf ein 
Kurzschließen der beiden Kontakte basiert, also i.W. wie der 
Reed-Kontakt.
Der Reed-Kontakt wird die Pins für einen kurzen Impuls kurzzschließen 
(also ein 0-Potential erzeugen). Danach wird er den Kontakt für eine 
Rad-Umdrehung öffnen. Das Kurzschließen beim Dock kann man nicht 
definiert von dem Kurzschluß des Reed-Kontaktes unterscheiden (man 
stelle sich vor, man fährt extrem laaaaangsam). Aber der kurze Impuls in 
der "Intro-Sequenz" wird sich von einer Umdrehung des Rades 
unterscheiden, soooo schnell fährt keiner.

Da ich keine Docking Station habe, kann ich das nicht weiter verfolgen. 
Interessant wäre tatsächlich wie lange der kürzeste Impuls dauert; das 
würde Aufschluß auf die Übertraguungsrate geben. Danacj müßte man halt 
ab jeder fallenden/steigenden (je nach Messpolarität) Flanke die Bits 
abzählen und so die Daten ermitteln.

von Georg (Gast)


Lesenswert?

Hallo,
ist doch faszinierend, wie lange so ein Thread interessant und "aktuell" 
bleibt...
Ich habe bspw. heute erst entdeckt, dass meine ollen Sigma BC... beide 
datenfähig sind :-)
Und dabei habe ich diesen ebenso ollen Thread entdeckt und mit Interesse 
gelesen...
Sind da noch Leute von Euch dran? Wäre auch daran interessiert...

Soweit erstmal, liebe Grüße
Georg

von Philipp Klaus K. (pkk)


Lesenswert?

Delphir schrieb:
> Hi all, hope this thread is still monitored.
> Does anyone have any specs about BC 1009 firmware/microcontroller used?
> Would be interesting to play with it an build some custom firmware ;)

Gibt es überhaupt Fahrradcomputer, für die es freie Firmware gibt 
(abgeshen vom Cyclotron mini)?

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.