VDR Extension Board - Vorstellung und Umfrage

  • So, hab mal 4 Keys in Betrieb genommen, mit eher weniger Erfolg:


    Einmal drücken hat bei mode2 beliebige Auswirkungen, von nichts bis zu einer ganzen Flut von Ausgaben... 2 Tasten funktionieren subjektiv besser als der Rest.


    Wo weitersuchen?


    €dit: Die Brücke zur Adressfestlegung ist doch beliebig und unabhängig von den DR-Leitungen die in der Matrix genutzt werden?


    Lars

  • Hi Tom,


    Zitat

    Original von TBE
    @Andreas:
    Mit der neuen Version 0.2.5 bleibt die LIRC-Verbindung über Stunden erhalten, keine Probleme bisher.


    Tja, hier klappt es einfach nicht :( Ich habe es mit VDR 1.2.5 und 1.3.10 getestet. Allerdings hängt sich VDR nicht auf, wie ich geschrieben hatte, sondern beendet sich einfach.


    Wird es also doch Zeit, schwere Geschütze aufzufahren und den Debugger an das Problem heran zulassen.



    Dazu ins VDR-Quellcodeverzeichnis wechseln und
    folgende Zeile in der Make.config hinzufügen oder meine gezippte angefügte Version nehmen und ein paar Variablen wie z.B. REMOTE anpassen.


    Code
    # Enable Debugstuff
    CFLAGS += -g -ggdb -O0
    CXXFLAGS += -g -ggdb -O0
    LDFLAGS += -g -ggdb -O0


    Eine kompletten Rebuild des VDR ausführen (aber ohne Installation)
    #> make clean plugins-clean all plugins


    Den Debugger mit dem Namen des lokalen VDR, ohne weitere Parameter starten
    #> gdb ./vdr


    und im Kommandoprompt von gdb mit run und den sonst üblichen Parametern aus der runvdr den Prozess starten. (ps axf | grep vdr)
    (gdb) run ./vdr -v /video/vdr -'Pgraphlcd -c gu140x32f -d /dev/parport0' -Pextb -c /opt/vdr/ram/etc -E /opt/vdr/ram/etc/epg.data



    so jetzt sollte der VDR innerhalb Debugger laufen, jetzt müsstest Du probieren den Absturz wie bisher zu reproduzieren.


    Das sollte insgesamt ungefähr wie folgt aussehen :


    Bei dem Absturz oder Programmende kommt der Prompt vom Debugger wieder,
    hier ein Beispiel eines Absturzes...

    Code
    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 16384 (LWP 2085)]
    0x40311c08 in cExtBLircWatch::StartWatch (this=0x0) at extb_lircwatch.c:50
    50        watch = true;
    Current language:  auto; currently c++
    (gdb)



    und wir kommen zu dem für mich interessanten Backtrace des Aufrufstacks, mit Kommando bt.



    Und diese Ausgabe des Backtrace wäre sehr hilfreich den Fehler zu lokalisieren...


    Andreas


    PS der gdb lässt sich mit Strg+c bzw. quit beenden.

  • Soo, ich hab mein Problem mit den LCD näher "spezifizieren" können.


    Dazu brauche ich aber noch etwas hilfe, da meine Elektrokenntnisse nicht so dolle sind, bzw. ich gar keine besitze ... ;(


    Es hängt zu 90%iger Sicherheit mit der Kontrastspannung zusammen.


    Mehr dazu aber hier in diesem Thred:


    http://www.vdr-portal.de/board/thread.php?threadid=18688&sid=


    Hier im Mammutthread gibts zwar auch schon diverse Probleme damit, aber das Problem der vielen Seiten hier kennt ja jeder, deshalb ist son externer Thread besser, da ja dort nur ein Problem besprochen wird.


    MFG
    Marco

  • Hallo,


    Simpson:
    Korrektur: Klappt hier doch einwandfrei mit dem Videotext über das Composite-Signal. Mein Test-TV hat zwei SCART-Eingänge, beide können S-Video und RGB, aber nur vom zweiten wird auch der Videotext-Decoder gefüttert. Seltsam, was die Hersteller sich da ausdenken ... Ich hatte zusätzlich ein terrestrisches Signal des gleichen Kanals (ARD) zum Testen, dort lief der Videotext, und beim Umschalten auf das Videosignal vom VDR sind dann wohl sporadisch noch Seitenfragmente angezeigt worden.


    Zum Problem: Das Composite-Signal am SCART-Anschluss des Extension Boards ist gegenüber dem Cinch-Anschluss ganz leicht gedämpft, da auf der DVB-Karte ein Pi-Filter (2 Kondensatoren, 1 Spule) zwischen Composite-Ausgang des DSPs und dem Cinch-Videoausgang geschaltet ist. Dieses Filter beeinflusst den Frequenz- und Phasengang des Composite-Signals, auch wenn der Cinch-Ausgang nicht benutzt wird.


    Aber: Dieser Einfluss ist minimal. Sehen kann man den Unterschied im Composite-Signal nicht. Ich habe mal ein Scope an den Eingang des Videotext-Decodes im TV angeschlossen und mir die Videotext-Datenpakete in der Austastlücke angeschaut. Die Dämpfung ist deutlich zu sehen, aber beeinflusst den Videotext-Empfang nicht.


    Wenn man aber an den Cinch-Ausgang jetzt noch ein Cinch-Kabel anschließt, deren anderes Ende offen bleibt, verringert sich der Pegel weiter, Videotext läuft aber immer noch. Erst wenn man das Ende des Kabels mit 75 Ohm abschließt (z.B. an einen zweiten TV anschließen), geht der Pegel auf ca. 20% zurück und Videotext geht nicht mehr. Die Synchronisation des TVs an der SCART-Buchse klappt aber immer noch.


    Fazit: Möglicherweise reagieren einige TVs empfindlicher auf den geringeren Pegel, aber meiner Meinung nach müsste es laufen, wenn der Cinch-Ausgang nicht zusätzlich angeschlossen wird. Hast du eventuell einen anderen TV mit Videotext zum Testen?


    Nutzt sonst noch jemand den Videotext-Decoder des angeschlossenen Fernsehers and hat damit Probleme bzw. keine Probleme?


    Blöd ist nur, dass das Ganze nur bei 1-Karten-Systemen Sinn macht, da die Teletext re-insertion nicht im Transfer-Mode klappt. Deshalb hatte ich das bisher auch gar nicht getestet.



    @Andreas:
    Super, vielen Dank für die genaue Anleitung!! Hier das Ergebnis:



    Tom

  • Hi


    Habe folgende Frage?


    Wollte beim booten über den Fernseher das Bios und den Start des VDR kontrollieren.
    Habe mir deshalb einen Chinch-Stecker vom TV-Out meines Epia ME-6000 auf Pin 7 von Con 20 gelegt.
    Müsste ich nicht jetzt das Bios am Fernseher sehen, wenn ich auf VGA-Eingang schalte, oder hab ich da was falsch verstanden.
    Gib es überhaupt die Möglichkeit, das zu machen?


    Ach ja, es funktioniert nicht :)


    Danke
    Pit

    Intel 1800Mhz c´t 6.1 VDR 1.6.0 Multipatch (Tobi) Plugin Timelinie Nordlicht-EPG Epgsearch Noad

  • Hallo,


    pit:
    Klar, das geht. Pin 7 ist korrekt. Liegt denn tatsächlich schon während des Bootens ein Signal am TV-Out an? Hast du in den Einstellungen des Extension Boards den VGA-Mode auf 'S-Video/Composite' geändert (default ist RGB)? Zur automatischen Anzeige kann dann noch die Videoquelle beim Booten auf 'VGA' gesetzt werden.



    Vor ein paar Wochen hatte Dieter nach einer Möglichkeit gefragt, wie man ein LC-Display über Pin 3 von CON22 des Extension Boards einschalten kann, wenn die (negative) Kontrastspannung extern über einen Spannungswandler erzeugt werden muss. Hier die passende Schaltung:


    [Blockierte Grafik: http://www.tb-electronic.de/vdr/tmp/dc-dc.gif]


    Anmerkungen:

    • Der MC34063 ist als invertierender Boost-Wandler nicht optimal, das spielt aber bei der geringen Ausgangsleistung keine Rolle. Der Wirkungsgrad liegt nur bei ca. 50...60%. Schaltwander von MAXIM oder LTC sind deutlich besser, aber kosten auch das 10-fache und sind schlecht zu bekommen.
      Je nach Spule können 200mW (330µH, Reichelt 09P330µ) oder 600mW (Reichelt MESC 100µ) erreicht werden. Schon die 200mW (entspricht knapp 15mA bei -15V) sollten für die meisten Displays ausreichend sein. Leider sind bei Reichelt keine ’richtigen’ Speicherdrosseln erhältlich, aber bei den geringen Leistungen tun es die angegebenen Typen.


    • Durch zwei Widerstände kann die Ausgangsspannung bestimmt werden. Für -5V, -10V, -12V und -15V sind bereits passende Werte angegeben.


    • Der Trimmer R21 auf dem Extension Board sollte ganz nach links gedreht werden. Für die Kontrasteinstellung wird dann gemäß Display-Datenblatt ein Poti direkt an das Display angeschlossen und die Kontrastpannung aus dem Spannungswandler verwendet. Über das Extension Board kann der Spannungswandler ein- und ausgeschaltet werden (und damit der Displayinhalt).


    Tom

  • LarsAC (RC5-Tastaturencoder)


    • Brücke für RC5-Adresse legen. Welche, ist erst mal egal. Siehe Bild S. 22 im Thread.
    • Mode2 brauchst du nicht.
    • Benutze mal Testweise die Universal-lircd.conf und schau dir die Ausgaben von irw an (Seite 28 im Thread).
    • Der RC5-Encoder SAA3010 übernimmmt die Tastenentprellung, siehe Datenblatt. Das ist doch eine vom PIC vollkommen unabhängige Schaltung. Direkt wird der PIC nur über die beiden Tasten POWER und EJECT gesteuert, und die sind selbstverständlich in der Firmware entprellt.
    • Wenn du alles vorbereitet hast, brauchst du nur mal mit einem Schraubendreher je zwei beliebige Kontake zwischen den beiden Stiftreihen an CON41 der Frontplatine überbrücken, schon blinkt die rot/grüne Status-LED und irw zeigt den Code an – genauso, als würdest du mit der normalen FB Codes senden.
    • Wenn alles klappt, eine freie RC5-Adresse festlegen, die Codes in der richtigen lircd.conf ergänzen und passend zuordnen (unter dem Header für RC5, nicht Extended RC5!).


    Tom

  • Hallo.


    TBE: Danke für die ausführliche Untersuchung dieser Sachen...


    Der Videotext geht jetzt bei mir auch.
    Ich hatte tatsächlich am Composite der DVB-Karte was angeschlossen (nämlich den zweiten Scart des Fernsehers, damit ich hin und her schalten konnte und so die Bildunterschiede genau feststellen konnte, was natürlich quatsch war, da die Bildqualität sich ja ändert, wenn man was am CS der DVB-Karte anschließt). Diese Leitung hab ich jetzt ausgesteckt, und alles funktioniert.

  • @ TBE


    Es funktioniert wirklich, hat es immer schon, nur mir ist nicht aufgefallen, dass nach 5-10Sek der Fernseher die Synchronisation verliert und dann kein Bild von der Konsole kommt.
    Nach kurzer Zeit fängt das Bild an zu zittern hell und dunkel zu werden und dann verschwindet es.


    Liegt das an der Firmware oder an meinem Fernseher?


    Danke
    Pit

    Intel 1800Mhz c´t 6.1 VDR 1.6.0 Multipatch (Tobi) Plugin Timelinie Nordlicht-EPG Epgsearch Noad

  • Ich nehme an, dass du noch nicht versucht hast, den TV-OUT mal direkt an den TV anzuschließen? Das Bild müsste dann genauso aussehen, da zwischen Pin 7 von CON20 und dem Composite-Ausgang an der SCART-Buchse genau ein Relaiskontakt liegt - mehr nicht. Das Signal wird also 1:1 durchgereicht. Nur beim Anschluss eines VGA-Signals an VS und HS (Pin 9 und 10 von CON20) werden die separaten Sync-Signale zu einem Composite-Sync gemischt. Aber auch das hat nichts mit der Firmware zu tun, die schaltet nur die Relais.


    Deinem TV scheint der Pegel und/oder das Timing des TV-Outs nicht zu passen. Teste mal die Direktverbindung. Hast du auch die Masse des TV-Out korrekt angeschlossen?


    Tom

  • @ TBE


    Zitat

    Teste mal die Direktverbindung


    Habe ich gemacht ohne Probleme


    Zitat

    Hast du auch die Masse des TV-Out korrekt angeschlossen?


    Nein habe den Schutzleiter abgezwickt und nur den Mittelleiter an Pin 7 angeschlossen.
    Da dürfte der Fehler liegen!
    Kannst mir bitte sagen wo ich den anschließen soll
    Warscheinlich an GND, gib aber Pin2 ,6 und 8
    Welcher ist der richtige oder ist es egal?
    Danke
    Pit

    Intel 1800Mhz c´t 6.1 VDR 1.6.0 Multipatch (Tobi) Plugin Timelinie Nordlicht-EPG Epgsearch Noad

    Einmal editiert, zuletzt von Pit Carlo ()

  • Am besten an alle vier Pins ( 2, 4, 6, 8 ) anschließen, je niedriger die Impedanz, desto besser.


    Hast du zufällig eine Version mit getrennter Haupt- und Tocherplatine? Dann musst du auch darauf achten, dass beide Boards über das Chassis eine ordentliche Masseverbindung haben (Stehbolzen/Schrauben). Wenn nicht, eine zusätzlliche Verbindung herstellen, so wie hier beschrieben (ganz unten):
    http://www.tb-electronic.de/vd…split/vdr_extb_split.html


    Tom

  • @ TBE


    Zitat

    Hast du zufällig eine Version mit getrennter Haupt- und Tocherplatine?


    Ja habe ich.
    Werde alles so machen wie Du geschrieben hast


    Danke
    Pit

    Intel 1800Mhz c´t 6.1 VDR 1.6.0 Multipatch (Tobi) Plugin Timelinie Nordlicht-EPG Epgsearch Noad

  • TBE
    lange nix von dir gehört nehme mal an du hattest einen schönen urlaub?


    zu deiner Schaltung (spannungs wandlung LCD)
    mein LCD hat den negativ Spannungs-wandler onboard was kann/muß ich weglassen? um den pin 3 con22 zu nutzen? brauche ich den mc34063 überhaupt?
    oder reicht da der BC327-40


    momentan schaltet das extb ja nur die backlights weil ich pin 3 nicht angeschloßen habe.
    siehe seite28


    gruß mart


    PS Wäre nicht schlecht wenn Du vieleicht einen beitrag starten würdest alla Howto: "Software und Betrieb des Extb" und diesen für die hardware. ist ja schon ziemlich unübersichtlich geworden.

  • Hi,


    TBE, mit einem Crash im Graphlcd-Plugin:
    #1 0x40268652 in cControl::GetIndex (this=0x83006d0, Current=@0x82c15fc,
    Total=@0x82c1604, SnapToIFrame=false) at ../../../include/vdr/player.h:87
    #2 0x4025d2a7 in cGraphLCDDisplay::Action (this=0x82c1528) at display.c:436


    hmm, was auf die schnelle helfen könnte, wäre die Reihenfolge in der Plugins geladen werden zu ändern. (extb vor graphlcd) aber es kann auch sein das dies nicht hilft.


    Hier Überschneiden sich das Laufzeitverhalten in den Threads der Plugins,


    das Problem liegt darin, das sich das GraphLCD-Plugin einen temporären Pointer des Player bzw des cControl merkt, welcher durch das Ende der Wiedergabe ungültig wird, bevor dies vom GraphLCD-Plugin erkannt wird.


    Meine Vermutung liegt jetzt darin das dies durch die Auführungsdauer der syncrone Ausführung der LIRC-Kommandos zum Vorschein kommt. Und zwei Kommandos dauern länger als eins...


    Mein Lösung wird jetzt heissen die syncrone LIRC-Ausführung, auf asyncrone Ausführung per eigenen Thread umzubauen aber das wird ein paar Tage dauern


    Aber Problem kann jederzeit in anderen Zusammenhang mit anderen Plugins wieder auftreten.
    Leider sehe ich keine mögliche Lösung innerhalb des GraphLCD-Plugin und das Problem dauerhaft
    zubeseitigen.


    Andreas

  • Hi Andreas,


    die Reihenfolge der Plugins hatte ich ja schon geändert, das hilft nicht. Ist aber nicht so tragisch, normalerweise schalten sich ja nicht zwei LEDs ab, wenn man eine VDR-Wiedergabe beendet. War ja nur zum Testen. Wieso tritt der Crash bei dir eigentlich nicht auf?


    mart:
    Das wird auf zwei Transistoren und ein paar Widerstände hinauslaufen. Den Wandler mit dem MC34063 brauchst du natürlich nicht. Wie schon in der Antwort an mbc im LCD-Forum geschrieben: ich werde mir eine Schaltung ausdenken und poste es dann hier.


    Tom

  • @ Hulk:


    Wann tritt das Problem mit Graphlcd denn auf ???
    Reproduzierbar ??


    Ich hab bei mir seit nen paar Minuten das Dingen am laufen, viel gezappt, aber es läuft ohne Probleme ....
    Das Extension-Plugin läuft auch erste Sahne ...


    By The Way: Mein LCD läuft definitiv nicht übers Extension-Board, auch nicht wenn ich die Kontrastspannung seperat löse ... ;(


    MFG
    Marco

  • Zitat

    Wann tritt das Problem mit Graphlcd denn auf ???


    LED1 bei VDR-Wiedergabe, LED2 bei jeder Wiedergabe einstellen. Aufnahme auswählen (beide LEDs gehen an), Wiedergabe beenden, beide LEDs gehen aus --> Graphlcd-Crash



    Zitat


    By The Way: Mein LCD läuft definitiv nicht übers Extension-Board, auch nicht wenn ich die Kontrastspannung seperat löse .


    Dann hast du etwas falsch verschaltet. Alle benötigten Anschlüsse des LPT-Ports liegen unverändert an CON22 an und jedes Board ist hier mit angeschlossenem Grafik-LCD geprüft worden.


    Tom

  • Hi,


    Zitat

    Original von TBE
    die Reihenfolge der Plugins hatte ich ja schon geändert, das hilft nicht. Ist aber nicht so tragisch, normalerweise schalten sich ja nicht zwei LEDs ab, wenn man eine VDR-Wiedergabe beendet. War ja nur zum Testen. Wieso tritt der Crash bei dir eigentlich nicht auf?


    wobei ich habe mir nochmal die Geschichte mit "MsgReplaying" angeschaut,
    wirklich nachvollziehen kann ich das Problem nicht, da alles syncron und
    schön der Reihe nach auf gerufen wird.


    Die Statusmonitorinterface des VDR benachricht der Reihe nach alle Plugins, über das Ende
    der Wiedergabe und danach wird das cControl des Player ungültig


    Dtor cReplayControl > MsgReplaying > Replaying(GLCD) > Replaying(extb) > .. > cReplayControl wird gelöscht und ist ungültig.


    Im "Replaying(GLCD)" wird der temporäre Pointer deregistiert, vielleicht fehlt ein
    passendes Mutex. Welches den Pointer (display.h replaying) schützt.


    Scheint ein Laufzeitproblem zu sein, jetzt frag mich aber nicht ob eine schneller ober langsamer Rechner besser ist, ich habe ein EPIA-M10000 (1GHz)


    Andreas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!