Jump to content
Portisch

USB IR Remote Receiver

Recommended Posts

Portisch

Hallo zusammen!

 

Da der Igor AVR USB IR-Empfänger nicht ganz ohne Probleme funktionierte habe ich das Projekt von Frank M. IRMP - Infrarot-Multiprotokoll-Decoder und V-USB benutzt um einen neueren/besseren IR-Empfänger zu haben. Durch V-USB meldet sich der AVR als HID-Gerät an. Das bedeutet es wird kein Treiber benötigt (egal ob WinXP oder Win7!).

 

Auch wie Frank M. beschreibt, ist das RC5 Protokoll schon lange nicht mehr so aktuell in Verwendung.

 

Aktuelle Version: External Link auf www.mikrocontroller.net: USB IR Remote Receiver Artikel

(AVR Source + IRMP vom 28.04.2010, modifizierter bootloadHID, Input Plugin, Doku, DLL Demo VS2008, DLL Demo Delphi 2010)

 

Ab Version 1.0.0.3 wird nun DVBViewer, Girder und selbst geschriebene Programme unterstützt!

 

Update 09.05.2010: Es gibt nun auch ein Plugin um den Empfänger im EventGhost verwenden zu können.

 

Screenshot:

post-54982-1272649168_thumb.jpg

 

Update von der Firmware über den Optionen-Dialog:

post-54982-1272649339_thumb.jpg

 

Das Projekt von Frank M. unterstüzt zur Zeit folgende Protokolle:

SIRCS

NEC

SAMSUNG

SAMSUNG32

MATSUSHITA

KASEIKYO

RECS80

RECS80EXT

RC5

DENON

RC6

APPLE

NUBERT

B&Q

 

(RC5, RC6, NEC & SIRCS habe ich probieren können)

 

Als AVR wird der Atmega8-16 mit 12MHz Quarz verwendet. Dieser AVR ist überrall erhältlich und zudem recht günstig!

Ein Schaltplan ist im AVR-Source mit enthalten. Zusammen kommen die Bauteile auf weniger als 10€ im Selberbau!

Ein Ausdruck eines Warenkorbs von www.rechelt.de ist beim AVR Source dabei.

 

Die Unterstützung von DVBViewer_Switch ist natürlich vorhanden.

Die PowerOn Funktion kann in den Optionen aktiviert/deaktiviert werden.

 

PowerOn Funktion

Beim ersten Gebrauch wird automatisch der erste empfange IR-Code im EEPROM abgespeichert. Dieser IR-Code wird zum Einschalten/Ausschalten des PCs über Pin PC5 verwendet.

Sollte eine andere Taste der Fernbedienung angelernt werden muss per "Clear Trained Code" der gepeicherte zuerst gelöscht werden.

Danach wird wieder der erste empfangen IR-Code abgespeichert.

 

Installation:

Einfach die "USB_IR_Remote_Receiver.dll" in das DVBViewer\Plugin Verzeichnis kopieren. Danach in den Eingaben-Plugins im DVBViewer aktivieren.

 

Schaltplan Erklärung:

An PD0 hängt USB D-

An PD2 hängt USB D+

An PD3 kann Optional ein Jumper angebracht werden. Dieser kann dann für den Bootloader verwendet werden.

An PD4 wird IR-Diode angeschlossen. (z.B. TSOP1738)

An PC5 kann ein Optokoppler angeschlossen werden um damit den Power Schalter des HTPCs zu bedienen (Einschalten per Fernbedienung)

 

Die Z-Dioden sind notwendig, da der AVR mit +5V läuft, USB aber nur max 3,6V verträgt!

 

Die Schaltung selber wird vom USB-Port versorgt und braucht kein extra Netzteil.

 

AVR Firmware:

Der Source für den Atmega8 liegt bei. Er kann mit AVR-Studio und AVR-GCC kompeliert werden.

 

Bootloader:

EDIT: Der Bootloader ist nun im komplett File enthalten. Die modifizierte Version ermöglicht das Updaten der Firmware ohne den Jumper setzen oder das Gerät aus/ein stecken zu müssen.

 

Updates:

Irmp wird laufend von Frank M. erweitert! Special THX!

Ich werde zu den Irmp Updates dann hier auch ein Update anbieten.

Auf Wunsch kann ich auch den Delphi Source des Input-Plugins weitergeben. Mann kann z.B. auch ein Programm schreiben um den ganzen PC mit dem Empfänger steuern zu können. Deswegen anbei ein Demo Source für Delphi 2010. Um den Source kompilieren zu können wird die Jedi Komponenten benötigt. Die Demo zeigt wie die Daten per HID-USB empfangen werden.

 

Demo Source+EXE: Irmp_V_USB_mit_INT_1.0.0.0.rar

 

