Samsung Powerbot vr9000 Reverse Engineering von PCB-Verbindungen

Ich lese schon seit geraumer Zeit mit und möchte nun selbst eine Frage stellen.

Samsung hat eine Saugroboter-Serie, mit einer Vielzahl von Modellen, die sich meist nur in der Software unterscheiden. Leiterplatten usw. sind die gleichen, abgesehen davon, dass das neue Modell ein zusätzliches WiFi-Modul hat und einige Vakuummotoren einen zusätzlichen Motorcontroller benötigen.

Ich selbst habe den VR20H9050UW, oder auch VR9000 genannt, abgelöst durch den 9250, der eigentlich auch der 9350 ist, der nur ein zusätzliches WiFi-Modul und eine andere Firmware-Version hat.

Da die Roboter auf Open-Source-Software laufen (gemäß http://opensource.samsung.com/opensource/vr9000h/seq/0 ), sollte es möglich sein, auf das Dateisystem zuzugreifen und beispielsweise die für das WiFi-Modul benötigten Wireless-Tools hinzuzufügen funktionieren, oder? Wir könnten vielleicht sogar eine Datenbank mit den verschiedenen Softwareversionen aufbauen (die im Laufe der Zeit etwas verbesserte Reinigungsalgorithmen haben) und unsere Roboter selbst aktualisieren.

Hier kommt meine Frage: Ich habe den Roboter geöffnet, um herauszufinden, welche Anschlussmöglichkeiten es auf der Platine gibt, und ich habe einen 4-poligen Stecker gefunden (zugänglich auch ohne den Roboter zu öffnen, durch einen Gummiclip im Gehäuse: was mich zu der Annahme veranlasste ist die Verbindung, die für die Kommunikation mit der Software benötigt wird) und einen 8-poligen Stecker. Ich dachte, der 4-Pin wäre eine UART-Verbindung, oben auf dem Stecker steht Bluetooth, also nahm ich meinen HC-06 und schloss die 5-V- (Pin 1) und GND-Verbindung (Pin 4) an. Mit einem Multimeter habe ich gelernt, dass Pin 2 ein konstantes ±3,3-V-Signal aufweist und Pin 3 um 0,1 V schwebt und somit die Kriterien für RX und TX erfüllt. Allerdings liefern mir sowohl mein HC-06 Bluetooth-Modul als auch mein TTL-Kabel keine Daten im Terminal mit screen/picocom/minicom. Ich habe ein Python-Skript ausgeführt, das die möglichen Baudraten usw. erzwingt. allerdings bekomme ich auch dort keine antwort. Könnte es möglich sein, dass ich in einen bestimmten Modus wechseln muss, bevor ich mich verbinden kann. Oder könnte es, da libusb verwendet wird, ein einfacher USB-Anschluss oder vielleicht sogar ein anderes Protokoll/eine andere Verbindung sein?

Was den 8-Pin-Anschluss betrifft: Er hat 3,3 V VCC an Pin 1, GND an Pin 8 und der Rest dazwischen hat ebenfalls 3,3 V, mit Ausnahme von Pin 6, der konstant 3,0 V beträgt. Könnte dies möglicherweise ein JTAG-Anschluss sein und wie könnte ich das überprüfen?

Ich habe ein Foto der Platine zur Verfügung gestellt. Wenn es hilfreich wäre, kann ich auch den Widerstand zwischen den Pins messen.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.

PS: Ich lerne gerade die verschiedenen StackExchanges kennen. Es befindet sich bereits im regulären Stack Overflow, aber ich dachte, es würde besser hierher passen. Entschuldigen Sie!

Bearbeiten: Ich habe den Serienaufkleber vom Chip entfernt, der zeigt, dass auf der Platine ein NXP LPC2926 FBD144 untergebracht ist. Die durch die schwarzen Drähte oben auf dem Foto verbundene Platine, die für das Erteilen des Einschalt-/Boot-Befehls und das Umschalten zwischen den verschiedenen Reinigungsprogrammen über drei berührungsempfindliche Tasten verantwortlich ist, beherbergt einen ATMEGA32A.

Geben Sie hier die Bildbeschreibung ein

Ich habe noch nicht genug Wiederholungen, um 2 Links in einem Beitrag hinzuzufügen. Der Link zum zweiten Foto lautet: i.stack.imgur.com/RBtkc.jpg
Eingefügtes Bild.
Sie werden wahrscheinlich nichts auf dem UART sehen, es sei denn, die Firmware versucht bereits, auf diesen Port zuzugreifen.

Antworten (1)

Sie sollten sich andere Boards in diesem Roboter ansehen. Im vorderen Teil befindet sich das Roboter-Staubsauger-Modul (RVC) von CLABSYS http://www.clabsys.com/html/product_module01.html mit:

und Sensorplatine mit:

  • Unbekannter Chip (SAMSUNG HART-m310)
  • Frontkamera (sieht nach oben, hat aber einen schicken Spiegel, um eine 180°-Vorderansicht zu sehen)
  • 5A-DC-Motortreiber mit Bürsten (TI DRV8840)
  • Anschluss mit der Bezeichnung JTAG

Ich habe alle von Samsung bereitgestellten Quellcodes für Open-Source-Produkte in VR20H9050UW und es gibt Quellcodes für UBOOT, Linux KERNEL 2.6.32, ROOTFS, Linux-Dienstprogramme (alsa, libusb, ncurses, squashfs und zlib), Toolchain zum Erstellen von allem und Nexell USB Downloader Driver . Mit dieser USB-Verbindung am RVC-Modul sollte es also eine Möglichkeit geben, neue Firmware hochzuladen. Es könnte sein, dass jemand über dieselbe USB-Verbindung auf bereits hochgeladene Firmware zugreifen und Dateisysteminhalte daraus extrahieren kann. Aber wir brauchen eine Dokumentation von CLABSYS (oder Nexell), wie es geht.

Das klingt nach einem wahrscheinlicheren Host für die Open-Source-Komponenten. Wahrscheinlich am besten auf dieser Platine nach einem Konsolen-UART suchen. Die USB-Theorie ist möglich , aber möglicherweise nicht der Fall - eine Sache wäre, die U-Boot-Quelle und -Konfiguration zu untersuchen und zu sehen, ob sie USB-Unterstützung hat. Die einfachsten Modifikationen könnten darin bestehen, herauszufinden, wie die ATmega-Tastaturplatine mit dem Rest des Systems kommuniziert, diesen Datenverkehr auszuspionieren und möglicherweise einen Ersatz zu entwickeln, der diese Funktionen auf unterschiedliche Weise nutzen kann.
Danke für Ihre Information! Ich werde mir die Platinen im vorderen Teil des Roboters ansehen. Ich dachte nicht, dass es außer einigen Sensoren und dem Kameramodul natürlich noch etwas anderes geben würde, zumal die andere Platine als Hauptplatine gekennzeichnet ist, was mich zu der Annahme veranlasste, dass sie die gesamte Logik beherbergen würde. Würde es Ihnen etwas ausmachen, den von Samsung bereitgestellten Quellcode zu teilen? Oder verstößt das gegen die Bedingungen, die Sie akzeptieren mussten, um es zu bekommen?
@VincentBosch Der richtige Weg, um den Quellcode zu erhalten, besteht darin, ihn direkt von Samsung anzufordern, indem Sie diese Anfrage an oss.request@samsung.com schreiben, aber ich kann den Download-Link teilen, den ich erhalten habe: RVC_VR9000H.tar.bz2
Danke für das Teilen des Links. Ich werde sehen, was ich daraus ziehen kann. In der Zwischenzeit öffnete ich die Vorderseite des Roboters und enthüllte das Sensorboard mit JTAG-Anschluss und das Clabsys-Board, ebenfalls mit einem deutlich gekennzeichneten JTAG-Anschluss. Ich habe versucht, einen UART-Port zu finden, aber ich habe es leider noch nicht geschafft, ihn zu finden und zu verbinden. Es scheint, dass es tatsächlich USB-Anschlüsse auf dem Clabsys-Board gibt. Einer mit der Bezeichnung USB-a und einer mit der Bezeichnung USB-b, aber ich denke, der B-Anschluss wird tatsächlich über die Durchkontaktierungen verwendet. Ich habe den 6-Pin-Anschluss noch nicht identifiziert. Vielleicht ein Anschluss für die WiFi-Karte des Modells 9250/9350?
Hier sind einige Bilder, die ich vom Clabsys-Board gemacht habe. Auf der Oberseite ist der JTAG-Anschluss deutlich gekennzeichnet. Habe es aber noch nicht angeschlossen. Clabsys-Board
Hier sind einige Bilder des Sensorboards. Ich habe bereits mehrere Pins ausprobiert, aber abgesehen von der JTAG-Verbindung enthält sie meiner Meinung nach nichts Besonderes. Interessant ist, dass beide Platinen direkt mit der Hauptplatine verbunden sind und die beiden nur über den dünnen Stecker verbunden sind, den ich nicht getrennt habe. Wahrscheinlich nur, um den Videofeed zu teilen? Sensorboard Was ein Rätsel bleibt, ist der Anschluss auf der Hauptplatine, der nur durch Entfernen eines Gummiclips zugänglich ist. Hatte auch kein Glück, es an meinen USB-Port anzuschließen. Es muss fast diagnostisch sein
Ich habe versucht, eine Verbindung zum USB-a-Anschluss des Clabsys-Boards herzustellen. Der Stecker ist wirklich klein. Es ist ungefähr so ​​​​groß wie ein Micro-USB-Anschluss ohne das Metallgehäuse. Die Kabel zu isolieren, bevor ich überhaupt versuchen konnte, eine Verbindung herzustellen, dauerte schon eine Ewigkeit. Ich habe es jedoch geschafft, dass das Board von OSX erkannt wird: Es wird als Kartenleser erkannt, obwohl eigentlich nichts gemountet ist. Dies liegt möglicherweise daran, dass es nicht mit den anderen Boards verbunden ist, da ich es abgenommen habe. Leider konnte ich es danach nicht mehr zum Laufen bringen: Ich muss etwas Dauerhafteres herausfinden und sehen, auf was zugegriffen werden kann.