Forum: Mikrocontroller und Digitale Elektronik Bluetoothmodul BTM-222


von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

habe o. g. Modul (von www.TME.pl), komme aber irgendwie nicht mit dem 
Datenblatt zurecht.
Sende ich die AT-Befehle über die UART oder über Bluetooth?
Wie unterscheidet das Modul, ob ich nun Daten oder Befehle sende?
Vielleicht hat ja schon wer was gemacht und würde ein Beispiel hier 
veröffentlichen.

Vielen Dank für Eure Hilfe

Thomas

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Hallo Thomas,

AT-Befehle sendest du über den UART. Wenn das Modul eine 
Bluetooth-Verbindung aufgebaut hat, kannst du keine Befehle mehr an das 
Modul schicken, alle Zeichen werden per Bluetooth versendet.

Ich arbeite momentan an einer Library, die ich aber noch nicht ganz 
fertig habe. Kommt aber in Kürze.

Zum Anfang solltest du das Modul am einfachsten an den PC anschließen 
und mit Hyper-Terminal Zeichen versenden. Zunächst solltest du ein 
"ATD0" senden, um dem Modul zu sagen, dass alle PCs eine Verbindung mit 
ihm aufbauen dürfen. Standardmäßig ist irgendeine komische ID 
eingestellt. Wenn du jetzt nach dem Bluetooth-Modul suchst, den 
Hauptschlüssel austauscht (Standard ist "0000" oder "1234", ich weiß es 
nicht mehr.) und die Verbindung aufbaust, sendet das Modul noch ein 
"CONNECT" und reicht dann alle Daten transparent durch. Beendest du die 
Verbindung, kommt ein "DISCONNECT" und du kannst wieder AT-Befehle 
senden.

Gruß
Christoph

von Thomas (Gast)


Lesenswert?

Super - vielen Dank. Werde das Teil dann am Wochenende mal anschließen 
und ausprobieren. Das mit Deiner Lib wär natürlich ideal.

Gruß, Thomas

von Thomas (Gast)


Lesenswert?

Achja - nochwas: Müssen RTS und CTS benutzt werden?

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Nein. Ich habe zunächst auch alles außer den Versorgungspins, der 
Antenne sowie RX und TX freigelassen.

von Jogi (Gast)


Lesenswert?

Kann mir Dummie jemand sagen welche Antenne für dieses Modul geeignet 
ist bzw. wie man eine solche selbster baut.

Danke Jogi

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Einfach ein Stück Draht oder Litze dranlöten, Länge Lamda/4 (also etwa 
31mm für Bluetooth (2,45GHz)).

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Kurzer Nachtrag: Sehr schöne Chip-Antennen gibt es bei Farnell, sind nur 
2x3mm² groß, aber leider auch 3€ teuer.

von jack (Gast)


Lesenswert?

Hallo Christoph,
du schreibst

>Zum Anfang solltest du das Modul am einfachsten an den PC anschließen
>und mit Hyper-Terminal Zeichen versenden. Zunächst solltest du ein
>"ATD0" senden, um dem Modul zu sagen, dass alle PCs eine Verbindung mit
>ihm aufbauen dürfen. Standardmäßig ist irgendeine komische ID
>eingestellt. Wenn du jetzt nach dem Bluetooth-Modul suchst, den
>Hauptschlüssel austauscht (Standard ist "0000" oder "1234", ich weiß es
>nicht mehr.) und die Verbindung aufbaust, sendet das Modul noch ein
>"CONNECT" und reicht dann alle Daten transparent durch. Beendest du die
>Verbindung, kommt ein "DISCONNECT" und du kannst wieder AT-Befehle
>senden.

Wo kann ich die komp. Befehlsbeschreibung wie z.Bsp. den "ATD0"-Befehl
finden?

Grüße
  Jack

von Gepi (Gast)


Lesenswert?


von Boris (Gast)


Lesenswert?

So, habe jetzt auch so ein schönes Modul :-)
Bevor ich aber den Lötkolben schwinge:
Reicht das als Minimal-Anschluss, um das Modul wenigstens schonmal 
"sehen" zu können (z.B. mit einem PDA)?

Antenne:
Pins: 37

GND:
Pins: 38, 29, 18, 19, 10, 1

VCC:
Pins: 17, 2

Und warum gibt es so viele GND und VCC Anschlüsse? Und ist es richtig an 
VCC und PVCC die selbe Spannung anzulegen?

von Gepi (Gast)


Lesenswert?

ja wird gefunden mit Antenne und Spannungsversorgung!

PVCC = VCC = 3.3V

viele GND weil HF und deshalb Masse wichtig ... ein Anschluss sollte 
reichen

von Boris (Gast)


Lesenswert?

Wow, das ist ja echt hammer! Hätte nicht gedacht, dass das so einfach 
funktioniert :-D Tausend Dank Leute!

Dann können wir ja gleich weiter machen:
Wenn ich nun Befehle an das Modul, und Daten über den UART meines AVR 
senden will (die dann natürlcih per BT weiterübertragen werden sollen), 
welche Pins werden dann benötigt?
Wenn ich das oben richtig verstanden habe, werden auch die Modul-Befehle 
per UART an das Modul gesendet? Muss ich also nur RX und TX des AVR mit 
RX und TX des Moduls verbinden, und schon gehts los?


PS: Ich hoffe ich gehe euch mit meinen Fragen nicht zu sehr auf die 
Nerven. Aber leider weiß ich nicht, wo ich diese Informationen sonst 
herbekommen sollte (das Datenblatt z.B. hilft nicht wirklich viel). Und 
ihr scheint's ja alle voll drauf zu haben :-)

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Ja, einfach den UART anschließen. Flußkontrolle brauchst du nicht.

Allerdings solltest du beim Senden von AT-Befehlen nach jedem Zeichen 
warten, bis dieses vom Modul zurückgesendet wurde.

Ansonsten, einfach mal probieren, kaputt machen kann man eigentlich 
nichts.

von Boris (Gast)


Lesenswert?

Habe jetzt ziemlich lange herumprobiert, aber bekomms nicht so ganz hin. 
Allerdings weiß ich nicht, ob es am Empfänger (PDA) oder meinem AVR 
liegt...

Könnte vielleicht jemand ein funktionsfähiges Programm (das z.B. einfach 
nur ständig ein Byte sendet) hier rein stellen? Das würde das testen 
ungemein erleichtern...

Danke!

von Gepi (Gast)


Lesenswert?

häng das Ding doch erstmal an dein HyperTerminal/GTKTerm/Minicom und 
probiers damit ... kannst ja über BT dein Handy wählen lassen (bei mir 
ging das)

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Du brauchst kein Programm. Einfach einmal ein ATD0 per Hyperterminal, 
etc. senden um Verbindungen von allen PCs zuzulassen, 
Bluetooth-Verbindung am PC, PDA, was weiß ich, einrichten mit dem Modul 
und du kannst senden.

von Boris (Gast)


Angehängte Dateien:

Lesenswert?

Leider kann ich das Modul nicht an einen PC anschließen (Habe nämlich 
keine serielle Schnittstelle).
Allerdings habe ich versucht, den Befehl per ATMega16 zu senden, aber 
das BM-Modul reagiert nicht (keine Antwort). Den Quellcode habe ich mal 
angehängt.
Die USART Funktionen sind einfach aus dem Datenblatt geborgt ;-)

Hab ich da was Wichtiges vergessen?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die AT-Zeile muß mit 0x0D (CR) abgeschlossen werden. Außerdem muß 
hintereinander weg geschrieben werden, ohne auf ein Echo zu warten.
Also ATI1<CR> zum Beispiel.

von Boris (Gast)


Lesenswert?

Aber Christoph meinte oben:
"Allerdings solltest du beim Senden von AT-Befehlen nach jedem Zeichen
warten, bis dieses vom Modul zurückgesendet wurde."

Was denn nu ;-)


Habe deine Vorschläge trotzdem mal ausprobiert, hilft aber leider 
trotzdem nichts (BM-Modul scheint das ATD0 nicht erhalten zu haben?)...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Versuche mal, einfach AT<CR> zu geben, es müßte dann OK<CR><LF> 
zurückkommen. Oder ob ATI1 (aaa tee iii eins) funktioniert, da sollte 
das Modul seine Einstellungen ausspuken. Warten auf jedes Echo führt zu 
ERROR<CR><LF> im Termianalfenster.

PS: Die spitzen Klammern bitte nicht mitsenden, die sind nur zur 
Trennung von Text und Steuerzeichen.

von Boris (Gast)


Lesenswert?

Egal was ich mache, es kommt nix zurück :-(

Ich habe mal zwei LEDS hergenommen und an die RX und TX Leitungen 
angeschlossen. Beim senden des AVR blinkt die eine LED auch fröhlich, 
die andere bleibt aber immer aus. Es scheint also wirklich nichts vom 
BM-Modul zurück zu kommen.

Um ganz sicher zu gehen hier nochmal die möglichen Fehlerquellen, die 
mir so einfallen:

1) Kabel korrekt angeschlossen?
Ich habe am AVR Pin PD0 (RXD) mit Pin27 (TX) am BM verbunden.
Außerdem ist am AVR Pin PD1 (TXD) mit Pin26 (RX) am BM verbunden.

2) Baudrate, Stopbits etc. richtig?
Ist meine USART-Initialisierung mit den Standardwerten des BMs 
kompatibel?

Danke nochmal :-)

von Boris (Gast)


Lesenswert?

Habs immer noch nicht hinbekommen :-(
Hilfe!

von Karl H. (kbuchegg)


Lesenswert?

Im Moment hast du eher schlechte Karten:

Deine Probleme:
Du weist nicht ob das BM Modul funktioniert
Du weist nicht ob die UART am Mega16 funktioniert
Du weist nich ob dein Programm funktioniert
Du weist nicht ob dein Kabel richtig ist

Das sind zuviele Unbekannte.
Ich würde mal mit allem Nachdruck versuchen einen
Rechner aufzutreiben, der noch eine Serielle Schnittstelle
hat. Damit kannst du das Kabel testen, das BM Modul mit
Hyperterminal testen, die UART vom Mega16 testen.
Also so ziemlich jede Einzelkomponente, die dir ein
Problem bescheren könnte.
Erst wenn jede Komponente für sich einzeln begutachtet,
bzw. korrigiert wurde, müsste dann ein Zusammenschluß
von Mega16 und BM Modul auf Anhieb funktionieren.

Hab damit keine Erfahrung, aber ein USB nach RS232 Umsetzter
müsste da eigentlich schon eine enorme Erleichterung sein.

von Boris (Gast)


Lesenswert?

So schlimm isses garnicht!

Das das BM Modul funktioniert wei- ich, weil ich es mit meinem PDA 
finde, pairen kann und auch dessen Services auflisten kann. Nur bei der 
Seriellen Kommunikation sperrt sich das Modul dann, vermutlich aufgrund 
der noch fehlenden Initialisierung.

Das das USART funktioniert sehe ich ja an den LEDs, die ich 
angeschlossen hab. Wenn ich zeichen sende, blinkt diese ja. Scheint also 
auch OK zu sein.
Dem ents[prechend gehe ich auch mal davon aus, dass mein Programm 
funktioniert...

von Karl H. (kbuchegg)


Lesenswert?

Boris wrote:
> So schlimm isses garnicht!
>
> Das das BM Modul funktioniert wei- ich, weil ich es mit meinem PDA
> finde, pairen kann und auch dessen Services auflisten kann. Nur bei der
> Seriellen Kommunikation sperrt sich das Modul dann, vermutlich aufgrund
> der noch fehlenden Initialisierung.

Wenn ich die Vorgängerpostings durchlese: Das Ding braucht
keine Initialisierung. Die UART funktioniert sofort nach dem
Einschalten.

>
> Das das USART funktioniert sehe ich ja an den LEDs, die ich
> angeschlossen hab. Wenn ich zeichen sende, blinkt diese ja. Scheint also
> auch OK zu sein.

Aber du siehst nicht ob die Baudrate stimmt. Ob sie grundsätzlich
falsch ist, oder ob du nur knapp daneben liegst. Ein PC mit
Hyperterminal könnte dir das sofort sagen.

> Dem ents[prechend gehe ich auch mal davon aus, dass mein Programm
> funktioniert...

Na ja. Wenn doch alles funktioniert, woran hapert es dann :-)
(Hinweis: Die UART des BM Moduls ist es sicherlich nicht)

Systematisch vorgehen. Mit wildem Herumprobieren löst man
Probleme höchstens zufällig. Eine Komponente nach der anderen
als Fehlerquelle ausschliessen führt mit 100% Sicherheit
zum Erfolg. Stelle grundsätzlich alles solange in Frage, bis
du nachweisen kannst, dass es funktioniert.

von Boris (Gast)


Lesenswert?

"Stelle grundsätzlich alles solange in Frage, bis
du nachweisen kannst, dass es funktioniert."

Hehe, das werd ich dann wohl tun ;-)


"Wenn ich die Vorgängerpostings durchlese: Das Ding braucht
keine Initialisierung. Die UART funktioniert sofort nach dem
Einschalten."

In einem anderen Thread hatte man mir erklärt, man müsse zunächst ein 
ATD0 senden, damit eine Vernünftige Verbindung zustande kommen 
kann...oder hab ich da jetzt was falsch verstanden?

von Karl H. (kbuchegg)


Lesenswert?

Boris wrote:
> "Stelle grundsätzlich alles solange in Frage, bis
> du nachweisen kannst, dass es funktioniert."
>
> Hehe, das werd ich dann wohl tun ;-)
>
>
> "Wenn ich die Vorgängerpostings durchlese: Das Ding braucht
> keine Initialisierung. Die UART funktioniert sofort nach dem
> Einschalten."
>
> In einem anderen Thread hatte man mir erklärt, man müsse zunächst ein
> ATD0 senden,

Wie sendest du denn ein ATD0 wenn die UART im Modul nicht
funktioniert?

Du musst unterscheiden zwischen:
'Die UART funktioniert grundsätzlich und das Teil nimmt
Kommandos an und führt sie aus'
und
'Das Modul ist so konfiguriert, dass es tatsächlich sendet'

Die UART wird schon funktionieren, daher wäre es auch so wichtig
das Teil mal an eine nachweislich funktionierende Serielle
zu hängen um zu sehen, was alles gemacht werden muss, damit
das Teil aus dem Idle Zustand in den Übertragungszustand geht.

Aber im Moment weist du ja noch nicht, ob das BM-Modul überhaupt
irgendetwas versteht. Das wird nicht am BM-Modul liegen sondern
an deiner Sendeeinheit.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Mal ´ne ganz dumme Frage an Boris: Mit welcher Spannung läuft Dein BTM 
und mit welcher der Controller?

von Boris (Gast)


Lesenswert?

Der Controller mit 4,9V, das BM mit 3,5V.
Meinst du das gibt Probleme bei der seriellen Übertragung zwischen den 
beiden? Da hab ich auch mal drüber nachgedacht, aber war mir nicht so 
sicher...

von Karl H. (kbuchegg)


Lesenswert?

Hmm.
Ist das eigentlich eine TTL UART?

In einer der ersten Postings wird gesagt, das Modul an den
PC anzuschliessen. Da hier kein Umsetzer erwähnt ist, gehe
ich mal davon aus, dass es sich um keine TTL-Uart handelt.

Daher die Frage: Du hast doch auf dem Controller einen MAX232
drauf, oder nicht? Die Tx/Rx Leitungen vom Controller direkt
mit dem Modul zu verbinden wird nicht funktionieren, weil die
Pegel genau falsch herum sind.

Kann allerdings auch sein, dass ich hier falsch liege. Allerdings
ist im Datenblatt nicht explizite von einer TTL UART die Rede.

von Boris (Gast)


Lesenswert?

Nein, einen MAX habe ich nicht. Ich war der Meinung AVR und BM würden 
die selben Spannungen benutzen, und erst wenn man an den PC wollte, 
bräuchte man einen MAX.
Christoph hat das ja auch bestätigt, wenn ich ihn richtig verstanden 
habe?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn Dein BTM jetzt noch nicht kaputt ist, haste Glück gehabt. Das BTM 
liefert und erwartet Pegel auf 3.0-3.7V, entsprechend seiner 
Speisespannung. Es müssen also Pegelwandler her, sonst wird über die 
UART die gesamte Betriebsspannung des Moduls hochgezogen. Für Modul RX 
reicht ein Spannungsteiler, für Modul TX nach Controller RX muß ein 
echter Pegelwandler aus pnp-npn Transistorpaar oder mittels passendem IC 
realisiert werden. Deshalb bekommt Dein Controller auch nichts zurück, 
der Pegel für logisch High reicht nicht.

von Boris (Gast)


Lesenswert?

Na Hurra :-)
Ich kann das Modul immernoch mit meinem PDA finden, ganz kaputt ist es 
also nicht...

Gibt es da nicht auch eine ATMega 16 Version die auf 3V läuft? ATMega16L 
oder so?
Der müsste doch Pin-gleich mit dem normalen Mega16 sein, und ich komme 
dann ohne die Pegelwandler aus?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das kannst Du auch machen, allerdings hast Du vom Controller her dann 
eine Geschwindigkeitsbegrenzung auf 8Mhz - wenn Dir das für Dein Projekt 
reicht, dann ist´s okay. Bei meiner Anwendung in einem komplexeren Gerät 
bin ich auf volle 5V am Controller angewiesen.

von Boris (Gast)


Lesenswert?

Habe das System nun auf 3V umgestellt, aber es bleibt leider nach wie 
vor alles beim alten.

Mein AVR sendet, aber USART_receive empfängt kein einziges Bit.... 
GRUMMEL

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das ist jetzt aber ausgesprochen blöd...

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Hast du bei dem Modul mindestens einmal ein ATD0 gesendet? Das Modul 
akzeptiert sonst nur Verbindungen von einem ganz bestimmten Rechner. 
Ansonsten kann das Modul keine wirkliche Verbindung aufbauen, was sich 
darin äußert, dass du den COM-Port am PC oder PDA zwar siehst, ihn aber 
nicht öffnen kannst.

Ansonsten wenn du dem Modul irgendeinen Mist sendest, muss es mit ERROR 
antworten. Wenn das nicht klappt, stimmt irgendwas mit deinem Aufbau 
noch nicht.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Mein Modul zum Beispiel akzeptiert ATD0 gar nicht. Trotzdem kann ich mit 
jedem Rechner darauf zugreifen. Bin aber in Verbindung mit dem 
Hersteller, um die letzten Fragen zu klären.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Meine drei Module schon... Komisch. Ohne den Befehl funktionieren sie 
auch nciht. Aber der Hersteller ist eigentlich recht hilfsbereit.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Stimmt. Ich arbeite derzeit mit dem BTM112, was absolut wunderbar sendet 
und empfängt, sich aber nicht konfigurieren läßt. Die Verbindung zum 
UART steht aber - hmm...

von Boris (Gast)


Angehängte Dateien:

Lesenswert?

"Hast du bei dem Modul mindestens einmal ein ATD0 gesendet? Das Modul
akzeptiert sonst nur Verbindungen von einem ganz bestimmten Rechner.
Ansonsten kann das Modul keine wirkliche Verbindung aufbauen, was sich
darin äußert, dass du den COM-Port am PC oder PDA zwar siehst, ihn aber
nicht öffnen kannst."

=> Hab ich. Aber das Problem das ich habe ist genau das, das du 
beschreibst.

"Ansonsten wenn du dem Modul irgendeinen Mist sendest, muss es mit ERROR
antworten. Wenn das nicht klappt, stimmt irgendwas mit deinem Aufbau
noch nicht."

Leider antwortet das Modul garnicht. Die LED an der RX Leitung bleibt 
immer dunkel, während die TX beim Senden blinkt (und ja, die LED ist 
richtig angeschlossen). Anders ausgedrückt: der TX Pin am BM-Modul ist 
immer LOW, also auf 3V (ist ja active low, oder?).

Daher denke ich auch mal, dass die Daten die ich sende irgendwie komisch 
sind, so dass das Modul nicht darauf antwortet....
Kann nicht vielleicht doch jemand das HEX File eines funktionierenden 
Programms hochladen/den Code mal hier rein posten? Nur damit ich 
ausschließen kann, dass mein USART falsch konfiguriert ist...

(Den aktuellen Code habe ich nochmal angehängt, ist aber nicht viel 
anders als der erste.)

von Simon K. (simon) Benutzerseite


Lesenswert?

1
  UBRRH = (unsigned char)(baud>>8);
2
  UBRRL = (unsigned char)baud;

Ne, das ist jetzt wirklich nicht dein Ernst?

Und das hier erst:
1
  USART_Transmit('0x0D');

von Boris (Gast)


Lesenswert?

Hö? Was ist denn das Problem mit den beiden Zeilen? Die habe ich 1 zu 1 
aus dem Datenblatt des ATMega16 übernommen....

Und der zweite Fehler ist durch Copy'n'Paste entstanden. Und erklärt 
leider nicht, warum garnichts zurückkommt, nichtmal ein ERROR.

von PP (Gast)


Lesenswert?

Ich versteh nicht warum Du Dich so dagegen wehrst BT-Modul und AVR erst 
mal jeweils getrennt an den PC zu hängen. Da merkst mit HTerm doch 
sofort wo es hackt.
Grade jetzt nach dem Du das BT-Modul mit zu viel Spannung an der RS232 
versorgt hast. Evt ist ja auch der Rx BT-Modul hin.

Mein DRINGENDER Rat:
+RS232/USB Adapter für PC besorgen
+MAX232 oä als Pegelwandler davor
+BT-Modul und AVR nacheinander an MAX232 anschließen und testen

Nur so kommst da vernünftig weiter, alles andere ist mist.
Und der "Aufwand" lohnt. Wirst noch oft genug brauchen bei diesem/andrem 
Projekt(Kann man zB Kommunikation zwischen BT-Modul und AVR mit abhören 
wenn man Rx vom PC parallel schaltet, aber das kommt erst wenn die 
Module für sich laufen).

PP

von Simon K. (simon) Benutzerseite


Lesenswert?

Boris wrote:
> Hö? Was ist denn das Problem mit den beiden Zeilen? Die habe ich 1 zu 1
> aus dem Datenblatt des ATMega16 übernommen....

guckstu, eh?
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#UART_initialisieren

von Boris (Gast)


Lesenswert?

@ Simon K.
Oh mein Gott! Irgendwie hatte ich geglaubt, der würde direkt die 
Baudrate erwarten. Keine Ahnung, wie ich darauf gekommen bin...
Naja, die gute Nachricht: ich brauche keine 6€ Versandkosten bei 
Reichelt ausgeben um mir einen max232 zu bestellen. Zumindest noch nicht 
;-)

Denn: ES FUNKTIONIERT!

Auf jeden Fall antwortet das BM-Modul schonmal. Nur was genau weiß ich 
leider nicht, da mit meiner neuen 3V Konstruktion das LC-Display nicht 
mehr funktioniert. Aber das soll mich jetzt nicht von einem ausgedehnten 
Freudentanz abhalten! :-D

Danke!

von Simon K. (simon) Benutzerseite


Lesenswert?

Sehr schön! ;)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Pegelwandler! Ich sach nur Pegelwandler. Dann geht auch das LCD wieder. 
Toll, daß das BTM jetzt antwortet.

von Boris (Gast)


Lesenswert?

^^ Immer dieser Pegelwandler! Hast du mal einen konkreten Namen für 
mich?
Meinst du vielleicht sowas wie einen 7805? Die scheint es aber leider 
nur für 5 und 8V zu geben (zumindest auf den ersten Reichelt-Blick), und 
sind relativ klobig...

von Hagen R. (hagen)


Lesenswert?

Funktioniert bei euch das ATH? Kommando ? Ich habe das BTM-112 Modul und 
im Slave Modus ohne bestehende Verbindung zieht das Teil 44mA. Besteht 
dann eine Verbindung man sendet aber nichts so reduziert sich der 
Stromverbrauch auf 3mA. Nun dachte ich das ich über ATH0 den 
Discovery-Modus des Moduls beeinflussen kann. Ansonsten funktioniert 
alles, also Master/Slave, Verbindungsaufbau etc.pp. Nur eben der 
Stromverbrauch stört noch.

Gruß Hagen

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Boris, nix für ungut, aber ich habe Dir ein Stück weiter oben schon 
gesagt, wie es geht. Nochmal zum Mitschreiben: RX am Modul bekommt einen 
Widerstand 3.3k nach Masse. Mit 1.8k schließt Du RX Modul an TX 
Controller an. Modul TX geht über einen Widerstand 3.3k auf einen BC557 
(BC857) dessen Emitter an 3.3V von der Modulversorgung angeschlossen 
wird. Der Kollektor geht dann auf einen weiteren Widerstand 3.3k auf die 
Basis eines BC547 (BC847), dessen Emitter auf Masse liegt. Der Kollektor 
geht an RX vom Controller und an einen Widerstand 3.3k nach +5V der 
Versorgung des Controllers. Zwischen Emitter und Basis beider 
Transistoren kommen noch einmal je 1k, die die Transistoren schneller 
schalten lassen.

Ein 7805 ist kein Pegelwandler, sondern ein Festspannungsregler.

Für das Modul brauchst Du noch einen Festspannungsregler 3.3V und für 
den Controller dann halt einen für 5V.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bei mir gehen keine AT-commands außer ATI0 und ATI1 und AT, ansonsten 
bekomme ich immer ein ERROR zurück. Die Stromaufnahme ist um 35mA ohne 
bestehende Verbindung und etwa 5mA bei bestehender Verbindung ohne 
Datenaustausch.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Boris wrote:
> ^^ Immer dieser Pegelwandler! Hast du mal einen konkreten Namen für
> mich?
> Meinst du vielleicht sowas wie einen 7805? Die scheint es aber leider
> nur für 5 und 8V zu geben (zumindest auf den ersten Reichelt-Blick), und
> sind relativ klobig...

Nein, die Signalpegel müssen angepasst werden. Entweder du betreibst 
deinen Atmega und das LCD mit 5V und wandelst die Signale zum BT-Modul 
oder du baust einen Pegelwandler zwischen Atmega (der dann mit 3,3V 
läuft) und dem LCD ein.

Beispiele zur Realisierung gibt es unter "Pegelwandler" in der 
Codesammlung.

von Hagen R. (hagen)


Lesenswert?

ATI0 und ATI1, diese Kommandos sind garnicht im Datenblatt beschrieben ? 
Wie kommst du auf diese Kommandos ?

Übrigens ATX0,ATX1,ATC0,ATC1 sind ebenfalls nicht im datenblatt. Mit ATC 
schaltet man das Hardwareflowcontrol ein/aus.

Gruß Hagen

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ich habe die Kommandos vom Service zugeschickt bekommen.

von Hagen R. (hagen)


Lesenswert?

Hi TravelRec,

könntest du mir diese Kommandos bitte mailen ?

Gruß Hagen

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Angehängte Dateien:

Lesenswert?

Yep. Das ist die Beschreibung für ein Dongle, soll aber auch für die 
einzelnen Module zutreffen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

So, ich bin´s nochmal. Mein Problem hat sich gerade erledigt. Es bestand 
darin, daß ich die Daten als String an das Modul versendet hatte. Nun 
verhält es sich tatsächlich aber so, daß das Teil jedes Zeichen erst 
einmal als Echo zurücksenden will, bevor ein neues Zeichen akzeptiert 
wird. Man muß also, wie weiter oben schon einmal bemerkt wurde, erst im 
UART-Receive-Register des Controllers nachschauen, ob das gerade 
versendete Byte wieder angekommen ist, dann darf man weitersenden. Das 
komplette Commando muß mit dem Steuerzeichen 0x0D (ENTER) abgeschlossen 
werden. Ist alles vom Modul verstanden worden, sendet es 0x0D 0x0A 'O' 
'K' 0x0D 0x0A zurück. Bei einer Anfrage an das Modul werden zwischen die 
Steuerzeichen 0x0D 0x0A noch Datenbytes eingeschoben. Also dann mal viel 
Glück beim Proggen :-)

von Boris (Gast)


Lesenswert?

Um euch auch mal was Gutes zu tun:
Nachdem nun dank eurer Hilfe alles so prima funktioniert, schreibe ich 
gerade ein schönes Programm für PocketPCs / Smartphones (WindowsMobile 
5/6). Vom Coden hab ich nämlich mehr Ahnung als von E-Technik ;-)

Das Proggi sucht nach Bluetoothgeräten, kann sich mit diesen verbinden, 
deren angebotenen Services auflisten und sich auch zu diesen verbinden.
Danach können über die serielle Schnittstelle Daten gelesen und 
geschrieben werden. Damit wird das Handy quasi zur Fernbedienung / 
Debugger.

