Samsung SPF Photo Frame

  • Hallo!


    Ich versuche die Mini-Monitor Funktion des Samsung SPF-87H Photo Frame zum laufen zu bekommen.


    Im Ansatz funktioniert dies auch mit den Programmen von dieser Website:


    http://web.media.mit.edu/~gracewoo/stuff/picframe/


    Leider wurde anscheinend die Firmware geändert und der Bilderrahmen bricht die Verbindung nach paar Sekunden ab.


    Mit einen USB-Sniffer kann man unter Windows XP erkennen, das dort regelmäßig folgende Message zum Bilderrahmen gesendet wird:


    Code
    1. 00000000 A5 5A 09 04 69 59 00 00 17 00 00 00 FF D8 FF E0 00 10 4A 46 49 46 00 01 01 00 00 01 Z..iY........JFIF......
    2. 0000001C 00 01 00 00 FF FE 00 2D 49 6E 74 65 6C 28 52 29 20 4A 50 45 47 20 4C 69 62 72 61 72 .....-Intel(R) JPEG Librar
    3. 00000038 79 2C 20 76 65 72 73 69 6F 6E 20 5B 32 2E 30 2E 31 38 2E 35 30 5D 00 FF DB 00 43 00 y, version [2.0.18.50]..C.
    4. 00000054 05 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0C 08 07 07 07 07 0F 0B 0B 09 0C 11 0F ............................
    5. 00000070 12 12 11 0F 11 11 13 16 1C 17 13 14 1A 15 11 11 18 21 18 1A 1D 1D 1F 1F 1F 13 17 22 .................!........."
    6. 0000008C 24 22 1E 24 1C 1E 1F 1E FF DB 00 43 01 05 05 05 07 06 07 0E 08 08 0E 1E 14 11 14 1E $".$.....C................
    7. 000000A8 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E ............................
    8. 000000C4 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E FF C4 01 A2 00 00 01 .........................
    9. 000000E0 05 01 01 01 01 01 01 00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 0A 0B 10 00 ............................
    10. 000000FC 02 01 03 03


    Kann mir jemand Helfen dieses in das Programm einzubauen? Die Sourcen sind vorhanden und das Programm verwendet libusb.


    Gruß


    Norbert

  • Ohne mich da wirklich auszukennen:
    Das was da an den Rahmen geht sieht mir stark nach einem JPEG-Header aus.
    Evtl muss man das Bild alle paar Sekunden erneut übertragen, da sonst ein Timeout zuschlägt.

    Gruss
    SHF


  • Hi,


    ich hab die Software etwas erweitert, sodass es jetzt möglich ist einen Linux FB auf dem Photo Rahmen darzustellen. Das Ganze ist zum Einen das Userspace Tool und zum anderen ein virtueller FB Treiber, der dann vom Tool dargestellt wird.
    Bei mir funktioniert das mit einem SPF-85H recht ordentlich. Ich konnte auch keine Verbindungsabrüche feststellen.


    Ziel ist es, GraphTFT darauf laufen zu lassen. Konnte ich aber aus Zeitgründen noch nicht testen.


    VG
    Andi

  • Hallo Andi,


    playusb läuft schon. Danke. Anbei meine Daten für die Database:


    Code
    1. {
    2. .name = "Samsung SPF-87H",
    3. .vendorid = 0x04e8,
    4. .productid_massstorage = 0x2033,
    5. .productid_photo = 0x2034,
    6. .xres = 800,
    7. .yres = 480,
    8. },


    Leider bricht auch mit deinem playusb die Verbindung immer ab und man muss den Bilderrahmen von Hand zurück in den Massenspeichermodus stellen. Kann man das ändern?


    Das mit dem Framebuffer habe ich noch nicht zu laufen bekommen. Vielleicht kannst du noch ein paar Hinweise geben.


    Gruß


    Norbert

  • Ok, nach dem ich die Auflösung angepasst habe bekomme ich ein schwarzes Display. Aber nach ein paar Sekunden das alte Problem: Die Verbindung wird getrennt.



    Gruß


    Norbert

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Norbert Holze ()

  • Hallo Norbert,


    leider kann ich das Problem mit den Verbindungsabbrüchen hier nicht nachvollziehen, da es hier einfach nicht dazu kommt. Ich habe aber gelesen, dass es an einer neuen Firmware-Version liegt. Kannst du da evtl. downgraden?


    VG
    Andi

  • Hallo Andi,


    leider war dieses Verhalten bereits mit der Firmware vorhanden mit der das Gerät ausgeliefert wurde und im Netz habe ich nur neuere gefunden. Ich werde noch etwas mit Frameheader spielen.


    Mit welchen Programm testest du den Framebuffer? Ich habe es mit fbv (http://s-tech.elsat.net.pl/fbv/)probiert. Das Bild wird dann aber nur in jeder zweiten Spalte angezeigt (als wenn es interlaced wäre).


    Gruß


    Norbert

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Norbert Holze ()

  • Hallo,


    bisher habe ich nur mit "cat /dev/urandom > /dev/fb1" und "cat /dev/zero > /dev/fb1" getestet. Werde aber heute oder morgen Abend mal fbv testen bzw. gleich das graphtft-Plugin. Hatte wie gesagt noch keine Zeit mehr zu testen.


    VG
    Andi

  • Hi,


    ich habe das Ganze nun mal mit graphTFT getestet und nach etwas probieren läuft nun alles wunderbar. Allerdings musste ich den FB-Treiber (spfb.c) noch auf 16bit umstellen.
    Allerdings wollte ich nochmal nach einer etwas ressourcenschonenderer Methode gucken um den FB zu refreshen (also nicht umbedingt zyklisch).


    VG
    Andi

  • Hi all,
    for user have not a permanent monitor i found 1 trick:
    install virtualbox> install windows > install samsung software
    > attach the usb screen on windows VM > when the dual screen is on > shutdown windows vm
    > the photo frame is in the usb screen mode.
    if you power down the photo frame you need to remake the same


    @ andi thanks for the little tools.


    and my problem :
    when i launched the fb and use playusb to display it on the photoframe i always have a black screen,
    i want to use on dual screen but don't know how


    ps: i'm french, i don't speak dutch and my english was not perfect

  • Zitat

    Original von ktalog


    and my problem :
    when i launched the fb and use playusb to display it on the photoframe i always have a black screen,
    i want to use on dual screen but don't know how


    ps: i'm french, i don't speak dutch and my english was not perfect


    Did you change the resolution in spfb.c? This must set to the native resolution of your Photo Frame.



    Gruß


    Norbert


    ps: we speak german

  • Hallo,


    an VDR bin ich (noch?) nicht interessiert, die Ausgabe auf meinen neuen picframe von Samsung zu steuern aber sehr wohl. Hier die ersten Infos:


    Vom Gerät Informationen:


    Modell: SPF-87H
    Firmware-Version: M-IR8HSBWW-1007.0
    Rahmenspeicher: 987.49 MB / 1.0 GB
    Copyrigh: Samsung


    Per lsusb ermittelt:


    Das Gerät meldet sich ohne Interaktion daran nicht automatisch am USB Bus an.


    Massenspeichermodus:
    Bus 001 Device 006: ID 04e8:2033 Samsung Electronics Co., Ltd


    Monitormodus:
    Bus 001 Device 006: ID 04e8:2034 Samsung Electronics Co., Ltd



    Der Massenspeichermodus bleibt dauerhaft, bis man das wieder ändert.


    Der Monitormodus bleibt nur wenige Sekunden aktiv und dann ist das Gerät wieder vom USB Bus abgemeldet. Im Bildermodus ist das Gerät auch nicht am USB Bus angemeldet.



    Sieht so aus, als ob die Firmware des Gerätes auf Kommunikation mit der Monitorsoftware besteht.


    [Update So 9. Jan 17:37:12 CET 2011]
    Die Samsung Software für Windosen Framemanager konnte ich in einer virtualbox XP Maschine dazu bewegen, die Monitorfunktion einzuschalten und ja, nach Herunterfahren der virtuellen Maschine bleibt der picframe in diesem Zustand. Erkennbar am schwarzen Bild, solange da kein Bild eingebracht wird.. Im virtuellen XP konnte ich ein Fenster nach rechts aus dem Hauptmonitor herausschieben, in den Picframe hinein, leider kriege ich die Maus nicht "rüber".


    Im Host Linux habe ich erfolgreich ein vorbereitetes Bild mittels playusb von Andi zur Anzeige auf dem picframe bekommen, das da auch bleibt und nicht wieder einfach verschwindet.

  • Ich habe es geschafft, mein erstes C Programm ist fertig und es es ist für einen Samsung SPF-87H mit neuer Firmware, damit man von Linux aus den Mini Monitor Modus einschalten kann.


    Die Quellen im tar.gz Archiv herunterladen erzeugen einen Ordner spf87h-tool-v0.01, da hinein wechseln und make ausführen. Wenn fehlerfrei kompiliert wird, erzeugt es die ausführbare Datei spf87h-tool.


    Um den Monitor von Linux aus umzuschalten muss am Gerät der Monitor Modus ausgewählt werden, dann kann spf87h-tool ausgeführt werden. Den Erfolg merkt man am Gerät nicht prompt, aber mit playusb kann dann sofort losgelegt werden!

  • Hallo,


    das klingt sehr interessant, vielen Dank.


    Zitat

    Um den Monitor von Linux aus umzuschalten muss am Gerät der Monitor Modus ausgewählt werden, dann kann spf87h-tool ausgeführt werden. Den Erfolg merkt man am Gerät nicht prompt, aber mit playusb kann dann sofort losgelegt werden!


    Kannst du hier etwas ausführlicher werden. Was passiert nach dem Boot:


    Netzteil schickt 5 Volt, Monitor geht an
    VDR lädt den Treiber um den Monitor einzuschalten


    Ich renn los um am Gerät den Monitor Modus auszuwählen damit dein Tool spf87h-tool ausgeführt werden kann.


    Entweder das ganze ist nicht sehr WAF tauglich oder ich übersehe etwas?


    Danke,
    Christian

     CKone: yavdr 0.6.1/2.3.8 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 700, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr 0.6.1/2.3.8 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 700, atric USB
    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.3.8 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 3x WD Red WD30EFRX 3TB in SW Raid5

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von CKone ()

  • Ich habe kein VDR am laufen, sondern habe bloss diesen Thread gefunden, auf der Suche, wie ich meinen SPF-87H in Linux als Zweitmonitor ans Laufen kriege. Das habe ich mit dem spf87h-tool geschafft.
    Z.Z. arbeite ich an einem deamon, der ständig läuft und wenn sich der SPF-87H als Minimonitor am USB Bus anmeldet, schlägt der deamon zu und sendet das Kommando zum Gerät damit es im Monitor Modus bleibt. Ausserdem sollen Befehle (Scripte z. B.) für Monitor und NoMonitormodus Betrieb angegeben werden können, die der deamon dann ausführt. - Damit kann man dann durch bloßes Einschalten des Minimonitormodus's dafür sorgen, dass das alles automagisch läuft und auch für das Ausschalten des Zweitmonitors Aktionen am Host auslösen.


    Wenn's soweit ist, dann melde ich das hier wohl an.

  • Hallo killerhippy,


    vielen Dank für Deine Vorarbeit! Ich habe meinen schon aufgegebenen SPF-87H deshalb wieder hervorgekramt und abgestaubt.


    Ich benutze Dein spf87h-tool auf eine etwas andere Art, die Dich vielleicht auch interessiert:


    Ich habe ein file


    /etc/udev/rules.d/11-photoframe.rules


    angelegt mit dem Inhalt


    Code
    1. # /etc/udev/rules.d/11-photoframe.rules
    2. SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="04e8", ATTR{idProduct}=="2034", RUN+="/usr/local/bin/spf87h-tool"


    Wenn ich den SPF jetzt in den Mini-Monitor Modus schalte dann bleibt er darin.


    Rechner an und gleich Mini-Monitor wär zwar besser, aber immerhin.


    Achso: ich habe Ubuntu 10.04. Aber udevd gibt es ja nicht nur da.


    /ecdi

  • Hallo ecdi,


    eine udev Regel zu erzeugen ist mir während der Programmierung in den Sinn gekommen, hatte ich aber nicht weiter verfolgt.


    Das ist natürlich auch eine schöne Lösung und damit ließe sich mein Wunsch weitere Aktionen auszulösen genauso gut einrichten. Danke, daß du darauf hingewiesen hast.


    Trotzdem hat mir die demon Programmierung viel gegeben, auch wenn sie anstrengend war, und selbstverständlich ist das mein persönlicher Favorit.


    Grundsätzlich bin ich aber von der Tatsache, dass sich der digitale Bilderrahmen überhaupt so schön als Zweitbildschirm verwenden lässt ganz begeistert. Bei Amazon letztens war der Preis schon wieder gesunken.


    So eine preiswerte Möglichkeit für einen Zweitbildschirmbetrieb ist einfach ein Hit.

  • Hi,
    ich hab den spf107h und habe von der orig-webseite den c-source an meine usb-vendor/product codes angepasst. das dortige tool schaltet den Monitor vom Massenspeicher-Modus in den Monitor-Modus.
    Das als erste udev-Regel sollte doch auch funtzen!?


    Mal testen...
    Super Arbeit hier :)
    Danke..


    Quelle


    [Edit]
    Also mit den Sourcen klappt das auch hervorragend am spf107h! Hier die Daten
    Aufloesung: 1024x600
    Vendor 0x04e8
    product 2035 // Massenspeicher
    product 2036 // Monitor


    Ich habe besagte 2 udev-Reglen. Die erste schaltet das Display in den MonitorMode; und die 2te startet den daemon.
    Allerdings ist da noch ein Schoenheitsfehler in der Firmware: Das Umschalten muss per Knopfdruck bestaetigt werden :/


    Das jpg bleibt auch schoen auf dem Bild......
    Jetzt das graphtft mal testen...


    [Edit2]
    Wow! Wie geil das funzt!! Danke Leute! :D