Viel Spass beim Basteln! ;)

Edited by Portisch
  • Like 2

Share this post


Link to post
Portisch

Update 1.0.0.1

 

Der AVR wurde von USB-Polling auf Interrupt-Transfer umgestellt.

Die Tastenentprellung wird nun im AVR vorgenommen. In den Optionen kann ein MinRepeat Wert eingestellt werden. Wenn z.B. 5 eingestellt ist muss die Taste auf der Fernbedienung sollange gedrückt werden bis der Code 5x wiederholt worden ist. Erst danach werden die Befehle wieder an den Host (Input-Plugin) gesendet.

0.. ist sozusagen gar keine Entprellung, 20..maximale Verzögerung. Selber habe ich einen Wert zwischen 3-5 als Sinnvoll testen können.

Auch ist ein Update des AVRs von Nöten!

 

Auch die Irmp Version ist nun 1.00 - 29.03.2010, Bugfix NEC Code (thx Frank M.)

 

Beim AVR Source liegt nun auch eine Stückliste (Warenkorb von Reichelt.de). Der Selberbau für den Multi-Protokoll USB Ir Remote Receiver kommt auf nicht einmal 10€!

 

Auch habe ich einen Demo-Source angehängt damit man sehen kann, wie man mit dem HID-USB IR Remote Receiver IR-Codes empfangen kann.

 

mfg

Edited by Portisch

Share this post


Link to post
Portisch

Update 1.0.0.3

 

Es wird nun unterstützt:

DVBViewer als Input Plugin

Girder ab Version 3.2.9 als Plugin

Selbstgeschriebene Programme

 

Siehe Doku im ZIP-File.

 

Auch ist eine neue Demo für Visual Studio 2008 hinzugekommen, wie man mit der DLL umgeht.

 

Update IRMP auf 16.04.2010, neues IR-Protokoll: B&Q

Edited by Portisch

Share this post


Link to post
adriankoooo

Hi Portisch, this IR Receiver sounds very good. Is there any shop where I can buy this receiver?

Share this post


Link to post
Portisch

No, Sorry!

 

The costs of the electronic parts is around €10. The hard thing is that you have to solder the schematic by yourself!

 

Also to program the AVR isn't a problem. A self-made Atmega8 programer for the LPT port contains only 3 parts.

The software (PonyProgam) to program the AVR is freeware.

German (only) description:

http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

The first schematic is for the LPT port.

Share this post


Link to post
coolzero

Hallo Portisch,

 

dein Projekt hört sich sehr interssant an.

 

Ich wollte fragen wie lange du den Empfänger bei dir schon in Verwendung hast, und ob es mit den genannten Einstellungen noch kleine Probleme gibt wie Prellen o.ä

 

Ich nutze derzeit die IMON Software von Soundgraph (Thermaltake DH102 Gehäuse) mit einer Logitech Harmony 555.

Es ging einige Wochen bis die IMON Einstellungen und die Harmony Einstellungen "harmoniert" haben.

Dennoch kommt es hin und wieder vor das Tasten prellen, vor allem beim erstmaligen Drücken einer Taste, was doch manchmal nervt.

 

Deswegen wollte ich fragen ob du voll zufrieden bist mit dem derzeitigen Stand.

 

Da ich das Lötwerkzeug habe und mit ATMEL Controller selbst schon Schaltungen gemacht habe werde ich mir die Schaltung auf jedenfall mal irgendwann aufbauen.

Share this post


Link to post
Portisch

Hi,

 

Probleme hatte ich bis jetzt noch kein einziges! Sollte sich der AVR wirklich einmal ins Eck stellen spricht der Watchdog im AVR an und der Empfänger verbindet sich neu ohne das man etwas merkt. (Hatte ich bis jetzt noch nie)

 

Entprellung geht auch immer! Das liegt aber eher an Irmp und nicht an mir ;) (siehe MinRepeats)

 

Das einzige "unschöne" ist, dass das DVBViewer OSD selber mit der Geschwindigkeit (rauf/runter im z.B. Favoriten-Fenster) nicht nachkommt ;)

Bei Volumen rauf/runter geht's schön flüssig.

Share this post


Link to post
coolzero

Wie äußert sich das "Nichtnachkommen" dann?

 

Verschluckt der DVBViewer die Befehle oder gibt es einen "Nachlauf" von dem Cursor, sprich ich drücke gar nichts mehr und er scrollt immer noch.

 

Das erstere wäre mir lieber ;)

Edited by coolzero

Share this post


Link to post
Portisch

Da ich keine Bestätigung bekomme ob der letzte Befehl ausgeführt wurde ist es 2.

 

Der DVBViewer scrollt immer noch weiter da er die empfangen Daten noch abarbeitet obwohl die Taste gar nicht mehr gedrückt wird.

 