Wenn ihr Interesse habt kann ich das Tool ja dann mal hier online 
stellen...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Auf alle Fälle: Her damit ;-) ! Geht Dein Modul jetzt so richtig?

von Hagen R. (hagen)


Lesenswert?

@Travel Rec.

danke für das Datenblatt, das klärt so einige Punkte dir mir unklar 
waren. Bisher habe ich so fast jede Funktion mal durchgetestet und dabei 
sind so par Fallstricke aufgekommen, ich rede über das BTM-112

1.) Erst nach langer Suche fand ich ein Terminalprogram das richtig 
arbeitet. Für den Anfang sollte man mit HyperTerminal das Modul per PC 
ansprechen. Dann dort sofort ATE0, also Echos aus, ausführen. Danach 
kann man auch mit normalen Programmen arbeiten die per Buffer asynchron 
den RS232 Sende/Empfangsroutinen arbeiten.

2.) Im Datenblatt des BTM-112 an PIO(7) eine LED nach Masse schalten, 
Vorwiderstand. Das ist die Link-Status-LED die anzeigt wann das Modul 
einen Discovery, Pairing, Inquiry Status hat. Im Discovery Modus zieht 
das Modul den meisten Strom. Ist man einmal verbunden so sinkt der Strom 
auf 3mA wenn keine Daten übertragen werden.

3.) Im Datenblatt an PIO(6) ist falsch. Der korrekte Pin ist PIO(5) 
ebenfalls LED nach Masse. Diese LED leuchtet auf wenn Daten übertragen 
werden, also nach einem Verbindungsaufbau.

4.) mit ATX1 die +++ Sequenz zum Wechseln aus dem DATA ind den COMAND 
Mode aktivieren.

5.) Geht man mit ATR0 in den Master Modus sollte man erstmal ATO1 
ausführen. Danach ein ATF? um die in Reichweite befindlichen Module zu 
finden. Man muß aber einige Zewit warten bis dieser Suchvorgang fertig 
ist. Danach kann man mit ATA1 bis ATA8 eines der Module verbinden. Mit 
+++ kommt man aus der bestehenden Daten-Verbindung wieder in den 
Kommandomodus. Man kann nun mit ATH die aktuelle verbindung trennen.
Gibt man jetzt mit ATD=xxxxxxxxxxx eine feste Geräte ID vor und wechselt 
mit ATO0 in den automatischen Verbindungsmodus so connected das Modul 
nun immer automatisch mit der Gegenstelle. Das kann man testen indem man 
auf dem PC den Bluetooth Serial Port trennt, das Modul baut sofort 
wieder die Verbindung auf.

6.) mit ATZ kann man 2 Konfigurationen laden. ATZ0 offiziell und ATZ1 
gibts eine zweite Konfiguration. Die ist im Grunde identisch mit der 
Ausnahme das die Baudrate auf 9600 Baud eingestellt ist. Darauf bin ich 
beim Testen herein gefallen und dachte schon das mein Modul kaput 
konfiguriert ist. Musste aber nur die Baudrate auf 9600 Baud einstellen 
;)

Getestet habe ich das Teil im Master/Slave Modus mit meinem PC, Palm 
Thungsten T und Siemens Handy. Beim Handy konnte ich mit den Siemens AT 
Befehlen das Handy steueren ;)

Gruß Hagen

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Danke für die Infos Hagen, ich denke mal, das BTM112 haben wir jetzt im 
Griff :-) Gute Nacht dann mal. Heute ist wieder Arbeit.

von Boris (Gast)


Lesenswert?

Joa, ich denk mal dass es richtig geht. Zumindest hab ich ein paar vom 
AVR gesendete 'a's auf meinem PDA empfangen. Dann wird's wohl in die 
andere Richtung auch funktionieren...

Das ist soooooo cool :-D

von Boris (Gast)


Lesenswert?

Nochmal eine Frage: brauche ich eigentlich noch irgendwelche der anderen 
Pins am BM-Modul? Viel mehr als "Serial Communication" will ich ja nicht 
machen.

Dann würde ich das ganze nämlich mal in einen schönen, zu meinen 
Steckbrettern kompatiblen, Sockel löten und mit Heißkleber versiegeln.
Oder geht das Modul kaputt, wenn man es mit Heißkleber "behandelt"? ;-)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nö, keine anderen Pins. Aber Heißkleber? Naja. Ich habe das Modul für 
Tests auf ein Stück Lochrasterplatine gelötet, mittels Fädeldraht an 
Stiftleisten. Auf der Platine sind dann auch die Pegelwandler und 2 
LEDs, damit ich sehe, was das Teil macht. So kann ich es jederzeit mit 
einem anderen Controller verheiraten ;-)

von Hagen R. (hagen)


Lesenswert?

GND,V3.3,RX,TX,Antenne reichen, eventuell noch die Link-LED per 330Ohm 
nach Masse anschließen. Beim BTM112 ist das PIO(7). Im Attachment von 
TravelRec. findest du die Bedeutung der Leuchtphasen dieser LED.

Wie kann man das Modul in die Energiesparmodis versetzen ? 44mA 
Stromverbrauch im nicht verbundenen Suchmodus sind mir zuviel, das Modul 
versucht ja dann ständig verfügbar zu sein. Besser wäre es aber wenn das 
Inquiry nur für par Sekunden alle par Minuten steuerbar wäre.

Gruß Hagen

von Hagen R. (hagen)


Lesenswert?

Nochwas ist mir aufgefallen. Das Modul scheint wohl nur einen 2 Bytes 
großen Empfangspuffer zu haben und benötigt dann einige Zeit diese 2 
Bytes per Commandinterpreter abzuarbeiten. Das bedeutet das man nicht 
wie üblich mal eben einen Befehl wie ATI1<CR> am Stück raussenden kann. 
Das Modul verschluckt sich dann, bzw. bekommt einen UART Receive 
Overflow. Die Software die das AT Protokoll im Modul erledigt scheint 
also ziemlich schlecht zu sein, sie arbeitet die empfangenen Bytes 
direkt per Statemaschine ab und produziert somit Verzögerungen im 
Kommunikationsfluß. Normalerweise würde man per Interrupts arbeiten, und 
im Hintergrund einen Empfangsbuffer befüllen. Also wenn man 
programmieren kann. Nun das erklärt warum alle meine besseren 
Terminalprogramme auf dem PC das Modul eben nicht sauber ansprechen 
können. Windows Hyperterminal wiederum sendet sofort das eingegebene 
Zeichen über den UART, und das Modul hat somit ausreichend Zeit die 
empfangenen Bytes live abzuarbeiten. Ich möchte nicht über die Chinesen 
herziehen, aber ein bischen angegrätzt kann man bei einer solch 
schlechten Implementierung schon sein.
Bezieht sich auf das BTM112, dürfte aber auch das BTM222 betreffen da 
diese ja nur im exteren HF-Booster unterschiedlich ist. Schade ist es 
schon, da ein super Bluethootchip von CSR verbaut ist, mit immensen 
Support für Programmierer seitens CSR und was am Ende im fertigen 
Produkt wieder kastriert herauskommt ist Mist.

Fazit: nach jedem gesendeten Byte den RX Buffer des AVRs auslesen und 
eventuell noch mal µs Wartezeit einlegen.

Gruß Hagen

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das meinte ich weiter oben, weswegen mein Modul erst gar nicht ging. Es 
reicht aber, das Echobyte zu empfangen, danach muß man dann nicht mehr 
warten. Da dies nur die Kommandoebene betrifft und der Datenverkehr mit 
voller Geschwindigkeit laufen kann (ohne Handshake nicht zu emfehlen!) 
ist es nicht so schlimm - find ich.

von Hagen R. (hagen)


Lesenswert?

Hm, ok das würde gehen ist aber nicht so dolle. Eine gute Software würde 
asynchron arbeiten können. Nun wird nämlich auch klar warum man zu 
bestimmten Zeitpunkten bestimmte Kommandos nicht verfrüht absenden darf. 
Macht man das denoch so habe ich den Eindruck das die FSM im Modul aus 
dem Tritt kommt und sich sogar aufhängen kann (mir 2 mal passiert). Es 
gibt einige solcher Befehle, zb. ATR0/1, ATO0/1, ATD die länger an Zeit 
benötigen, und wir eben nicht wissen wie lange das dauert. Es gibt dann 
also nur eine Möglichkeit zu erkennen ob das Modul den nächsten Befehl 
akzeptiert, indem man diesen Befehl ständig sendet, quasi pollt. Aber 
exakt dann scheint sich das Modul wieder zu verschlucken und kann sich 
aufhängen. Ein Teufelskreis ;)

Ergo: jedes Byte was rausgeht gleich im ECHO Modus wieder empfangen und 
auch gleich auf Fehler prüfen.

Fazit: nur gut das ich beim Kauf der Module nicht gierig war ;) Bin mal 
gespannt auf die Erfahrungen mit den Modulen wenn sie im Langzeitbetrieb 
eingesetzt werden. Mal sehen wie stabil die Verbindungen sind.

Bleibt noch das Problem das im Slave Modus bei fehlender Verbindung der 
Stromverbrauch zu hoch ist. Bisher versuche ich dann in den Mastermodus 
zu wechseln und mit ATO1 den automatischen Verbindungsmodus zu 
deaktivieren. Das Modul geht dann in den Standby wie es scheint. 
Allerdings mert sich das Scheißteil nicht den eingestellten 
Automatik-modus wenn man wieder zurück in den Slav-Modus wechselt. Also 
jedesmal wenn man in den Mastermodus wechselt ist der autom. 
Verbindgunsaufbau wieder aktiviert. Das fürht dann dazu das dasw modul 
versucht mit einer Gegenstelle Verbindung aufzunehmen.

Gruß Hagen

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wir werden die Module ausgiebig testen, weil wir sie auf Arbeit in eine 
kundengebundene Applikation einbauen wollen. Da müssen sie dann schon 
laufen! Der Support meinte auf meine Anfrage hin, daß wenn das Modul 
nicht arbeiten soll, das Halten im RESET-Zustand eine Maßnahme wäre, 
auch um Strom zu sparen. Ich werde das morgen mal austesten, vor allem 
auch, was an Einstellungen gespeichert bleibt und was verloren geht / 
rückgesetzt wird.

von Olly K. (rossi75)


Lesenswert?

Hallo zusammen,

habe mir gerade mal die Beschreibung angeschaut. Hat schon jemand ne 
Idee wozu der USB-anteil ist und ob und wie man den benutzen kann?

cu,
olly...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Für USB-Anbindung vielleicht? Soweit ich weiß, sogar 2.0 . 
Anschlußschemata habe ich aber noch keine gesehen, insofern muß ich mal 
den Support bemühen.

von Jörg F. (jopelabln)


Lesenswert?

Gibt es vom Support bezüglich USB schon Neuigkeiten?

von Oliver (Gast)


Lesenswert?

Nochmal eine Frage zu den AT Befehlen: wie kann ich den Namen des Moduls 
ändern?
Ich habe schon alles mögliche versucht (im Datenblatt steht ja was von 
N=XXXXX) aber irgendwie will es nicht :-(

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

ATN=Mein_Modul

würde funktionieren. Bei Verwendung von nicht erlaubten Zeichen gibt´s 
´ne wunderschöne Fehlermeldung: invalid character.

>Gibt es vom Support bezüglich USB schon Neuigkeiten?

Nein. Laut einer gefundenen Beschreibung für ein anderes Modul müssen 
Vorwiderstände 27Ohm für DP und DN verwendet und das Modul mit 3.3V 
versorgt werden. Der FullSpeed-PullUp ist schon drin. Ob die Firmware 
USB unterstützt, kann ich (noch) nicht sagen.

von Roman (Gast)


Angehängte Dateien:

Lesenswert?

Hat einer von euch schon Erfahrungen mit dem BTM-330 Modul gesammelt.
Ich habe es mir letzens gekauft und bekomme es nicht zum laufen.
Betreibe es mit 3,3V und habe es über einen MAX3232 chip an den PC 
angeschlossen.
Meine Probleme sind nun:

1.Das Modul lässt sich über Bletooth nicht finden.

2.Es sendet die ganze Zeit hex codes die ich aber nicht wiklich lesen 
kann da     ersten Baud unbekannt hab mehrere probiert. Und zweitens 
jedes terminal Programm mir andere zeichen anzeigt.

Beispiel : @ 19200Baud "0x18,0x13,0x97,0x7A,0x7C,0x5C,0xFF"
@ 9600Baud "0x50,0x75,0x9B"

3. Es reagiert nicht auf Zeichen die ich sende. es sendet weiter 
kontinuirlich seine codes rüber.

Wäre dankbar falls einer einen Rat weiß.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das BTM330 ist ein Modul ohne eigenen Stack und somit auf einen voll in 
Software implementierten Stack (wie z.B. als Dongle am USB-Port) 
angewiesen. Es läßt sich auch über USB ansprechen.

ÜBRIGENS: bei www.csd-electronics.de gibt es jetzt auch die BTM112, ohne 
umständliche Bestellung in Polen.

von Roman (Gast)


Lesenswert?

hmm ok danke
dann war das wohl eine Fehlinvestition
so gut kenne ich mich damit nun auch nicht aus um einen stack zu 
programmieren.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nee, ich auch nicht ;-)

von Fridolin (Gast)


Lesenswert?

Hallo,

fühlt sich jemand von euch in der Lage, eine Grundschaltung zu 
entwerfen, sodass auch nicht so sehr Bluetooth/Microkontroller versierte 
Menschen eine Kommunikation hinbekommen?
Wenn dies mit einem Atmega32 ginge würde das am besten in meine 
bisherigen Projektteile passen, oder ein 8051er als dedizierter 
Kommunikationscontroller wäre auch eine interessante Idee (wobei ich 
glaube, dass es dieser von der Leistung her nicht zuverlässig packen 
wird).

Grüße Fridolin

von Frank (Gast)


Lesenswert?

Bleiben die Konfigurationen (z.B. Umkonfiguration auf 9600B) eigentlich 
im Modul erhalten wenn es spannungslos war oder muß ich jedesmanl beim 
PowerOn die Konfiguration neu manchen ?

Danke
Frank

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Das bleibt alles erhalten.

von Markus C. (mach3)


Lesenswert?

Hallo zusammen,

ich habe jetzt auch mal ein wenig mit dem BTM-112 rumgespielt und bin 
auf zwei Probleme gestoßen:

1.
ich habe jeweils 2 Master und 2 Slaves konfiguriert und offenbar haben 
sich da jeweils 1 Master und 1 Slave verheiratet und jetzt habe ich zwei 
Pärchen, und der eine Master findet immer nur noch einen bestimmten 
Slave, der zweite Master den anderen Slave. Gegeneinander ausgetauscht 
kommt es zu keiner Verbindung. Ich habe ATD0 geschickt, Slaves sind im 
discoverable mode und auto-connecting ist aktiviert. Ich weiß nicht was 
da los ist. Hat jemand eine Idee?

2. Mein fünftes Modul hat eine Zeit lang wunderbar funktioniert, jetzt 
reagiert es nur noch auf die Kommandos ATI0 und ATI1, alle anderen 
Kommandos werden mit ERROR quittiert. Was ist da los? Kann man das Modul 
irgendwie totkonfigurieren oder versehentlich sperren? Wenn ja, wie 
kriegt man das wieder hin?

Wäre für Tips und Anregungen dankbar

Gruß,
Markus

von Florian (Gast)


Lesenswert?

Eine Verständnisfrage habe ich mal:
Wie ist das mit der Baudrate? Ich will ein Modul an einem autarken Gerät 
anschließen und am PC einen der üblichen USB-BT Adapter. Wenn ich dann 
die Baudrate am virtuellen COM-Port ändere, ändert das auch die Baudrate 
am UART des BTM? Oder wie kann ich diese Baudrate vom PC aus via 
Bluetooth ändern?

von Sebastian (Gast)


Lesenswert?

Hallo allerseits,

habe hier ein btm-112 auf eine Trägerplatine gelötet. Bisher ist nur 
Spannungsversorgung und eine Antenne (31mm Draht) dran. Wenn ich die 
Spannung einschalte, dann kann ich das Modul mit meinem PDA immerhin 
finden.

ABER: Das Modul wird unglaublich heiß und zieht stolze 230mA.
Ist das normal? Trau mich jetzt gar nicht das Modul lange eingeschaltet 
zu lassen :-(

Ist es okay, dass Antenne und GND mit dem Durchgangsprüfer piept?

Schonmal Danke für Antworten für mich als Nicht-Nachrichtentechniker.

Viele Grüße,
Sebastian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

50mA wären normal. Nein, GND und Antenne sollten keinen Schluß 
aufweisen. Da passt irgendetwas mit Deiner Löterei nicht oder das Modul 
ist halt defekt.

von Sebastian (Gast)


Lesenswert?

Erstmal Danke für Deine schnelle Antwort. Habe inzwischen das zweite 
Modul eingelötet. Selbes Verhalten.

Das ausgelötete Modul hat auch Durchgang zwischen Antenne und GND.

Kann alleine durch den Durchgangsprüfer (Fluke Multimeter) da was 
zerstört worden sein?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nein, ich denke mal nicht. Wieviel Ohm zwischen Antenne und GND mißt Du? 
Hast Du alle GND und Vcc Anschlüsse belegt? Dir ist auch klar, daß die 
Module nur 3.3V Betriebs- und Steuerspannung haben dürfen?

von Sebastian (Gast)


Lesenswert?

Zwischen Antenne und GND sind 0,2 Ohm.

VCC: Pin 16
GND: Pin 17, 32 und 34

Mehr sind es ja nicht. Sonst keinerlei Anschlüsse oder Brücken (Mit 
Durchgangsprüfer geprüft ;) )

Wie gesagt, ich kann das Modul sogar erfolgreich mit meinem PocketPC 
finden.
 Was ich noch festgestellt habe: Wenige Sekunden nach dem Einschalten 
steigt die Spannung zwischen Pin16(VCC) und GND von 3,3V auf 6,2V?! Die 
3.3V werden durch einen LM2937-3.3 erzeugt.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

6.2V?? Das klingt gar nicht gut! Hast Du den Regler ordentlich mit 
Kondensatoren abgeblockt und das Modul mit Keramikkondensatoren an Vcc 
und Masse beschaltet?

von Sebastian (Gast)


Lesenswert?

Um den Regler die üblichen 100nF und Elko. Zwischen Trägerplatine und 
Regler sind ca. 20cm Litze, dann nochmal 100nF smd kondensator direkt 
vor dem btm-112.

Nochmals Danke für deine Unterstützung.

von Sebastian (Gast)


Lesenswert?

Habe die lange Litze zwischen Regler und Modul mal weg gelassen und 
durch kurze Drähte ersetzt. Jetzt sieht es viel besser aus. Modul wird 
nichtmal warm, Spannung bleibt bei 3,3V.

Handelte sich übrigens um Mess-Leitungen mit Mikro-Kleps 
Klemmprüfspitzen daran. Leitungen sind aber deutlich länger als die 
zuvor geschätzten 20cm.

Durchgang zwischen Antenne und GND ist zwar nachwievor vorhanden, aber 
sowohl PocketPC als auch Handy finden den "Serial Adaptor".

Dann werde ich mal weitere Versuche starten, hoffe das bleibt jetzt so.

TravelRec, dir nochmals Danke!

Grüße,
Sebastian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Durchgang zwischen Antenne und GND ist zwar nachwievor vorhanden, aber
>sowohl PocketPC als auch Handy finden den "Serial Adaptor".

Das könnte der Balun auf dem Modul sein. Schön daß es jetzt läuft. 
Welchen Regler für die 3.3V benutzt Du denn?

von Sebat (Gast)


Lesenswert?

>Das könnte der Balun auf dem Modul sein. Schön daß es jetzt läuft.
>Welchen Regler für die 3.3V benutzt Du denn?

Ich nutze einen LM2937-3.3 zur Erzeugung der 3,3V.  Gibt es hierfür 
geeignetere Kandidaten?

von Florian (Gast)


Lesenswert?

Kann mir keiner was zu meiner o. g. Frage sagen, wie/ob man die Baudrate 
per BT umstellen kann?

Außerdem werde ich aus dem Datenblatt nicht schlau: Gibt's beim BTM-222 
auch Pins für Status-LEDs (Typ?)?

von opacer (Gast)


Lesenswert?

Hallo,
kann man mit dem BTM-112 oder BTM-222 auch ein Piconet aufbauen? Wenn ja 
wie ? ;)

Grüße & Danke!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

> Gibt's beim BTM-222
>auch Pins für Status-LEDs (Typ?)?

Ja, GPIO 5...7 . Schließe einfach mal eine LED mit 1k Vorwiderstand nach 
Masse und gucke, was passiert ;-) Noch dazu sind die eingehenden 
Handshake-Leitungen auch mir LEDs ganz anschaulich.

>Kann mir keiner was zu meiner o. g. Frage sagen, wie/ob man die Baudrate
>per BT umstellen kann?

Nicht per Bluetooth, nur mit UART. Ist das Modul erst mal im BT-Mode, 
akzeptiert es keine Commands mehr.

von Harald (Gast)


Lesenswert?

Nachdem ich dem attraktiven Preis nicht widerstehen konnte habe ich das 
BTM-222 gestern in Betrieb genommen. Alles funktioniert perfekt bis auf 
das ATF? Kommando zum Aufsuchen anderer Bluetooth-Partner. Zwar benötige 
ich für meine Aufgabe eigentlich nur den Slave-Modus, ich habe mich aus 
Interesse aber auch mit dem Mastermode beschäftigt. Auf dieses Kommando 
hin erhalte ich stets "ERROR". Meine Einstellungen sind wie folgt:

OK
ati0
F/W VERSION: v4.19
ati1
OK
ATC=0, NONE FLOW CONTROL
ATD=0000-00-000000, NEVER SET BLUETOOTH ADDRESS
ATE=1, ECHO CHARACTERS
ATH=1, DISCOVERABLE
ATK=0, ONE STOP BIT
ATL=1, BAUD RATE is 9600
ATM=0, NONE PARITY_BIT
ATN=AUTOMOWER, LOCAL NAME
ATO=0, ENABLE AUTO CONNECTING
ATP=****, PIN CODE
ATQ=0, SEND RESULT CODE
ATR=0, MASTER ROLE
ATS=1, ENABLE AUTO-POWERDOWN OF RS232 DRIVER
ATX=1, ALWAYS CHECK '+++'
atf?
ERROR

Wie man sieht, funktioniert "atf?" nicht. Nein, an der 
Groß-/Kleinschreibung liegt es nicht, das habe ich mehrfach getestet.

Any ideas?

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Das Problem hatte ich auch schon, allerdings habe ich es noch nicht 
geschafft, Rayson mal eine eMail zu schreiben. Die sind eigentlich recht 
offen für Fragen. Es wäre allerdings nicht die erste Sache, die im 
Datenblatt falsch ist oder einfach fehlt. Ich hätte einfach mal gerne 
konkrete Aussagen zum Timing des Moduls, zum Beispiel wie lange die 
Start-Up-Zeit ist.

von Harald (Gast)


Lesenswert?

Hallo Christoph,
Du sagst, das hättest Du auch schon gehabt. Hast Du es lösen können?

Was mir auch aufgefallen ist: Die LED mit dem Verbindungsstatus hört 
irgendwann auf zu blinken. Finden kann man das Modul aber trotzdem noch.

Aber mit der mail an Rayson will ich es gerne versuchen. Mach ich mich 
heute abend noch ran, falls es eine Antwort gibt werde ich das 
zusammengefasst hier posten. Ich frage mich, ob die überhaupt selber was 
an der Firmware machen oder ob das einfach nur fertige Images von CSR 
sind.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Nein, habe ich nicht. Allerdings habe ich da auch schon länger nicht 
mehr daran gearbeitet, ich brauchte auch nur den Slave-Modus.

von Harald (Gast)


Lesenswert?

Die Antwort von Rayson war, dass mittels ATO1 Kommando das "Enable auto 
connecting" weggenommen werden muss, erst danach funktioniert ATF? zum 
Auffinden anderer Bluetooth-Partner.

von Max H. (xam)


Lesenswert?

Moin,
ich habe mein modul soweit am laufen jedoch bekomme ich es nicht hin 
über meinen smartphone (windows mobile 2003) mit dem modul zu 
kommunizieren. ich würde mich freuen wenn boris sein programm hochladen 
würde.
mfg max

von M. D. (maddax)


Lesenswert?

Hallo,

hier ein Terminal für den PDA zum testen:

http://www.appliedpda.com/Products_PocketDAQ.html

mfg

von Manuel B. (man)


Lesenswert?

gibt es eine einfache Lösung eine Bluetooth-Verbindung vom Modul aus zu 
kappen, um z.B. wieder AT befehle zu senden?
Einfach resetten?

Gruß
Manuel

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

+++ senden, danach eine Pause von mindestens 1 sek. lassen

von xing (Gast)


Lesenswert?

Was ist eigentlich der Unterschied vom Bluetooth-Modul BTM333 zu 
BTM112/222?
BTM112: Class2, 10m
BTM222: Class1 100m

BTM333 ?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das BTM333 kommt ohne eigenen Stack und ist daher nur in Verbindung mit 
einem Gerät mit (Software) BlueTooth Stack geeignet (Verwendung in 
USB-Sticks oder als interne BT-Schnittstelle im PC oder PDA).

von xing (Gast)


Lesenswert?

Bluetooth Stack heist damit: Man kann damit keine einfache serielle 
Verbindung wie mit dem BTM 112 aufbauen? Also kein SPP-Profil?

von xing (Gast)


Lesenswert?

Im Moment überlege ich, eine kleine Schaltung mit Atmega und Bluetooth 
Modul zu bauen.

Mir fällt die Entscheidung dafür schwer,
BTM 112, 10m
BTM 220, 100m
BTM 330, 10m

Ich habe schon mal eine Schaltung mit dem BlueNiceIII entworfen. Das 
ganze hat nach einer "zähen" Experimentierphase auch funktiniert.
Leider ist das BlueNiceIII ungefähr 3x so teuer wie das BTM112. Warum 
weiss ich nicht. Ich vermute, dass die alle den selben Bluetooth-Chip 
von National Semiconductors verwenden.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Bluetooth Stack heist damit: Man kann damit keine einfache serielle
>Verbindung wie mit dem BTM 112 aufbauen? Also kein SPP-Profil?

Korrekt, lediglich eine Hardware-Anbindung mit HCI-Protokoll (oder 
RFCOMM) zur Beeinflussung der Register im BlueCore4.

Also wenn ich Dir ´was empfehlen soll, dann nimm die BTM222, die sind 
sende- und empfangsstark und unkompliziert über AT-Commands und UART 
steuerbar. Die 112er verlieren den Kontakt tatsächlich nach etwa 10m 
oder hinter einer Betonwand von 20cm Stärke.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ach ähem, der BT-Chip vom BTMxxx ist ein BlueCore4 von CSR, und somit 
leistungsfähiger, als der von National.

von xing (Gast)


Lesenswert?

Tja, schon klar, dass man mit der großen Sendeleistung weit kommt. Mit 
dem BlueNiceIII ( auch 1mW Modul ) bin ich bis ins nächste Zimmer 
gekommen. War eine On-Chip Antenne drauf.
Als Vorteil der geringen Sendeleistung würde ich sehen, dass sich viele 
gleichzeitig betriebene Module nicht so sehr stören.

von Stefan E. (sternst)


Lesenswert?

Ist man bei den Modulen mit integrierten SPP-Profil eigentlich auf 
dieses festgelegt, oder hat man alternativ auch das HCI-Interface?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Als Vorteil der geringen Sendeleistung würde ich sehen, dass sich viele
>gleichzeitig betriebene Module nicht so sehr stören.

Das stimmt wohl. Wenn Dir die kleine Leistung reicht. Die BTMxxx kommen 
ohne Antenne, die kann man aber leicht auf der Trägerplatine als 1/4 
Lambda Drahtstück mit 0,8mm Breite ausführen.

>Ist man bei den Modulen mit integrierten SPP-Profil eigentlich auf
>dieses festgelegt, oder hat man alternativ auch das HCI-Interface?

Entweder ein SPP-Modul mit Stack oder ein HCI ohne.

von veit (Gast)


Lesenswert?

na hat mal jemand weitergebastelt?

ich hab die btm´s grad mal wieder aus nem verstaubten karton geholt ...

von xing (Gast)


Lesenswert?

Tja, ich würde gerne mit dem BTM112 basteln. Aber so wie es aussieht, 
sind die im Moment nirgends lieferbar. Ich vermute, dass die 
Herstellerfirma Rayson einen Lieferengpass hat. Das gilt bestimmt auch 
für die anderen Module.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Also von den BT112-Modulen habe ich noch zwei, die ich nicht benötige. 
Die würde ich gegen Erstattung des Kaufpreises und dem Porto auch 
abgeben wollen.

