Posts mit dem Label Bluetooth werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Bluetooth werden angezeigt. Alle Posts anzeigen

Sonntag, 21. Dezember 2014

Dezember - Zeit der Jahresrückblicke


Lasse ich das Jahr Revue passieren, so habe ich den Eindruck, dass es mehr von Reparaturen und Gerätedefekten geprägt war, als von Eigenentwicklungen. Sei es aus Unachtsamkeit, geplanter oder natürlich Obsoleszenz, Blitzschlag oder schlicht Neugier - in 2014 haben mich einige Geräte mehr beschäftigt, als ich es erwartet habe.
Das "leider" habe ich an dieser Stelle weggelassen. Auch wenn Reparaturen nicht meine Lieblingsbeschäftigung sind, boten sie doch viele Möglichkeiten für neue Einblicke, Lösungen und Verbesserungen. 
Nebenbei hat sich noch mein Ersatzteillager gefüllt und ebenso die Liste möglicher Blog-Beiträge, sofern die "Defekt-Welle im kommenden Jahr abebbt. 


Sonntag, 6. April 2014

Innenansichten: Wii Controller - Original vs. Imitat


L: Imitat, R: Original
Vor mir lag ein Controller für die Nintendo Wii mit einer Macke und Made in Irgendwo (habe keinen Ursprungshinweis gefunden). Der Händler hatte mir ohne weitere Umstände Ersatz geliefert und auch das defekte Teil überlassen. 

Und da auch noch ein 3x so teurer original Wii Controller RVL-036 vorhanden war, lag ein Vergleich nahe.


Die Äußerlichkeiten:

Wäre nicht die unterschiedliche Beschriftung, könnte man Original und Imitat auf den ersten Blick kaum unterscheiden. Beim Original ist die Schrift kontrastreicher, das Gehäuse eine Nuance dunkler, als beim Imitat.

Ein Dreh zur Seite offenbart einen offensichtlichen Unterschied: das Original ist mit CE-Kennzeichnung versehen.


L: Imitat, R: Original

Beim Halten in der Hand, hatte ich den Eindruck, dass das Imitat etwas leichter ist. Ein Blick auf die Waage:



... das Original wiegt satte 10% mehr. Warum?

Nach öffnen der Batteriefächer zeigten sich weitere Unterschiede. 


L: Imitat, R: Original

Das Imitat ist mit Kreuzschlitzschrauben verschlossen, während das Original mit Y-Schlitzschrauben das Öffnen erschweren möchte. Dafür hat letzteres eine "Nintendo"-Prägung und ein Typenschild.

Dem Öffnen können beide Geräte nicht lange trotzen. Neben den 4 Verschraubungen, sind die Gehäuse im vorderen Drittel seitlich geklemmt. Hier muss mit sanfter Gewalt gehebelt werden. Bei YouTube finden sich einige Tutorials zum Vorgehen.
Beim Imitat löste sich die Klemmung sprunghaft, da ein Klemmbügel abriss, und verteilte die Tasterkappen großzügig im Raum (Taste "1" harrt immer noch in seinem Versteck aus oder hat die Flucht in den Staubsauger angetreten). 

Die inneren Werte:


L: Imitat, R: Original

Beim Imitat ist der Lautsprecher lose und von minderer Qualität. Im Betrieb hörte er sich stets scheppernd und überlastet an. Das Original hat einen deutlich besseren Lautsprecher, der fest verankert ist und eine hochwertigere Membran besitzt. Die Gehäuseöffnung ist zudem mit einem Schutzvlies abgedeckt.
Der Lautsprecher dürfte für einen wesentlichen Teil des Gewichtsunterschiedes verantwortlich sein.

Das Platinenlayout und die verwendeten Bauelemente sind stark abweichend.
Beim Imitat ist neben einem 24 MHz Quarz ein Invensense MPU-6050C (Nr. 1 im Foto) verbaut. Dies ist ein Chip mit 3-Achs Gyroskop, Accelerometer und Temperatursensor (wird nicht genutzt). Er misst der Controllerbewegungen in Richtung und Beschleunigung und gibt diese per I2C Anbindung an den Controller weiter.
Bei Original befindet sich an gleicher Position (2) ein Accelerometer Type 34M2 2116. Ein Datenblatt war nicht zu finden. Gleiches trifft auf den Controller an Position (3) zu, mit RVL-IG A 410 beschriftet - vermutlich speziell für Nintendo produziert.
An Position (4) befindet sich ein IC mit der Aufschrift "126 475A". Es trägt das Logo der Firma Microchip. Aber auch hierfür war kein Datenblatt auffindbar.

Die Rückseite:
Bei den unteren Gehäusehälften weist das Imitat deutlich weniger versteifende Elemente auf (die fehlenden sind im Foto gelb markiert). 


Oben: Original, Unten: Imitat

Bei der Platine sind von Links nach Rechts: die Infrarot-Camera, der B-Taster, der Vibratorionsmotor und jenseits der Batterieklemmen Spannungsstabilisierung, Sync-Schalter und Nunchuk-Anschluss. 