Dies kann man verhindern, indem man z.B. nur alle 200ms einen Input-Befehl zum DVBViewer schickt.

Diese Zeit ist halt voll DVBViewer/OSD Skin/System/... abhängig. Bei manchen reichen 50ms (z.B. Volumen Balken) manchmal braucht es aber auch 300ms (z.B Favoriten Fenster mit Logos)

Nachteil einer solchen Zeitverzögerung ist, dass dann die Eingabe sehr sehr träge wird.

 

 

Die Verzögerung kann ich noch in die DLL mit einbauen (als Default keine Verzögerung). Also kein AVR Update nötig!

D.h es werden dann nur noch Befehle durchgelassen wenn die Zeit zwischen vorherigen und nächsten Befehl überschritten worden ist.

Befehle dazwischen werden einfach verworfen und nicht an den DVBViewer gesendet.

 

Dies hat aber nichts mit der Tastenentprellung zu tun:

Im AVR wird mit Irmp ein IR-Code dekodiert: IRMP_FLAG_REPETITION = 0x00

Taste bleibt gedrückt und es wird der nächste IR-Code dekodiert: gleicher code inerhalb Zeit-Toleranz = IRMP_FLAG_REPETITION = 0x01;

Hier greift nun das MinRepeat:

Es werden soviele Codes mit dem Flag IRMP_FLAG_REPETITION 0x01 geblockt wie in MinRepeats angeben. Danach werden sie wieder 1:1 durchgelassen.

 

Bsp bei gedrückter Taste x, MinRepeats = 5:

1 IR code xy, flag 0x00 : reset Count - forward to host
2 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
3 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
4 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
5 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
6 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
7 IR code xy, flag 0x01 : Count+1, Count > MinRepeats - forward to host
8 IR code xy, flag 0x01 : Count+1, Count > MinRepeats - forward to host
...
..

Edited by Portisch

Share this post


Link to post
Portisch

Update 1.0.0.4

 

DLL:

Bugfix mit DVBViewer Settings/Option Dialog,

es kann nun im INI File ein Tastenunterdrückung eingestellt werden (Key Suppression).

Default ist keine. Siehe USB_IR_Remote_Receiver_DLL_help.htm

 

AVR:

Optimierung der IR Code Erkennung für die PowerOn Funktion,

Bugfix wenn eine Taste länger als 255 Wiederholungen gedrückt war

Share this post


Link to post
MrEdd

Hey,

 

nach langem suchen für einen Ersatz von IgorPlugIn bin ich vor nicht mal einer Woche auf Deinen IR Remote Receiver gestoßen.

Als ich noch lass das die DLL auch mit Girder funktioniert war klar, muss ich testen.

Flux die Teile zusammen gesucht nach ner guten Std. war die Hardware fertig hex File in Atmega rein und beim anstecken sagt Windows "Unbekanntes Gerät" :) mmmmmmm.......

Was is da nich OK? Hin und her geschaut gemacht getan geht nicht......... :)

 

Aber dann ich Trottel :blush: ich hab doch einen Atmega88 und das hex File is für nen Atmega8.

AVR Studio gestartet Processor umgestellt neu kompiliert ab in denn Atmega88 hi hi hi.... angesteckt und siehe da erkannt.

Girder hat auf anhiebt damit funktioniert aber der ober hammer ich kann meine HTPC jetzt vom Sessel aus ein und aus schalten geil.

Nutze MediaPortal damit und muss sagen die FB reagiert um längen besser als mit IgorPlugIn.

 

Geile Sache das ist.

 

Danke für das super Projekt Portisch.

Share this post


Link to post
Portisch

Freut mich zu höhren, dass es funktioniert!

 

"Unbekanntes Gerät"

Kleiner Hinweis:

Dies kann auch passieren, wenn die Fuse Bits beim Programmieren falsch gesetzt sind.

Das war beim IgorPlug nicht nötig und als Default wird der interne Oszillator genommen und Windows erkennt dann das USB-Gerät nicht.

 

@MrEdd

Hast du für den Atmega88 auch was am Source ändern müssen oder hat es einfach gereicht in AVR Studio den Chip umzustellen?

Edited by Portisch

Share this post


Link to post
MrEdd
Hast du für den Atmega88 auch was am Source ändern müssen oder hat es einfach gereicht in AVR Studio den Chip umzustellen?

 

Hat gereicht einfach den Chip im AVR Studio umzustellen musste nix am Source ändern.

 

Was ich bisher noch nicht geschafft habe is einen Bootloader zum laufen zu bringen, aber das ist ein anderes Thema und gehört nicht hier her. :biggrin:

Edited by MrEdd

Share this post


Link to post
Portisch