Allerdings benötige ich dringend BTM222-Module - davon hat zufällig 
keiner mehr welche?

von xing (Gast)


Lesenswert?

Hey, die BTM112 hätte ich gerne. Wie kann ich Dich kontaktieren?

von Harald (Gast)


Lesenswert?

Ich habe eine einfache Adapterplatine entworfen, die wahlweise das 
BTM-222 oder ein XBEE-Funkmodul (Bestückungsoption) auf ein 
experimentierfreudiges Raster 2.54mm adaptiert. Die Antenne ist dann 
wahlweise ein U.FL Connector oder einfach ein Stück Draht. Zusätzlich 
befinden sich ein 3.3V Low-Drop-Regler und ein Pegelwandler 5V/3.3V für 
RX/TX auf der Unterseite. Daneben noch 2 LEDs für Statusanzeige, alles 
in SMD aufgebaut.

Da ich die Platinen im Platinenservice fertigen lasse, wollte ich mal 
fragen ob da noch jemand Interesse hat (voraussichtlich ca. 5 
Euro/Stück)

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

xing wrote:
> Hey, die BTM112 hätte ich gerne. Wie kann ich Dich kontaktieren?

Am besten einloggen und mir eine Nachricht schicken. Preis für die zwei 
Module  inklusive Porto wären 30€.

von Markus G. (firefux)


Angehängte Dateien:

Lesenswert?

Gibt es eine Moeglichkeit wieder in den DATA Mode zu gelangen, nachdem 
ich mit '+++' vom DATA in den COMAND Mode gewechselt habe?
Konnte noch nichts finden...

Ich habe mir in Eagle einen einfachen DIL-Adapter fuer das BTM-112 
erstellt (siehe Foto), falls jemand Interesse hat einfach melden. Die 
Antenne ist nur ein Stueck Kupferlackdraht und Lambda/4 lang, 
funktioniert problemlos (das Modul funkt erstaunlicherweise auch ohne 
die Drahtantenne ;) )

Gruesse

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Gibt es eine Moeglichkeit wieder in den DATA Mode zu gelangen, nachdem
>ich mit '+++' vom DATA in den COMAND Mode gewechselt habe?
>Konnte noch nichts finden...

ATO0

siehe hier: 
http://www.mikrocontroller.net/attachment/27771/BTD43X_user_manual.pdf

von Markus G. (firefux)


Lesenswert?

Travel Rec. wrote:
>>Gibt es eine Moeglichkeit wieder in den DATA Mode zu gelangen, nachdem
>>ich mit '+++' vom DATA in den COMAND Mode gewechselt habe?
>>Konnte noch nichts finden...
>
> ATO0
>
> siehe hier:
> http://www.mikrocontroller.net/attachment/27771/BTD43X_user_manual.pdf


ATO0 ist in der BTD43X_user_manual.pdf leider nicht aufgefuehrt, aber im 
Datenblatt zum BTM-112. Zu ATO: 'When it's in master mode .The command 
is used to enable/disable auto-connection feature. When it's in slave 
mode, the command will be rejected.'
Ich arbeite im Slave Mode, da funktioniert es nicht...

Das Modul ist uebrigens auch nach der '+++'-Sequenz laut Status-LED noch 
verbunden, eine neue Verbindung waere theoretisch also gar nicht 
notwendig.

Hat noch jemand eine Idee?

Gruesse

PS: Das Englisch aus dem Datenblatt ist ja grauenvoll ;)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>ATO0 ist in der BTD43X_user_manual.pdf leider nicht aufgefuehrt, aber im
>Datenblatt zum BTM-112.

Ist Deine Brille kaputt?!

Was macht denn das Modul, wenn Du nur ATO eingibst (also ohne Null 
danach)?

von Chris (Gast)


Lesenswert?

Hi und Hallo,

hatte mir jetzt auch mal ein Paar BTM-222 zugelegt. Was mir allerdings 
fehlt, ist eine CE Konformitätsbescheinigung für die Module.

Auf der Herstellerseite konnte ich leider auch nichts finden - 
vielleicht weiß einer von euch, ob es für dieses Modul "überhaupt" eine 
gibt.

Viele Grüße
 Chris

von Markus G. (firefux)


Lesenswert?

Travel Rec. wrote:
>>ATO0 ist in der BTD43X_user_manual.pdf leider nicht aufgefuehrt, aber im
>>Datenblatt zum BTM-112.
>
> Ist Deine Brille kaputt?!
>
> Was macht denn das Modul, wenn Du nur ATO eingibst (also ohne Null
> danach)?

Oh, mein Fehler, hatte das 'O' zwischen 'N' und 'P' erwartet ;)
Danke, funktioniert mit ATO wunderbar, bei ATO0 (ATO_NULL) bringt mir 
das Modul nur die Meldung 'ERROR' (egal ob verbunden oder nicht), da ich 
das Modul ja im Slave Mode betreibe.

Gruesse

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Na super!

von Sucher (Gast)


Lesenswert?

Hi

@Boris

...
Um euch auch mal was Gutes zu tun:
Nachdem nun dank eurer Hilfe alles so prima funktioniert, schreibe ich
gerade ein schönes Programm für PocketPCs / Smartphones (WindowsMobile
5/6). Vom Coden hab ich nämlich mehr Ahnung als von E-Technik ;-)
....

Was ist aus dem Programm geworden, was Du bereit stellen wolltest?
Habe ich das übersehen?

MfG
Achim

von Daniela (Gast)


Lesenswert?

Hallo.

Habe mal eine Frage zum BTM-112. Ich habe ein riesen Problem mit den 
AT-Befehlen des Moduls. Mein Problem sieht wie folgt aus:

- ich kann nur genau einen AT-Befehl ausführen, nach einem Reset am BTM

Da das senden der Befehle lang dauert will ich nicht noch jedesmal ein 
Reset von 5 ms am BTM durchführen müssen. Hat jemand eine Lösung die ich 
noch nicht probiert habe?

Dani

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Was genau tust Du denn und was passiert, wenn Du es getan hast?

von Daniela (Gast)


Lesenswert?

Ich schicke ein Kommado hin, das wird mit einem OK bestätigt. Wenn ich 
dann ein zweites Kommando schicke kommt ein ERROR.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Schließt Du die Kommandos mit 0x0C ab (ASCII CR) ?

von Daniela (Gast)


Lesenswert?

Nein. Ich schließe mit 0x0D 0x0A ab.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Gut, 0x0D ist richtig. 0x0A ist überflüssig und könnte den Fehler 
provozieren.

von Daniela (Gast)


Lesenswert?

Danke. Es funktioniert mit 0x0D. 0x0A könnte den Fehler verursacht 
haben.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

:-)

von Robert (Gast)


Lesenswert?

Habe hier ein btm112 liegen und es funktioniert soweit auch alles.

aber hat schon mal einer versucht die dinger mit dem handy zu verbinden.
Mein handy findet zwar das device zeigt auch name und adresse richtig an 
aber es stehen keine sevices(dienste) zur verfügung.

ziel ist eine kleine j2me aplikation mit der ich vom handy aus einen 
atmega steuern kann bzw daten von diesem auf dem handy anzeige.

so ähnlich wie hier http://www.smartprogramming.de/?page_id=3

die dort verwendete software findet mein device aber eben keinen service 
wodurch ich keine verbindung aufbauen kann.
hat jemand eine idee?

gruß Robert

von Hagen R. (hagen)


Lesenswert?

unterstützt dein Handy das SPP ? wahrscheinlich nicht. Mit meinem 
Siemens CX75 und SmartPhone HTC Touch geht es problemlos, sie 
unterstützen aber auch das SPP =Serial Port Profile.

Sobald ich zb. mit dem Siemens verbunden bin und in den Datenmodus 
wechsle kann ich das Siemens per AT Befehle fernsteuern, also so als ob 
ich ein PC-RS232 Kabel am Siemens hätte.

Hast du schonmal versucht von deinem PC aus per BT das Handy 
anzusprechen ?
Wa für'n Handy überhaupt ?

Gruß Hagen

von Robert (Gast)


Lesenswert?

Es handelt sich um ein SE K800i, das unterstützt auf jeden Fall SPP.
Wenn ich ehrlich bin hab ich das BTM Modul out "of the box" mit einem 
atmega verbunden und sende bei Tastendruck einen Teststring per 
Bluetooth. Wie gesagt funktioniert das im Zusammenhang mit dem Rechner 
wunderbar.

Das Modul ist also in den Defaulteinstellungen (Slave Modus,PW: 1234 
usw.) und ich verbinde vom Rechner aus zu dem Modul und kann sowohl 
Strings vom Rechner zu dem Modul schicken als auch meinen Teststring vom 
Modul auf dem Rechner empfangen.

Ich kann auch vom Rechner zu meinem Handy verbinden und es per AT 
befehle steuern oder erhalte zumindest ein Echo.

Aber vom Handy zum Modul bekomme ich keine Verbindung zu Stande da kein 
Dienst erkannt wird.
Muss ich vlt. doch am Modul irgenwelche Einstellungen ändern? z.B. 
Passwortabfage abschalten oder so?

Gruß Robert

von Hagen R. (hagen)


Lesenswert?

Hm, bei mir hat das funktioniert. Du könntest jetzt versuchen die 
Verbindung vom BTM aus aufzubauen. Auch das hat bei mir funktioniert.

Gruß Hagen

von Robert (Gast)


Lesenswert?

bin gerade dabei einen max ranzutüdeln um vom rechner aus ein paar 
einstellungen zu probieren.bis später

von Robert (Gast)


Lesenswert?

also neue erkenntnisse:
wenn ich das modul in mastermode setzte nach BT partnern suche und 
verbinde kann ich auch verbindung zu meinem handy aufnehmen und es per 
AT befehle steuern.
desweiteren habe ich mitbekommen das bei meinem externen BT-GPS modul 
auch keine dienste angezeigt werden und das funktioniert wunderbar mit 
einer j2me aplikation (Trekbuddy)
muss wohl am j2me midlet liegen.

werd mal versuchen ob ich ein j2me midlet hinbekomme das nicht versucht 
selbständig eine BT verbindung aufzubauen sondern nur die zeichen einer 
bestehenden ausgibt.

Ich vermute das SE hier mal wieder was eigenes nicht standartkonformes 
macht, bzw. das ich spezielle libarys für SE handys brauche. Vlt. gibt 
es hier ja einen guten Coder der sich schon mal mit j2me beschäftigt 
hat? für mich ist das echt ein krampf.

Gruß Robert

von butrus (Gast)


Lesenswert?

Hallo,

wie is es mit anderen Protokollen wie OBEX, oder HID? Müsste man dann 
den BTM330 benutzen und den ganzen stack selber im MCU programieren?. 
(Läuft aber der OBEX nicht auch über RFCOMM?) Und gibt's nicht irgendwo 
schon einen freien (GPL u.Ä.) BT stack für AVR?

Danke!
Petr

von D. F. (strohhalm)


Lesenswert?

Hallo,

wg. SPP und mobile Verbindung mittels "Mobile Processing"
(s. mobile.processing.org ) auf ein SE w810i

Ich habe ein 112 und ein 222 jeweils über einen sogenannten shield mit 
einem Arduinoboard verbunden. Hat von Anfang an wunderbar funktioniert.
Kann es auch vom Handy aus sehen und in "Meine Geräte" einfügen, 
gleichfalls auf PC und Mac.
Bin gerade dabei eine Steuereinheit für eine Fotokamera zu entwickeln 
und dachte mir, bevor ich die ganze Materie über einen zweiten 
Controller steuere, was für später trotzdem vorgesehen ist, wäre es doch 
supercool wenn man das ganze einfach auch über das Handy steuern könnte.
Da ich eher aus der grafischen Ecke komme, bin ich bei mobile processing 
fündig geworden.
Aber das ganze will nicht so wie ich will. Das SE will einfach das spp 
vom BTM nicht als solches erkennen. Beim Logilinkadapter am PC gibt es 
überhaupt keine Zicken.
Die original Bluetooth Library v. mobProc habe ich im Laufe der Tests 
durch eine gepatchte ersetzt. - s. 
http://todbot.com/blog/2006/09/12/roombactrl-drive-your-roomba-with-your-cell-phone/

http://roombahacking.com/software/midlet/mobileprocessing-bluetooth-patched.zip

Da ich hier von einem ähnlichen Problem gelesen habe, denke ich das 
könnte durchaus ein SonyErichssohn Problem sein?

Ich habe auch einige andere UUIDs durchprobiert, nur das BTM-modul 
wollte nicht, andere kein Problem.
s. 
http://www.avetana-gmbh.de/avetana-gmbh/produkte/doc/javax/bluetooth/UUID.html

Weiss hier irgendjemand welche UUID das spp Profil vom BTM Modul hat? 
Über die BlueSoleil Oberfläche bekomme ich das leider nicht raus und 
sonst habe ich auch nichts gefunden.

Würde mich sehr freuen,
Vielen Dank!

von Florian H. (trapperjohn)


Lesenswert?

Such doch einfach direkt nach der SPP-UUID 0x1101 anstatt nach einer 
Service-spezifischen UUID. Alternativ kannst du auch ganz ohne UUID 
direkt per Bluetooth-Adresse verbinden, wenn du die Channel-Nummer 
kennst (vermutlich 1)! Das sollte immer klappen.

Ich habe zwar noch nicht mit den BTM Modulen gearbeitet, aber schon 
einige Dinge mit J2ME und Bluetooth zusammen mit SonyEricsson Handys 
gemacht und hatte noch nie Probleme mit SPP Verbindungen.

von D. F. (strohhalm)


Lesenswert?

@Florian

vielen Dank für Deine Antwort.

Folgendes habe ich unter anderem ausprobiert:

1.)    bt = new Bluetooth(this, Bluetooth.UUID_SERIALPORT);

2.)    bt = new Bluetooth(this, 0x1101 );

3.)-xx.)   bt = new Bluetooth(this, 0xYYYY );

Beides funktioniert, den LogiLink Adapter bekomme ich einfwandfrei zur 
Auswahl, sogar zweimal wenn beide Ports frei sind. Das einzige mal in 
der Auswahl erschien das SE bei folgender UUID:
BNEP  0x000F, beim Versuch zu verbinden andererseits warf es eine 
Fehlermeldung auf. Vielleicht sendet das BTM Modul nicht 100proz den 
richtigen Identifizierungscode?
Im Moment weiss ich jedenfallsnicht weiter,... leider (

 Ich versuche jetzt mal in der SE devWorld was rauszukriegen...

von D. F. (strohhalm)


Lesenswert?

@ Florian

konnte den Code gerade 1:1 auf einem Nokia 5300 ausprobieren, hat  ohne 
Probleme sofort geklappt.

von Florian H. (trapperjohn)


Lesenswert?

D. Frank wrote:
>
> Folgendes habe ich unter anderem ausprobiert:
>
> 1.)    bt = new Bluetooth(this, Bluetooth.UUID_SERIALPORT);
>
> 2.)    bt = new Bluetooth(this, 0x1101 );
>
> 3.)-xx.)   bt = new Bluetooth(this, 0xYYYY );

Was für ein WTK bzw. was für eine Bluetooth-API etc. verwendest du denn? 
Ich benutze die "Standard" JSR-82 API, da gibts so ein Bluetooth-Objekt 
überhaupt nicht?

Für den Verbindungsaufbau benötigst du da einen "Connection-String", der 
die Bluetooth-Adresse (nicht die UUID) und den Channel benötigt. Wenn 
eins davon nicht stimmt, kriegst du keine Verbindung.

Guck am besten mal in die JSR82-Doku:
http://www.jcp.org/en/jsr/detail?id=82

Ein Connection-String könnte so ähnlich aussehen:
"btspp://0123456789AF:1;master=false;encrypt=false;authenticate=false"

0123456789AF wäre dann die Bluetooth-Adresse deines Moduls und der Kanal 
ist 1.

von Florian H. (trapperjohn)


Lesenswert?

Okay, ich hätte deinen Post genauer lesen sollen ... dass du Java gar 
nicht direkt benutzt, hab ich jetzt erst verstanden. ;-)

Wenn dieses Bluetooth-"Objekt" nur lange UUIDs nimmt, bist du mit meinem 
Tipp natürlich aufgeschmissen. Hast du mit Mobile Processing denn schon 
eine Gerätesuche durchgeführt und dir die Ergebnisse mal ausgeben 
lassen?

Ich persönlich würde die Schuld erst mal auf Mobile Processing schieben, 
wenn das SE keine Verbindung aufbauen will.

von D. F. (strohhalm)


Lesenswert?

Ich könnte auch von Mobile Processing aus direkt auf Java zugreifen. 
Allerdings bin ich da nicht so firm. Ich müsste die entsprechenden 
Libraries/Module/Klassen oder was auch immer importieren und dann 
einfach(?) Java-like verwenden. Habe mich in letzter Zeit eher mit C 
beschäftigt, wg. Arduino. Die Dokumentation von MobProc ist leider noch 
nicht so gut wie die von Processing selbst, wobei die Syntax für die 
grafische Ausgabe eigentlich genau diesselbe ist.
Es ärgert mich, daß ich mal wieder in so einen Sonderfall getappt bin, 
für den es kaum Doku gibt.

ABER wie gesagt: auf dem nokia hat es sofort funktioniert.

Das Gerät wird vom SE gefunden, der Service aber nicht als spp erkannt. 
Habe es mir auflisten lassen. Dieses roombactl.pde kann man übrigens 
direkt verwenden, geht ganz einfach zu compilieren mit der GUI. Die GUI 
ist sehr leicht zu installieren.
Bei einer Verbindung schickt es halt einfach ein paar Bytes ans Target, 
die einfach nichts bewirken, da keine Auswertung erfolgt. Habe das so 
wie es ist, d.h. das midlet, z.B. auf das Nokia geschickt und 
selbstverständlich vorher auch auf das SE. Das SE erkennt alle anderen 
Geräte mit spp, auch hier in der Arbeit wo ich gerade bin, nur das f.. 
BTM nicht. Mit dem BTM-112 übrigens exakt das gleiche Problem. Ach und 
auf dem Mac heisst der Dienstname "Dev B". Da bin ich auch noch nicht 
dahinter gekommen woher das kommt.

von Florian H. (trapperjohn)


Lesenswert?

Du könntest mal versuchen, dich manuell zu verbinden - ganz ohne 
Discovery etc.

Einfach ein Streamconnection-Objekt holen, so ähnlich:
1
StreamConnection con = null;
2
OutputStream out = null;
3
InputStream in = null;
4
5
String url = 
6
    "btspp://0123456789AF:1;master=false;encrypt=false;authenticate=false"
7
try {
8
    con =
9
        (StreamConnection)Connector.open(url,Connector.READ_WRITE);
10
    out = 
11
        connection.openOutputStream();
12
    in = 
13
        connection.openInputStream();
14
} catch (Exception e) {
15
   //Hier bspw. e.getMessage() ausgeben
16
   return;
17
}

Wenn das klappt (also keine Exception kommt), kannst du fröhlich mit 
in/out Daten senden. Anstatt 0123.. musst du natürlich die 
Bluetooth-Adresse des BTM-Moduls angeben (wird unter Linux bspw. per 
'hcitool scan' angezeigt) und anstatt des Kanals 1 evtl. noch andere 
Kanäle probieren.

Sollte das funktionieren, kannst du im nächsten Schritt ja die 
Gerätesuche von Mobile Processing hinzufügen und dir aus dem gefundenen 
Gerätenamen die Verbindungs-URL zusammenstricken.

Gruß,
Florian

P.S.: Ich hoffe der Code da oben ist einigermaßen fehlerfrei ... 
natürlich ohne Gewähr ;-) Du wirst auf jeden Fall noch folgende Imports 
benötigen:

import java.io.InputStream;
import java.io.OutputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;

von D. F. (strohhalm)


Lesenswert?

@Florian

Super! Funktioniert! Bekomme keine Fehlermeldung und das BT Symbol oben 
geht auf Connection (der blaue Pfeil) und das Modul zeigt auch eine 
Verbindung an, d.h. die LED leuchtet konstant!
Wow, ich habe mich schon wieder Tage am grübeln mit Kopfweh gesehen...
Zwei kleine Sachen in deinem Code im try block:
1
try {
2
    con =
3
        (StreamConnection)Connector.open(url,Connector.READ_WRITE);
4
    out = 
5
        connection.openOutputStream();
6
    in = 
7
        connection.openInputStream();
muss heissen:
1
try {
2
    con =
3
        (StreamConnection)Connector.open(url,Connector.READ_WRITE);
4
    out = 
5
        con.openOutputStream();
6
    in = 
7
        con.openInputStream();
Das obere habe ich in den setup block eingebettet, zum beenden habe ich 
dann noch MobProc mäßig
1
void destroy() {
2
  //// 
3
  try {
4
    con.close();
5
  } 
6
  catch (Exception e) {
7
    text(e.getMessage(), 2, 60, width-4, height-4);
8
    return;
9
  }
10
}
hinzugefügt, damit die Verbindung dann auch wieder geschlossen wird wenn 
man das midlet killt. Die Textausgabe hier macht glaube ich doch keinen 
Sinn, man hat ohnehin keine Chance diesen zu sehen, da das midlet dann 
ja schon gestorben ist?


Das mit der Gerätesuche und Adresse ist sicher kein Problem, mit Namen 
hakt es manchmal. Würde dann lieber Adresse nehmen. Für ein universelles 
kleines Programm wären Namen natürlich schöner.
Für mich würde es reichen die Adressen meiner Bluetoothmodule hart zu 
kodieren, da die ja bekannt sind/sein müssen, da es ja eine limitierte 
Auflage an Hardware ist mit eigenem Protokoll.

Das ganze eröffnet ja auf einmal ganz neue Möglichkeiten! Sowohl für 
Input als auch für Output. Das schöne an Processing/ Mobile Processing 
ist auch, daß man relativ simpel anständige Grafik ausgeben kann. D.h. 
ich kann Sensorwerte als Kurven odere mehrere Werte schick grafisch auf 
dem handy anzeigen. So kann man sich dann auch für manche Objekte eine 
LCD zumindest für den Prototyp sparen und sich die Debugginggeschichte 
aufs Handy holen. Macht auch für viele Betriebsmodelle mit Sicherheit 
Sinn. Bluetooth ist denke ich doch relativ stabil, v.a. die Class 1 
Module haben genug Power um damit in einem brauchbaren Radius auch 
professionell zu hantieren. Und man muss sich um den restlichen 
Datentransport-Hardwareschnickschnack keine Gedanken mehr machen.

Was dann natürlich auch noch schick wäre, wenn man das Arduinomodul, wie 
beim ArduinoBT per Bluetooth programmieren könnte.

Die Verbindungsprozedur ist übrigens äusserst flott! Geht ZackZack!
D.h. man muss eine Verbindung nicht immer stehen lassen, sondern kann 
sie wahrscheinlich beruhigt beenden wenn man weiss, daß sie gleich 
wieder steht wenn sie gebraucht wird.
So. Und jetzt heisst es ein paar Testdaten hin und herschieben, 
visualisieren, lachen oder lächeln!

Vielen Dank soweit! Du hast mir sehr geholfen!

Für Nokias müsste das ja genauso funktionieren, d.h. das wäre alles auch 
sehr universell einsetzbar.
Noch eine Frage: Weisst Du zufällig auch wie man dasselbe mit normalem 
Java macht? Wenn das ähnlich einfach ginge, wäre der code für mobile 
processing ganz simpel für das normale Processing zu adaptieren, d.h. 
man könnte ein ähnlich gestricktes Programm ganz schnell auf den PC/Mac 
adaptieren oder diesen mit integrieren.

von Florian H. (trapperjohn)


Lesenswert?

Schön, dass es geklappt hat.

Für JSR82 auf dem Desktop gibts mehrere Erweiterungen (frei und 
kostenpflichtig).

Die bekannteste sollte wohl BlueCove sein:
http://code.google.com/p/bluecove/

In kostenpflichtig gibts bspw. die Implementation der Firma avetana:
http://www.avetana-gmbh.de/avetana-gmbh/produkte/jsr82.xml

Praktisch habe ich allerdings noch mit keiner gearbeitet und immer C++ 
mit der nativen API genutzt  .. ;)

von D. F. (strohhalm)


Angehängte Dateien:

Lesenswert?

@ Florian: Danke, das werde ich mir bei Gelegenheit mal ansehen.


@ all

Ein Update, ich hoffe daß das jemanden interessiert. In Zukunft werde 
ich nur weiter hier posten falls Interesse besteht. Den "Mobile 
Processing" Code kann ich auch gerne soweit zur Ansicht stellen, wenn 
keiner nörgelt, weil er einfach ein bisserl quick&dirty ist und ich 
beileibe kein Javagenie bin. Der Arduino Code ist nicht spektakulär.

Im Moment ist das Setup folgendermassen:

- Arduino & BTM222 senden bei Verbindung laufend eine Schleife mit 
Werten von 0 bis 255

- Handy empfängt den Stream(!) und versucht eine zeigerähnliche 
Darstellung zu bieten + einige Debugmeldungen.


Soweit so gut funktioniert im Prinzip einwandfrei. Aber...
Um eine saubere Anzeige zu bekommen muss man ein bisschen tricksen. Das 
Problem ist der Stream. Es werden einfach wesentlich mehr Daten 
übertragen als die Framerate verarbeiten kann. Ausserdem sendet das 
Modul auch pulsweise einen Bulk Daten, da hat man auf einen Schlag 
wieder weit über 2000 Bytes im Buffer. Das heisst man muss ein gutes 
Mittel finden zwischen Frames droppen und flüssiger Anzeige. Im Moment 
passt es bei mir ganz gut wenn ich zw. 1000 und 1500 Bytes im Buffer 
habe. Bei weniger stockt die Anzeige zu oft. (Habe mir an der Seite v. 
Display eine Balkenanzeige für die Buffergrösse gemacht und blende unten 
die aktuelle Größe ein) Über die Up und Down Taste kann ich den Skipwert 
erhöhen der sich im Moment nach folgender Formel berechnet:
1
int inlen = in.available(); // check buffer size
2
      int skipper=0;
3
      // The Buffer has sometimes to be shortened
4
      // to get a "smooth" reading. The BT sends 
5
      // bulks of data. Otherwise we may get 
6
      // an overflow sometimes?
7
      if (inlen > 2000) {
8
         // skipbytes is an adjustment you can change with UP or DOWN key
9
        skipper += inlen/100 + skipbytes;
10
      }
11
      in.skip(skipper);

Das ist generell wichtig wenn ich so etwas wie einen Liveauswertung 
vornehmen will. Man sollte im Kopf haben, daß da noch ein ganzer Schlag 
an Daten auf Dich warten kann.
Wenn ich nicht diese absolut gleichmässige Datenübertragung zum Test 
gemacht hätte, wäre mir das nie aufgefallen oder ich hätte mir 
irgendwann gedacht was das Ding für Nonsens überträgt.

Schön ist das natürlich wenn ich das dann einfach abspeicher. Dann habe 
ich einfach alle Werte.

Eine andere Möglichkeit und ev. eleganter wäre einfach nur auf Request 
zu senden.

Anbei noch eine Bildmontage, auf die Schnelle mit der Hand 
abfotografiert und mit Bemerkungen versehen.

Also bei Interesse bitte posten, ansonsten werden ich für die Geschichte 
demnächst nur im Arduinoforum oder -Playground einen Post einrichten.

von Florian H. (trapperjohn)


Lesenswert?

Vielleicht solltest du doch direkt auf "normales" Java umsteigen ... ;-)

Am einfachsten gehts vermutlich mit einem GameCanvas.

Ein Thread kümmert sich um die Bluetooth-Verbindung und empfängt ständig 
die Daten, sichert sie in eine thread-sichere Variable und ruft dann 
repaint() auf.

Die paint() Methode wird dann von der JVM aufgerufen, wenn mal wieder 
Zeit für ein Update der Anzeige ist. In paint() holst du dir den Wert 
aus der thread-sicheren Variable und malst darauf basierend deinen 
Zeiger.

Dadurch musst du nicht manuell Daten wegwerfen - paint() wird nur dann 
und wann aufgerufen (aber oft genug...) und zeichnet immer den 
aktuellsten Wert.

von D. F. (strohhalm)


Lesenswert?

