Hallo Besucher, der Thread wurde 17k mal aufgerufen und enthält 91 Antworten

letzter Beitrag von Ballblazer am

Overlay64: Modul zur Anzeige von digitalen Schaltzuständen auf dem Bildschirm

  • Aber lohnt sich das überhaupt?

    Es würde sich m.M.n. nur lohnen, wenn man diese Lösung z.B. als OSD-Ersatz für ein SD2IEC-Display verwenden könnte.

    ausserdem versteht es das sd2iec-Display-Protokoll nicht

    Da dies wohl nicht funktioniert, ist das Overlay64 so wie es ist Top :)

  • Das klingt sehr interessant, tolle Erweiterung!


    Kann man die auch in einen SX-64 einbauen?
    Platzmäßig kann es natürlich eng werden, sollte aber machbar sein.


    Doch paßt das auch mit der Hardware des SX zusammen? ?(


    Ob es sinnvoll ist, weil man die zusätzlichen Zeilen am internen SX-Bildschirm kaum sehen wird, lassen wir mal dahingestellt :whistling:

  • Kann man die auch in einen SX-64 einbauen?

    Du kannst das overlay im Prinzip in jedes Gerät einbauen, das ein analoges Videosignal (S-Video oder Composite), 5V Versorgungsspannung und digitale Signale zum Überwachen liefert.


    Wo genau du welches Video-Signal im SX64 anschließen kannst, kann ich leider nicht sagen, da ich mich da nicht auskenne. Sofern der interne Monitor S-Video (Chroma und Luma) bekommt, gehst du an Luma, handlet es sich um ein Composite-Signal, nimmst du einfach das. Wichtig ist nur, im Fall von S-Video nicht direkt an die LUMA-Ausgabe des VIC zu gehen, sondern an das (im normalen C64 durch den HF-Modulator) verstärkte Signal. Also einfach dort anschließen, wo das Signal zum Monitor geht.


    Vielleicht weiß ja jemand anders hier mehr dazu.

  • Kurzes Update: Ich habe die Version 1.1 veröffentlicht.


    Es wurden Verbesserungen an der Software und an der Firmware vorgenommen. Die Hardware bleibt unverändert.


    Änderungen:


    Die Logik für die Aktivierung von einzelnen Bereichen (screens) wurde verbessert. Ein screen wird nun unabhängig von anderen Regeln nur dann aktiviert, wenn sich aus der Auswertung mindestens eine Schreiboperation ergibt.


    Ein weiter Betriebsmodus für screens namens "always" wurde hinzugefügt. Ein solcher screen wird (fast) immer angezeigt, unabhängig vom Zustand von Eingangs- oder Kontrolleitungen, sofern die obenstehende Regel auch zutrifft.


    Es muss nun auch nicht mehr zwingend für alle möglichen Zustände ein Befehl angegeben werden.


    Mit diesen Verbesserungen wird es möglich, immer nur dann einen Text anzuzeigen, wenn eine oder mehr bestimmte Leitung in einem einzigen bestimmten Zustand sind. Bisher mussten immer alle Zustände abgedeckt werden.


    Ansonsten gibt es nur ein paar bugfixes und Verbesserungen unter der Haube.


    An die Besteller: Die Bausätze sind in Arbeit, es dauert noch ein paar Tage. Die Atmels werden natürlich mit der aktuellen Firmware 1.1 ausgeliefert.

  • Ich hätte da mal eine Frage zu den Anschlüssen. Konnte dazu nichts in der Anleitung finden.


    Wozu genau ist die Stiftleiste P3 ?
    Was schließt man dort an?


    An P2 kommen ja die Steuerleitungen vom Keyman64. Wo der Overlay64 dann drauf reagieren soll.

  • Das Overlay bietet insgesamt 24 Eingangsleitungen. Leitungen 0-15 sind sowohl an der linken als auch and der lechten Seite verfügbar und eignen sich somit für den Anschluss von zu überwachenden Leitungen (sample), die letztendlich weitere Hardware kontrollieren.


    Leitungen 16-23 befinden sich am Pinheader unten rechts und eignen sich besser als Kontrollleitungen (control), da sie nicht durchgeschliffen werden.


    Die Firmware unterscheidet hier allerdings nicht. Jede Leitung kann als Eingangs- und/oder Kontrollleitung verwendet werden.

  • Wird die Platine nicht über den USB-Bus mit Spannung versorgt?
    Geht PIN 1 der USB-Buchse wirklich ins leere???

    Ixh schreib es mal etwas vereinfacht:
    Die Spannungsversorgung kommt schon vom C64, somit ist PIN1 an der USB-Buchse auch nicht "angeklemmt", damit man nicht auf die Idee kommt, das Ding mit zwei Spannungsquellen zu betreiben.

  • Dann kann man das ganze nur im Betrieb im C64 programmieren?
    Das bedeutet es werden hier zwei Unterschiedliche Potenziale miteinander verbunden.
    Abgesehen davon muss man jedes mal die komplette Apparatur zum PC schleppen.


    Warum hat man das nicht wie beim Keyman64 mittels Jumper gelöst?

  • Dann kann man das ganze nur im Betrieb im C64 programmieren?

    Nein, du kannst den Overlay gern beim Programmieren aus einer anderen Quelle versorgen, wenn es für dich praktischer ist, zum Programmieren jedesmal komplett auszubauen oder zumindest alle Eingangs- und Kontrolleitungen abzuziehen. Ich sehe ehrlich gesagt keinen Sinn darin, deshalb ist die Platine, wie sie ist.

    Das bedeutet es werden hier zwei Unterschiedliche Potenziale miteinander verbunden.
    Abgesehen davon muss man jedes mal die komplette Apparatur zum PC schleppen.

    Es handelt sich um ein self-powered USB device, dort wird VUSB nicht verbunden. Ansonsten wäre es möglich, dass in einem ausgeschalteten C64 ein Atmel hängt, der über USB mit Strom versorgt wird und an dessen IO-Ports irgendwelche Leitungen des C64 bzw. mit diesem verbundene Zusatzhardware hängen, ohne das im Vorfeld klar wäre, um welche Leitungen es sich genau handelt.

    Geht PIN 1 der USB-Buchse wirklich ins leere???

    Ja. Genau wie beim Keyman, wenn der Jumper so gesetzt ist, dass der Keyman durch den C64 versorgt wird.


    Ich tendiere dazu, es in der nächsten Revision des Keyman genauso zu machen wie beim Overlay, d.h. der Jumper fällt weg und eine Versorgung unabhängig vom C64 wird nicht mehr möglich sein. Der Keyman ist je nach Jumper Host- oder Self-Powered, was nicht besonders glücklich ist, da die Verantwortung für den jeweils korrekten Anschluss der Versorgunsspannung in der jeweiligen Betriebsart beim Benutzer liegt.

  • Unter USB-Controller erscheint bei mir nur ein Unbekanntes USB-Gerät.


    "Wird Zadig nun ausgeführt, sollte es das Gerät “Overlay64” erkennen."
    Nö, tut es nicht.


    Ich vermute mal das man sich zuerst die libusb-1.0 Treiber herunterladen muß, oder?


    Ok, die Treiber scheinen noch vom Keyman64 installiert zu sein.
    Wenn ich die aber auswähle (liegen bei mir unter Benutzer/NAME/usb_Driver) bekomme ich die Meldung:
    Die optimale Treibersoftware für das Gerät ist bereits installiert.


    Spießt sich da etwas etwas mit dem Keyman64?

  • Ich habe die Platine jetzt mal an einem frisch installierten Windows 7 Rechner angeschlossen.
    Hier das gleiche Problem.


    Die Hardware wird nur als "Unknown Device" erkannt.


    Der Keyman64 funktioniert am anderen Gerät jedoch fehlerfrei.


    Somit muss das Problem wohl bei der Platine liegen.


    Sonst jemand hier der das Teil schon zusammengelötet und getestet hat?

  • Ich habe mal versucht, das Problem auf diversen Windows-Versionen und Installationen zu reproduzieren und habe dieses Verhalten auch teilweise nachvollziehen können.


    Offensichtlich ist Windows je nach Version etwas ungeduldig, wenn es um die Enumeration des Geräts geht.


    Bitte probiere mal folgendes: C64 ausschalten, USB-Kabel vom Windows-PC abziehen, dann zuerst den C64 einschalten, ein paar Sekunden warten und dann erst das USB-Kabel mit dem PC verbinden. Dann sollte das Gerät korrekt erkannt, werden und in Zadig als "Overlay64" erscheinen.


    Zumindest funktioniert das unter dem Windows 7 System, auf dem ich beim Einschalten des Geräts mit bereits verbundenen USB-Kabel das von dir beschriebene Verhalten reproduzieren konnte.


    Die korrekte Erkennung des Gerätes unter Windows äußert sich vor Installation der Zadig-"Treiber" so, dass das Gerät zwar im Gerätemanager als "unbekanntes Gerät" gelistet wird, unter "Eigenschaften -> Details" jedoch die korrekte USB-ID angezeigt wird (1d50 6100). Ist die USB-ID vorhanden, kann Zadig das Gerät erkennen und die Treiber für den Zugriff über WinUSB (libusb) können installiert werden.

  • Werde ich heute testen.


    Das bedeutet, die Platine benötigt vorher Saft bevor die Datenleitungen verbunden werden?
    Ich hatte mir testweise die VCC Leitung auf die USB-Buchse verbunden damit ich die Hardware unabhängig vom C64 programmieren kann.

  • Das bedeutet, die Platine benötigt vorher Saft bevor die Datenleitungen verbunden werden?

    Nein, das ist ein reines Softwareproblem. Windows fängt mit der Enumeration an, bevor die USB-Schicht auf dem Atmel vollständig initialisiert ist. Linux ist da einfach geduldiger.


    Die Firmware wird in der nächsten Version dementsprechend angepasst, so dass die Enumeration dann auch direkt nach dem Einschalten des bereits verbundenen Overlays funktioniert.


    EDIT:


    Ich hatte mir testweise die VCC Leitung auf die USB-Buchse verbunden damit ich die Hardware unabhängig vom C64 programmieren kann.

    Sorry, jetzt habe ich's begriffen. Ja, in deinem Fall musst du dann erst VCC und GND zur Platine führen und nach ein paar Sekunden erst die Datenleitungen verbinden, wenn du das Gerät in dieser Weise getrennt vom C64 programmieren willst. Das wird natürlich dann auf Dauer umständlich, daher hänge ich dir hier schonmal die Dateien für eine Firmware-Version an, in der das Problem nicht mehr auftauchen sollte, jedenfalls funktioniert es mit meinem Windows 7. Entweder das kombinierte Image im externen Programmer flashen oder nur den Anwendungsteil über "overlay update". Für letzteres müsste natürlich auch erstmal das USBasp Bootloader-Device über Zadig vorbereitet werden.

  • Ich kann das Problem damit leider nicht lösen.
    Weder so, wie von dir beschrieben, im Betrieb, mit der Stromversorgung vom C64 und nachträglichen Anschließen der USB-Verbindung, noch mit der aktuellen Firmware, bekomme ich im und außerhalb vom C64 ein korrekt erkanntes USB-Gerät zustande.


    MOMENT! Im C64 Betrieb wird das Teil nun erkannt.
    Ich teste noch...


    Update:
    OK, war wohl nur ein einmaliges Vergnügen.
    Das Gerät wurde als Overlay64 erkannt, jedoch unter libusb-win32 devices. (Den Keyman64 sehe ich unter USB-Geräte im Gerätemanager.)



    Ich habe in dem Zustand die libusb-Treiber mit zadig installieren können.
    Allerdings wollte ich anschließend meine Konfiguration übertragen. Nur wie? Da es nicht als USB-Gerät erkannt wird, wird das wohl nix.


    Dann habe ich den C64 mal AUS/EIN geschalten.
    Nun habe ich wieder das verflixte "Unbekanntes USB-Gerät."


    Man muß anschließend auch das USB-Kabel abstecken und wieder ansteckien. Dann kann man den C64 wieder einschalten. Anschließend scheint es dann wieder unter libusb-win32 devices auf.


    Die Hardware selbst funktioniert ja im Grunde. Also der "Overlay" wird am Video-Signal ausgegeben.


    Getestet habe ich jetzt nur mal auf einem Windows 8.1 Gerät.

  • Vielleicht erklärst du nochmal genau, was du machst, Schritt für Schritt.


    Hast du die von mir angehängte firmware geflasht? Über ein externes Programmiergerät? Dabei das application-and-bootloader image verwendet?


    Wie wird das Overlay mit Spannung versorgt? Schließt du erst VCC und GND an und danach D+ und D-? Oder hast du das Overlay jetzt wie vorgesehen angeschlossen, so dass es vom C64 versorgt wird?


    Unter Zadig muss als Treiber "WinUSB" gewählt werden. Die libusb-1.0.dll, die mit der Overlay64-Software geliefert wird, ist allerdings nicht der Treiber im Sinne von Zadig, sondern nur eine Bibliothek. Wäre die nicht da würde die overlay64.exe auch nicht starten, da sie gegen diese gelinkt ist.


    Ansonsten: Auf meinem Windows 7 (das einzige mir zur Verfügung stehende Windows-System) funktioniert das, mehr kann ich dazu leider nicht sagen. Das Verhalten der vorherigen Firmware unter Windows 7 ist sowohl nachvollziehbar als auch reproduzierbar.