Für den Bootloader müssen die Fuse Bits richtig gesetzt sein. Ansonsten wir von der falschen Adresse gebootet und beim Flashen der Bootloader überschrieben.

Share this post


Link to post
Portisch

Update 1.0.0.5

 

28.04.2010:

DLL: v1.0.0.5, Added possibility to flash or update the device firmware direct with the USB IR Remote Receiver settings/option dialog.

AVR: Bugfix code repeats

Updated Irmp to 28.04.2010

Added modified booloadHID to be able to flash the device without setting a jumper or needed disconnect/reconnect of the device

The booloadHID will boot if:

+ no USB IR Remote Receiver firmware is flashed

+ jumper is set

+ the firmware itself is reseting the device for bootloader modus

 

Mit dem modifizierten Bootloader kann nun einfach einen neue Firmware

runter gespielt werden ohne den Jumper setzen oder das Device

aus/ein stecken zu müssen.

 

Zusätzlich hätte ich noch die Frage, ob ich vielleicht etwas mehr Upload-Speicher haben könnte :bye:

Nach Säubern der Uploads sind trotzdem nur mehr 82.09KB verfügbar... Danke!

Share this post


Link to post
Goggo16

Hi,

 

sehr interessante Sache. Besonders die Girder-Unterstuetzung und DVBViewer, sowie die Moeglichkeit den PC einzuschalten. Sehr sehr schoen.

 

Mit dem Loetkolben kann ich [noch] umgehen. Aber beim Programmieren des Controllers hapert es, vorsichtig gesagt. ;-)

 

Haette Interesse an zwei von den Dingern. Sieht einer von Euch oder auch von den Mitlesern die Moeglichkeit mir zwei von den Teilen zukommen zu lassen, natuerlich nicht unentgeltlich. Vielleicht geht ja was ueber PN.

 

Gruesse,

 

Goggo

Share this post


Link to post
Portisch

Wer keinen Programmer hat kann es hiermit probieren:

http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

 

Habe es selber nicht versucht, aber man braucht nur einen 25 Poligen SUB-D Stecker und 2 Widerstände und einen LPT Port.

Hab ihn selber nicht probiert da ich über einen Programmer verfüge.

 

Werde die LPT Version nächste Woche einmal testen und einen Schaltplan+Anleitung nachreichen.

 

Wenn einmal der Bootloader programmiert ist braucht man keinen Programmer mehr! Danach kann man den AVR über das Plugin & USB programmieren.

Edited by Portisch

Share this post


Link to post
Portisch

Habe die v1.0.0.5 noch einmal hochgeladen.

Es gibt nur ein Doku-Update. Es wurde die Schematik überarbeitet und eine Beschreibung wie der AVR über PonyProg2000 programiert werden kann ist dazu gekommen :bye:

 

Noch eine kleine Frage:

Ist vielleicht jemand hier in der Lage ein Plugin für EventGhost für die USB_IR_Remote_Receiver.dll zu machen? Die Plugins sind ja in Python und von dem habe ich nun wirklich keine Ahnung!

Callbacks, mit denen die IR-Signale empfangen werden scheinen auch von Python unterstüzt zu werden.

 

Danke!

Edited by Portisch

Share this post


Link to post
Portisch

Update 09.05.2010

 

Die aktuelle Version gibt es nun bei www.mikrocontroller.net zum Download.

 

DLL:

v1.0.0.6: kleiner BugFix bei Standby

 

Sonstiges:

Es wurde ein Plugin hinzugefügt um den Empfänger mit EventGhost verwenden zu können,

Docu Update

Share this post


Link to post
Portisch

Update 18.05.2010

 

Ein kleines Update von Irmp: neues Protokoll GRUNDIG, Bugfix SAMSUNG32

 

Download wieder beim Artikel: USB IR Remote Receiver

Edited by Portisch

Share this post


Link to post
coolzero

Hallo portisch,

 

hab nun deine Schaltung aufgebaut bzw die neuste Version geflasht.

Hat alles auf Anhieb funktioniert - super Arbeit, DANKE!

 

Nun würde ich den Empfänger gerne mittels Eventghost betreiben.

 

Dafür habe ich die Version 0.4.0.r1397 installiert, und alle anderen "Plugins" deaktiviert ausser USBIRReceiver (so wie auf dem Bild gezeigt in der Doku)

Ich muss sagen ich habe mit Eventghost noch nichts gemacht bisher, also keine Erfahrung.

 

Habe nun das Problem das im Log einige Meldungen auftauchen (siehe Bild) die sehr wahrscheinlich von meinem Touchscreen herkommen (Thermaltake DH102 Gehäuse) , das auch als HID Device angemeldet ist.

Es kommen sehr viele Meldungen, und der Mauszeiger hakt hin und wieder, was mir sagt das der Rechner ziemlich beschäftigt sein muss.