Für professionelle Entwicklung ist ein solider Java Background sicher 
nicht ohne. Es ist auch die Frage wo man hin will. Im Moment ist für 
mich wichtig mal abzuchecken was prinzipiell möglich ist. Falls man auf 
einmal eine Anfrage hat die so etwas fordert, müsste man einfach auf 
einen Fachmann zurückgreifen der sich um so etwas kümmert. Man kann 
nicht alles können. Na ja, wie dem auch sei :)
Wo man hier aber auch noch anpacken müsste: es werden einfach zuviele 
Daten übertragen. Wenn man das reduziert, ev. nur auf Request macht. 
Aber das mit dem Thread hat schon was für sich… . Vor allem stockt die 
Ausführung immer bis die Daten wieder da sind. sprich wenn sich 
in.read() wieder etwas geholt hat.


Habe die andere Richtung auch mal getestet, funktioniert auch 
einwandfrei. Ich sende mit UP oder DOWN Taste einfach einen Wert, der 
sich durch drücken erhöht oder eben erniedrigt hat. Das Modul empfängt 
und schickt den Wert an eine PWM Ausgabe die einfach eine LED ansteuert 
- heller od. dunkler. Schwieriger wirds jetzt wieder wenn man anstatt 
einem BYTE ein INT schickt. … Da wollte ich mich als nächstes drüber 
machen.

Das Nokia reagiert übrigens völlig anders. Aber mein Kollege ist 
immerhin total begeistert was man so alles machen kann ;-)  und stellt 
es mir immer gerne für einen Test zur Verfügung.

von Florian (Gast)


Lesenswert?

Ich grabe den Thread hier mal aus.

Ich habe ein BTM-222. Via RS232 und BT kann ich auch nach Power On Daten 
austauschen. Also was ich auf der einen Seite tippe, kommt an der 
anderen raus. Ich kann auch auf der RS232 Seite "+++" eingeben und lande 
im AT-Modus. Aber: Bis auf bei "ati..." bekomme ich immer "ERROR".
Brett vorm Kopf?

von Fasti (Gast)


Lesenswert?

Hallo!

Ich vermute du bist im Slavemodus....
Schalte mal auf Master ATR0, erst dann kann man das Ding konfigurieren.

Grüße

Fasti

von Florian (Gast)


Lesenswert?

ERROR

:-(

Ich bekomme übrigens immer das erste von mir geschickte Zeichen 
ebenfalls zurück geschickt:
-> atr0

<- a<\r><\n>ERROR<\r><\n>

von Florian (Gast)


Lesenswert?

Falls es weiter hilft, hier noch die Einstellungen:

ATC=1, HARDWARE FLOW CONTROL
ATD=0000-00-000000, NEVER SET BLUETOOTH ADDRESS
ATE=1, ECHO CHARACTERS
ATH=1, DISCOVERABLE
ATK=0, ONE STOP BIT
ATL=2, BAUD RATE is 19200
ATM=0, NONE PARITY_BIT
ATN=Serial Adaptor, LOCAL NAME
ATO=0, ENABLE AUTO CONNECTING
ATP=1234, PIN CODE
ATQ=0, SEND RESULT CODE
ATR=1, SLAVE ROLE
ATS=1, ENABLE AUTO-POWERDOWN OF RS232 DRIVER
ATX=1, ALWAYS CHECK '+++'

F/W VERSION: v4.19

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Florian, mach Dir bitte die Mühe den ganzen Thread hier zu lesen, Du 
solltest alle Infos finden, um das Modul in Betrieb zu nehmen.

von Florian (Gast)


Lesenswert?

Travel Rec. mach Dir bitte die Mühe, meine Frage zu lesen. Du solltest 
alle Infos finden, wenn Du helfen willst, um das Modul bei mir 
fehlerfrei in Betrieb zu nehmen.

von Fasti (Gast)


Lesenswert?

Servus!

Soda, du musst nach jedem Zeichen das du schickst auf das Echo warten 
oder wenn das deaktiviert ist ich glaubmindestens ein paar ms, ansonsten 
verwirft das Modul die restlichen Zeichen, weil es beim Empfang der 
Befehle arsch langsam ist. Mein Terminalprogramm in Windows hat immer 
den ganzen String auf einmal rausgeschoben, dass war dem Modul zu 
schnell. Einfach mal jedes Zeichen einzeln mit Pause und schon ist dein 
problem gelöst. Steht aber alles tatsächlich schon in den Beiträgen im 
Forum.....

Grüße

Christian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Danke Christian!

von Hans (Gast)


Lesenswert?

Ich wollte das Teil (BTM-222 o.ä) als Funktaster einsetzen, welches zu 
einem PC USB-Bluetoothdongel verbindet.
Drei Alternativen der Verbindungsaufnahme fallen mir ein bzw. stehen mir 
zur Verfügung:
1. Der Sender ist USBseitig ein Gamecontroller und er bedient eine 
Feuertaste solange am Sender eine Taste gedrückt ist.
2. Der Sender ist USBseitig eine serielle Schnittstelle und ich empfange 
irgendwelche Zeichen solange der Taster am Sender gedrückt ist.
3. Der Sender ist USBseitig eine serielle Schnittstelle und es wird eine 
der Steuerleitungen geschaltet solange der Taster am Sender gedrückt 
ist.
4. Der Sender ist USBseitig eine Tastaturcontroller und ich empfange 
jeweils definierte TastaturCodes beim niederdrücken und loslassen des 
Tasters am Sender.

Ist das so möglich ?
Weiss dafür jemand eine einfache Lösung.

von Eddy B. (eddy-b) Benutzerseite


Lesenswert?

Also, kauf ich mir ein BTM-222, und zB. der SU-BT-150 von TME, oder find
mich ein PC mit integriertes Bluetooth.

Und dan was ??
Wie kan ich daten übersenden von meine C++ program ins PC zur ATMega ?
Ich weiss wie ich ein COM-port ansprechen kann, aber nicht wie das geht
mit ein USB (mein PC hat leider kein COM port)..

Brauch ich ein USB-Treiber oder so etwas ?



Was ich eigentlich benötige:

                                                         PC
+----+  RS232  +-------+        +-----------+  USB  +-----------+
| uC |---------| BT222 |   ->   | BT dongle |-------| Treiber   |
+----+         +-------+        +-----------+       +-----------+
                                                    |     ^     |
                                                    |     |     |
                                                    |   RS232   |
Das C++ program communiciert durch RS232            |  in C++   |
protocol mit ein USB/BT treiber.                    |  program  |
(ich hab schon einmal ein RS232 über TCP/IP         +-----------+
benutzt, und das hat gut gearbeitet).

Das vorteil mit RS232 ist die Einfachheit.

von JojoS (Gast)


Lesenswert?

Auf der PC Seite muss man ja eine Kopplung mit dem BT Modul machen, dann 
bekommt man einen virtuellen COM-Port auf der PC Seite. Und denn kann 
man wie eine physikalisch vorhandene RS232 ansprechen.

von Eddy B. (eddy-b) Benutzerseite


Lesenswert?

Alles gut, aber brauch ich ein universales Treiber, oder kann ich jeder 
USB-nach-COM Treiber installieren ?

Ich hab gerade einer installiert von tacticalsoftware.com, denken Sie 
das BT wird erkannt, oder sollte ich das gerade versuchen.

von Michael K. (mad_axe)


Lesenswert?

Hi,

hat schonmal jemand von euch 2 BTM verbunden. Ich komme soweit das ich 
im Terminal CONNECT bekomme (nach suchen usw), aber ein Datenaustausch 
dann geht nicht. Passwort (1234) sollte ja bei beiden gleich sein.

Gruß
Micha

von Walter (Gast)


Lesenswert?

@Michael:

Wenn sich zwei Module verbunden haben ("Connect <Kennung des zweiten 
BTM>"), hast du eine Verbindung zwischen den seriellen Schnittstellen 
der beiden BTMs hergstellt. Wenn Du dann an die serielle Schnittstelle 
des einen BTM z.B. einen Mikrokontroller anschliesst und an den anderen 
BTM deinen PC, können PC und Mikrocontroller miteinander reden. 
Beispielsweise kannst Du jetzt die von deinem Mikrocontroller in deinem 
Gartenteich gemessene Wassertemperatur drahtlos zum deinem Computer im 
3.OG übertragen, sprich die beiden BTMs ersparen dir das Auslegen von 
z.B. 50m Kabel zum deinem Mikrocontroller neben deinem Gartenteich. Die 
Bluetooth-Module sind ab der "Connect"-Meldung für die beiden 
angeschlossenen Engeräte unsichtbar, aber genau das ist ja auch das 
Ziel.

Walter

von Michael K. (mad_axe)


Lesenswert?

Ja es lang an was anderem. Habe nun bein BTM112 und BTM222 erfolgreich 
verbunden. Danke trotzdem.

Gruß
Micha

von Sven H. (Gast)


Lesenswert?

Soweit funktioniert das Modul bei mir auch sehr gut. (Wenn man bei den 
AT Befehlen laaannngsaaaammmm spricht)

Meine Frage:
Wenn ich im Online-Modus in den Command-Modus wechseln möchte, so 
verwende ich ja "+++" und eine anschließende Guardtime von ca. 1 Sek.
Ist es normal, dass das +++ dann mitgesendet wird?
Ist doch voll doof... Den Client soll es doch nicht interessieren, dass 
ich nun in den Command-Modus wechsel.

Von anderen Systemen (z.b. Zigbee modulen) kenne ich es so, dass +++ 
nicht mit übertragen wird. (Würde man innerhalb der Guard-Time ein 
anderes Zeichen senden, so werden die +++ nachgeschickt)

Kann man das bei den BTMs nicht auch irgendwie verhindern?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das +++ wird deshalb mitgesendet, weil das Modul ja erst nach dem 3. + 
weiß, daß es in den Command-Mode wechseln soll. Vorher ist es ja noch 
ganz auf Datenübertragung aus. Das kann nicht abgestellt werden. Der 
Empfänger muß diese Sequenz ausmaskieren.

von Sven H. (Gast)


Lesenswert?

Zitat: "Der Empfänger muß diese Sequenz ausmaskieren"

Genau das hätte der Sender ja auch machen können. Andere können das ja 
auch.

Wird ein + empfangen, wird dies erst gepuffert. Kommt innerhalb von x 
ms. kein anderes Zeichen bzw. ein Zeichen ungleich +, so wird dies 
gesendet. Kommt innerhalb des Timeouts ein zweites + wird dies auch 
gepuffer.....

Diese Technik funktioniert bei anderen Systemen ja auch.

Das ausmaskieren beim Empfänger geht nicht, da der Anwender sich direkt 
über ein Terminalprogramm mit einer Applikation verbinden soll und dort 
über eine Menüführung navigiert.

Dann muss ich halt die "+" geschickt verstecken...

+++ Bitte warten, Änderungen werden übernommen +++

;-)

von looxer (Gast)


Lesenswert?

Hallo,


ich habe eine fertige BTM222 platine auf ebay ersteigert und versuche 
nun schon seit einiger zeit sie anzusteueren. bis jetzt allerdings mit 
nur mäßigem erfolg.

ich habe das modul per RS232 auf seriel adapter an mein notebook 
angeschlossen und versucht per hyper terminal und tera term AT befehle 
zu senden. das klappt gar nicht. egal welches kommando ich sende, es 
kommt nichts zurück. nur nach dem power up kommt im besten fall ein 
simly am terminal fenster an.

wenn ich das modul dann vom selben rechner aus noch per bluetooth 
verbinde kann ich aus einem zweiten hyperterminal zeichen an das modul 
senden. diese kommen aber als komplett ander zeichen am ersten terminal 
an. in richtung RS232 -> BTM222 -> BT com port geht geht gar nichts.

ist mein BTM modul defekt oder mache ich etwas falsch?


lg,
looxer

von Sven H. (Gast)


Lesenswert?

Zitat: "RS232 auf seriel adapter "

Was soll das denn sein? RS232 ist ein serielles Protokoll!

Wahrscheinlich hast Du kein passenden Pegelwandler verwendet. Die Rx-Tx 
Leitungen des Moduls führen 0..3,3V Pegel. Welche Betriebsspannung 
stellst Du dem Modul zur Verfügung?

Ein paar mehr Informationen sind schon von nöten!

Mit Pech hast Du dein Modul jetzt schon gegrillt.

von Sven H. (Gast)


Lesenswert?

Nochwas: Hast Du Dir vorher das Datenblatt genau durchgelesen?

von looxer (Gast)


Lesenswert?

Hallo Sven H.,


sorry das meine angaben zu ungenau waren!

mit usb auf seriel adapter meine ich einfach einen billigadapter den man 
per USB an einen rechner ohne serieller schnittstelle hängt und damit 
eben diese bekommt.

sowas wie das:
http://www.partsdata.de/descr_artikel/U/USB-0553/USB_SERIELL_30cm_BIG.jpg

versorgen tue ich die PCB mit dem BT modul mit 5V, wobei ein LM1117 auf 
der PCB drauf ist. klarerweise ist auch das modul nicht direkt mit der 
RS232 verbunden, sondern in dem fall ein 74HCT14 dazwischen (auch auf 
der PCB).

das datenblatt hab ich mir angesehen. ich verwende auch die default 
einstellungen für die RS232 kommunikation trotzdem klapts nicht so ganz.

von Sven L. (furtion)


Lesenswert?

Hallo,

ich bin hier langsam am verzweifel und deshalb frage ich hier noch mal 
nach ob das BTM bei euch auch so langsam ist. Das BTM wird mit 3,3V 
betrieben und hat auch sonst alles was es braucht. RxD und TxD habe ich 
per Drahtbrücke verbunden.

Wenn ich jetzt eine Verbindung zu dem BTM aufbaue bekomme ich den 
gesendeten Text sofort wieder zurückgesendet.

So nun habe ich ein Programm geschrieben das ein Byte sendet (z.B. ein 
"A") und so lange wartet, bis das Byte angekommen ist. Danach wird das 
nächste Byte gesendet.

Aber irgendwie dauert dieses Hinsenden und Empfangen an irgendeiner 
Stelle total lange! Auf die Baud von 19200bps kommt man damit nicht, 
eher auf so 200bps wenn nicht weniger...

Ist das bei euch auch so langsam? Habt ihr das schon mal so in dieser
Ausführung aufgebaut? Welche Stacks benutzt ihr und welche Programme um 
eure Programme zu schreiben?

Grüße Furtion

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

> ich bin hier langsam am verzweifel und deshalb frage ich hier noch mal
> nach ob das BTM bei euch auch so langsam ist. Das BTM wird mit 3,3V
> betrieben und hat auch sonst alles was es braucht. RxD und TxD habe ich
> per Drahtbrücke verbunden.
>
> Wenn ich jetzt eine Verbindung zu dem BTM aufbaue bekomme ich den
> gesendeten Text sofort wieder zurückgesendet.

Also ich muss mir das jetzt so vorstellen, dass irgendwo ein BTM-Modul 
liegt, dessen RX- und TX-Pins kurzgeschlossen sind und du mit einem 
zweiten Modul am PC oder einem internen Modul Daten verschickst?

> So nun habe ich ein Programm geschrieben das ein Byte sendet (z.B. ein
> "A") und so lange wartet, bis das Byte angekommen ist. Danach wird das
> nächste Byte gesendet.

Ein Programm auf einem AVR, der am BTM angeschlossen ist?

> Aber irgendwie dauert dieses Hinsenden und Empfangen an irgendeiner
> Stelle total lange! Auf die Baud von 19200bps kommt man damit nicht,
> eher auf so 200bps wenn nicht weniger...

Wenn obige zwei Annahmen von mir richtig sind, liegt es am AVR-Code. Den 
müsstest du dann mal posten.

von Harald A. (embedded)


Lesenswert?

> So nun habe ich ein Programm geschrieben das ein Byte sendet (z.B. ein
> "A") und so lange wartet, bis das Byte angekommen ist. Danach wird das
> nächste Byte gesendet.
>
> Aber irgendwie dauert dieses Hinsenden und Empfangen an irgendeiner
> Stelle total lange! Auf die Baud von 19200bps kommt man damit nicht,
> eher auf so 200bps wenn nicht weniger...


Nach meinem Verständns ist das doch eigentlich logisch:
Alle mir bekannten 'intelligenten' Funkmodule haben einen Frame, in den 
mehr als ein Byte an Nutzdaten passt. Sobald ein Byte an das Modul 
gesendet wird, läuft ein Modul-internes Timeout ab ob da evtl. noch 
Daten kommen. Nach einigen zig Millisekunden wird der Frame dann 
abgesendet.

Das gleiche Spiel passiert AUCH auf der Gegenseite. Und so addieren sich 
die Zeiten und man hat nur noch die besagte Datenrate.

Lösung: Man muß Paket-orientiert senden, dann klappt es auch mit der 
erwarteten Datenrate.

von Sven L. (furtion)


Lesenswert?

Hallo,

Mein Aufbau ist jetzt ohne AVR ich habe das ganze über einen USB 
Bluetooth Stick am Laufen und programmiere die Software in vb6.

Was ich jetzt auch schon festgestellt habe ist, dass unterschiedliche 
Stacks unterschiedlich schnell sind, so brauche ich bei meienm aktuellen 
ca. 40sec für 1000 Bytes (ich habe noch was an der Software veränderert 
und es geht jetzt schneller) und bei einem davor habe ich nur 25sec 
gebraucht. Da sind doch schon große Unterschiede...

Deshalb wäre es vill. mal ganz interessant ne Liste zu machen welche 
Bluetoothsoftware am besten dafür geeignet ist.

@ Harald Das würde natürlich auch gehen, es ist nur die Frage ob man das 
nicht irgendwie umgehen kann (vill. über die Flusskontrolle)?

Grüße Furtion

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Okay, dann muss man aber sagen, dass dein Problem nicht im Bereich "µC 
und Elektronik" liegt, sondern im Bereich der PC-Programmierung. Ich 
würde dir empfehlen, in dem Forum einen neuen Thread aufzumachen.

von Sven L. (furtion)


Lesenswert?

Hallo,

es ist nur die Frage wie weit es an der Software des PCs liegt, wenn das
Module von sich aus nur sehr langsam in der Kommunikation ist, sollte
man vill. mal nachschauen ob man es irgendwie schneller hinbekommt.

Hat schon mal jemand die HW Flusskontrolle ausprobiert?

Grüße Furtion

von Harald A. (embedded)


Lesenswert?

>wenn das Module von sich aus nur sehr langsam in der Kommunikation ist

Ist es ja nicht, wie gesagt, das liegt an den Timeouts für das Framing.

Die Flusskontrolle regelt ja nur den Weg der Daten in den Buffer, das 
hat überhaupt nichts mit dem Framing zu tun, den so ein Modul auf der 
Funkstrecke macht.
Das mit dem Timeout gibt es ja auch zum Beispiel bei Serial-to-UART 
Convertern, da erreicht man bei der Übertragung von einzelnen Bytes auch 
nur eine lausige Übertragungszeit.

>sollte man vill. mal nachschauen ob man es irgendwie schneller hinbekommt

Braucht niemand nachschauen, einfach den Grundaufbau einer solchen 
Übertragung berücksichtigen und schon funktioniert es wie gewünscht.

von Frank (Gast)


Lesenswert?

Gibt es Angaben zur Strombelastbarkeit der Pins?

von Michael (Gast)


Lesenswert?

Auf der suche nach einem leistungsfähigen BT-Modul bin ich auch über das 
sehr kostengünstige BTM-222 gestolpert. Laut dem (sehr dürftigen) 
Datenblatt bietet es "Bluetooth 2.0 + EDR" an (=> typ. 2.1Mbps), die 
aktuelle Firmware unterstützt jedoch nur den UART mit max 460kbps, also 
einem Bruchteil der tatsächlichen Kapazität. Und das obwohl das 
Datenblatt hier behauptet: "Full Bluetooth data rate over UART". Eine 
höhere Übertragungsleistung ist also nicht zu erwarten?

Leider gibt es auch keine Firmware welche andere 
Kommunikationsschnittstellen erlaubt außer UART. SPI wird momentan 
ausschließlich für das Firmware-Update verwendet (laut Hersteller). 
Ideal wäre eine parallele Schnittstelle über die GPIO pins.

von Lukas S. (asdf)


Lesenswert?

Guten Tag.

Ich arbeite gerade an einem Projekt wo es darum geht Puls-Daten von 
einem Pulsgurt über Bluetooth an ein Handy zu senden und diese dann über 
UMTS an eine zentrale Datenbank senden.

Das größte Problem für uns stellt hier die Kommunikation zwischen Handy 
und Bluetooth-Modul dar.

Wir haben bereits einen Pulsgurt entwickelt dieser liefert Pulswerte 
welcher unser uC (ein PIC) A/D- Wandelt wir haben noch kein 
Bluetooth-Modul gekauft haben uns aber für das BTM222 entschieden (klein 
und günstig).

Ich habe nun folgende Frage ist es möglich über die 
Serielle-Schnittstelle des PICs die A/D-gewandelten Daten über Bluetooth 
auf ein Handy zu übertragen.Sprich kann ich über den PIC entsprechende 
AT Befehle aussenden und mein BTM222 reagiert dann dementsprechend.

von Lukas S. (asdf)


Lesenswert?

Desweiteren wäre es sehr wichtig für mich zu Wissen ob das Modul auch 
ohne Handshake funktionieren würde.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Lukas Spielberger wrote:
> Desweiteren wäre es sehr wichtig für mich zu Wissen ob das Modul auch
> ohne Handshake funktionieren würde.

Ja, das geht problemlos. Auch zur Kompatibilität mit einem PIC gibt es 
nichts negatives einzuwenden, jeder Mikrocontroller sollte zur 
Kommunikation in der Lage sein, wobei ein Hardware-UART die Sache 
natürlich erleichtert.

Am einfachsten ist es wohl, SPP zu nutzen, das Bluetooth-Modul verhält 
sich dann wie ein normales serielles Kabel zwischen PC und µC.

von Unbekannter (Gast)


Lesenswert?

Wie schnell ist die Datenbübertragung über solche Blue-Tooth-Module denn 
in der Realität?

von Thommy (Gast)


Lesenswert?

Hallo,
Ich habe seit Freitag auch ein BTM222. Habe das gestern aufgebaut und 
über nen MAX an die RS232 vom rechner gehangen. Soweit war das kein 
Problem. Dann konnte ich schön Befehle senden und die Config vornehmen. 
Leider sendete ich ausversehen das Kommando ATZ1 das es laut Datenblatt 
eigentlich garnicht gibt. Und plötzlich funzt das ding nicht mehr. Hier 
im Beitrag gibt es irgendwo einen Hinweis das man die Baudrate nur auf 
9600 stellen muss, damit es wieder läuft. Dies brachte aber keine 
änderung. Weiß zufällig jemand was der Befehl genau macht? Kann man das 
Modul Hardwaremäßig wieder in auslieferzustand versetzen? Was für eine 
Möglichlichkeit habe ich noch das modul wieder fit zu machen?

Danke für die Hilfe
Gruß Thommy

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Ich habe seit Freitag auch ein BTM222. Habe das gestern aufgebaut und
>über nen MAX an die RS232 vom rechner gehangen.

Doch sicher an 3.3V?

von Thommy (Gast)


Lesenswert?

Jop 3,3V wurden verwendet. Wie gesagt das Funktionierte auch bis zur 
Eingabe des Befehls....

von Markus C. (mach3)


Lesenswert?

Hallo zusammen,

vielleicht kann mir hier jemand einen Tip geben:

ich habe ein BTM als Master konfiguriert und eines als Slave. Wenn ich 
nun dem Master ATO0 schicke (enabel autoconnection) und ATD0, dann 
verbindet er sich ohne Probleme mit dem Slave. Dann schalte ich den 
Slave ab und schalte einen anderen Slave ein. Ich möchte, daß sich der 
Master nun mit dem zweiten Slave verbindet. Das tut er aber nicht! 
Darüberhinaus quittiert mir der Master sämtliche AT-Befehle mit ERROR. 
Erst wenn ich den ersten Slave wieder einschalte, dann kann ich dem 
Master wieder erfolgreich AT-Befehle schicken.
Hat jemand eine Idee, woran das liegt?

Gruß, mach3

von Markus C. (mach3)


Lesenswert?

Hallo,
hat jemand für mich die E-Mail-Adresse vom Hersteller-Support?

Danke,
Gruß,
mach3

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Frag nach Mr. Tim Lin: tim@rayson.com

Dein o.g. Problem läßt sich allerdings mit obigen Beiträgen lösen.

von Michael S. (michi88)


Lesenswert?

Jetzt muss ich mal ganz dumm fragen.

Erlaubt es dieses Modul auch Handydaten zu empfangen?
Das was ich bisher gelesen hab, hat immer was mit senden zu tun gehabt.

Ich hab nämlich vor eine Schaltung zu entwickeln, die mein Autoradio 
verstummen lässt, wenn ein Anruf hereinkommt. Das ganze eben über 
Bluetooth :)

von michi88_1 (Gast)


Lesenswert?

keiner ne antwort?

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Michael S. wrote:
> Jetzt muss ich mal ganz dumm fragen.
>
> Erlaubt es dieses Modul auch Handydaten zu empfangen?
> Das was ich bisher gelesen hab, hat immer was mit senden zu tun gehabt.

Was für Handy-Daten meinst du in dem Fall?

von michi88_1 (Gast)


Lesenswert?

Der erste Gedanke war jetzt erst mal, dass ein Anruf vom Mikrocontroller 
registriert werden soll und dadurch (über ein Relais) der 
Phone-In-Anschluss vom Radio geschaltet wird.

von Andreas K. (ergoproxy)


Lesenswert?

Wenn du über das Handy eine RS232 Verbindung hast, kannst du ihm soviel 
ich weiß AT-Befehle senden, also auch über BT. Ob dein Handy AT-Befehle 
kann weiß ich nicht. Handys die Angerufen werden sollen angeblich ein 
"Ring" über den comport senden. Mangels Empfang meines Handys hier kann 
ich dir das aber ned ausprobieren.

Gruß ErgoProxy

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn Dein Handy den ankommenden Anruf als Signal über BlueTooth 
weiterreichen kann, dann ja. Sonst nein.

von michi88_1 (Gast)


Lesenswert?

ok alles klar.

dann mach ich mich da mal schlau :))

von veit (Gast)


Lesenswert?

hallo leute, ich bin mittlerweile ja ganz glücklich mit meinen btm-222 
(die ich mir übrigens bei ulrichradig.de geholt habe)

nachdem ich mir hier alles nochmal durchgelesen habe komm ich zu dem 
schluss: hat wer das standyby-strom-problem gelöst?

bei mir zieht das ding jetzt um die 50mA ohne verbindung ...

von Lars (Gast)


Lesenswert?

Hallo zusammen,
ich hab jetzt ne Weile mitgelesen in diesem Thread. Zum Thema 
Stromverbrauch hätte ich mal ne Frage. Laut Datenblatt unterstützt das 
Modul den Park-Modus. Was ich nicht verstehe ist, wie man den aktivieren 
soll. Wird das vom Master-Device gesteuert ? Wenn man das Modul zusammen 
mit einem uC als Fernbedienung einsetzen will (natürlich 
Batteriebetrieben) ist es ja wichtig möglichst wenig Strom zu 
verbrauchen.

Wenn ich etwas lese von 50mA Stromverbrauch ohne Verbindung, finde ich 
das für ein batteriebetriebenes Gerät entschieden zu viel.

Kann mir das jemand erklären ?

Gruß
Lars

von K. J. (Gast)


Lesenswert?

Hi,

Ich hab im standby der automatisch ist 51mA im betrieb zupelt es ganze 
80mA.

von Veit K. (veitchen)


Lesenswert?

also ich habe jetzt den discoverable modus deaktiviert, der 
stromverbrauch sinkt dabei um die hälfte (50mA nur die hälfte der zeit)

wenn ich den autoconnect ausschalte und in den mastermode gehe geht der 
stromverbrauch komplett zurück auf wenige mA. ob ich das device dann 
noch ansprechen kann weiß ich nich ...

die park/sniff/hold modi hab ich jetzt so explizit auch noch nicht 
gefunden

von Maximilian K. (langerhans)


Lesenswert?

Hallo!
Muss ich das Modul eigentlich nach jedem einschalten von neuem 
konfigurieren, oder bleiben die einmal gemachten Einstelungen 
gespeichert?

MfG

von Veit K. (veitchen)


Lesenswert?

bleibt alles gespeichert

von CogitoErgoSum (Gast)


Lesenswert?

Wie wärs mit der Idee -> Betriebsspannung über Mosfet und den vom AVR 
hochziehn lassen wenn man das Modul braucht. (Ansonnsten hochohmig auf 
GND legen)

Müsste doch eigendlich gehn. Braucht halt leider nen PIN.

von Veit K. (veitchen)


Lesenswert?

ja sowas geht natürlich aber wenn ich z.b. eine bluetooth-steuerung 
(licht, kaffeemaschine etc) baue möchte ich halt das die immer auf 
lauschen steht und wenig strom braucht ...

von Lars (Gast)