Oben: Original, Unten: Imitat

Der Bereich zwischen Vibrator und Batterieklemmen:


L: Imitat, R: Original

Das Imitat:

(1) RDA 5875Y
Ein Bluetooth-Chip für die Verbindung zur Wii. Der orange Pfeil im Foto zeigt auf die Antenne an Pin 19. Die Kommunikation erfolgt wieder über I2C. 
Direkt pberhalb befindet sich ein 26 MHz Quarz.

(2) FT24C32A
Ein EEPROM Speicher mit 4 kByte und I2C Anbindung

(3) Ein "black blob"
... der Controller: ohne Bezeichnung, ohne Hinweis auf die integrierten Features. So macht man Nachbauten nachbausicher ;-)



Das Original:

(4) ST 464WP
Ein EEPROM Speicher mit 8 kByte und I2C Anbindung

(5) ITG-3270
Ein 3-Achs Gyro mit I2C von Invensense

(6) BCM 2042A
Ein Bluetooth-Chip von Broadcom. Er enthält auch einen integrierten 8051 Controller, RAM und ROM Speicher.

(7) BU8849FV
Über diesen Chip sind keine Daten zu finden. Verschiedene Quellen mutmaßen, es könne sich um einen Audio-Chip handeln.

Unter der B-Schalter Abdeckung: nichts wesentliches...


L: Imitat, R: Original

... lediglich beim Imitat erkennt man, dass die Bluetooth-Antenne auch dort bis zur λ/2-Länge ausgeführt wurde. Beim Abklemmen der Abdeckung hat sich beim Imitat eine Haltenase verabschiedet.

Die IR-Cam 
... erfasst die Ausstrahlungen zweier IR-LED Reihen, die sich in der IR Sensorleiste befinden.




Daraus wird die ein Zeiger errechnet dessen virtuelle Spitze auf dem Bildschirm als z.B. zeigende Hand dargestellt wird und zur Navigation durch die Wii Funktionen dient.

Die Original IR-Cam hat ein I2C Interface und ist deshalb interessant zur Zweckentfremdung. Im Internet finden sich dazu mehrere Anleitungen, z.B. bei http://www.instructables.com


Auch die IR-Cam des Imitats hat eine I2C. Lediglich der die "Verpackung" ist nicht so gelungen, wie beim Original. U.a. ist auf der Rückseite der Cam-Platine ein "black blob" zu finden.



Das Original ist mittlerweile wieder zusammengebaut und funktioniert einwandfrei.

Warum das Imitat nicht richtig funktionieren möchte ist mir nach wie vor ein Rätsel. Als Lieferant für interessante Bauteile kommt es jedoch durchaus noch in Frage - sofern diese ordnungsgemäß arbeiten.
Der Preis des Imitates lag bei etwa 20 € inkl. Nunchuk. Das verbaute MPU-6050 übersteigt diesen Preis bereits. Auch Bluetooth, Vibrationsmotor, Nunchuk-Buchse und die Cam könnten durchaus eine weitere Verwendung wert sein. Den Lautsprecher und das Gehäuse kann man ohne Reue entsorgen. 



Donnerstag, 13. März 2014

BTM-222 Bluetooth Breakout Board

Wie bereits geschrieben: Alles ist besser mit Bluetooth ;-)

Hier geht es um ein BTM-222 Modul, das ursprünglich zur Erweiterung meiner VPower Steuerung gedacht war. Da ich noch eins übrig habe, wäre es interessant die Möglichkeiten des Moduls etwas auszuloten. Das Modul ist in SMD-Technik ausgeführt. Da ich gerne mit einem Steckbrett arbeite, muss für das BTM-222 ein Breakout Board her.
Die bisherigen Ätzergebnisse waren zufriedenstellend, jedoch noch teils "krakelig":



Für dieses SMD-Projekt habe ich ein neues Verfahren der Toner-Transfer-Methode getestet. Für den Laserausdruck habe ich das Toner Transfer Paper (TTF) von Pulsar benutz. Danach 10 mal bei 180 °C durch den Laminator gejagt und anschließend in kaltem Wasser abgeschreckt und solange gewässert, bis sich das Papier von selbst gelöst hat.
Nach dem Trocknen (Heißluftfön) wurde mit dem Laminator Toner Reactive Foil von Pulsar aufgebracht.



Dadurch erhält man eine wesentlich dichtere und schärfer abgegrenzte Ätzmaske, als Toner alleine.



Nach dem Ätzen kann die Folie mit Azeton entfernt werden. Das Ergebnis kann sich sehen lassen:



Damit die Bohrlöscher für die Stiftleisten akkurat ausfallen, habe ich ein Stück Lochrasterplatine benutzt...



... und durchgebohrt.



Anschließend erfolgte das Zuschneiden und die Bestückung, wobei sich die 0,8 mm SMD Pads ohne Probleme mit ruhiger Hand löten ließen.