Meldungen vom USBIRReceiver kommen durch, da gibts keine Probleme.

Der DVBViewer hakt auch sehr stark wenn ich die DLL im DVBViewer nutze , also ohne Eventghost ... ich weiss nicht ob das das gleiche Problem ist!

 

Meine Fragen nun: kann ich Evenghost irgendwie beibringen den Touchscreen als Eingabegerät nicht abzufragen bzw ihn zu ignorieren?

 

Die Suche hier im Forum bzw Google konnte mir nicht weiterhelfen, vielleicht hast du ein Tip für mich!

Share this post


Link to post
Portisch

Also laut deinem Bild meldet sich immer die VID: 0x15C2 / PID: 0x0034 4 mal ab und dann wieder an.

Dann auch gleich wieder ab und wieder an usw.

 

Der USB IR Remote Receiver hat die VID 0x16C0 / PID: 0x05DF.

 

Dies kann man im Geräte Manager in den Eigenschaften der einzelnen USB-Geräte nachsehen.

 

Hast die 2 Geräte vielleicht am gleichen USB-Port hängen? Versuch mal unterschiedliche - sowie intern/extern/back/front.

 

Es könnte sein, dass das VID 0x15C2 ziehmlich viel Strom braucht aber zuwenig bekommt.

Das Bild sieht so danach aus, dass das Gerät bootet und sich dann gleich wieder resetet.

Share this post


Link to post
groats

Update 1.0.0.1

 

Beim AVR Source liegt nun auch eine Stückliste (Warenkorb von Reichelt.de). Der Selberbau für den Multi-Protokoll USB Ir Remote Receiver kommt auf nicht einmal 10€!

 

wo finde ich denn die Einkaufsliste für Reichelt!?

 

Vielen Dank!

 

P.s. NETTES PROJEKT :-D

Share this post


Link to post
Portisch

Lade dir das Projekt von hier herunter.

 

Es sollte ein PDF von der Liste darin zu finden sein.

Ich glaube es war im AVR Ordner.

Share this post


Link to post
coolzero

Also laut deinem Bild meldet sich immer die VID: 0x15C2 / PID: 0x0034 4 mal ab und dann wieder an.

Dann auch gleich wieder ab und wieder an usw.

 

Der USB IR Remote Receiver hat die VID 0x16C0 / PID: 0x05DF.

 

Dies kann man im Geräte Manager in den Eigenschaften der einzelnen USB-Geräte nachsehen.

 

Hast die 2 Geräte vielleicht am gleichen USB-Port hängen? Versuch mal unterschiedliche - sowie intern/extern/back/front.

 

Es könnte sein, dass das VID 0x15C2 ziehmlich viel Strom braucht aber zuwenig bekommt.

Das Bild sieht so danach aus, dass das Gerät bootet und sich dann gleich wieder resetet.

 

Hallo portisch,

 

hab heute nochmal ein bischen probiert.

 

Diese An- und Ameldemeldungen kommen nur dann wenn dein Empfänger im Eventghost eingebunden ist.

Die Meldungen kommen auch dann wenn der Empfänger nicht verbunden ist bzw der Empfänger an anderen USB Ports angeschlossen ist.

Der Touchscreen ansich funktioniert ohne Probleme.

 

Ich könnte mir vorstellen das es vom Eventghost Plugin kommt, das eben auf HID Devices anspricht (was der Touchscreen auch ist)

Ist es möglich das man da vielleicht einen Filter setzt bei dem Plugin das er nur auf deinen Empfänger (VID 0x16C0 / PID: 0x05DF) anspricht?

 

Ohne den angeschlossenen Touchscreen funktioniert alles bestens, wäre nur schade wenn ich auf den verzichten müsste.

Share this post


Link to post
Portisch

Mit EventGhost muss man aufpassen. Es kann sein das ein HID Plugin aktiv ist und das Probleme macht.

Oder auch kann es zu Problemen kommen wenn EventGhost keine Rechte hat:

http://www.mikrocontroller.net/topic/171111#1753016

 

Das EventGhost-Plugin für den Receiver greift nur auf die DLL zu und nicht direkt auf die USB-HID Schnittstelle.

Edited by Portisch
  • Like 2

Share this post


Link to post
coolzero

Ich habe auf der rechten Seite im Eventghost alle Plugins gelöscht, einzigste was aktiv ist ist der IR Empfänger und DVBViewer als Programmsteuerung.

 

Was die Rechte angeht: Die Programme laufen in einem Admin Account, es sollten also keine Einschränkungen geben.

Das Thermaltake hat 2 HID Devices, einmal den Touchscreen, und einmal den eigebauten IR Empfänger.

 