Lesenswert?

Danke erstmal für die Antworten. Offensichtlich hab ich wenigstens das 
Datenblatt richtig gelesen und die Power-Down-Modi des Moduls werden 
nicht erwähnt.

Das Abschalten des Moduls ist natürlich eine Möglichkeit, aber dann 
dauert der Verbindungsaufbau bei Bluetooth relativ lange. Das dürfte 
über eine Sekunde sein. Wenn man also einen Tastendruck auf einer FB 
übertragen will, führt das wohl dazu das der Benutzer die Taste nochmal 
drückt weil solange nichts passiert ist.

Ich denke ich werde mir dann doch wohl eher eine "normale" 433MHz 
Funkstrecke aufbauen.

Trotzdem besten Dank für die Infos.

Gruß
Lars

von veit (Gast)


Lesenswert?

also wenn du verbunden bist geht der stromverbrauch doch enorm zurück 
soweit ich weiß ...

von gert (Gast)


Lesenswert?

kann das btm-222 an einem µC mit 3.3v direkt betrieben werden, dh ohne 
irgendwelcher wandler oä ?

+----+  TTL3.3  +-------+
| uC |----------| BT222 |
+----+          +-------+

von Michael K. (mad_axe)


Lesenswert?

gert schrieb:
> kann das btm-222 an einem µC mit 3.3v direkt betrieben werden, dh ohne
> irgendwelcher wandler oä ?
>
> +----+  TTL3.3  +-------+
> | uC |----------| BT222 |
> +----+          +-------+

Ja.

von vogel (Gast)


Lesenswert?

Hallo zusammen. Ich hab mich nun auch mal ein bisschen mit dem Modul 
beschäftigt. Und zwar hab ich mir ein BT Modul aufgebaut nach einer 
Schaltung von dieser Seite 
http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44 
doch leider will da irgendwas nicht richtig funktionieren.
Mittels Bluetooth kann ich mich ohne Probleme zum Modul verbinden. Aber 
jeglicher Datenaustausch über die UART Pins funktioniert nicht. Um das 
Modul zu konfigurieren hab ich auch versucht das fertige Modul über 
einen USB-UART Wandler an den PC anzubinden. aber ich bekomm einfach 
keine Verbindung hin. Hab die Einstellungen der Datenrate etc. so 
vorgenommen wie sie im Datenblatt als Standard angegeben sind, und hab 
sogar andere Übertragungsraten probiert, aber das will einfach nicht. 
Als terminalprogramm verwende ich hterm.
Den Pegelwandler habe ich auch mal alleine getestet, ob er denn ein Echo 
zurück gibt wenn ich was sende. Also einfach RX und TX brücken. Das 
funktioniert einwandfrei.
hat jemand zufällig eine Idee wie ich da weiter gehen soll?

Grüße
vogel

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

vogel schrieb:
> Den Pegelwandler habe ich auch mal alleine getestet, ob er denn ein Echo
> zurück gibt wenn ich was sende. Also einfach RX und TX brücken. Das
> funktioniert einwandfrei.

Du hast die Ausgänge vom Pegelwandler (RXD und TXD) gebrückt oder wie 
genau?

> hat jemand zufällig eine Idee wie ich da weiter gehen soll?

Pinbelegung zum USB-UART-Wandler geprüft? Was setzt du denn dort genau 
ein als Wandler? Eventuell Nullmodem-Kabel benutzt (dort sind RXD/TXD 
gekreuzt)?

von Michael K. (mad_axe)


Lesenswert?

1. Du darfst nicht gekoppelt sein mit einem Gerät. Dann einfach ATI0<br> 
oder sowas senden. Es muss was zurückkommen. Allerdings muss ich wenn 
ich es über mein AVR32 usb seriell wandler mache ein paar ms zwischen 
jedem zeichen pause lassen, sonst reagiert es nicht.

oder

2. Du bist gekoppelt, dann trennst du die Verbindung und es kommt sowas 
:

Disconnet to device ...

Daran kannst du erkennen ob die RS232 sache funzt, egal ob es noch 
problem mit dem Timing gibt, s.o.

Gruß
Micha

von vogel (Gast)


Lesenswert?

Also hab mal bissl weiter gemessen.
Diese Pegelwandler funktionieren irgendwie nicht so wie sie sollen.
Ich hab die ja so gebaut wie hier drin 
http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm-222_schem.png
Allerdings stimmt da irgendwas nicht wenn ich das durchmesse.
z.B. beim linken Pegelwandler der ja die Daten vom BTM abschickt und den 
Pegel auf 5 V anheben soll. Der Punkt über dem ersten Transistor geht 
auf 5 V wenn ich den Eingang auf Ground lege und geht auf 0 V wenn ich 
den Eingang auf 5 V lege. Selbst wenn ich 3,3 V an den Eingang lege 
funktioniert das so. So soll er ja auch funktionieren.
Der Punkt am zweiten Transistor, an dem ich dann die Spannung abgreife 
und weiter gebe hingegen bleibt immer auf 5 V egal was ich vorne an den 
Eingang des Pegelwandlers anlege.
Ich habe auch mal die Transistoren einzeln gemessen, die funktionieren 
noch so wie sie sollen. Irgendwo ist da der Wurm drin, ich weiß nur 
nicht genau wo.

Die Simulation in PSpice ergibt allerdings genau das Verhalten das 
gewünscht ist.

Grüße
vogel

von veit (Gast)


Lesenswert?

nur zur info: ich hab die platinen von ulrichradig.de und da ist auch so 
ein pegelwandler drauf, funktioniert einwandfrei ...

ich konnte den btm allerdings auch ohne transistoren an einen atmel 
hängen, der erkennt die 3,3v bei mir problemlos

von blueled (Gast)


Angehängte Dateien:

Lesenswert?

Welche Reichweiten erzielt ihr mit euren modulen ?
Bei Class 1 hätte ich ein wenig mehr erwartet als von einem Zimmer ins 
andere. Passt vielleicht der kurze Draht als Antenne nicht (ca 3cm).
Habe auch schon verschiedene andere Längen ohne Erfolg getestet.

von veit (Gast)


Lesenswert?

bisher hab ich einmal ca. 25 meter erreicht, habe aber nicht ausgiebig 
getestet, würde bestimmt auch weiter gehen.

habe 31mm draht und am rechner einen class1 stick, bei den usb-sticks 
gibts halt auch ganz gute unterschiede ...
mit nem class2 usb war schon nach 4 meter schluss

in nem quadcopter-forum hab ich was von 80 metern gelesen, allerdings 
mit besseren antennen.

von K. J. (Gast)


Lesenswert?

Hi als meins findet noch das Handy von meinen Nachbarn 2 Stockwerke 
tiefer :P

ca. 11m und zwei Decken zwischen

von blueled (Gast)


Lesenswert?

ja, ich denke auch das es mit einer passenderen Antenne weiter gehen 
sollte.
Habe bisher auch nur in geschlossenen Räumen probiert, bzw. ein Modul 
war drinnen und mit dem anderen bin in den Garten gegangen.

von blueled (Gast)


Lesenswert?

@theborg0815

was für eine Antenne hast Du dran ?

von Don Bigo (Gast)


Lesenswert?

Ich habe ein Problem damit mein Modul als Master mit meinem PC (Laptop) 
zu verbinden.

> 5.) Geht man mit ATR0 in den Master Modus sollte man erstmal ATO1
> ausführen. Danach ein ATF? um die in Reichweite befindlichen Module zu
> finden. Man muß aber einige Zewit warten bis dieser Suchvorgang fertig
> ist. Danach kann man mit ATA1 bis ATA8 eines der Module verbinden. Mit
> +++ kommt man aus der bestehenden Daten-Verbindung wieder in den
> Kommandomodus. Man kann nun mit ATH die aktuelle verbindung trennen.
> Gibt man jetzt mit ATD=xxxxxxxxxxx eine feste Geräte ID vor und wechselt
> mit ATO0 in den automatischen Verbindungsmodus so connected das Modul
> nun immer automatisch mit der Gegenstelle. Das kann man testen indem man
> auf dem PC den Bluetooth Serial Port trennt, das Modul baut sofort
> wieder die Verbindung auf.

Ich konfiguriere wie folgt:

ATZ0
ATE0
ATP0
ATH0
ATH1
ATD0
--------------------
Hier bin ich mit der Slavekonfig fertig. Als Slave kann ich auch mit 
meinem PC Kommunizieren.
Jetzt Versuche ich es als Master.

Also:

ATR0
ATO1
ATF?
Inquiry End. 1 Device(s) Found.
ATA1
.... Time out. Fail to connect!
------------------------------
Selbst wenn ich vorher die BTAdresse in ATD eingebe  mit ATD= 
Bluetoothadresse_Laptop funktioniert es nicht.
Was habe ich vergessen?

von mad_axe (Gast)


Lesenswert?

Weiß ich nicht mehr genau, aber ist es nich ATA0 anstatt ATA1 für das 
erste Device was er findet?

Lässt dein Bluttoothstack am Pc auch Masterverbindungen zu? 
Einstellungen nochmal prüfen.

Gruß
Micha

von Don Bigo (Gast)


Lesenswert?

Was bedeutet es eigentlich wenn die Status-Led nicht 2x pro Sekunde 
blinkt sondern etwa doppelt bis dreimal so schnell?

von Don Bigo (Gast)


Lesenswert?

Danke max,
der serielle BT-Anschluss am Laptop darf keine sichere Verbindung 
verlangen.

von Don Bigo (Gast)


Lesenswert?

Trotzdem bekomme ich nur eine aktiv hervorgerufene Verbindung hin. 
Autoconnect geht nicht.

> Gibt man jetzt mit ATD=xxxxxxxxxxx eine feste Geräte ID vor und wechselt
> mit ATO0 in den automatischen Verbindungsmodus so connected das Modul
> nun immer automatisch mit der Gegenstelle. Das kann man testen indem man
> auf dem PC den Bluetooth Serial Port trennt, das Modul baut sofort
> wieder die Verbindung auf.

Wenn ich die Laptopadresse angebe und auf ATO0 gehe passiert garnichts. 
Die LED blinkt fröhlich weiter. * seufz *

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Don Bigo schrieb:
> Trotzdem bekomme ich nur eine aktiv hervorgerufene Verbindung hin.
> Autoconnect geht nicht.
>
> Wenn ich die Laptopadresse angebe und auf ATO0 gehe passiert garnichts.
> Die LED blinkt fröhlich weiter. * seufz *

Ich arbeite zwar schon lange mit dem BTM-222, aber momentan versuche ich 
auch gerade das erste Mal, das Modul als Master einzusetzen. Bislang 
brauchte ich nur den Betrieb als Slave. Das Autoconnect funktioniert bei 
mir auch nicht, es kommt nicht mal ein Timeout.

Ich schreibe Rayson mal eine eMail, warum das nicht funktioniert.

von Marco (Gast)


Lesenswert?

Hallo,

meint ihr dass eine dieser ca. 5x0,5 cm großen WLAN Platinenantennen aus 
Notebooks Vorteile gegenüber einer einfachen Drahtantenne bieten?
Hier ein Foto: 
https://shop.strato.de/WebRoot/Store10/Shops/61251391/463B/3A3E/CD5D/A59C/09CC/C0A8/286D/A96C/f794.jpg

Grüße,
Marco

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Ich habe zwar noch keine Antwort von Rayson, dafür aber gerade ein 
merkwürdiges Verhalten des BTM-222 bemerkt:

Bislang habe ich die Module immer zusammen mit einem AVR bei 19200baud 
betrieben. In Kombination mit einem STM32 72MHz Prozessortakt und 
115200baud muss ich nun nachdem ich im Kommando-Modus ein Zeichen an das 
BTM-222 gesendet habe und das Zeichen als Bestätigung wieder empfangen 
habe, noch mindestens zwei Millisekunden warten. Ansonsten quittiert mir 
das Modul jeden Befehl nach dem 0x0D mit einem "ERROR". Scheinbar 
braucht das Modul intern diese Zeit, um die Befehle zu verarbeiten.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Marco schrieb:
> meint ihr dass eine dieser ca. 5x0,5 cm großen WLAN Platinenantennen aus
> Notebooks Vorteile gegenüber einer einfachen Drahtantenne bieten?

Probiere es aus. Das ist leider von vielen Faktoren abhängig, unter 
anderem davon wie die Performance dieser Antenne ist, ob du eine 
Ground-Fläche unter der Antenne hast, wie sie an das Modul angeschlossen 
ist, etc. An sich erreicht man mit einer passenden Lambda/4-Antenne 
schon recht gute Ergebnisse.

von Michael 9. (michael93) Benutzerseite


Lesenswert?

Hallo,

ich benutze zwar das BTM-112, aber die beiden Module ähneln sich ja 
anscheinend etwas.

Wenn ich mit dem AVR (Standardbaudrate) ohne Pause Daten sende, gibt es 
starke Hänger und Verzögerungen, ebenfalls kommen scheinbar nicht alle 
(nur wenige) Daten an. Ich benutze die Module in einer Fernsteuerung von 
Modellfahrzeugen.

Kennt jemand diese Verhaltensweise und kann dazu vielleicht etwas sagen?

Ein anderer Punkt meinerseits wäre, ob es schon Libs für die ansteuerung 
gibt. Größtenteils sind diese ja nicht notwendig, ich möchte aber dem 
Modul recht einfach Kommandos geben können, z.B. Gegenstelle suchen und 
dann diejenige auswählen, die einen bestimmten Namen hat und so weiter.

Was könnt ihr mir dazu sagen?

Gruß, Michael

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Michael 93 schrieb:
> Wenn ich mit dem AVR (Standardbaudrate) ohne Pause Daten sende, gibt es
> starke Hänger und Verzögerungen, ebenfalls kommen scheinbar nicht alle
> (nur wenige) Daten an. Ich benutze die Module in einer Fernsteuerung von
> Modellfahrzeugen.

Das Problem kann an der Reichweite liegen. Teste sonst mal, ob die 
Probleme entfernungsabhängig sind. Das BTM112 ist ja noch schwächer als 
das BTM222.

> Ein anderer Punkt meinerseits wäre, ob es schon Libs für die ansteuerung
> gibt. Größtenteils sind diese ja nicht notwendig, ich möchte aber dem
> Modul recht einfach Kommandos geben können, z.B. Gegenstelle suchen und
> dann diejenige auswählen, die einen bestimmten Namen hat und so weiter.

Ich habe inzwischen Bibliotheken für AVR und STM32 geschrieben, nur 
werden die kommerziell eingesetzt, also leider nichts für das Forum. Ich 
beantworte aber gerne Fragen.

Wenn deine Gegenstelle konstant bleibt (zum Beispiel immer dein PC) 
würde ich das Modul einfach als Master konfigurieren, die ID der 
Gegenstelle einspeichern (ATD=...) und auf Autoconnect schalten. Beim 
BTM-112 scheint das ja problemlos zu funktionieren, beim BTM-222 habe 
ich das bislang nur bei zwei BTM-Modulen hinbekommen. Mit allen Rechner, 
die ich habe, funktioniert das bislang nur manuell, ohne dass ich einen 
Grund hierfür finde.

Diese Konfigurations-Sachen kannst du auch per Terminal-Programm 
vornehmen oder halt die paar AT-Befehle durch den Controller ausführen 
lassen.

von Michael 9. (michael93) Benutzerseite


Lesenswert?

Hi,

das Problem ist nicht Reichweiteabhängig, es kommt nur vor, wenn ich 
zwischen den Paketen (je 4 Bytes) keine/zu kurze Pausen mache.

Autoconnect geht in diesem Fall nicht (ich benutze es aber noch), ich 
will ja mit einem Sender verschiedene Modelle ansteuern können. Im 
Sender ist ein Kreuzknüppel, ein ATMega8L und ein BTM-112, im Empfänger 
ein BTM-112, n ATM8L und zwei Servos. Der Sender schickt dann die Daten 
rüber und der Empfänger stellt die Servos, ganz einfach eigentlich.

Der Sender soll nach ein Display bekommen, mit welchem ich über ein Menü 
die Module (und auch Modelle) konfigurieren kann, völlig ohne PC.

Es hat bestimmt auch jemand anderes eine Lib für die Module, ich bin 
wohl zu faul, eine zu schreiben. Ich möchte mich eben auf die Funktionen 
am Modell/Sender konzentrieren. (Auch dazu, aber leider OT: kennt jemand 
eine Lib für die DOGM-128 Module? Die Infos im Forum kenne ich alle

Danke für die schnelle Antwort, Michael

von Don Bigo (Gast)


Lesenswert?

Hast du schon eine Antwort von Rayson, Christoph?

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Don Bigo schrieb:
> Hast du schon eine Antwort von Rayson, Christoph?

Ja, gerade angekommen:

1. master and slave, the pin code should be the same.
2. master side configure atd=XXX, which "xxx" means remote slave address
3. slave side configure atd=XXX, which "xxx" means remote master address
4. master side configure ato0, then they will automatically connect .

Mein Problem ist nur, dass ich das so gemacht habe, außer dass mein PC 
sich mit allen Verbindungen verbinden darf und auch keine Pin abfragt. 
Zwischen zwei BTM-Modulen funktioniert das alles problemlos mit dem 
Autoconnect, beim PC muss ich nochmal schauen. Sollte ich was neues 
herausfinden, poste ich es hier.

von Don Bigo (Gast)


Lesenswert?

Wie geb ich denn beim PC atd=xxx ein? und wie einen Pincode?

von Veit K. (veitchen)


Lesenswert?

mal ne frage wegen firmware:

gibts da was aktuelleres als 4.22 ?
und hat die wer samt tool zum flashen? habe hier einen chip der hat 4.19 
drauf ...

hätte ja immer noch gerne eine stromsparfunktion. discoverable ausmachen 
halbierts schonmal.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Veit K. schrieb:
> gibts da was aktuelleres als 4.22 ?
> und hat die wer samt tool zum flashen?

Rayson, sonst wohl niemand. Grundsätzlich bieten sie auch 
kundenspezifische Firmware an (zum Beispiel um das USB-Interface auch 
wirklich zu nutzen), aber ich denke mal, an die nötigen Stückzahlen 
kommen die wenigsten im Forum heran.

von Veit K. (veitchen)


Lesenswert?

jo, hab nur 20 module. werd mal beobachten ob die ältere firmware was 
ausmacht.

von Don Bigo (Gast)


Lesenswert?

Kann man die Reichweite (Sendeleistung) runterkonfigurieren?

von vogel (Gast)


Lesenswert?

Hallö Leute, also ich hab da irgendwie ein Problem mit meinem BTM-222.
Ich hab den an nem Atmega hängen und will da eine verbindung zum PC 
aufbauen.
Jedoch stimmt da irgendwas nicht. Wenn ich am PC nach Bluetoothgeräten 
suche findet er das Modul auch, wenn ich mich dann mit dem verbunden 
habe und nach Diensten suche findet der einfach keine. Manchmal zeigt er 
mir den Dienst serielle Schnittstelle an, und lässt mich auch damit 
verbinden, doch meist verliert er kurz drauf die Verbindung wieder und 
dann findet er wieder keinen Dienst auf dem Gerät.
Das Gerät selber ist aber weiterhin sichtbar und man kann sich auch 
damit verbinden.

Einstellungen im Modul selber sind wie gewohnt "out-of-the-box".

Jemand eine Idee was da los sein könnte?
Die Spannungsversorgungen sind beide bei konstant 3,3 V.

Grüße
vogel

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

vogel schrieb:
> Einstellungen im Modul selber sind wie gewohnt "out-of-the-box".

Wahrscheinlich liegt dort das Problem. Sende mal ein ATD0 an das 
BTM-222, um alle Verbindungen zuzulassen.

von vogel (Gast)


Lesenswert?

Leute ich verzweifel hier noch langsam. Ich bekomm dieses Modul über die 
UART Schnittstelle einfach nicht zum laufen.
Über Bluetooth kann ich mich mit dem Modul verbinden und auch die 
Serielle Schnittstelle bei mir im Windows einbinden. Aber über UART geht 
gar nix.

Ich hab beide Spannungsversorgungen mit 3,3V versorgt, den Reset Pin mit 
10k auf 3,3V gezogen, an UART Input und UART Output jeweils nen 
Pegelwandler von 3,3V auf 5V bzw 5V auf 3,3V und davor dann einen USB 
auf UART Pegelwandler. Aber egal was ich mache es passiert einfach nix. 
Der USB auf UART Pegelwandler funktioniert an anderer hardware, das hab 
ich schon getestet.
Diese 3,3V auf 5V Pegelwandler sind genauso wie auch bei dem Dongle von 
ulrichradig.de aufgebaut, nur dass ich z.B. bei dem für TxD den 
Widerstand R10 auf 470 Ohm und den Widerstand R11 auf 1k Ohm habe. Als 
Transistoren habe ich BC847 verwendet. Das dürfte ja aber alles nix 
ausmachen. An sich müsste das ja funktionieren.
Diese Pegelwandler selber funktionieren auch selber einwandfrei, das hab 
ich schon ausprobiert.

Hat irgendjemand eine Idee wo das Problem liegen könnte?

Grüße vogel

von K. J. (Gast)


Lesenswert?

hi der reset pin muss auf low sein

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nein, beim BTM222 muß RESET im Normalbetrieb "High" sein.

@vogel: Poste mal bitte einen genauen Schaltplan.

von vogel (Gast)


Angehängte Dateien:

Lesenswert?

Ok hier ist mal der Schaltplan der Basis, darauf sitzt dann eine andere 
Platine mit dem BT Modul, das Bild dazu folgt gleich.

Grüße
vogel

von vogel (Gast)


Angehängte Dateien:

Lesenswert?

Und hier der Schaltplan des Moduls selber. Wundert euch nicht das am 
rechten Stecker die Nummern der Pins nicht mit denen von der Basis 
übereinstimmen, mir ist im nachhinein aufgefallen das dort was verdreht 
war, verlötet sind die entsprechenden paar Leitungen aber richtig.

Grüße
vogel

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Der linke Stecker scheint aber auch verdreht zu sein...

von vogel (Gast)


Lesenswert?

Ich werd narrisch, die ganzen verdrehten Stecker waren es. Und noch dazu 
hab ich da irgendwie mich bei den Pins vertan un bin da noch um eine 
Stelle verrutscht.
Nu is alles richtig zusammen un es klappt. Da hätt ich aber au gleich 
draufkommen können. Immer diese doofen Leichtsinnsfehler.

Danke euch :D Nu kann ich mich an die Programmierung machen.

Grüße
vogel

von Veit K. (veitchen)


Lesenswert?

typisch uart, entweder verdreht oder baudrate falsch ...

von gert (Gast)


Lesenswert?

beim BTM-222 verbindet die platte doch schon alle GND's- hier muss nur 
mehr ein GND pin wirklich angeschlossen werden ?

von Simon K. (simon) Benutzerseite


Lesenswert?

JA, unbedingt, da es hier um HF geht und man eine Masse Anbindung haben 
muss, die so gut wie nur möglich ist.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Simon K. schrieb:
> JA, unbedingt, da es hier um HF geht und man eine Masse Anbindung haben
> muss, die so gut wie nur möglich ist.

Abgesehen davon wird das Modul im Dauerbetrieb durchaus etwas warm - ein 
paar Pads zum Abführen der Wärme schaden da auch nicht.

von gert (Gast)


Lesenswert?

Simon K. schrieb:
> JA, unbedingt, da es hier um HF geht und man eine Masse Anbindung haben
> muss, die so gut wie nur möglich ist.

aber für die funktion reicht es aus, wenn ich nur einen GND-pin des 
moduls mit GND der versorgung verbinde, da die restlichen GND's des 
moduls schon untereinander verbunden sind ?

von gert (Gast)


Lesenswert?

ja reicht aus - habe es ausprobiert

von HansDieter (Gast)


Lesenswert?

Hallo,

ich bereite gerade den Einsatz meines ersten Moduls vor. Dabei bin ich 
auf ein paar Ungereimtheiten gestoßen:

1. Das Modul hat eine ganze Reihe nicht genutzer IO's (USB und SPI die 
ja nicht für den Anwender zur Verfügung stehen jedoch zumindest 
teilweise, Firmware, eine Funktion haben sowie diverse PIOs). In den 
diversen Schaltungsbeispielen die hier und sonstwo im Netz kursieren, 
bleiben diese ganz einfach offen. Kann das wirklich sein? mir stehen 
sämtliche Haare zu Berge, beim Gedanken an offene Eingänge.

2. Bei meiner Suche bin ich auf zwei verschiedene Versionen des 
Datenblatts gestoßen. daraus resultiert die Frage, welche nun die 
Richtige ist:
1
Version A:
2
 PIN9 Button-Input, PINs 11, 13 & 14 Status-LED's
3
Version B:
4
 PIN 3 SleepClockInput 32kHz; PIN 9 BT_Priority/Ch_Clk output for
5
co-existence signalling; PIN 11 BT_Active output for
6
co-existence signalling; und PIN 12 WLAN_Active/Ch_Data input
7
for for co-existence signalling

Meine 3. Frage ist abhängig von der 2.:
Gilt Datenblattversion A:
PIN 9 ist definiert als (Button Input, active high). Weiß jemand für was 
dieser Button gut sein soll?

Gilt Datenblattversion B:
wie müssen die diversen zitierten Eingänge beschaltet werden, bzw. 
können sie offen bleiben? Bedenken siehe Frage 1.

Gruß Hans

von veit (Gast)


Lesenswert?

ich kann dir nur von den offenen eingängen berichten: habe kein problem 
damit, habe 10 module im einsatz.
platine hab ich von ulrichradig.de

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Pin13 toggelt mit 1Hz, wenn das Modul aktiv, aber nicht verbunden ist 
und ist ständig high, wenn eine Verbindung mit dem Master besteht.

von Elektrolyt (Gast)


Lesenswert?

Hi,


wie schauts eigentlich mit der Empfangsstärke aus? Ich habe ein draht ca 
3-4cm lang eingebaut und die Verbindung ist teilweise mies. Mit einem 
Handy muss ich leider auf ca 5-7m Sicht haben um das Modul zu steuern. 
Woran kann das liegen?
Was verwendet ihr als antenne?
Danke und Gruß
Elko

von Veit K. (veitchen)


Lesenswert?

ich hab 31mm draht dran und hab mit meinem handy 18 meter geschafft, mit 
einem usb-dongle class1 mehr.

von Gast (Gast)


Lesenswert?

Ebenfalls ca. 31 mm Draht mit Massefläche um den Fußpunkt: Das BTM ist 
das einzige BT Gerät dass Handys durch eine Stahlbetondecke und ein paar 
Wände hindurch finden kann.
Versuch mal die Länge zu optimieren. Immer ein Stück abschneiden bis der 
Empfang passt. Wird er schlechter war's zu viel ;).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die Draht- / Leiterbahnlänge der Antenne ist kritisch. Die besten 
Erfahrungen habe ich mit einem abgewinkelten, 31mm langen und 0.5mm 
breiten Leiterzug auf der Platine gemacht. Betondecke, 3 Wände und etwa 
20m kein Problem. Freifeld bis 60m bei 115kBaud.

von Juppo N. (juppo)


Lesenswert?

Hallo

Habe mit großen Interesse alles gelesen.

Ich benutze momentan das Blue Nice 3 Module in Verbindung zu einen BT 
Stick.

Über Terminal Programm kann man ja sehr schnell eine Verbindung 
aufbauen.

Aber wie kommen ich dann ins HID Profile??

Geht das über das SPP Protokoll?

Mir geht es darum die Fernbedienungen des Handy's mit für  BN3 Modul zu 
nutzen.

Direkt mit den Windows Prg. geht das sehr schön.
habe auch schon versucht die Daten auf dem virtuelle Com Port zu loggen.
Klappt aber nicht.

Jemand eine Idee wie man das Handy dazu bewegt HID Fernsteuerung 
einzuschalten?

von K. J. (Gast)


Lesenswert?

Travel Rec. schrieb:
> Die Draht- / Leiterbahnlänge der Antenne ist kritisch. Die besten
> Erfahrungen habe ich mit einem abgewinkelten, 31mm langen und 0.5mm
> breiten Leiterzug auf der Platine gemacht. Betondecke, 3 Wände und etwa
> 20m kein Problem. Freifeld bis 60m bei 115kBaud.

Hi bei mir ähnlich mit ner Chipantenne von Pollin komme ich auch auf 20m 
mit einer normalen wlanantenne um 30m mit einigen decken/wänden 
dazwischen.

Das einzige womit ich Probleme habe bei beiden ist Nahbereich also unter 
2m entfernung.

von Lutz B. (lutzbutt)


Lesenswert?

Hat hier jemand mal ein lauffähiges Assembler Program für einen 8051 
Derivat?