Als Antenne kam ein Stück Silberdraht zum Einsatz, hier verhüllt durch Schrumpfschlauch (damit es nicht so piekst). Bluetooth arbeitet im Frequenzbereich von 2,402 ... 2,48 GHz und hat damit eine Wellenlänge zwischen 12,1 ... 12,5 cm. Um die Antennenlänge nicht ausufern zu lassen, habe ich mich für eine λ/4-Antenne entschieden, was ca. 3,1 cm entspricht.

Mittwoch, 19. Juni 2013

JY-MCU Bluetooth Modul am Arduino

Beim Chinesen um die Ecke (eBay) waren Bluetooth Module im Sonderangebot. Warum also nicht testen? - getreu dem Motto: "Everything is better with bluetooth.":


 Das "Platinchen" hat etwa die Breite eines kleinen Fingers und dessen halbe Länge:



Darauf befindet sich neben einen Spannungswandler für die Versorgung der ICs von links nach rechts:

MX29LV800CB
        8M-BIT [1Mx8/512K x16] CMOS SINGLE VOLTAGE 3V ONLY FLASH MEMORY

CSR BC417
        Single Chip Bluetooth® v2.0+EDR System

... und die markante Bluetooth-Antenne.

Auf der Rückseite ist die Anschlussbelegung ersichtlich. Die Pins VCC, GND, TXD und RXD sind mit einer gewinkelten Stiftleiste bestückt. Als Versorgungsspannung kommen die vom Arduino gelieferten 5V in Frage. Als Send-Empfangs-Pegel sind 3,3 V angegeben. Es wird sich zeigen, dass die Pins meines Moduls auch mit dem 5V Pegel zurecht kommen, ohne dass das Modul schaden nimmt.





Die Board Version wird mit V1.05 angegeben, beim Anmelden meldet sich das Modul als "HC-06" und verlangt die Eingabe des Codes "1234".

Links zu weiteren Informationen:
m2.img.dxcdn.com/CDDriver/sku.121326.pdf
http://air.imag.fr/mediawiki/index.php/Wireless_Bluetooth_RS232_TTL_Transceiver_Module

Der Versuchsaufbau


2 Leitungen zur Spannungversorgung, die beiden anderen Leitungen werden wie folgt angeschlossen:


          JY-MCU    Arduino Mega
            TXD <----> RX1 
            RXD <----> TX1 

Über die Serial 1 findet also die Kommunikation mit dem JY-MCU statt, die Serial 0-Schnittstelle wird zum Monitoring benutzt. 

Zum Testen des Datenaustauschs habe ich den MultiSerialMega-Sketch aus der Arduino-Beispielsammlung abgeändert:

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() {
  // read from port 1, send to port 0:
  if (Serial1.available()) {
    int inByte = Serial1.read();
    if( inByte ){
      Serial1.write("*");
    }     
    Serial.write(inByte);
  }
 
  // read from port 0, send to port 1:
  if (Serial.available()) {
    int inByte = Serial.read();
    Serial1.write(inByte);
  }
}



Wenn nun das JY-MCU Modul auf dem Serial 1 Port via Bluetooth empfangene Daten an den Arduino liefert, werden diese am Serial Monitor sichtbar und zusätzlich via Bluetooth dem ursprünglichen Sender durch eine Anzahl von * quittiert,  die der Anzahl der empfangenen Zeichen entspricht.

Als Sender den PC zu nutzen, der auch am Arduino zum Monitoring hängt, erschien mir dann doch etwas langweilig. Stattdessen habe ich als Sender ein Android Smartphone mit der App LM BT Terminal benutzt. Das Finden und Anmelden funktionierte auch hier problemlos.


... und hier die "Empfangsseite" als Serial Monitor Ausgabe:



Hin- und Rückrichtung der Bluetooth Verbindung funktionieren demnach.
Danach habe ich mir die Schnittstellenpegel angeschaut. Leider bisher nur in Senderichtung. Das Programm habe ich so erweitert, dass der JY-MCU ständig das Zeichen "x" sendet. Für Android habe ich noch keine passende App gefunden, die ähnliches erlaubt oder mit der man eine ausreichend große Datei seriell übertragen könnte. Wer suchet, der findet ...

Messaufbau: einfach mit dem Oszilloskop am RXD Pin messen.


Einstellung: 5 V/cm vertikal und 0,2 ms/cm Zeitbasis horizontal



Das Signal im Detail:
Es handelt sich um einen asynchronen seriellen Datenstrom, mit 9600 bit/s, 8 Datenbits, ohne Paritätsbit, und einem Stopbit - kurz: 9600 8N1



Der Datenstrom wird also mit einem Spannungspegel von 5 V an das JY-MCU Modul übergeben.

Jetzt interessiert mich noch der Pegel, den das Modul an den Arduino liefert. Einerseits sollten es 3,3 V sein, aber das wäre nicht ausreichend für den Arduino. Andererseits funktioniert in der Praxis die Kommunikation. Sind es nun 5 V oder nur 3,3 V? 
Also weiter nach einer brauchbaren App suchen, um einen messbaren Empfangsbitstrom zu erzeugen. Wer eine kennt, bitte melden. (Sonst muss ich noch selbst eine programmieren).


[Fortsetzung folgt ...]