Wie gesagt ohne die geladene dll von deinem Empfänger zeigt Eventghost noch keine Meldungen...erst wenn der Empfänger aktiv ist kommen auch die Meldungen rein.

Ich kenne mich mit Eventghost nur grundlegend aus bis jetzt, finde aber auch keine weiteren Einstellungen was ich noch probieren könnte.

Einzigste was hilft ist die Gehäuse HID Devices abzuziehen.

Share this post


Link to post
coolzero

Da ich keine Bestätigung bekomme ob der letzte Befehl ausgeführt wurde ist es 2.

 

Der DVBViewer scrollt immer noch weiter da er die empfangen Daten noch abarbeitet obwohl die Taste gar nicht mehr gedrückt wird.

 

Dies kann man verhindern, indem man z.B. nur alle 200ms einen Input-Befehl zum DVBViewer schickt.

Diese Zeit ist halt voll DVBViewer/OSD Skin/System/... abhängig. Bei manchen reichen 50ms (z.B. Volumen Balken) manchmal braucht es aber auch 300ms (z.B Favoriten Fenster mit Logos)

Nachteil einer solchen Zeitverzögerung ist, dass dann die Eingabe sehr sehr träge wird.

 

 

Die Verzögerung kann ich noch in die DLL mit einbauen (als Default keine Verzögerung). Also kein AVR Update nötig!

D.h es werden dann nur noch Befehle durchgelassen wenn die Zeit zwischen vorherigen und nächsten Befehl überschritten worden ist.

Befehle dazwischen werden einfach verworfen und nicht an den DVBViewer gesendet.

 

Dies hat aber nichts mit der Tastenentprellung zu tun:

Im AVR wird mit Irmp ein IR-Code dekodiert: IRMP_FLAG_REPETITION = 0x00

Taste bleibt gedrückt und es wird der nächste IR-Code dekodiert: gleicher code inerhalb Zeit-Toleranz = IRMP_FLAG_REPETITION = 0x01;

Hier greift nun das MinRepeat:

Es werden soviele Codes mit dem Flag IRMP_FLAG_REPETITION 0x01 geblockt wie in MinRepeats angeben. Danach werden sie wieder 1:1 durchgelassen.

 

Bsp bei gedrückter Taste x, MinRepeats = 5:

1 IR code xy, flag 0x00 : reset Count - forward to host
2 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
3 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
4 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
5 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
6 IR code xy, flag 0x01 : Count+1, Count < MinRepeats - blocked
7 IR code xy, flag 0x01 : Count+1, Count > MinRepeats - forward to host
8 IR code xy, flag 0x01 : Count+1, Count > MinRepeats - forward to host
...
..

 

Hallo portisch,

 

ist die Funktion für die Verzögerung schon eingebaut, bzw wo kann man diese einstellen?

Share this post


Link to post
coolzero

Dank dir!

 

Es funktioniert jetzt alles bestens, super Sache!

 

Wo ich noch ein bischen ein Problem habe ist die Einschaltfunktion.

Sie funktioniert zwar, aber wenn ich die gelernte Einschalttaste zum Ausschalten konfigurieren will kennt er diese nicht mehr im Eventghost.

Sobald ich eine andere Taste zum Einschalten anlerne kennt er diese wieder.

 

Die Funktion zum "Disablen der Einschaltfunktion" bringt scheinbar auch kein anderes Ergebnis.

Ich nutze die 1.0.0.8 Version. Habe heute viel probiert, vielleicht habe ich auch was übersehen, kann natürlich auch sein.

Ich werde berichten wenn sich was neues ergibt.

 

Die Sache mit dem Touchscreen wird wohl vorerst nicht gehen, weiß auch gar nicht mehr was ich testen soll.

Mir ist eine gut funktionierende Fernbedienung wichtiger, von daher zweitrangig.

Falls es doch mal eine Lösung geben sollte wärs perfekt.

Share this post


Link to post
Portisch

Also wenn die PowerOn Funktion eingeschaltet ist wird wenn diese Taste erkannt wird nur der Optokoppler geschaltet. Der Befehl wird nicht mehr weiter zum Host gesendet.

 

Es ist also so wie als drückst du den PC-Powerknopf zum Einschalten und auch zum Ausschalten.

 

Wenn die DLL im DVBViewer benutzt wird, kann diese PowerOn Funktion automatisch beim Starten von DVBViewer dseaktiviert werden.

Bin mir im Moment aber nicht sicher ob das auch geht wenn die DLL über EventGhost geladen wird.

 

Werde ich mir noch ansehen!

Share this post


Link to post
delatdecatsini

hello friends,

anyone try USB IR HID consumer device project at : http://usb-ir-remote.sourceforge.net/

No need to use any application or use dll to config it. Just open notepad, switch to learn mode and follow intruction to assign ir code (only NEC/Sony ir code) to IR consumer.