Insbesondere das Timing für die Konfiguration des BTM222 zum Master 
würde mich Interessieren.

Lutz

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Lutz Buttelmann schrieb:
> Hat hier jemand mal ein lauffähiges Assembler Program für einen 8051
> Derivat?
>
> Insbesondere das Timing für die Konfiguration des BTM222 zum Master
> würde mich Interessieren.

Mit Assembler-Code kann ich nicht dienen und auch mein C-Code wird dir 
nicht wirklich helfen - irgendein kritisches Timing ist da nicht zu 
beachten. Ich würde an deiner Stelle verifizieren, dass das BTM222 
wirklich die Zeichen bestätigt und sich nicht zwischendurch mit einem 
"ERROR" verabschiedet.

Ein 0x0D (CR) nach jedem Befehl reicht übrigens.

von vogel (Gast)


Lesenswert?

Hallo Leute, ich bins mal wieder.
Hab nun alles wunderbar zum laufen bekommen, und mein Roboter fährt nun 
so rum wie er das sollte. Jedoch habe ich eine interessante Entdeckung 
gemacht. Anfangs hatte ich eine etwa 30 mm lange Antenne dran. Die ist 
mir nun leider mitsamt Lötauge abgebrochen, als ich da eine kleine 
Flagge dran anbringen wollte g.
Doch seltsamerweiße habe ich jetzt wo die Antenne weg ist und nur noch 
mickrige 4 mm leiterbahn dran hängen der Empfang wesentlich besser wie 
mir scheint. Kann sich das jemand erklären?

Meine andere Frage ist da schon etwas spezieller, hat eigentlich 
schonmal jemand versucht mit einem Symbian Handy mit dem BTM zu 
kommunizieren? Ich hab Symbian s60 5th aufm Handy, und hab mir letzt 
auch Putty drauf installiert, aber wenn ich mich mit dem BTM verbinde 
weiß ich nicht wie ich dann da irgendwie eine serielle Schnittstelle 
aufbauen soll.
Hat da evtl. auch jemand eine idee?

Grüße
Vogel

von Mike_STK (Gast)


Lesenswert?

Hallo
ich habe von Ullrich Radig diesen Bluetooth Dongle gesehen. Nun meine 
Frage zum Betrieb mit dem STK500. Ich habe einen Atmega8 / Atmega8515. 
Ich kann doch die beiden Signale RxD & TxD von diesem Dongle direkt auf 
die jeweileigen Pins für RxD & TxD auf dem STK legen. Der UART-Pegel 
beträgt doch 5 V bzw. 0 V ( habe in den Datenblättern nichts gefunden).
Ich möchte diesen Dongle auch über das STK speisen und von daher sollte 
es ja kein Problem mit den Pegeln geben.

Gruß
Mike

von Ingo (Gast)


Lesenswert?

Hallo Forum,
ich habe nun schon das halbe Internet umgegraben ohne eine Lösung für 
mein Problem zu finden.
Ich betreibe das BTM-222 an einem µC über die RS232 wenn ich eine 
Verbindung mit einem Slave herstelle, dann kann ich diese nicht wieder 
mit +++ lösen.
Wieviel Zeit muss (oder darf) zwischen den +-Zeichen sein?

Vielen Danke für die Hilfe

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Probier´s mal mit 100ms.

von Oli (Gast)


Lesenswert?

@firefux:

ist zwar schon ein bißchen her, aber gib es noch eine Möglichkeit, die 
Layout (Eagle?) Daten für die BTM-222 DIL Adapterplatine zu bekommen?

Grüße
Oli

von firefux (Gast)


Angehängte Dateien:

Lesenswert?

Kann leider das Projekt mit der DIL-Adapterplatine grade nicht finden, 
aber mit dem .brd im Anhang als Basis kannst du die ganz einfach selber 
machen...

LG

von Max (Gast)


Lesenswert?

Ich habe ein kleines Problem mit dem Teil:

Leider reagiert es überhaupt nicht auf Zeichen über die serielle 
Schnittstelle: Ich bekomme nicht mal ein Echo zurück.
19200Bd, 8N1 und ein CR als Terminator müssten doch passen, oder?

Das Modul wird vom PC (Win7) über Bluetooth erkannt und lässt sich mit 
dem Koppungscode 1234 auch verbinden. Die Verbindung über Bluetooth 
scheitert dann aber daran, dass jedes getestete Terminalprogramm den 
virtuellen COM-Port zwar anzeigt, beim verbinden mit diesem sich aber 
beschwert, dass der Port nicht vorhanden ist...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das ist dann aber ein PC/Treiberproblem. Das Echo bekommst Du nur im 
Kommandomodus, wenn Du Dich per Hardware mit dem UART des BTM222 
verbindest, also PC-COM -> MAX3232 -> BTM222 oder µC -> BTM222. Achtung: 
Das BTM222 läuft nur bei 2.7...3.6V!

von Max (Gast)


Lesenswert?

Ich habe 2 getrennte Probleme:
zum einen dass sich das Modul nicht auf AT-Befehle über die 
leitungsgebundene serielle Schnittstelle (natürlich 3,3V) meldet und zum 
anderen eben, dass es über Bluetooth zwar erkannt wird, die Verbindung 
mit dem  Port aber nicht klappt. Letzteres scheint wirklich ein 
Softwareproblem mit Win7 zu sein, ersteres nicht.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Max schrieb:
> Ich habe 2 getrennte Probleme:
> zum einen dass sich das Modul nicht auf AT-Befehle über die
> leitungsgebundene serielle Schnittstelle (natürlich 3,3V) meldet

Wie hast Du es angeschlossen? Gibt das Modul überhaupt etwas von sich, 
z.B. ERROR?

von Max (Gast)


Lesenswert?

Die Kommunikation über die kabelgebundene Schnittstelle passt jetzt, war 
eine kalte Lötstelle.
Das Problem mit dem irgendwie nicht vorhandenen Port obwohl er im 
Gerätemanager angezeigt wird bleibt jedoch.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wird ein Stack-Problem mit Win7 und dem BT-Modul im PC sein. Hatte ein 
Arbeitskollege auch schon. Das liegt am SPP, welches nicht immer 100%-ig 
unterstützt wird. Das BTM222 ist daran jedenfalls nicht direkt schuld.

von Christian R. (cradi)


Lesenswert?

Hallo,

ich hänge mich hier mal dran.
Ich habe Probleme das Modul in Betrieb zu nehmen. Ich bekomme beim 
konfigurieren mit AT Kommandos nur Blödsinn zurück.
Es werden unterschiedliche Zeichen (P und U) empfangen.
Als Terminalprogramm verwende ich HTerm.

Das Modul ist auf eine Platine gelötet, als Pegelwandler setze ich für 
RxD einen Spannungsteiler und für TxD eine Kette aus zwei Transistoren 
ein.

Dies scheint auch zu funktionieren. Der Spannungsteiler liefert ca. 3,2 
Volt am Eingang des BTM, und der TXD Ausgang ist dauernd auf 3,3 bzw. 5 
V, je nachdem wo ich messe.

Mit einem Notebook kann ich das Modul sehen, und auch eine Verbindng 
herstellen. Beim Versuch per AT zu konfigurieren ist jedoch keine 
Verbindung aktiv.

Als Schaltung habe ich die Version von Ulrich Radig verwendet. Ich habe 
jedoch RTS und CTS nicht beschaltet.

Hat jemand eine Idee, was ich noch testen könnte?

Gruß
Christian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Richtige Baudrate? Wartest Du beim Senden jedes einzelnen Zeichens auf 
dessen Echo? Nimm mal Hyperterminal zum Testen, da siehst Du, ob die 
Eingabe jedes einzeln getippten Zeichens im Echofenster auftaucht.

von Christian R. (cradi)


Lesenswert?

Hallo Travel Rec.

danke für die schnelle Rückmeldung.
Nur verstehe ich das nicht ganz, kenne mich aber auch mit Hyperterminal 
nicht so gut aus.
Wenn ich in Hyperterminal ein Zeichen eingebe sehe ich mein eingegebenes 
Zeichen ja selbst nicht. Es muss also als "Echo" vom BTM zurückgegeben 
werden.

Ich meine, dies hatte ich schon mal. Also ja, das scheint zu 
funktionieren.

Gruß
Christian

von Christian R. (cradi)


Lesenswert?

So,

ich habe es nochmal getestet. Das Echo vom BTM 222 kommt zurück. Aber 
das dauert gefühlt Sekunden je Buchstabe.
Nach Eingabe von Return springt der Curscor erst an die erste Stelle in 
der Zeile und dann in die nächste Zeile. Eine Bestätigung oder Antowrt 
vom Modul erhalte ich nicht.

Hat noch jemand eine Idee?

Gruß
Christian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Christian Radermacher schrieb:
> Das Echo vom BTM 222 kommt zurück. Aber
> das dauert gefühlt Sekunden je Buchstabe.

Nee, das kann nicht sein, ich habe etwa 10ms Latenz.

von Christian R. (cradi)


Lesenswert?

Jo, und nu?

Ich werde jetzt noch mit einem anderen Wandler, bisher Serielle 
Schnittstelle im PC mit MAX232, jetzt FT232RL testen.
Mal sehen ob das funktioniert.

Es ist doch richtig, dass TXD im Ruhezustand immer auf High liegt, oder?

Gruß
Christian

von Christian R. (cradi)


Lesenswert?

So,

jetzt habe ich mal die RXD und TXD Leitungen verbunden. Mit einem 
Notebook eine Serielle Verbindung über BT aufgebaut und mit einem 
Terminalprogramm Daten gesendet, die sofort wieder zurück gesendet 
werden.
Das Modul funktioniert also.

Die Konfiguration passt für meine Zwecke. Somit werde ich das Thema 
konfig beim nächsten mal wieder angehen.

Danke und Gruß
Christian

von Christian R. (cradi)


Angehängte Dateien:

Lesenswert?

Hallo,

jetzt doch noch mal ich.
Ich habe leider funktioniert das ganze doch noch nicht.
Ich kann zwar vom UART Interface Daten senden, die kommen auch per 
Bluetooth an, aber es geht nicht in die andere Richtung.
Es scheint also, dass die TXD Seite des BTM nicht richtig funktioniert.
Wobei das merkwürdig ist, da beim verbinden von RXD und TXD am BTM Modul 
die gesendeten Daten wieder zurück kommen.

Mein Aufbau ist folgender:

PC mit BT Stick ---> BTM222 ---> Pegelwandler --> FT232RL --> PC mit USB

Auf beiden PC´s läuft HTerm als Terminalprogramm.

Den Schaltplan und das Board für die BTM Platine habe ich beigefügt.
Im Aufbau wurde R5 durch einen 2k2 ersetzt.

Hat jemand eine Idee was der Fehler sein könnte?

Gruß
Christian

von K. J. (Gast)


Lesenswert?

ah Pullup ?

von Christian R. (cradi)


Lesenswert?

Hallo K.J.

was meinst Du mit Pullup? Wo sollten die hin?

Gruß
Christian

von Christian R. (cradi)


Lesenswert?

Hallo,

ich habe weiter getestet.
Ich habe die beiden Widerstände R10 und R11 gegen 1k ausgetauscht.
Zusätzlich habe ich am Eingang des BTM einen 100nF und einen 10µF Elko 
eingebaut.

Aber am Ergebnis hat sich nicht viel geändert.
Ich kann jetzt Daten in beide Richtungen senden, und es kommen auch 
Daten an. Jedoch werden diese Daten verfälscht, also die empfangen 
Zeichen entsprechen nicht den gesendeten Zeichen.

Hat noch jemand eine Idee?

Gruß
Christian

von mip (Gast)


Lesenswert?

Hi, das Pulup war auch eventuel benötigt bezogen je nach
C der dranhengt, ich hab die erfahrung gemacht das des BTM mit min 22µ 
gepuffert werden muss sonst schmiert es ab.

ansonsten wen die gesendeten zeichen nicht den entfangenden entsprechen 
würde ich mal die pegel kontrolieren also ob die high sind und 
vernümpftg auf low gezogen werden beim senden.

von Christian R. (cradi)


Lesenswert?

Hallo mip,


aber wenn die Pegel nicht sauber auf low gezogen würden, dann würde eine 
Verbindung von RXD und TXD ja auch nicht zum Erfolg führen.
Dies aber funktioniert.

Gruß
Christian

von Christian R. (cradi)


Lesenswert?

Hallo,

ich habe jetzt die Lösung gefunden.
Zwischen dem BTM222 und dem FTDI hatte ich keine Masseverbindung. Mit 
Masseverbindung ist das Problem gelöst.

Gruß
Christian

von Burkhard (Gast)


Lesenswert?

Hallo

Ich habe eine ähnliche Frage wie 'Thommy' vom 21.12.2008.

Durch einen Programmierfehler hatte ich das BTM in eine andere Baudrate
befördert und die Kommunikation mit dem ATMega128 funktionierte
dann nicht mehr. Suche deshalb eine Möglichkeit, das Modul automatisch 
aus irgendeinem fehlprogrammiertem Nirwahna-Zustand wieder in einen 
Standardzustand zu versetzen.

Gibt es einen Hardware-Funktion, mit der ich das Modul in den 
Auslieferungs-Zustand zurückversetzen kann ?

In dem Datenblatt des BT Serial Adapters (Datenblatt im Beitrag von 
'Travel Rec', 31.10.2007 22:09) scheint eine solche Funktion zu
existieren (siehe Punkt 3.1.1).
Ich habe das längere Aktivieren (5 sek.) des Reset-Signales versucht, 
scheint aber beim BTM-222 nicht zu funktionieren.

Oder muss ich mit allen möglichen Kombinationen von Baudrate / Parität 
'ATZ0' senden, um das Ding wieder in eine definierte Baudrate zu 
bekommen ?

Gruß aus Mülheim

Burkhard

von Betti (Gast)


Lesenswert?

Hallo,

kann man mit einem BTM112 auch mehrere gleichzeitige Verbindungen 
aufbauen. In klassischen Pico-Netzten können ja 7 Slaves mit einem 
Master verbunden sein. In Scatternetzen sogar bis zu 255.

Hat jemand sowas schonmal versucht?

Grüße dirk

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die BTMs unterstützen maximal 7 Slaves an einem Master.

von Michael 9. (michael93) Benutzerseite


Lesenswert?

Hi,

cool, aber wie verbindet man die Slaves mit dem Master? Ich hab schon 
mit dem BTM 112 gearbeitet, und in dessen Datenblatt ist nichts in der 
Art beschrieben. Kannst du eventuell kurz die Vorgehensweise 
beschreiben?

Michael

von H.P.W. (Gast)


Lesenswert?

Hallo zusammen
Ich kann mein BTM 220 nicht verbinden, ich hab 3.3V und GND dran, auch 
eine Antenne von ca 31 mm. Das Ding liegt 50cm neben meinem Laptop, es 
wird aber nichts erkannt. Muss ich da noch irgendwas beachten oder muss 
ich davon ausgehen dass das Modul tot ist? Hab ich es vielleicht beim 
Löten überhitzt? Oder kann ich sonst noch irgendwie testen ob das Modul 
läuft?

Vielen Dank für Eure Hilfe

Gruss

HP

von Harald (Gast)


Lesenswert?

H.P.W. schrieb:
> ich hab 3.3V und GND dran

ALLE GND und 3.3V Anschlüsse?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Michael 93 schrieb:
> cool, aber wie verbindet man die Slaves mit dem Master? Ich hab schon
> mit dem BTM 112 gearbeitet, und in dessen Datenblatt ist nichts in der
> Art beschrieben. Kannst du eventuell kurz die Vorgehensweise
> beschreiben?

Hättest Du den Beitrag von Anfang an gelesen, wüsstest Du es ;-)

Beitrag "Re: Bluetoothmodul BTM-222"

von H.P.W. (Gast)


Lesenswert?

Hm... nein, ich hab einen GND auf der Seite und Pin 2 mit 3V3. 
Meinegüte, muss ich alle anschliessen? Ich hab von dem guten alten 
common ground auf common Saft geschlossen... Also sowohl Pin 17 wie 2 
und alle grounds?

Danke für den Tipp, werde das mal testen.

HP

von H.P.W. (Gast)


Lesenswert?

Viielen Dank... jetzt wird das Ding schon mal erkannt. Werde mich wieder 
an den Anfang des Threads treleportieren, danke...

H.P.

von H.P.W. (Gast)


Lesenswert?

Vielen Dank für die Hilfe bis hierher, hab sie als noob dringend 
nötig...

Ich hab mich nochmals durchgeackert und stehe nun vor einem anderen 
Problem. Ziel ist, über ein Arduino Fio mit dem BTM220 (statt per 
FTDI-Kabel) Sensordaten an den Mac zu senden, wo sie von Processing in 
Empfang genommen werden.

Der ganze Aufbau funktioniert mit dem Kabel. Mein Mac sieht das Modul 
auch, aber Processing schmeisst fehler beim serial.init. Nun habe ich in 
Ermangelung von Hyperterminal für Mac mit ZTerm versucht, was zu machen, 
und ich kann mich verbinden, jedoch weder etwas senden (kann im 
Konsolenfenster nichts eintippen) noch empfange ich etwas. Habe nun mal 
versucht, beim initialize-Befehl ATD0 zu senden, aber ob das angekommen 
ist oder nicht...?

Kann mir jemand mit Mac-Erfahrung sagen, wie ich das Modul mit ZTerm 
testen kann bzw wie ich das zum Kommunizieren bringe?
In den Bluetooth - Einstellungen steht folgendes:
Typ: Unbekannt
Adresse: 00-12-6f-08-5a-bc
Dienste: Ohne
Verbindung eingerichtet: Ja
Konfiguriert: Ja
Verbunden: Ja
Geräteklasse Obergruppe: Unbestimmt(0x1f)
Geräteklasse Untergruppe: (0x0)
Dienstklasse des Geräts: 0x0


Leider werde ich auch daraus nicht schlau :(

Kann mir da jemand weiterhelfen?

Danke, HP

von Max M. (Gast)


Lesenswert?

kurze Verständnisfrage

µC_(RXD0) PD0 -> BTM222_TX
µC_(TXD0) PD1 -> BTM222_RX

lieg ich richtig?

von Max M (Gast)


Lesenswert?

muss denn nun der RXD von Mikrocontroller zum TX des BTMs geführt 
werden?

oder RXD zu RX?

von Max M (Gast)


Lesenswert?

Bitte um hilfe

von Michael H. (michael_h45)


Lesenswert?

Schau dir einen der Tausenden hier oder sonstwo zu findenden Schaltpläne 
an.
Ist das schwieriger als nach 48 Stunden hier "hilfe hilfe" zu weinen?

von ThomasH (Gast)


Lesenswert?

gibts es vielleicht Erfahrungen zu den erzielbaren Reichweiten mit zwei 
BTM 222 Module oder einem ClassI Dongle und einem BTM 222 Modul?

Würde mich sehr interessieren.

von veit (Gast)


Lesenswert?

hab schon so 70 meter erreicht, voraussetzung: sichtverbindung.
steht einer vor der antenne wirds schwierig.

von Michael H. (michael_h45)


Lesenswert?

ThomasH schrieb:
> gibts es vielleicht Erfahrungen zu den erzielbaren Reichweiten mit zwei
> BTM 222 Module oder einem ClassI Dongle und einem BTM 222 Modul?
hängt seehr von der antenne, von  der umgebung, vom wetter usw ab.
du hast die ausgangsleistung, braust den antennengewinn und kennst die 
freiluftdämpfung bei gewisser luftfeuchte. dann hast du einen 
schätzwert...

mit einem 0815-aufbau geht was in der größenordnung von 10m.

von H.P.W. (Gast)


Lesenswert?

So, nun geht bei mir auch endlich was. Habe das BTM222 mit RX/TX an die 
TX/RX des USB-FTDI Kabels gehängt, Masse verbunden und dann konnte ich 
es auch ansprechen.

Die Verbindung des Arduino Fio mit Bluetooth funktioniert nun, aber ich 
habe das Problem, dass wenn ich einen Wert (Poti) am Arduino verändere, 
das erst ca. 6 Sekunden später bei meinem Compi (im Processing) ankommt.
Wenn ich statt des BTM das Kabel verwende, habe ich schöne (fast) 
Echtzeit Anzeige.

Hat jemand eine Ahnung, woher dieses Lag kommen kann? Ich habe auch 
schon mal die Baudrate auf 9600 runtergesetzt weil ich nicht sicher war, 
ob das Arduino mithalten kann, aber das hat auch nichts gebracht.

So nah dran... woran kann das liegen, dass es so lahmt?

Dank & Gruss

HPW

von Chriss (Gast)


Lesenswert?

Hallo Leute,ich mochte für meine Diplomarbeit ein piconet aufbauen und 
zwar mehrere btm 222 zusammenverbinden.Ein Modul naturlich als Master 
und die anderen als Slaves.Die module sollen dann an Asuros aufgebaut 
werden so, dass die asuros dann mit einander Daten über bluetooth 
austauchen können.
Im Datenblatt steht engentlich dass das btm 222 bis zu 7 slaves 
unterstützt.also meine fragen sind folgendes.lässt sich überhaut mit btm 
222 ein Punkt zu mehr Punkt verbindung (piconet-mode) realisieren?Wenn 
ja wie kann ich dies machen?
Danke im Voraus für jede Hilfe

von Jens (Gast)


Lesenswert?

Hi,

hat schon jemand mal erfolgreich versucht das BTM Bluetooth Modul am 
STK500 anzuschließen?
Mein neuer Laptop hat keine serielle Schnittstelle mehr.

LG
Jens

von H.P.W. (Gast)


Lesenswert?

So, ich habs nun doch noch geschafft, der Fehler lag im Code 
meinerseits.
Das BTM 222 funktioniert also problemlos auch mit Arduino FIO.

Danke für Eure Hilfe!

H.P.

von H.P.W. (Gast)


Lesenswert?

Zu früh gefreut... auf Apple läuft die Geschichte problemlos, auf Win XP 
hab ich einige Versuche gebraucht, bis es geklappt hat, weil mein 
Processing (java) code im Falle einer stehenden Verbindung zwischen BTM 
und dem Bluetooth-Dongle am PC einen "port already in use" - Fehler 
schmeisst. Ging dann aber doch indem ich nicht ein BT-Gerät hinzugefügt 
habe sondern nur einen COM-Port.
Leider läuft auf der Zielmaschine nun ein Win7 64Bit, und da sagt er 
mir, wenn ich den COM Port hinzufügen will, dass mein BTM keinen serial 
port service habe.

Kennt sich da jemand aus?

Danke und Gruss

HPW

von veit (Gast)


Lesenswert?

ich hab das mit den seriellen ports schon lange aufgegeben. mach aus 
deiner anwendung lieber selber eine direkte verbindung zu dem 
bluetooth-modul

von Michael H. (michael_h45)


Lesenswert?

welches bt-profil wäre das dann?

von veit (Gast)


Lesenswert?

spp was anderes kann der btm222 ja nicht ... du kannst z.b. mit 
32feet.net library direkt verbinden und sparst dir die comport 
einrichtung

von Kendy B. (kendy_b)


Lesenswert?

Hi,

ich versuche eine Art Fernbedienung für mein NAS zu bauen, auf dem 
Debian läuft. Dazu habe ich einen Versuchsaufbau mit Taster, LCD und 
einem ATMega8 mit konfiguriertem UART fürs senden/empfangen.

Was schon geht ist folgendes:
Ich verbinde manuell vom Nas zum BT-Dongle(BTM-222) mit konfigurierter 
rfcomm0 Schnittstelle und
1
./script.sh < /dev/rfcomm0
Wenn das Script läuft kann ich auf meinen Taster drücken und es wird 
auch die gewünschte Aktion auf dem NAS ausgeführt. Wenn ich jetzt den 
Dongle ausschalte(was ich später machen möchte um die Batterie zu 
schonen), wird das laufende Script abgebrochen.

Wie bringe ich den untern Versuchsaufbau dazu automatisch zu verbinden, 
wenn ich die "Fernbedienung" (BT-Dongle am µC) einschalte?

Taster -> µC -> BTM-222-Dongle von U.Radig -> BT-Verbindung -> BT-Stick 
am NAS -> Script was den Tastendruck auswertet.

Hab jetzt schon mit Mastermode und Autoconnect des BTM herumgespielt, 
aber ich komme hier einfach nicht weiter. Im Mastermode kann ich zum NAS 
verbinden, aber ich kann die rfcomm0 Schnittstelle nicht 
öffnen.(Verbindungsaufbau gescheitert)
Ich kann auch mit der Linuxkiste nicht auf das einschalten reagieren und 
von dort die Verbindung aufbauen, weil das da nirgends protokolliert 
wird.

PS: Habe schon in einem anderen Thread gefragt, aber der hier passt 
irgendwie besser zum Thema.

PPS: Zum besseren Verständnis noch das Script das auf dem NAS gestartet 
wird.
1
#!/bin/bash
2
while read line; do
3
        if [ "$line" = "taste1" ]; then
4
        (
5
                echo "$line execute on `date`"
6
                wget -q -O/dev/null "http://192.168.0.11/web/message?text=testtest&type=2&timeout=5"
7
        ) >> /tmp/uart.log 2>&1
8
        fi
9
done

von Sebastian (Gast)


Lesenswert?

hat sich mal jemand mit den stromsparmodi auseinandergesetzt?
am besten wäre es,wenn das modul in einen lowpower modus geht,bis eine 
pairing anfrage eingeht. ideen?

von veit (Gast)


Lesenswert?

habs leider auch noch nicht zum stromsparen bekommen ...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hallo Blauzähne ;-)

seit ein paar Tagen mühe ich mich mit dem BTM180/182 herum. Probleme, 
die ich bei den BTM112/222 Modulen nie hatte, sind jetzt aufgetreten. 
Die Latenz beim Konfigurieren (Zeit vom Senden eines Zeichens bis zum 
nächsten) liegt bei über 50ms. Die Verbindung zum PC bricht nach dem 
ständigen Übertragen (1 alle 15ms) einiger hundert Zeichen ab. Es sieht 
so aus, als wenn sich die Firmware festrammelt. Erst stockt der 
Datentransfer, dann bleibt alles stehen. Einige Sekunden später meldet 
der BT-Manager auf dem PC eine getrennte Verbindung. Wenn ich vom PC aus 
neu verbinde, geht´s wieder für ein paar Sekunden. Wenn ich die Zeichen 
deutlich langsamer übertrage (1 alle 100ms) dann bleibt die Verbindung 
dauerhaft bestehen. Das Ganze konnte ich mit 2 verschiedenen Modulen und 
mit verschiedenen PCs testen. Der sendende Controller gibt stur Daten an 
das BT und dies sendet dann an den PC. Der Empfänger ist momentan nicht 
aktiv.

Leider kann ich die BTM112 und BTM222 Module für den Zweck nicht mehr 
einsetzen und bin auf die Padanordnung des BTM180/182 angewiesen.

Kann jemand dieses metastabile Verhalten bestätigen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das letzte Satzzeichen sollte ein '?' sein.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Aaaalso..., das Problem ist wohl erkannt. Wenn man in einem festen 
Intervall von rund 10ms 1 bis 3 Bytes versendet, scheint die Firmware 
auf dem Modul ein Problem damit zu bekommen, die Bluetooth-Frames 
zusammenzubasteln. Die Puffergröße beißt sich dann wohl mit dem Timeout 
und irgendwann ist Schluss mit Übertragung. Dieser Fehler wird nicht 
abgefangen, sondern das Modul sperrt einfach den Transportstrom und 
fällt in den Kommandomodus zurück. Versendet man mehr Daten oder 
vergrößert man das Intervall, tritt der Fehler nicht auf.

von veit (Gast)


Lesenswert?

das ist interessant ... und beim 222 gibts sowas gar nicht?

in ganz seltenen fällen hab ich mal probleme, liegt aber eher wohl an 
meinem windows multitasking ...

von Wladimir Schwitin (Gast)


Lesenswert?

Hallo,

kann mir jemand bei dem ähnlichen Problem helfen?

Bluetooth Module Parani ESD200 über RS-232 ansprechen

Wladimir

von Wladimir Schwitin (Gast)


Lesenswert?


von Sebastian (Gast)


Lesenswert?

Hallo zusammen,

ich würde gern nochmal den Punkt der Stromsparmodi aufgreifen.

Betreibe das BTM222 momentan am Arduino FIO mit einem LiPo-Akku und das 
ganze hält (im DISCONNECT) ca. 2-3 Tage durch. Eigentlich wollte ich 
eine Standzeit von 1 Woche erzielen. Bisher mache ich folgendes:

