Datum:
Angehängte Dateien: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
Datum:
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
Datum:
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
Datum:
Nein. Ich habe zunächst auch alles außer den Versorgungspins, der Antenne sowie RX und TX freigelassen.
Datum:
Kann mir Dummie jemand sagen welche Antenne für dieses Modul geeignet ist bzw. wie man eine solche selbster baut. Danke Jogi
Datum:
Einfach ein Stück Draht oder Litze dranlöten, Länge Lamda/4 (also etwa 31mm für Bluetooth (2,45GHz)).
Datum:
Kurzer Nachtrag: Sehr schöne Chip-Antennen gibt es bei Farnell, sind nur 2x3mm² groß, aber leider auch 3€ teuer.
Datum:
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
Datum:
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?
Datum:
ja wird gefunden mit Antenne und Spannungsversorgung! PVCC = VCC = 3.3V viele GND weil HF und deshalb Masse wichtig ... ein Anschluss sollte reichen
Datum:
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 :-)
Datum:
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.
Datum:
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!
Datum:
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)
Datum:
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.
Datum:
Angehängte Dateien: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?
Datum:
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.
Datum:
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?)...
Datum:
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.
Datum:
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 :-)
Datum:
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.
Datum:
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...
Datum:
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.
Datum:
"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?
Datum:
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.
Datum:
Mal ´ne ganz dumme Frage an Boris: Mit welcher Spannung läuft Dein BTM und mit welcher der Controller?
Datum:
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...
Datum:
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.
Datum:
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?
Datum:
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.
Datum:
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?
Datum:
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.
Datum:
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
Datum:
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.
Datum:
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.
Datum:
Meine drei Module schon... Komisch. Ohne den Befehl funktionieren sie auch nciht. Aber der Hersteller ist eigentlich recht hilfsbereit.
Datum:
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...
Datum:
Angehängte Dateien:"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.)
Datum:
UBRRH = (unsigned char)(baud>>8); UBRRL = (unsigned char)baud; |
Ne, das ist jetzt wirklich nicht dein Ernst? Und das hier erst:
USART_Transmit('0x0D'); |
Datum:
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.
Datum:
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
Datum:
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-Tu...
Datum:
@ 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!
Datum:
Pegelwandler! Ich sach nur Pegelwandler. Dann geht auch das LCD wieder. Toll, daß das BTM jetzt antwortet.
Datum:
^^ 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...
Datum:
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
Datum:
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.
Datum:
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.
Datum:
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.
Datum:
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
Datum:
Hi TravelRec, könntest du mir diese Kommandos bitte mailen ? Gruß Hagen
Datum:
Angehängte Dateien:Yep. Das ist die Beschreibung für ein Dongle, soll aber auch für die einzelnen Module zutreffen.
Datum:
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 :-)
Datum:
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...
Datum:
@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
Datum:
Danke für die Infos Hagen, ich denke mal, das BTM112 haben wir jetzt im Griff :-) Gute Nacht dann mal. Heute ist wieder Arbeit.
Datum:
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
Datum:
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"? ;-)
Datum:
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 ;-)
Datum:
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
Datum:
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
Datum:
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.
Datum:
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
Datum:
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.
Datum:
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...
Datum:
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.
Datum:
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 :-(
Datum:
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.
Datum:
Angehängte Dateien: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ß.
Datum:
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.
Datum:
hmm ok danke dann war das wohl eine Fehlinvestition so gut kenne ich mich damit nun auch nicht aus um einen stack zu programmieren.
Datum:
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
Datum:
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
Datum:
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
Datum:
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?
Datum:
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
Datum:
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.
Datum:
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?
Datum:
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?
Datum:
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.
Datum:
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?
Datum:
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.
Datum:
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
Datum:
>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?
Datum:
>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?
Datum:
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?)?
Datum:
Hallo, kann man mit dem BTM-112 oder BTM-222 auch ein Piconet aufbauen? Wenn ja wie ? ;) Grüße & Danke!
Datum:
> 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.
Datum:
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?
Datum:
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.
Datum:
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.
Datum:
Nein, habe ich nicht. Allerdings habe ich da auch schon länger nicht mehr daran gearbeitet, ich brauchte auch nur den Slave-Modus.
Datum:
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.
Datum:
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
Datum:
Hallo, hier ein Terminal für den PDA zum testen: http://www.appliedpda.com/Products_PocketDAQ.html mfg
Datum:
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
Datum:
Was ist eigentlich der Unterschied vom Bluetooth-Modul BTM333 zu BTM112/222? BTM112: Class2, 10m BTM222: Class1 100m BTM333 ?
Datum:
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).
Datum:
Bluetooth Stack heist damit: Man kann damit keine einfache serielle Verbindung wie mit dem BTM 112 aufbauen? Also kein SPP-Profil?
Datum:
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.
Datum:
>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.
Datum:
Ach ähem, der BT-Chip vom BTMxxx ist ein BlueCore4 von CSR, und somit leistungsfähiger, als der von National.
Datum:
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.
Datum:
Ist man bei den Modulen mit integrierten SPP-Profil eigentlich auf dieses festgelegt, oder hat man alternativ auch das HCI-Interface?
Datum:
>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.
Datum:
na hat mal jemand weitergebastelt? ich hab die btm´s grad mal wieder aus nem verstaubten karton geholt ...
Datum:
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.
Datum:
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?
Datum:
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)
Datum:
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€.
Datum:
Angehängte Dateien: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
Datum:
>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/BT...
Datum:
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/BT... 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 ;)
Datum:
>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)?
Datum:
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
Datum:
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
Datum:
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
Datum:
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
Datum:
Ich schicke ein Kommado hin, das wird mit einem OK bestätigt. Wenn ich dann ein zweites Kommando schicke kommt ein ERROR.
Datum:
Gut, 0x0D ist richtig. 0x0A ist überflüssig und könnte den Fehler provozieren.
Datum:
Danke. Es funktioniert mit 0x0D. 0x0A könnte den Fehler verursacht haben.
Datum:
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
Datum:
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
Datum:
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
Datum:
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
Datum:
bin gerade dabei einen max ranzutüdeln um vom rechner aus ein paar einstellungen zu probieren.bis später
Datum:
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
Datum:
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
Datum:
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... http://roombahacking.com/software/midlet/mobilepro... 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/d... 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!
Datum:
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.
Datum:
@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...
Datum:
@ Florian konnte den Code gerade 1:1 auf einem Nokia 5300 ausprobieren, hat ohne Probleme sofort geklappt.
Datum:
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.
Datum:
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.
Datum:
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.
Datum:
Du könntest mal versuchen, dich manuell zu verbinden - ganz ohne Discovery etc. Einfach ein Streamconnection-Objekt holen, so ähnlich:
StreamConnection con = null;
OutputStream out = null;
InputStream in = null;
String url =
"btspp://0123456789AF:1;master=false;encrypt=false;authenticate=false"
try {
con =
(StreamConnection)Connector.open(url,Connector.READ_WRITE);
out =
connection.openOutputStream();
in =
connection.openInputStream();
} catch (Exception e) {
//Hier bspw. e.getMessage() ausgeben
return;
}
|
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;
Datum:
@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:
try {
con =
(StreamConnection)Connector.open(url,Connector.READ_WRITE);
out =
connection.openOutputStream();
in =
connection.openInputStream();
|
muss heissen:
try {
con =
(StreamConnection)Connector.open(url,Connector.READ_WRITE);
out =
con.openOutputStream();
in =
con.openInputStream();
|
Das obere habe ich in den setup block eingebettet, zum beenden habe ich dann noch MobProc mäßig
void destroy() { //// try { con.close(); } catch (Exception e) { text(e.getMessage(), 2, 60, width-4, height-4); return; } } |
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.
Datum:
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 .. ;)
Datum:
Angehängte Dateien:@ 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:
int inlen = in.available(); // check buffer size int skipper=0; // The Buffer has sometimes to be shortened // to get a "smooth" reading. The BT sends // bulks of data. Otherwise we may get // an overflow sometimes? if (inlen > 2000) { // skipbytes is an adjustment you can change with UP or DOWN key skipper += inlen/100 + skipbytes; } 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.
Datum:
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.
Datum:
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.
Datum:
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?
Datum:
Hallo! Ich vermute du bist im Slavemodus.... Schalte mal auf Master ATR0, erst dann kann man das Ding konfigurieren. Grüße Fasti
Datum:
ERROR :-( Ich bekomme übrigens immer das erste von mir geschickte Zeichen ebenfalls zurück geschickt: -> atr0 <- a<\r><\n>ERROR<\r><\n>
Datum:
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
Datum:
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.
Datum:
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.
Datum:
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
Datum:
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.
Datum:
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.
Datum:
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.
Datum:
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.
Datum:
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
Datum:
@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
Datum:
Ja es lang an was anderem. Habe nun bein BTM112 und BTM222 erfolgreich verbunden. Danke trotzdem. Gruß Micha
Datum:
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?
Datum:
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.
Datum:
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 +++ ;-)
Datum:
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
Datum:
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.
Datum:
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/U... 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.
Datum:
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
Datum:
> 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.
Datum:
> 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.
Datum:
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
Datum:
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.
Datum:
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
Datum:
>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.
Datum:
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.
Datum:
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.
Datum:
Desweiteren wäre es sehr wichtig für mich zu Wissen ob das Modul auch ohne Handshake funktionieren würde.
Datum:
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.
Datum:
Wie schnell ist die Datenbübertragung über solche Blue-Tooth-Module denn in der Realität?
Datum:
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
Datum:
>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?
Datum:
Jop 3,3V wurden verwendet. Wie gesagt das Funktionierte auch bis zur Eingabe des Befehls....
Datum:
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
Datum:
Hallo, hat jemand für mich die E-Mail-Adresse vom Hersteller-Support? Danke, Gruß, mach3
Datum:
Frag nach Mr. Tim Lin: tim@rayson.com Dein o.g. Problem läßt sich allerdings mit obigen Beiträgen lösen.
Datum:
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 :)
Datum:
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?
Datum:
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.
Datum:
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
Datum:
Wenn Dein Handy den ankommenden Anruf als Signal über BlueTooth weiterreichen kann, dann ja. Sonst nein.
Datum:
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 ...
Datum:
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
Datum:
Hi, Ich hab im standby der automatisch ist 51mA im betrieb zupelt es ganze 80mA.
Datum:
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
Datum:
Hallo! Muss ich das Modul eigentlich nach jedem einschalten von neuem konfigurieren, oder bleiben die einmal gemachten Einstelungen gespeichert? MfG
Datum:
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.
Datum:
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 ...
Datum:
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
Datum:
also wenn du verbunden bist geht der stromverbrauch doch enorm zurück soweit ich weiß ...
Datum:
kann das btm-222 an einem µC mit 3.3v direkt betrieben werden, dh ohne irgendwelcher wandler oä ? +----+ TTL3.3 +-------+ | uC |----------| BT222 | +----+ +-------+
Datum:
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.
Datum:
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/prei... 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
Datum:
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)?
Datum:
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
Datum:
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/2... 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
Datum:
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
Datum:
Angehängte Dateien: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.
Datum:
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.
Datum:
Hi als meins findet noch das Handy von meinen Nachbarn 2 Stockwerke tiefer :P ca. 11m und zwei Decken zwischen
Datum:
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.
Datum:
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?
Datum:
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
Datum:
Was bedeutet es eigentlich wenn die Status-Led nicht 2x pro Sekunde blinkt sondern etwa doppelt bis dreimal so schnell?
Datum:
Danke max, der serielle BT-Anschluss am Laptop darf keine sichere Verbindung verlangen.
Datum:
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 *
Datum:
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.
Datum:
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/61251... Grüße, Marco
Datum:
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.
Datum:
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.
Datum:
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
Datum:
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.
Datum:
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
Datum:
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.
Datum:
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.
Datum:
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.
Datum:
jo, hab nur 20 module. werd mal beobachten ob die ältere firmware was ausmacht.
Datum:
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
Datum:
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.
Datum:
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
Datum:
Nein, beim BTM222 muß RESET im Normalbetrieb "High" sein. @vogel: Poste mal bitte einen genauen Schaltplan.
Datum:
Angehängte Dateien: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
Datum:
Angehängte Dateien: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
Datum:
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
Datum:
beim BTM-222 verbindet die platte doch schon alle GND's- hier muss nur mehr ein GND pin wirklich angeschlossen werden ?
Datum:
JA, unbedingt, da es hier um HF geht und man eine Masse Anbindung haben muss, die so gut wie nur möglich ist.
Datum:
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.
Datum:
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 ?
Datum:
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:
Version A: PIN9 Button-Input, PINs 11, 13 & 14 Status-LED's Version B: PIN 3 SleepClockInput 32kHz; PIN 9 BT_Priority/Ch_Clk output for co-existence signalling; PIN 11 BT_Active output for co-existence signalling; und PIN 12 WLAN_Active/Ch_Data input 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
Datum:
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
Datum:
Pin13 toggelt mit 1Hz, wenn das Modul aktiv, aber nicht verbunden ist und ist ständig high, wenn eine Verbindung mit dem Master besteht.
Datum:
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
Datum:
ich hab 31mm draht dran und hab mit meinem handy 18 meter geschafft, mit einem usb-dongle class1 mehr.
Datum:
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 ;).
Datum:
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.
Datum:
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?
Datum:
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.
Datum:
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
Datum:
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.
Datum:
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
Datum:
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
Datum:
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
Datum:
@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
Datum:
Angehängte Dateien: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
Datum:
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...
Datum:
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!
Datum:
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.
Datum:
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?
Datum:
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.
Datum:
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.
Datum:
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
Datum:
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.
Datum:
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
Datum:
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
Datum:
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.
Datum:
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
Datum:
Angehängte Dateien: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
Datum:
Hallo K.J. was meinst Du mit Pullup? Wo sollten die hin? Gruß Christian
Datum:
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
Datum:
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.
Datum:
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
Datum:
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
Datum:
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
Datum:
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
Datum:
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