I try but no wonder where is error. Anyone here tried it please post your recommend.

Thank you!

Share this post


Link to post
Portisch

It is a cheap version as they describing it at their homepage.

 

The disadvantage between USB_IR_Remote_Receiver and USB_IR_HID_Device:

 

USB_IR_HID_Device can only handle NEC protocol

USB_IR_Remote_Receiver can handle: NEC, RC5, RC6, SIRCS, SAMSUNG, DENON, SIEMENS, NOKIA, APPLE,......

 

USB_IR_HID_Device will decode the IR and translate to key like key_1 = 'a', key_2 = 'b', ... (keyboard key)

You can't change the key without reprogramming the AVR. It is fixed in the AVR source.

 

USB_IR_Remote_Receiver will send the IR codes native to the host.

The host will do the handling of the IR code.

Like you say key_1 = 'a', key_2 = 'b', but now you can reconfigure the host without reprogramming the AVR to key_1 = 'b', key_2 = 'a'....

 

The USB_IR_Remote_Receiver DLL is used to handle the hardware and provide a simple interface to be able to receive native IR codes. The application what is using the DLL can now be a keyboard simulator, DVBViewer, Girder, Eventghost or your selfmade software,.....

Share this post


Link to post
ampelignorierer

Hallo an alle!

 

Zunächst einmal hochachtung für das super und sehr gut dokumentierte IR receiver projekt. Habe es mir vor ein paar tagen aufgebaut, mit dem ziel mein igor usb zu ersetzen.

Kleines layout gemalt (kann ich gerne zur verfügung stellen, ist SMD, aber einseitig), den atmega 8 mit bootloader betankt, fuses gesetzt und dann unter windows per DLL funktion das hex geladen. (v1.4)

 

Alles super, leider bekomme keinen sauberen empfang hin. Rufe zum testen per DLL_Demo.exe die USB IR Receiver konfiguration auf, habe dort debug in der ini datei aktiviert um besser zu sehen was kommt. Zwei effekte sind zu beobachten:

- bei "IR Polling Delay" kleiner ca. 90 bekomme ich alle paar sekunden irgendwelche zufälligen IR codes angezeigt (ohne das IR codes gesendet werden) :blink:

- bei IR Polling Delay=120 ist ruhe, aber versuche mit der unter igor und anderen fernbedienungen (die z.b. mit IR-Einschalter funktionieren) signale zu empfangen klappt nicht sauber. Es werden oft noch mehrere male die codes ein zuvor gedrücken taste angezeigt oder tastendrücke ignoriert. :wacko:

 

Versucht habe ich unter Windows XP SP3 und Windows 7 prof (laptop und PC). Der einzige unterschied ist der wert des "IR Polling Delay" ab wann der empfänger "verrückt" spielt.

 

Jemand eine idee, was ist testen/tunen könnte? Irgendwie klingt das für mich nach störungen, aber der TSOP 1738 lief vorher im igor USB... sonst bleiben ja nicht mehr viele bauteile... :huh:

 

Debug log:

SetButtons to Disconnected
plugin got init by 'InitNative'
DeviceArrival: USB-PS/2 Optical Mouse, VID: 1133, PID: 49181
DeviceArrival: , VID: 3277, PID: 169
DeviceArrival: , VID: 3277, PID: 169
DeviceArrival: , VID: 3277, PID: 169
DeviceArrival: USB IR Remote Receiver, VID: 5824, PID: 1503
Device got connected: USB IR Remote Receiver
Read IRMP Protocol from INI: SIRCS, ID: 1
Read IRMP Protocol from INI: NEC, ID: 2
Read IRMP Protocol from INI: SAMSUNG, ID: 3
Read IRMP Protocol from INI: MATSUSHITA, ID: 4
Read IRMP Protocol from INI: KASEIKYO, ID: 5
Read IRMP Protocol from INI: RECS80, ID: 6
Read IRMP Protocol from INI: RC5, ID: 7
Read IRMP Protocol from INI: DENON, ID: 8
Read IRMP Protocol from INI: RC6, ID: 9
Read IRMP Protocol from INI: SAMSUNG32, ID: 10
Read IRMP Protocol from INI: APPLE, ID: 11
Read IRMP Protocol from INI: RECS80EXT, ID: 12
Read IRMP Protocol from INI: NUBERT, ID: 13
Read IRMP Protocol from INI: B&O, ID: 14
Read IRMP Protocol from INI: GRUNDIG, ID: 15
Read IRMP Protocol from INI: NOKIA, ID: 16
Read IRMP Protocol from INI: SIEMENS, ID: 17
Read IRMP Protocol from INI: FDC, ID: 18
Read IRMP Protocol from INI: RCCAR, ID: 19
SetButtons to Connected
PowerOn Function Status Request: 0