Wenn keine Verbindung besteht schaltet der Prozessor das BTM222 über die 
Resetleitung ab. Zyklisch wird das Modul aufgeweckt, damit es eventuelle 
Verbindungsversuche entgegennehmen kann. Funktioniert sehr gut, schöner 
wäre aber ein prinzipiell geringerer Verbrauch inkl ständiger 
Erreichbarkeit.

Habe schon sehr sehr viel gesucht, aber nicht herausgefunden ob und wie 
das Modul sich selbstständig in die im Datenblatt erwähnten Schlafmodi 
versetzt...

Hat mal jemand den Stromverbrauch des Moduls nachgemessen ?
Habe gerade eine eigene Platine gemacht, mit der ich das alles 
nachmessen will - Ist aber noch in Produktion :(

Danke !

von veit (Gast)


Lesenswert?

ich hab mal rumgemessen und dabei nur festgestellt das es im modus 
"nicht findbar" auf 50mA pulst - das war der sparsamste modus. sobald 
verbunden wird der stromverbrauch ja minimal ...

leider nicht geschafft irgendeinen anderen modus zu erreichen.
wäre eigentlich sinnvoll sich mal nach einer alternative umzuschauen. 
hat wer tips?

von Gerald *. (pyromane)


Lesenswert?


von veit (Gast)


Lesenswert?

schon getestet??? was kanns? stromsparmodi???

bestelle ja schon ganz gerne bei dx :)

von Gerald *. (pyromane)


Lesenswert?

veit schrieb:
> schon getestet??? was kanns? stromsparmodi???
>
> bestelle ja schon ganz gerne bei dx :)

Sind erst auf dem Weg zu mir.
Datenblatt findet man im Forum von DX.
Interne Antenne, aber denn eben nur Class 2

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Gerald *. schrieb:
> Noch dazu relativ günstig:
> http://www.dealextreme.com/p/wireless-bluetooth-rs...

veit schrieb:
> schon getestet??? was kanns? stromsparmodi???
>
> bestelle ja schon ganz gerne bei dx :)

Das ist ein BTM112 mit integrierter Antenne. Nicht wirklich sparsamer 
als das BTM222, lediglich durch die geringere Sendeleistung.

von Ulrich P. (uprinz)


Lesenswert?

Habe mal auch ne Frage :)
Ich spiele mit dem Gedanken mir ein BTM620er Modul zu zu legen. Mir geht 
es dabei um die Audio-Profile. Hat schon jemand Erfahrung mit diesen 
Modulen?

Außerdem geht es mir nurum geringe Reichweiten, und daher noch mal die 
Frage von weiter oben, zu der ich keine Antwort finden konnte:
Kann man die Ausgangsleistung der Module konfigurieren?

Eine schlechte Antenne löst das Problem nicht wirklich, da die Leistung 
umgesetzt aber reflektiert wird. Mir geht es natürlich auch im die 
Sparsamkeit, aber ich möchte eben auch das verhindern, was die Anderen 
oben so toll fanden, ich möchte, dass die Verbinduung nur dann 
automatisch aufebaut wird, wenn beide zu verbindenden Geräte sehr nahe 
beieinander / aufeinander liegen.

Nachtrag:
Gibt es auch die Möglichkeit mit SPI/I2C statt UART mit dem Modul zu 
kommunizieren, also AT Befehle auszutauschen?

Gruß, Ulrich

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ulrich P. schrieb:
> Kann man die Ausgangsleistung der Module konfigurieren?

Nein.

Ulrich P. schrieb:
> Gibt es auch die Möglichkeit mit SPI/I2C statt UART mit dem Modul zu
> kommunizieren, also AT Befehle auszutauschen?

Nein.

von Ulrich P. (uprinz)


Lesenswert?

Das war einfach und hart :)

Auf einigen dieser Module wird ja ein Controller und 8MB Flash beworben, 
was impliziert, dass man darauf auch eigene Applikationen laufen lassen 
kann.

Kommt man als normaler Mensch an die nötigen Tools und Software heran?
(Ich ahne die Antwort schon... Bitte überrascht mich)

Kennt jemand ein BT-Modul bei dem ich die Audio-Profile habe und das 
günstiger ist, bzw. bei ähnlichem Preis statt UART I2C oder SPI als 
Command-Interface verwenden kann und das ebenfalls I2S/SPDIF als 
Audio-Out versteht?

Gruß, Ulrich

von Anfänger (Gast)


Lesenswert?

Hallo Leute,
Ich möchte auch mit dem btm-222 arbeiten.
Wie ich bereits gelesen habe, brauche ich für den Start

Eine Antenne am Pin 37
GND s zusammenlöten
Und eine 3,3 V Spannung am VCC und PVCC

Am besten woher die Spannung?
Batterie oder Spannungsversorger?

von Schuhplattler Sepp, Oberammergau (Gast)


Lesenswert?

Anfänger schrieb:
> Batterie oder Spannungsversorger?

eine Batterie ist ein Spannungsversorger

von Anfänger (Gast)


Lesenswert?

:p

Ich meine,
soll ich einfach die batterie anschliessen
Und schon funktioniert das modul ??

Mfg

von fux (Gast)


Lesenswert?

Anfänger schrieb:
> soll ich einfach die batterie anschliessen
> Und schon funktioniert das modul ??

Du kannst sie vorher noch massieren und nach Mekka ausrichten...
Wenn die Spannung passt (und sie den Strom bereitstellen kann), einfach 
anschließen!

von yamen k. (yamen_k)


Lesenswert?

Hallo,

Ich habe eine Frage bitte, ich programmiere gerade eine Mikrocontroller 
PIC18
und wollte AT Befehle durch das Programm zu dem BTM222 schicken.
Ich habe
puts(ATN=BTM);
geschickt und konnte die Name meine Bluetooth-Modul ändern und wenn ich 
jetzt mit meinem Handy suche, finde BTM.
Aber ich wollte das PIN-Code auch ändern, habe ich
puts(ATP=1111);
 geschickt, es funktioniert nicht, ich konnte keine Verbindung mit 
meinem Handy machen, es gibt mir immer, das das Pin falsch ist. Und was 
ist noch komisch ist, dass das alte Pin funktioniert auch nicht mehr, 
das bedeutet, das Pin hat schon falsch geändert.

Kann mir jemand sagen, was habe ich falsch gemacht.

Danke im Voraus,
Yan

von Georg A. (Gast)


Lesenswert?

Im Kommandomodus ist das Modul extrem langsam und es gibt keinen 
zeichenbuffer. Man muss zwischen jedem Zeichen so 50-100ms Zeit lassen, 
sonst gibt es Datenmüll. Evtl. hat sich da schon irgendwas verstellt. 
Mach mal einen Config-Reset...

von yamen k. (yamen_k)


Lesenswert?

Danke sehr Goerg, ich habe jetzt so probiert, dass ich jedes Zeichen 
alleine schicke und zwische jedes Zeichen 100 ms gelassen und trotzdem 
funktioniert nicht.

        puts("A");
        Delay1KTCYx(400);
        puts("T");
        Delay1KTCYx(400);
        puts("P");
        Delay1KTCYx(400);
        puts("=");
        Delay1KTCYx(400);
        puts("1");
        Delay1KTCYx(400);
        puts("2");
        Delay1KTCYx(400);
        puts("3");
        Delay1KTCYx(400);
        puts("4");
        Delay1KTCYx(400);
Was meinst Du mit Config-Reset.
Danke sehr

Yan

von yamen k. (yamen_k)


Lesenswert?

Habe so auch probiert und auch funktioniert nicht, hat jemand eine Idee?

        printf('A');
        Delay1KTCYx(400);
        printf('T');
        Delay1KTCYx(400);
        printf('P');
        Delay1KTCYx(400);
        printf('=');
        Delay1KTCYx(400);
        printf('1');
        Delay1KTCYx(400);
        printf('2');
        Delay1KTCYx(400);
        printf('3');
        Delay1KTCYx(400);
        printf('4\r');
        Delay1KTCYx(400);

Danke im Voraus

von Michael H. (michael_h45)


Lesenswert?

1
 printf('4\r');
Das sind 2 Zeichen.
1
Delay1KTCYx(400);
2
printf('4');
3
Delay1KTCYx(400);
4
printf('\r');


Hast du einen PIC mit 2 UARTs? Konfigurier die zweite und nutz den PIC 
als "Brücke" zwischen einem PC und dem BTM222.
Dann siehst du auch, ob das Modul OK sagt, oder nicht.

von yamen k. (yamen_k)


Lesenswert?

Danke Michael H. Leider habe ich nur ein UART

Ich habe die 4 und \r als zwei Zeichen gemacht und auch funktioniert 
nicht.
Es ist echt komisch, warum kann ich mit dem Befehle puts("ATN=blabla"); 
oder printf("ATN=blabla"); der Name des Bluetooth-Moduls ändern aber das 
Pin-Code nicht. Ich habe echt alles versucht und geht nicht.
Muss ich vielleicht eine bestimmte Reihenfolge von Befehle, bevor ich 
das Befehl für die Änderung des Pins schicke, schicken, Z.B. ein Befehl 
für Echo oder Slave Master...

Hat jemand ein Vorschlag für mein Problem?

Danke im Voraus

von veit (Gast)


Lesenswert?

ich hab pincode ganz deaktiviert ... schon lange her .. weiß auch nix 
mehr dazu

von yamen k. (yamen_k)


Lesenswert?

Ich habe auch probiert pincode zu deaktivieren und das ist mit dem 
Befehl puts("ATP0\r"); aber leider hat auch nicht funktioniert, mein 
Handy wartet auf PINCODE immer noch. :(

von veit (Gast)


Lesenswert?

hier mal meine notizen:


gemacht werden muss:

atb? adresse
atc0 flow aus
ath0 undiscoverable
atn=NAMEXX
atp0 keine pin
atq1 nachrichten aus
atl1 (9600baud)


also dann einfach atp0 ?

von yamen k. (yamen_k)


Lesenswert?

D.h. kann ich nicht das Befehl ATP0 allein geben?

von veit (Gast)


Lesenswert?

doch klar, einfach nur atp0 ...

von Georg A. (Gast)


Lesenswert?

atz0 Config-Reset (inkl. UART-Parameter ala Baudrate etc.)

Aber jetzt wo ich so nachdenke (ist auch schon 2 Jahre her), da war 
irgendwas, dass der Pin-Code nur in einem bestimmten Zustand akzeptiert 
wurde. Das beste wäre wirklich, das Ding über ein USB-RS232-Adapter an 
den PC zu hängen und da mit einem Terminalprogramm zu spielen.

von CaZwo (Gast)


Lesenswert?

Hallo,
ich setze gerade für ein Projekt das BTM222 Modul ein.
Als Adapterplatine nutze ich die Variante aus der Robotrack 
Sammelbestellung, d.h. BTM mit LM1117 für die Spannungsversorgung und 
74HCT14 als Pegelwandler an den Ausgängen, Spannungsteiler an den 
Eingängen, da meine restliche Schaltung mit 5V arbeitet.

Nun brauche ich für meinen Anwendungsfall den CTS-Eingang des BTM222 für 
eine Art Software-Kollisionserkennung (CTS aktiv -> Senden erlaubt, CTS 
nicht aktiv -> Senden verboten). Die CTS-Signale werden dabei von meiner 
Vorschaltung generiert.
Das Problem ist, dass laut HTerm (und mit selbst geschriebener Software 
nochmals kontrolliert), CTS immer aktiv ist.

Auf der Leiterplatte habe ich alle Verbindung nachgemessen, scheint in 
Ordnung zu sein. Auch die Schaltung zuvor funktioniert - die Pegel an 
der CTS-Leitung wechseln.

Hat schon mal jemand den CTS-Eingang des BTM-UART erfolgreich genutzt?

von Harald (Gast)


Lesenswert?

Georg A. schrieb:
> Im Kommandomodus ist das Modul extrem langsam und es gibt keinen
> zeichenbuffer. Man muss zwischen jedem Zeichen so 50-100ms Zeit lassen,
> sonst gibt es Datenmüll.

BTM-222:
Ich möchte es gerne auch noch mal in diesem Thread posten: Der Fehler 
mit dem Verschlucken der Zeichen gilt nur für alte Firmware (<= 4.22)!! 
Lasst euch mit ATI1 die Konfiguration ausgeben. Bei Version >= 4.35 
besteht das Problem definitiv NICHT mehr.
Ältere Module lassen sich per USB relativ einfach updaten, wenn man 
direkt bei Rayson danach fragt. Die wollen das allerdings nicht generell 
veröffentlichen, daher gibts das hier nicht zum Download.

von Peter R. (gelb)


Lesenswert?

CaZwo schrieb:

> Das Problem ist, dass laut HTerm (und mit selbst geschriebener Software
> nochmals kontrolliert), CTS immer aktiv ist.

CTS wird nicht 1:1 per Funk zum PC übertragen, falls du das meinst.

> Auf der Leiterplatte habe ich alle Verbindung nachgemessen, scheint in
> Ordnung zu sein. Auch die Schaltung zuvor funktioniert - die Pegel an
> der CTS-Leitung wechseln.
>
> Hat schon mal jemand den CTS-Eingang des BTM-UART erfolgreich genutzt?

Ich verwende RTS/CTS, weil ich per Controller den BTM222 mit 460kBaud 
beschicke (da muss er mich bremsen) und weil ich nicht immer 
Empfangsbereit bin (das sage ich ihm per CTS). Funktioniert einwandfrei.

Grüße, Peter

von CaZwo (Gast)


Lesenswert?

Hallo Peter,
danke für deine Antwort.

Mh, wenn das BTM222 die CTS-Leitung nur für die Flusskontrolle nutzt, so 
ist das in für mich denk ich mal eine blöde Sache.

Um es ein wenig zu erklären: Ziel ist es, die Bussignale des KBUS 
(Bus-System das in BMWs verwendet wird, Abwandlung des LINBUS) per 
Laptop/Smartphone zu verarbeiten. Dafür nutze ich einen Melexis TH3122, 
der als Transceiver eine Schnittstelle zwischen RS232 und KBUS bietet 
und außerdem die Kollisionserkennung übernimmt. Ist der Bus belegt, so 
signalisiert das der Chip, indem er für diesen Zeitraum eine Leitung auf 
High-Pegel zieht... Dieses Signal will ich nun per Software überwachen, 
im Kollisionsfall soll also meine Software aufhören zu senden.

Ich kenne mich mit serieller Kommunikation ehrlich gesagt nicht 
sonderlich gut aus, aber du verwendest RTS/CTS ja als 
Hardware-Flusskontrolle, nehme ich an. Ich fasse das so auf: Das Modul 
signalisiert, wenn über die UART zu viele Daten reinkommen, indem es RTS 
aktiviert und du lässt deinen Controller dann erstmal pausieren. Im 
umgekehrten Fall, dass das BTM222 mehr Daten ausgibt, als dein 
Controller im Moment verarbeiten soll, setzt dein Controller CTS und der 
BTM222 hört auf zu senden. Habe ich das soweit richtig verstanden? Falls 
ja, frage ich mich jetzt, was mit den Daten passiert. Werden die erstmal 
im BTM222 zwischengespeichert oder bekommt die Gegenstelle (d.h. in dem 
Fall der über Bluetooth verbundene PC) das ganze irgendwie signalisiert, 
so dass er erstmal mit Senden pausiert?

Viele Grüße,
Cazwo

von Peter R. (gelb)


Lesenswert?

CaZwo schrieb:
> du verwendest RTS/CTS ja als Hardware-Flusskontrolle, nehme ich an.

Ja

> ja, frage ich mich jetzt, was mit den Daten passiert. Werden die erstmal
> im BTM222 zwischengespeichert oder bekommt die Gegenstelle (d.h. in dem
> Fall der über Bluetooth verbundene PC) das ganze irgendwie signalisiert,
> so dass er erstmal mit Senden pausiert?

Der Programmablauf im PC stockt erstmal und bricht dann nach einigen 
Sekunden mit Timeout ab, wenn nichts weitergeht.
Solange kein Timeout auftritt, gibt es keinen Datenverlust, das BTM222 
kann also wohl einen Block (oder was auch immer) puffern und meldet 
gleichzeitig dem PC, dass er gerade keine Daten annimmt.

Eine Methode, vor der Übertragung zu prüfen, ob der Kanal betriebsbereit 
ist, habe ich nicht gefunden (aber auch nicht groß gesucht)

In meinem Fall ist die Übertragung sehr unsymmetrisch, der PC sendet im 
wesentlichen nur Steuerbefehle und bekommt dafür eine Menge Daten 
übermittelt.

Grüße, Peter

von kati (Gast)


Lesenswert?

Hallo,

ich beschäftige mich gerade auch mit dem Bluetooth-Modul BTM222. Ich 
habe das Modul direkt mit einem Mikrocontroller PIC verbunden und wollte 
das Modul mit einem medizinische Gerät verbinden lassen. BTM 222 soll 
dem Master sein und das medizinische Gerät Slave. Deswegen habe ich ein 
Programm geschrieben und es hat diese AT-Befehle:
          printf("ATR0\r");
          Delay1KTCYx(400);
          printf("ATO0\r");
          Delay1KTCYx(400);
          printf("ATD0\r");
          Delay1KTCYx(1000);
Nachdem BTM222 Geräte in der Nähe sucht und das medizinische Gerät 
findet, wird das medizinische Gerät nach dem Passwort fragen und als ich 
das mit meiner Handy probiert bekommt so "Pair with BT_A2B61AA" und dann 
soll man mit 6624 (das Passwort) antworten. Ich weiß es nicht wie kann 
ich das in dem Programm schreiben und das Passwort des medizinischen 
Gerät geben, ich habe so versucht:
 while(go != 1){
         getsUSART(buffer, 20);
         if(buffer == "Pair with BT_A2B61AA")
            go = 1;
          }
          printf("6624");
das hat nicht funktioniert.

Kann mir jemand helfen :)?
Danke im Voraus
Kati

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

if(buffer == "Pair with BT_A2B61AA")

lol, so geht kein Stringvergleich...

if(!(strcmp(buffer, "Pair with BT_A..."))) {
    // code für gleichheit
} else {
    // code für ungleichheit
}

von sigges (Gast)


Lesenswert?

Hi Kati,
verrätst Du uns, welches medizinische Gerät Du mit was verbinden willst 
?
noch einen schönen Tag an Alle :-)
Gruß
sigges

von Thomas (Gast)


Lesenswert?

Sollte man den Reset-Pin des BTM-222 mit der MCU verbinden oder braucht 
man den eh nie? Mache gerade ein neues Layout und hätte u.U. einen 
freien IO. Gibt es öfter Probleme mit hängenden Modulen, die man damit 
lösen könnte? Ein Beitrag in diesem Tread legt nahe, dass man damit 
Strom sparen könnte (ich schätze mit einem Pull-down auf Low halten, bis 
die MCU das Modul braucht und aktiviert). Stimmt das? Macht der 
Reset-Pin das gleiche wie ein Power-Up-Reset und setzt sonst nichts 
zurück, auch nicht wenn er lange aus Low gehalten wird?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Thomas schrieb:
> Sollte man den Reset-Pin des BTM-222 mit der MCU verbinden

Ja. Muss man aber nicht unbedingt.

Thomas schrieb:
> und hätte u.U. einen
> freien IO.

Dann schliess ihn an.

Thomas schrieb:
> Gibt es öfter Probleme mit hängenden Modulen

Nö.

Thomas schrieb:
> Ein Beitrag in diesem Tread legt nahe, dass man damit
> Strom sparen könnte

Reset aktiv halten schaltet das Modul in einen sparsamen Modus (<50µA). 
Richtig aus ist es aber nur, wenn man Vcc abklemmt und die 
Datenleitungen auf LOW legt.

Thomas schrieb:
> Macht der
> Reset-Pin das gleiche wie ein Power-Up-Reset

Ja.

> und setzt sonst nichts
> zurück, auch nicht wenn er lange aus Low gehalten wird?

Nein.

von Thomas (Gast)


Lesenswert?

Danke. Noch eine Frage: Sollte an VCC/PVCC ein wesentlich grösserer 
Kondensator als 100N vorgesehen werden - oder überhaupt ein Kondensator? 
Finde im Internet meistens 100N, aber auch den Tip, an PVCC min. 22uF 
vorzusehen (geht ja noch als High Cap keramisch). Ich verstehe weder das 
eine noch das andere: da das Datenblatt keine Anforderungen stellt, 
hätte ich vermutet, dass das Modul nicht schon passende Kondensatoren 
unter der Blechhaube hat. Allerdings sind im Schaltplan der 
BTM-400-Platine (Rayson-Platine für BTM-220, 
http://admin.datasoft.se/data/pdf/BTM-400%20Datasheet1.pdf) tatsächlich 
100N vorgesehen.

von N. Müller (Gast)


Lesenswert?

Thomas schrieb:
> Finde im Internet meistens 100N, aber auch den Tip, an PVCC min. 22uF
> vorzusehen

Der Kondensator an Vcc wird die typischen 100nF sein, die für jede 
Komponente/IC spendiert wird um Störungen zu vermeiden.
Die 22uF an PVCC sind wahrscheinlich um die Sendeleistung zu puffern.

Schätze ich jetzt einfach mal.

Seh es doch einfach vor...und od Du es später bestückst oder nicht muss 
Du dann halt noch rausfinden.

Grüße

von K. J. (Gast)


Lesenswert?

Hi ja soltest du machen das Modul zuppelt beim senden 60-80mA bei mir 
hat es immer gezikt ohne die 22µ.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

K. J. schrieb:
> Hi ja soltest du machen das Modul zuppelt beim senden 60-80mA bei mir
> hat es immer gezikt ohne die 22µ.

Bei mir zickt es nicht. Wichtig ist es, die Zuleitung vom 3V3 
Spannungsregler nicht zu lang und zu dünn zu machen. Die Spannungsregler 
haben bei mir immer 10µ Keramikpillen am Eingang und Ausgang. Auf dem 
Modul selbst sind noch zwei 100nF Kondensator (einer am BC04 und einer 
am FLASH), ich puffere aber beide Vcc-Leitungen auch auf der 
Hauptplatine mit 100nF.

von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Ok. Ich habe noch Probleme, das Modul in das Layout zu bekommen, ohne 
dass es sich an einer Ecke (gegenüber des Antennenpins) mit dem 
Haupt-SPI-Bus überlappt. Modul hinten, SPI-Bus vorne. Ist das Wurscht 
oder stört sich das gegenseitig?

von jabjab (Gast)


Lesenswert?

hallo , kann man jetzt btm222 mit mehreren slaves verbinden oder nicht?
bitte keine schlaumeier antworten wie hättest du den thread gelesen 
u.s.w. :D

von Michael H. (michael_h45)


Lesenswert?

hättest halt den thread gelesen...

von Michael E. (micde)


Lesenswert?

Thomas schrieb:
> Ok. Ich habe noch Probleme, das Modul in das Layout zu bekommen, ohne
> dass es sich an einer Ecke (gegenüber des Antennenpins) mit dem
> Haupt-SPI-Bus überlappt. Modul hinten, SPI-Bus vorne. Ist das Wurscht
> oder stört sich das gegenseitig?

Das HF Signal (~2,4GHz) der Antenne wird das NF-Signal (0-500KHz wenn im 
Wechsel 0-1 Übertragen würde) nicht signifikant beeinflussen.

Sonst wärs ja auch schlecht das in den Raum abzustrahlen :) Und dein 
Handy z.B. würde die SPI auch stören.

Allerdings wäre eine Massefläche unter der Antennenleitung auf der 
Platine mit möglichst vielen Durchkontaktierungen sicher hilfreich.

Wenn du eine PCB Antenne verwendest solltest du die Leitung auch so 
berechnen (mit Dicke, Breite der Leiterbahn, Platinenmaterial, Abstand 
zwischen Antenne und Masse, usw.) Ich glaube in dem Thread hier steht 
dazu auch noch einiges :)


Gruß

Michi

von Michael E. (micde)


Lesenswert?

jabjab schrieb:
> hallo , kann man jetzt btm222 mit mehreren slaves verbinden oder nicht?
> bitte keine schlaumeier antworten wie hättest du den thread gelesen
> u.s.w. :D

Kurze Antwort: JAEIN

Ich vermute mal, dass du meinst: mit mehreren Slaves gleichzeitig.

Dazu wäre die Antwort: Nein

Nur ein Slave gleichzeitig, kein Piconetz aufbaubar.


Knut Ballhause schrieb:
> K. J. schrieb:
>> Hi ja soltest du machen das Modul zuppelt beim senden 60-80mA bei mir
>> hat es immer gezikt ohne die 22µ.
>
> Bei mir zickt es nicht. Wichtig ist es, die Zuleitung vom 3V3
> Spannungsregler nicht zu lang und zu dünn zu machen. Die Spannungsregler
> haben bei mir immer 10µ Keramikpillen am Eingang und Ausgang. Auf dem
> Modul selbst sind noch zwei 100nF Kondensator (einer am BC04 und einer
> am FLASH), ich puffere aber beide Vcc-Leitungen auch auf der
> Hauptplatine mit 100nF.

Also ich hab nen 3,3V Schaltregler, einmal "Standardpufferung" (100u 
Elko und 1x 100n). Die Zuleitung ist nicht die kürzeste. Funktioniert 
aber alles bestens. Die 3,3V Leitung wird sonst aber auch nicht belastet 
im Moment. Wobei der Strom auch noch durch die Ausgangsspule am Regler 
geglättet wird.

von Benjamin (Gast)


Lesenswert?

Hallo Zusammen,

ich verwende zwei BTM-222 Module an zwei Arduino Boards. Ich kann 
verschiedenen AT-Befehle über die Sriele-Konsole an die BTM-Module 
versenden, welche auch erfolgreich ausgeführt werden. Dazu habe ich den 
folgenden Code verwendet:
1
 while (Serial.available()) {
2
    int inByte = Serial.read();
3
    Serial2.print(inByte, BYTE); 
4
    delay(100);
5
  }
6
  Serial2.print("\r");

Damit kann ich dann eine Verbindung zwischenen beiden Modulen mit ATF? 
und ATA1 herstellen.

Was bei mir nicht funktioniert ist der Wechsel zurück in den Command 
Modus. Ich möchte dazu die folgende Funktion verwenden:
1
void Test()
2
{
3
  Serial2.print("+++\r");
4
  delay(1200);
5
  Serial2.print("ATH\r");
6
}

Nach dem Aufruf der Funktion "Test()" auf der Master Seite, empfange ich 
auf der Slave Seite die folgenden Zeichen "+++ATH".

Kann sich einer erklären warum der Wechsel in den Command Modus nicht 
funktioniert.

Zusätzliche Infos:

Config Master (ATI1):

ATC=1, HARDWARE FLOW CONTROL
ATD=0000-00-000000, NEVER SET BLUETOOTH ADDRESS
ATE=0, NEVER ECHO CHARACTERS
ATG=1, ENABLE ALL PAGE AND INQUIRY SCAN
ATH=1, DISCOVERABLE
ATK=0, ONE STOP BIT
ATL=4, BAUD RATE is 57600
ATM=0, NONE PARITY_BIT
ATN=Fern1Arduino, LOCAL NAME
ATO=1, DISABLE AUTO CONNECTING
ATP=1234, PIN CODE
ATQ=0, SEND RESULT CODE
ATR=0, SPP MASTER ROLE
ATS=1, ENABLE AUTO-POWERDOWN OF RS232 DRIVER
ATX=1, ALWAYS CHECK '+++'

Config Slave (ATI1):

ATC=1, HARDWARE FLOW CONTROL
ATD=0000-00-000000, NEVER SET BLUETOOTH ADDRESS
ATE=0, NEVER ECHO CHARACTERS
ATG=1, ENABLATL=4, BAUD RATE is 57600
ATM=0, NONE PARITY_BIT
ATN=Truck2, LOCAL NAME
ATO=0, ENABLE  AUTO CONNECTING
ATP=1234, PIN CODE
ATQ=0, SEND RESULT CODE
ATX=1, ALWAYS CHECK '+++'

Die Module haben die Firmware 4.35.

Vielen Dank für die Unterstüzung.

Gruß

Benjamin

von Benjamin (Gast)


Lesenswert?

Hallo Zusammen,

habe die Ursache für mein Problem gefunden, es gab wohl Probleme das in 
der Main-Schleife bei jedem Durchlauf ein "\r" gesendet wurde. Nach der 
folgenden Code Anpassung wird "+++" vom BTM-222 korrekt ausgewertet.

Der geänderte Code in der Main-Schleife:
1
if(Serial.available())
2
 {
3
     while (Serial.available()) {
4
        int inByte = Serial.read();
5
        Serial2.print(inByte, BYTE); 
6
        delay(100);
7
      }
8
      Serial2.print("\r");
9
 }

Gruß

Benjamin

von sebastian (Gast)


Lesenswert?