Send IR Code: NEC, Adress: 0x8679, Command: 0x00AB <-- drücke taste a
Send IR Code: NEC, Adress: 0x8679, Command: 0x00A8 <-- drücke taste b
Send IR Code: NEC, Adress: 0x8679, Command: 0x00A8 <-- drücke taste c
Send IR Code: NEC, Adress: 0x8679, Command: 0x00A8 <-- drücke taste c
Send IR Code: NEC, Adress: 0x8679, Command: 0x00A8 <-- drücke taste c
Send IR Code: NEC, Adress: 0x8679, Command: 0x00AE <-- drücke taste c

IR Polling changed: 90
Send IR Code: NEC, Adress: 0x8679, Command: 0x00AE
Send IR Code: NEC, Adress: 0x8679, Command: 0x00AE
Send IR Code: NEC, Adress: 0x8679, Command: 0x00AE
Send IR Code: NOKIA, Adress: 0x00D6, Command: 0x00DF
Send IR Code: NOKIA, Adress: 0x0082, Command: 0x00A5
Send IR Code: NOKIA, Adress: 0x00D0, Command: 0x0086
Send IR Code: NOKIA, Adress: 0x0015, Command: 0x009E
Send IR Code: GRUNDIG, Adress: 0x0000, Command: 0x015F
Send IR Code: GRUNDIG, Adress: 0x0000, Command: 0x00B8
Send IR Code: NOKIA, Adress: 0x0084, Command: 0x00DE
Send IR Code: NOKIA, Adress: 0x00AB, Command: 0x00FE
Send IR Code: NOKIA, Adress: 0x0051, Command: 0x00B2

 

ini:

[settings]
IR Polling Delay=114
Debug=1
Key Suppression=200
Minimum Repeats=2

 

 

Danke und Gruß

Share this post


Link to post
Portisch

Freut mich zu hören!

 

Das du dauernd Sachen empfängst ist mir ein Rätsel.

Was für eine IR-Diode hast du den? Hast einmal bei der IR-Pollingtime gespielt?

Ist die Diode sauber angeschlossen (kein Wackelkontakt)?

 

Vielleicht hast du ein Oszi um nachzusehen ob am OUT Pin der Diode wircklich was rauskommt.

 

Hast du vielleicht einen Laptop oder Handy in der Nähe? Ein Laptop sendet z.B. alle Zeit ein Signal über die IR-Schnittstelle um zu sehen ob sich ein Gerät in der Nähe befindet. Da bin ich einmal darauf reingefallen...

 

Die Entprellung sollte man eigentlich nicht brauchen. Nr wenn z.B. das DVBViewer OSD langsam ist. Mit der Demo-App sollte man die Entprellung gar nicht brauchen.

Share this post


Link to post
ampelignorierer

Hi,

 

danke für die schnelle anwort. Habe kein Oszi, aber hab ein wenig ausprobiert. Den IR empfäger gegen einen pullup getauscht, damit war der unerklärlichen empfang weg, also stimmte was mit dem TSOP 1738 nicht.

Hatte noch ein paar TSOP 1736 liegen und mal eingebaut, damit funktionert es super! :whistle:

 

Entprellung hab ich wieder aus der config genommen und IR-Pollingtime auf 150. Ob 50 oder 150 hat keinen merklichen unterschied gemacht.

 

Einstellungen:

[settings]
IR Polling Delay=150
Use PowerOn Function=0
Debug=1
Minimum Repeats=4

 

Danke nochmal!

Share this post


Link to post
Metylisator

Hallo,

erstmal vielen Dank für das tolle Projekt.

Ich habs auch mal gewagt und den Empfänger nach 30 Jahren Elektronikabstinenz aufgebaut.

Funktioniert :bounce: !

Ein kleines Problem mit der DLL und Eventghost.

Nach jedem Resume aus Standby (Windows 7) bekomme ich eine Zugriffsverletzung im Modul USB_remote_Receiver bei xxxxxxx( Zahl weiß ich gerade nicht mehr),lesen von Adresse 0000008.

Das passiert nicht,wenn ich das Plugin vor dem Standby deaktiviere und nach dem Resume wieder aktiviere.

Vielleicht gibt es da ja noch eine Lösung.

Share this post


Link to post
Portisch

Das müsste ich mir noch ansehen. Wahrscheinlich macht EventGhost nach dem Ruhezustand ein weiteres Init, aber vor dem Ruhezustand kein Init(NULL).

Share this post


Link to post
Metylisator

Nachtrag:

Fehler passiert nur,wenn im Plugin die Option "Disable Power On when initialized" aktiviert ist.

In diesem Modus ist es auch nicht möglich,den Pc nach dem herunterfahren zu starten.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...