Hier nochmal zusammengefasst, Tipps zum senken des Stromverbrauchs:

- Lowpower Modi steuert das Modul nur im Mastermodus, im Slavemodus
nimmt es normal 50mA auf und wenn du verbunden bist noch 30mA
- Du kannst das Modul sehr gut über den Reseteingang schlafenlegen, bist
dann aber auch nicht erreichbar.
- Es dauert nach Reset fast 2 Sekunden bis du verbinden kannst

Wenn du das Modul unsichtbar schaltest (discovery off) dann geht der
Stromverbrauch nochmal um knapp die Hälfte zurück (ca 30mA als Slave).
Zusätzlich ist mir aufgefallen, dass das Modul so wesentlich schneller
aus dem Reset kommt.

von Alex (Gast)


Lesenswert?

Hallo alle zusammen,

ich hab da ein problem mit dem btm 222 und vielleicht kennt das einer 
von euch und die ursache dafür:

also ich hab 2 bmts222 (bmt1 und btm2) hier rumliegen. wenn ich das bmt2 
anschalte (stromversorgung über arduino mini pro 3,3), wird es nicht von 
meinem usb dongle am pc erkannt. mach ich aber bmt1 an werden beide btms 
sofort erkannt und wollen sich mit meinen pc verbinden.wenn ich nur das 
bmt1 anschalte, wird das auch sofort vpm pc erkannt.
die frage ist, wieso ist das so und wo ist die ursache für dieses 
verhalten.

und eine 2 frage: ich kann meinen btm2 nicht mehr über uart (hterm) 
programmieren. keine reaktion auf befehle. hab ich die uart (tx, rx) 
zerschossen? habs direkt an einem ftdi-usb converter für das arduino 
mini pro 3,3v angeschlosssen gehabt.

danke schon mal im voraus

von Tobi L. (derarzt)


Lesenswert?

Kann einer mal alle AT befehle auflisten? weil das datenblatt das ich 
habe ist reudig und  die daten blätter beinhalten auch utnerschiedlich 
viel

dieses :
http://www.mikrocontroller.net/attachment/27481/btm222_datasheet.pdf
hat kein I

dieses :
http://mikrocontroller-praxis.de/media/files_public/twvpkqueqy/BTM222-DataSheet.pdf

dagegen schon.

ich habe KEINE Probleme das Modul unsichtbar zu schalten. Aber habe 
Probleme das Autoconnect ATO0 (AAAA TEEEEE   OOOOO NULL  )zum laufen zu 
bringen

von James (Gast)


Lesenswert?

Hallo,
Ich versuche, eine Verbindung zwischen zwei BTM-222 mit AT 
Command-Sequenzen zu tun. Aber ich habe einige probleme ...

Ich habe versucht, die folgenden Sequenzen:
1)
Um den Master schreibe ich ATR0 <CR>, warten 5s, ATO1 <CR>, 5s, ATF 
warten? <CR>, Warten Sie 65s -> Antwort: 1 Serial Adapter Suche zu 
beenden, ATA1 <CR>, 5s warten -> Antwort "Connected".
Für die Slave I ATR1 schreiben, 5s warten, und dann bin ich immer wieder 
sendet das Zeichen A.

2)
Um den Master schreibe ich ATR0 <CR>, ATO1 <CR>, ATD = Bluetooth-Adresse 
des Slaves <CR>, ATA <CR>, und ich erhalte die Meldung " Connected ".
Für die Slave I ATR1 schreiben, 5s warten, und dann bin ich immer wieder 
sendet das Zeichen A.

Das Problem ist, dass die Verwendung von Sequenz 1 oder 2 die Zeichen A 
nicht in der Master, (nicht im Hyperterminal gezeigt).

Ich denke dass ich tue einen Fehler auf der Slave-Sequenz ... Was soll 
das AT-Kommando-Sequenz an den Slave sein? Gibt es ein Problem in der 
Sequenz von dem Master?

Gruß,
James

von eagleeye (Gast)


Lesenswert?

Hi,
Ich bastel auch grade am btm 222b rum. und hab eine grundlegende Frage:
Hier ist immer von AT codes die rede wie z.B. AT<CR>. was soll das 
heißen?
Ich bin noch nie vorher mit einem Datenblat so schlecht zurechtgekommen 
wie mit diesem. Die UART verbindung funktioniert aber wie ich die 
befehle sende ist mir totl unklar. ich nehme mal an, dass die Buchstaben 
und Zeichen im ASCII Code übertragen werden sollen. Aber wenn ich z.B P? 
sende um den Pin anzuzeigen bekomme ich nur P? zurück. Ich komm echt 
nichtmehr weiter. egal was ich eingebe das modul liefert es nur 1:1 
zurück.
Ich hoffe jemand weis was ich da falsch mache.

Grüße
eagleeye

von Michael H. (michael_h45)


Lesenswert?

Hier gibts doch tausend Code-Schnipsel... Schau dir doch an, was die 
senden.

von eagleeye (Gast)


Lesenswert?

die meisten Codeschnippsel sind aber leider nur in C geschrieben.
ich erklär einfach mal was ich mach:
Zuerst wird der UART vom Chip eingestellt. dann setze ich das Modul 
zurück und warte 5 Sekunden.
Dann sende ich per UART einzeln die Zeichen "A" "T" "P" und "?" und 
frage dann ab ob per UART was ankommt und zeige diese Zeichen dann auf 
dem LCD an. und es steht immer da ATP?. Geht das so überhaupt oder fehlt 
da was Grundlegendes?

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Um ehrlich zu sein verstehe ich nicht ganz, wo dein Problem ist. Bevor 
du das Modul an einen Mikrocontroller hängst, würde ich es einfach 
einmal über einen RS232- oder USB-UART-Interface an den PC hängen und 
mit einem Terminal-Programm arbeiten. Damit kann man wesentlich 
schneller alle Befehle ausprobieren als per Mikrocontroller und weniger 
Fehler schleichen sich ebenso ein.

von eagleeye (Gast)


Lesenswert?

und was soll dieses <CR> bedeuten? was uss ich da senden?

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

eagleeye schrieb:
> und was soll dieses <CR> bedeuten? was uss ich da senden?

"Carriage Return", markiert das Zeilenende. Kann man bei vielen 
Terminal-Programmen einstellen oder auch separat senden. Ich empfehle 
HTerm.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

eagleeye schrieb:
> und was soll dieses <CR> bedeuten? was uss ich da senden?

Dezimal 13 oder Hex 0x0D.

von eagleeye (Gast)


Lesenswert?

Mein Controller macht jetzt das:

        ldi ref,'A'
  rcall UART_SEND
  ldi ref,'T'
  rcall UART_SEND
  ldi ref,'P'
  rcall UART_SEND
  ldi ref,'?'
  rcall UART_SEND
  ldi ref,13
  rcall UART_SEND

Er sendet also 65, 84, 80, 63, 13.

Als Antwort erwarte ich 1234. aber es kommt AT und ein komisches Zeichen 
zurück.

Es sollte aber jetzt alles richtig sein oder?

von Daniel R. (anut_peach)


Lesenswert?

ich hätte auch eine frage an die btm222 profis:
ich hab mein modul am notebook mit terminalprogram hängen und möchte 
gerne mein handy mit at-commands steuern.
ich kann im terminal schön das btm222 konfigurieren, und finde auch das 
handy. paaren geht auch!
so, jetzt sind die beiden gepaart, aber es steht irgendwie keine 
verbindung!?
wenn ich per terminal was eingebe gehts wieder nur bis zum btm222.
wenn ich am handy eine terminal-app aufmache (sena blueterm), dann kann 
ich da eine verbindung herstellen und zeichen rüber schicken.
was muss ich machen, damit ich dem handy einen gsm-at befehl schicken 
kann, zb. zum wählen einer nummer?
danke!

von Michael H. (michael_h45)


Lesenswert?

Daniel R. schrieb:
> was muss ich machen, damit ich dem handy einen gsm-at befehl schicken
> kann, zb. zum wählen einer nummer?
geht nicht.

kein aktuelles handy kann man über eine serielle verbindung steuern.
schon gar nicht über eine bluetooth spp. und schon gar kein smartphone.

hol dir einen ssh- oder vnc-server. dafür musst du dein handy aber 
rooten.

von Daniel R. (anut_peach)


Lesenswert?

also es ist ein sgs2 mit android als kleine ergänzung.
grundsätzlich hab ich das steuern per at-command schon vom pc aus 
geschafft (über einen usb-BT adapter).
warum soll das gleiche dann nicht auch über einen btm222 gehen!?

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Daniel R. schrieb:
> also es ist ein sgs2 mit android als kleine ergänzung.
> grundsätzlich hab ich das steuern per at-command schon vom pc aus
> geschafft (über einen usb-BT adapter).
> warum soll das gleiche dann nicht auch über einen btm222 gehen!?

Dann solltest du herausbekommen, über welches Bluetooth-Profil dies 
realisiert wurde. Von Haus aus spricht das BTM222 nur SPP.

von Michael H. (michael_h45)


Lesenswert?

Daniel R. schrieb:
> grundsätzlich hab ich das steuern per at-command schon vom pc aus
> geschafft (über einen usb-BT adapter).

aber sicher nicht über spp.

von Daniel R. (anut_peach)


Lesenswert?

dh ich brauch ein anderes modul!?
kennt da zufällig jemand eins?
wie arbeiten denn die ganzen BT-headsets oder BT-autoradios?

von Michael H. (michael_h45)


Lesenswert?

Daniel R. schrieb:
> wie arbeiten denn die ganzen BT-headsets oder BT-autoradios?
http://de.wikipedia.org/wiki/Bluetooth
=)

von Daniel R. (anut_peach)


Lesenswert?

ah, wird schon ein wenig klarer..
https://www.bluetooth.org/Technical/Specifications/adopted.htm
hier gibts eine übersicht der profile - nun nur noch das richtige finden 
:o)

von Daniel R. (anut_peach)


Lesenswert?

ich hätte noch eine frage. ich kenne mich mit dem zeug noch nicht so gut 
aus, und bin daher unsicher, ob das funktioniert wie erwartet.

ich habe ein bluetooth-modul von roving gefunden.
http://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf
auf seite 19: ... DUN profile is to enable a BT client to connect to a 
dialup modem
das modul unterstützt nicht nur die SPP schnittstelle.

müsste es damit klappen, dass ich per uC (uart) über das BT-Modul die 
AT-commands raus schicke, um einen anruf mit dem smartphone zu tätigen?
danke für eure hilfe.

von Timmo H. (masterfx)


Lesenswert?

Vielleicht auch ganz interessant: Eine OpenSource Alternativ-Firmware 
für BlueCore4-basierende Bluetooth Module: 
http://pfalcon-oe.blogspot.de/2012/04/opensource-sensor-node-firmware-for.html

von Schnuck (Gast)


Lesenswert?

Nabend zusammen,

Ich habe eine Frage:

was passiert, wenn im Datenstrom vom µC zum BTM222 zufällig mal "+++" in 
Folge kommt, Dann geht das BTM-222 ja ungewollt in den Command-Modus.

Wie kann ich verhindern, dass nach drei "+" dies passiert? Muss ich 
immer selbst dafür sorgen, dass im Datenstrom diese drei Bytes niemals 
hintereinander vorkommen?

von Tiramisu (Gast)


Lesenswert?

>was passiert, wenn im Datenstrom vom µC zum BTM222 zufällig mal "+++" in
>Folge kommt, Dann geht das BTM-222 ja ungewollt in den Command-Modus.

Soweit ich mich erinnere war das in Modemzeiten:
- CR oder CR/LF
- 3 Sekunden warten
- drei "+++"

Auf dieses "time guard interval" gab es sogar ein Patent
von Hayes (in den 80er der TOP-Modemhersteller). Das Verfahren
sollte auch im BTM222 drinne sein.

von Schnuck (Gast)


Lesenswert?

Tiramisu schrieb:
>>was passiert, wenn im Datenstrom vom µC zum BTM222 zufällig mal "+++" in
>>Folge kommt, Dann geht das BTM-222 ja ungewollt in den Command-Modus.
>
> Soweit ich mich erinnere war das in Modemzeiten:
> - CR oder CR/LF
> - 3 Sekunden warten
> - drei "+++"
>
> Auf dieses "time guard interval" gab es sogar ein Patent
> von Hayes (in den 80er der TOP-Modemhersteller). Das Verfahren
> sollte auch im BTM222 drinne sein.

Danke für den Hinweis.

habs grade mal getestet. Wenn ich besagte Sekunden vor dem Senden der 
"+++" nichts gesendet habe, so geht das Modul in den Command-Modus. 
Dabei spielt es keine Rolle was vorher gesendet wurde, hauptsache die 
Pause ist da.

also muss ich im Datenstrom darauf achten, dass vor den "+++" innerhalb 
einer gewissen zeit irgendein anderes Zeichen gesendet wurde. Hierbei 
spielen die Zeichen die nach den "+++" kommen keine Rolle. Das Modul 
geht immer in den Command-Modus, wenn irgendwo im Datenstrom vor den 
"+++" eine Pause auftritt.

Muss man also drauf achten.

von Schnuck (Gast)


Lesenswert?

achso dann habe ich noch eine Frage: Wenn ich in den Command-Modus 
gesprungen bin, wie komme ich dann wieder zurück in den Daten-Modus?

von Thomas R. (Gast)


Lesenswert?

Indem du dafür sorgst, dass sich das Modul wieder connectet.

von Schnuck (Gast)


Lesenswert?

An alle die es interessiert:

mit ATX0 (steht nicht im Datenblatt) kann die escape Sequenz deaktiviert 
werden. Somit kann nun durch zufälliges "+++" im Datenstrom nichts mehr 
passieren!

Gruß
Schnuck

von Schnuck (Gast)


Lesenswert?

Thomas R. schrieb:
> Indem du dafür sorgst, dass sich das Modul wieder connectet.

habe nun den Befehl gefunden (der leider auch nicht im Datenblatt 
steht):

ATO – Switch from command mode to data mode (valid only when connected)

von Benjamin W. (beno86)


Angehängte Dateien:

Lesenswert?

Hallo

Habe mich auch mal auf die Spuren des kabellosen programmierene gewagt, 
nun habe ich das Problem das sich mein BTM-222 nicht konfigurieren 
lässt, ich habe mal meine Datei angehängt wie ich es mittels 
Mikrocontroller angeschlossen habe, die Spannung von RX und TX habe ich 
mittels Spannungsteiler probiert anzupassen, mit der Status LED schaue 
ich ob eine Verbindung besteht die blinkt dauernd. Vielleicht könnte mir 
ja wer weiterhelfen, ob ich nicht einen kompletten blödsinn aufgebaut 
habe.

Mit freundlichen Grüßen

beno

von Holger W. (holgerw)


Lesenswert?

Wenn dein µC mit 5V versorgt wird dann funktioniert der Spannungsteiler 
nur für den Ausgang des µC. Für die andere Richtung brauchst du einen 
Levelshifter von 3,3 auf 5V.
Dazu gibt es versch. Schaltungen, google mal danach.
Am besten beide mit 3,3V versorgen, das bringt die wenigsten Probleme.

Holger

von Benjamin W. (beno86)


Lesenswert?

Danke für deine schnelle Antwort werde mal danach schauen weißt du ob 
ich dann ganz normal mit einem Hyperterminal die kommunikation versuchen 
kann.

von Holger W. (holgerw)


Lesenswert?

Nein, der PC hat noch andere Pegel, dort brauchst du auf jeden Fall eine 
Anpassung !

von Vn N. (wefwef_s)


Lesenswert?

Schnuck schrieb:
> Danke für den Hinweis.
>
> habs grade mal getestet. Wenn ich besagte Sekunden vor dem Senden der
> "+++" nichts gesendet habe, so geht das Modul in den Command-Modus.
> Dabei spielt es keine Rolle was vorher gesendet wurde, hauptsache die
> Pause ist da.
>
> also muss ich im Datenstrom darauf achten, dass vor den "+++" innerhalb
> einer gewissen zeit irgendein anderes Zeichen gesendet wurde. Hierbei
> spielen die Zeichen die nach den "+++" kommen keine Rolle. Das Modul
> geht immer in den Command-Modus, wenn irgendwo im Datenstrom vor den
> "+++" eine Pause auftritt.
>
> Muss man also drauf achten.

Am einfachten ist es, dafür zu sorgen, dass "+++" nicht vorkommt, indem 
du z.B. vor jedem '+', das gesendet wird, ein Escapezeichen einfügst 
(der Empfänger muss dieses natürlich erkennen und entfernen). Aus "+++" 
im Nutzdatenstrom wird z.B. "\+\+\+". DEr Empfänger ersetzt "\+" dann 
wieder durch '+'.

von Benjamin W. (beno86)


Lesenswert?

Ich habe zur Kontrolle ob eine Verbindung besteht eine LED auf Pin 13 
gehängt wen es erkannt wurde blinkt die LED sehr schnell, jetzt habe ich 
aber das Problem das LED langsemer blinkt und der Computer mein BTM-222 
Modul nicht mehr kennt, ist es nun defekt oder habe ich da ein anderes 
Problem.

Mit freundlichen Grüßen

beno

von Holger W. (holgerw)


Lesenswert?

Hast du denn schon AT Befehle gesendet oder noch nicht ?
Handy hat meines gefunden "serial adapter" und konnte sich verbinden.
Es blinkte aber weiter, erst die Umschlatung auf Autoconnect/Master im 
BTM ließ eine richtige Verbindung zu und die LED leuchtet dauerhaft.

Holger

von Benjamin W. (beno86)


Lesenswert?

ich hatte vorher noch mein Bluetooth Modul gesehen habe es dann 
verbunden musst den PIN Code eingeben und wie ich es dann abgehängt 
hatte und nachher wieder weiter arbeiten wollte fand der Computer die 
Bluetooth Schnittstelle nicht mehr. Soweit das ich AT Befehle eingeben 
kann bin ich auch noch nicht gekommen, weil es leider noch nicht so 
funktioniert wie ich es mir Vorstelle

beno

von Holger W. (holgerw)


Lesenswert?

Versuch mal mit Handy, Computer sind manchmal eigensinnig ....

von Benjamin W. (beno86)


Lesenswert?

Ich habe es dann mit einem zweiten BTM probiert das hat er wieder 
gefunden nur das mit der Konfiguaration bekomme ich einfach nicht hin

von Holger W. (holgerw)


Lesenswert?

Hast du denn jetzt einen µC /PC direkt am Modul ?
Von dort aus kannst du es konfigurieren, über Bluetooth wird das nicht 
funktionieren.

Holger

von Benjamin W. (beno86)


Lesenswert?

Ich wollte es eigentlich mit meinem Arduino Port konfigurieren komme 
aber nicht so richtig hin, es geht ja nur über die Serielle 
Schnittstelle oder

von Holger W. (holgerw)


Lesenswert?

So ist das. Aber du musst das auf diesen Weg lösen, wie willst du sonst 
eine Verbindung hinbekommen oder Daten übertragen ?

von Benjamin W. (beno86)


Lesenswert?

Mit einem USB zu Serial Wandler werde ich es versuchen, kann es 
vielleicht sein das ich es dann über das Terminal noch finde wen es mein 
Bluetooth Stick nicht erkennt. Ich hoffe ich gehe dir nicht auf die 
Nerven mit meinen Fragen

von Holger W. (holgerw)


Lesenswert?

Immer an den Levelshifter denken. Mehr als 3,3 V killen das Modul !

von Benjamin W. (beno86)


Lesenswert?

Den was ich da habe ist das FTDI Basic Breakout 3,3V das müsste doch 
auch funktionieren ohne das ich dann einen Levelshifter brauch oder

von Holger W. (holgerw)


Lesenswert?

Das kenne ich nicht.

von Benjamin W. (beno86)


Lesenswert?

Ich werde es morgen mal Versuchen danke für deine Hilfe erstamla. Wünsch 
dir noch einen schönen Abend.

von Benjamin W. (beno86)


Lesenswert?

Jetzt kann ich schon mal mit dem Gerät kommunizieren aber er erkennt es 
nicht mehr als Bluetooth Gerät in seiner Umgebung kann es vielleicht 
sein das irgendwas zerstört ist?

von Benjamin W. (beno86)


Lesenswert?

Endlich habe ich es hinbekommen. Eine Frage habe ich nun noch kann ich 
dann ganz normal Daten von einem BTM-222 Modul welches am 
Mikrocontroller angeschlossen ist auf deem PC oder auf einen 
Mikrocontroller übertragen.

von wusel (Gast)


Lesenswert?

> Endlich habe ich es hinbekommen. Eine Frage habe ich nun noch kann ich
> dann ganz normal Daten von einem BTM-222 Modul welches am
> Mikrocontroller angeschlossen ist auf deem PC oder auf einen
> Mikrocontroller übertragen.

Selbstverständlich :-) Dein PC legt nach Verbindung eine virtuelle 
COM-Schnittstelle an (also diese RS232 Schnittstellen) die du dann z.B 
per Terminalprogramm öffnen u. ansprechen kannst.

von Benjamin W. (beno86)


Lesenswert?

Super danke für die schnelle Antwort freue mich voll das ich es nach 
langen Stunden endlich geschaftt habe.

von Benjamin W. (beno86)


Lesenswert?

Hallo habe wieder mal eine Frage wegen der Übertragung vom 
Mikrocontroller zu einem Hyperterminal. Habe das BTM als Slave 
konfiguriert und will jetzt die Daten auf ein Hyperterminal übertragen 
habe die Baudraten schon kontrolliert die sind richtig aber jetzt kommen 
nur so komische Zeichen an und nicht das was ich eigentlich senden will. 
Hat jemand vielleicht eine Ahnung

Vielen Dank

von Michael H. (michael_h45)


Lesenswert?

zeile 42 vom code.
zeile 23 von den daten.

von Benjamin W. (beno86)


Lesenswert?

Ich weiß leider nicht was du meinst

von Tim (Gast)


Lesenswert?

Hallo,


wenn ich einen Befehl an den BTM222 sende (über seinen RX Eingang) wird 
das gleiche Signal vom BTM222 wieder zurückgesendet.

Am Scope kann ich erkennen, dass es wirklich eine Antwort vom BTM222 
ist, und kein Kurzschluss zwischen RX und TX des FT232.

Nach Absenden des Befehls antwortet das Modul etwas 6 ms später mit dem 
ersten Zeichen, während die letzten Zeichen nach insgesamt etwa 30 ms 
verschickt werden.

Leider lässt sich das Modul auch nicht in den Befehlsmodus wechseln. Es 
wird alles zurückgespiegelt, was ich sende. Es hilft weder '+++', noch 
'AT+++'.

Kann mir jemand erklären wie das sein kann? Bei Datenraten ungleich 
19200 bps können die empfangenen Daten am FT232 auch nicht interpretiert 
werden. Aber wieso wechselt er nicht in den Befehlsmodus?


Vielen Dank im Voraus!

von Michael H. (michael_h45)


Lesenswert?

Tim schrieb:
> Kann mir jemand erklären wie das sein kann?

das datenblatt.

von Tim (Gast)


Lesenswert?

Nein. Im Datenblatt steht, dass das Modul beim +++ Befehl in den 
Befehlsmodus wechselt und das tut es nicht. Deine Antwort war 
überflüssig.

von Michael H. (michael_h45)


Lesenswert?

Tim schrieb:
> Nein

dochdoch.

von Tim (Gast)


Lesenswert?

Hast du dir das Datenblatt überhaupt mal angesehen oder sagst du einfach 
nur pauschal dass das Datenblatt hilft?

Das Modul macht nicht das, was im Datenblatt steht. Da ist ein "guck ins 
Datenblatt" nunmal nicht hilfreich.


Da müsstest du mir schon ne nähere Info geben.

von Tim (Gast)


Lesenswert?

Okay, hab's gecheckt.

Die 13 hat als letztes Zeichen gefehlt. Modul ist jetzt im 
Kommandomodus.

Trotzdem danke!

von Michael H. (michael_h45)


Lesenswert?

Tim schrieb im Beitrag #3359726
> Die 13 hat als letztes Zeichen gefehlt.
wo stand das denn? ^^

hättest du wenigstens geschrieben, was du genau geschickt hast, hätte 
man dir helfen können. aber einfach "geht nicht so" zu schreiben, ist 
einfach unklug...

von Tim (Gast)


Lesenswert?

Ich denke schon, dass ich die "Symptome" ausreichend beschrieben habe.

Ich habe geschrieben, dass ich '+++' und 'AT+++' gesendet habe. ;-)

Beides wurde gespiegelt. Logische Abhilfe => es fehlt die binäre 13.

Und dies ist darüber hinaus NICHT im Datenblatt zu finden. Zumindest 
nicht in diesem: 
http://www.mikrocontroller.net/wikifiles/f/fc/BTM222_DataSheet.pdf

von Tim (Gast)


Lesenswert?

Hallo nochmal,

ich scheitere jetzt leider an einer Verbindung zwischen meinem Motorola 
Defy Plus und dem BTM222.

Das Modul wird in den Bluetooth-Einstellungen gefunden. Wenn ich mich 
mit dem Modul verbinden möchte, erscheint nach der Eingabe der PIN unter 
dem gefundenen Bluetooth-Gerät: "Gepaart, jedoch nicht verbunden"

Ich habe folgendes probiert:

- Smartphone "sichtbar" schalten

- Smartphone und BTM222 neustarten

- BTM222 in Slave / Mastermodus gesetzt


Im Mastermodus werden Geräte aus der Nachbarschaft gefunden, jedoch 
nicht mein Smartphone.

Ich habe auch schon überlegt, ob sich die Profile nicht vertragen. Das 
BTM222 kann ja angeblich folgende Profile:  SPP,HSP/HFP,HID,HC.

Wenn ich mir Informationen mit ATI1 anzeigen lasse, wird unter anderem 
folgendes ausgegeben: "ATR=1, SPP SLAVE ROLE"

Das Modul scheint also defaultmäßig das SPP Profil zu verwenden, welches 
vom Defy Plus auch nach Datenblatt unterstützt wird.


Hat jemand vielleicht noch eine Idee, warum keine Verbindung aufgebaut 
werden kann? Vielen Dank!

PS: Die Firmwareversion ist 6.26

von Florian (Gast)


Lesenswert?

Wenn Du vom Smartphone auf den BTM zugreifen willst, brauchst Du am BTM 
rein gar nichts einstellen. Einfach mit Spannung versorgen und per BT 
werden die seriellen Daten am BTM übertragen.

von Tim (Gast)


Lesenswert?

Hallo Florian,

danke für deine Antwort!

Dann wird es wohl an meinem Smartphone liegen. Werd' es mal mit nem 
anderen probieren.

Danke nochmal!

von Tim (Gast)


Lesenswert?

Hallo nochmal,

ich habe es jetzt mal mit einem anderen Smartphone ausprobiert (Nexus 5) 
und das Problem ist immernoch dasselbe. "Gepaart, jedoch nicht 
verbunden".


Mit einem Bluetooth Dongle funktioniert die Verbindung komplett. Daten 
können von beiden Seiten aus versendet werden und kommen an der anderen 
Seite an.

Das Problem hat doch bestimmt was mit diesem SSP Profil zu tun oder?

Hat jemand eine Idee was ich tun kann? Bei vielen Leuten scheint eine 
Verbindung zwischen Smartphone und BTM222 ja ohne Probleme zu 
funktionieren.

von Tim (Gast)


Lesenswert?

Okay, anscheinend ist es normal, dass das Smartphone mit dem BTM222 
nicht verbunden ist.

Mit der Bluetooth Chat App von Google kann ich in beide Richtungen 
senden und empfangen, obwohl das Smartphone mit dem BTM222 offiziell 
nicht verbunden ist.

von A. B. (brewnera)


Lesenswert?

Hallo Leute,

ich bin auf der Suche nach einem Bluetooth-Modul, das mir Daten von 
einem ADC über SPI an den PC sendet. Der ADC (ADS1299) hat eine 
SPI-Schnittstelle, an die ich eben gerne direkt ein Bluetoothmodul 
anbinden möchte.
Ich habe schon in einigen Threads (inkl. diesem hier) gelesen, dass SPI 
nur für Firmwareupdates genutzt werden kann. Ist das nach wie vor so 
oder gibt es schon eine neue Firmware, mit der man Daten an das BTM222 
über SPI senden kann?
Falls nicht könnte man natürlich einen µC als Interface zwischen SPI und 
UART verwenden. Aber gibt's da vielleicht eine elegantere Lösung?

LG Andi

von Ekkehard L. (ekr)


Lesenswert?

(Gelöscht und neues Topic erstellt, habe die entsprechende 
Forums-Meldung erst zu spät gesehen, sorry ;) ).

: Bearbeitet durch User
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.