Jump to content

Igor AVR USB v2 Remote Control mit PC PowerOn


Recommended Posts

Hi,

 

da ich bei mir einen AT90S2312-10 AVR Chip gefunden habe,

habe ich mir gedacht man könnte die bestehenden IgorPlug Funktionen um eine PC Einschalten/Ausschalten Funktion erweitern.

 

Somit kann auch mit dem Igor USB AVR der PC über die Fernbedienung eingeschaltet werden.

 

Funktion:

Nach dem ersten anstecken des AVRs nach dem Aufspielen des HEX-Files kann eine Taste für die PowerOn Funktion trainiert werden.

Es wird der erste empfangene Tastencode im EEPROM abgelegt. Wird diese Taste auf der Fernbedienung erneut gedrückt,

wird der Ausgang D2 (PD6) für ~500ms auf +5V geschaltet und somit der PC über den Optokoppler eingeschaltet 8siehe erweiterte Schaltung).

 

Mit dem Input-Plugin für den DVBViewer kann dann eingestellt werden ob die PowerOn Aktion des AVR auch bei Beenden (PC ausschalten) ausgeführt werden soll oder nicht.

Ich z.B. benutze eine Taste der Fernbedienung um den PC mit dem AVR über den PC Power Schalter aus dem Standby einzuschalten.

Die gleiche Taste bewirkt im DVBViewer das der PC in den Standby gefahren wird.

Würde die AVR Funktion nicht deaktiviert sein würde sich der PC ja ganz ausschalten (oder was halt in den Energie Optionen eingestellt ist).

Deswegen kann man dem Input Plugin sagen ob die Funktion im AVR deaktiviert werden soll oder nicht.

Nach beenden des DVBViewers (dabei wird das Input Plugin beendet) aktiviert das Plugin im AVR die Funktion wieder!

 

Optionen Fenster des Input-Plugins im DVBViewer:

ofuj443b.jpg

 

Im Fenster Current received code steht der Binäre Code der Taste die gerade gedrückt wurde. Dieser Code wird für das Vergleichen mit dem gespeicherten Code genommen.

Links unten wird noch der Code angezeigt, den das Input-Plugin dann an den DVBViewer schickt.

 

Im Fenster Current trained code kann man den Programierten Tastencode auslesen, der im EEPROM gespeichert ist.

 

Mit dem Button Read trained code kann der aktuell gespeicherte Code ausgelesen werden.

 

Mit dem Button Clear trained code kann das EEPROM wieder gelöscht werden.

Danach kann dann wieder eine neue Taste für die PowerOn Funktion angelernt werden.

ACHTUNG: Wenn einen neue Taste angelernt wird wird auch der Optokoppler geschalten! Also besser den Optokoppler rausnehmen damit sich der PC nicht ausschaltet.

 

Mit der Checkbox PowerON function enabled/disabled kann man das deaktivieren der PowerOn Funktion im AVR ausschalten.

Sollte es auf disable stehen wird auch bei gestarten DVBViewer die Power Taste des PC gedrückt.

 

Durch Click auf das Icon PowerOn Enabled kann die PowerOn Funktion im AVR Chip sofort eingeschaltet/ausgeschaltet werden.

 

Um diese neuen Funktionen verwenden zu können ist ein neues Programmieren des AVR Chips von Nöten!

Auch ist der originale AVR Code gekürzt worden um alles unterbringen zu können. Der Chip hat einfach zu wenig Speicher ;)

 

Diese Funktionen sind nicht mehr verfügbar:

DoSetDataPortDirection

DoGetDataPortDirection

DoSetOutDataPort

DoGetOutDataPort

DoGetInDataPort

DoRS232Send

DoRS232Read

DoSetRS232Baud

DoGetRS232Baud

 

Deswegen kann es sein, dass der Chip mit dem originalen IgorPlug.dll Plugin nicht mehr kompatibel ist!

Das neue Input-Plugin für den DVBViewer kann aber trotzdem mit der alten Firmware des AVRs benutzt werden.

 

Warum eine RS232 Funktion drinnen ist habe ich sowieso nicht verstanden...

 

Auch muss die Schaltung um einen Optokoppler erweitert werden, der dann den PC-Powertaster betätigt.

Auch sind ein paar Bauteile ergänzt worden um eine stabile Arbeit des AVRs am USB bei neueren Mainboards zu gewährleisten:

33opkdr7.gif

 

Installation

Zuerst muss der AVR neu programiert werden. Dazu kann das USB90S23x3.hex verwendet werden. Dies ist für den AT90S2313-10 Chip. Auch ist der Assembler Code im Paket, womit man den Code auch für andere Chips verwenden kann. Auch sollte sich das HEX-File auf einen ATTiny2313 schreiben lassen.

Vorausgesetzt ist natürlich das die Low Fuses richtig gesetzt sind damit das Programm läuft:

leay59t4.gif

 

Zum Compilieren ist AVR Studio von Nöten.

 

Driver

Mit dem originalen Treiber hatte ich Probleme nach dem Standby. Es konnten keine Befehle mehr ausgelesen werden.

Deswegen habe ich im Paket einen neueren Treiber mit reingepackt.

Sollte kein Problem mit dem Treiber sein muss der neue nicht installiert werden!

 

Bei Neuinstallation des Treibers zuerst den alten Deinstallieren!

Nach der Deinstallation kann die IgorPlug.sys und IgorUSB.dll im Windows Verzeichnis gelöscht werden.

Die IgorUSB.dll wird nicht mehr benötigt, da das DVBViewer Input-Plugin direkt mit dem Treiber spricht.

 

Dann die Installation des neuen Treibers. Einfach den Chip an den USB-Port anschließen und dann den Treiber aus dem Paket auswählen.

 

Input-Plugin

Danach noch das Input Plugin IgorAVRv2.dll in den Plugins Ordner von DVBViewer kopieren.

Bei Windows 7 und neuer muss auch die "PowerWatch_Service.exe" in den Plugin Ordner kopiert werden.

Dieser Service wird automatisch registriert/gestartet und überwacht die WM_POWERBROADCAST Nachrichten.

Es kann dann wie gewohnt als Input Plugin benutzt werden.

Auch kann das Input Plugin mit der alten originalen IgorAVR USB Firmware benutzt werden!

Girder ist somit für die Steuerung des DVBViewer nicht mehr nötig!

 

Natürlich besitzt das Plugin auch eine Funktion um mit dem DVBViewer_Switch arbeiten zu können!

 

Da es sich um Freeware handelt ist der Gebrauch des Codes für kommerzielle Zwecke nicht gestattet!

 

Viel Spass!

Edited by Portisch
Link to comment
  • 1 month later...

Driver Update!

 

Nun sind auch Driver für WinXP, Vista x86 und Vista x64 verfügbar.

thx @ elproducto

 

Der x64 ist jedoch noch nicht getestet worden!

Edited by Portisch
Link to comment
  • 1 month later...
Driver Update!

 

Nun sind auch Driver für WinXP, Vista x86 und Vista x64 verfügbar.

thx @ elproducto

 

Der x64 ist jedoch noch nicht getestet worden!

 

it's so sad that infra receiver of igorusb have noise from environment. So it's very hard for igorusb can detect right signal from remote controller to power-up PC.

Anyway, after your update, can igorusb run with Girder program with igor's plugin ?

Link to comment

These functions are not anymore available in the Igor USB AVR v2 code:

DoSetDataPortDirection

DoGetDataPortDirection

DoSetOutDataPort

DoGetOutDataPort

DoGetInDataPort

DoRS232Send

DoRS232Read

DoSetRS232Baud

DoGetRS232Baud

 

May it works because these functions are normally not used for IR-receive by the original Igor plugin.

 

But the PowerOn function will not be handled! This is only done by the included Input-Plugin for DVBViewer!

 

If you use it with the original plugin the PowerOn code will be also trained (first received RC5-code after programing the AVR-chip).

But you cann't clear it to retrain it. This can be only done by reprogramming or by the included DVBViewer Input Plugin.

 

Also temporary deactivating the PowerOn function like the DVBViewer Input Plugin is doing will not work with the original Igor plugin.

 

"noise from environment" may this is caused by your remote control. I tried myself 3 remote controls to find one what is working well with the Igor IR-Receiver. Doesn't matter if RS232 or USB version.

Link to comment
These functions are not anymore available in the Igor USB AVR v2 code:

 

 

May it works because these functions are normally not used for IR-receive by the original Igor plugin.

 

But the PowerOn function will not be handled! This is only done by the included Input-Plugin for DVBViewer!

 

If you use it with the original plugin the PowerOn code will be also trained (first received RC5-code after programing the AVR-chip).

But you cann't clear it to retrain it. This can be only done by reprogramming or by the included DVBViewer Input Plugin.

 

Also temporary deactivating the PowerOn function like the DVBViewer Input Plugin is doing will not work with the original Igor plugin.

 

"noise from environment" may this is caused by your remote control. I tried myself 3 remote controls to find one what is working well with the Igor IR-Receiver. Doesn't matter if RS232 or USB version.

"noise from environment" i mean infra receiver is too sensitive, it can detect other lights (eg: from neon light, sun light..) as infra, so if using poweron function like your idea ( anyway, it's great idea ;) ) and without DVBViewer input plugin, PC in loop of power-on then power-off. Adding poweron function to Igorplug is great thing, but it seems no solution is best. Anyway, your done's well.

Is there anyway to poweron PC by any button in remote control(no need store poweron code in EFFROM), then after power-on, these buttons can't switch the pc off( unless set it in software) ?

Anyway, if you can create 1 plugin for Girder (like for DVBViewer) to use your poweron function on igorplug, i think a lot of people can't thank you enough ;)

Link to comment
  • 2 weeks later...

As you mentioned about sensetive sensor:

I had the same with the combination:

DVBViewer + Task Scheduler + Recording Service

 

The PC resumes itself from standby within 24h.

 

I was trying to use only DVBViewer + Recording Service (option in DVBViewer, use Task Scheduler, disabled) and the new Plugin 1.0.0.1.

 

The PC doesn't resume anymore from standby.

 

The new 1.0.0.1 just support the detection if the PC is going to standby,

otherwise you want be able to resume the PC with our remote control!

 

Because if you don't use the Task Scheduler, DVBViewer will not be closed when the the system is going to standby.

The new version will detect if the system is going to standby!

Link to comment
  • 1 month later...

Portisch, why do not use one of remain port(pin) of Attiny2313 for activing "learn mode" ( like add a switch between a portB and GND). Then if this switch is actived, you can teach devide IR code have to be saved to EEPROM; and if this switch isnot actived, devide operate as "normal mode" with IR code already in EEPROM. With that way, devide Igor avr usb v2 operate like a power button of PC and all problem is done by hardware ! ;) .

 

Or maybe flash size of Attiny2313 is not enough for code like that ?

Link to comment
  • 4 months later...

Update 1.0.0.2

 

Neu: Bei Windows 7 und neuer muss auch die "PowerWatch_Service.exe" in den Plugin Ordner kopiert werden.

Dieser Service wird automatisch registriert/gestartet und überwacht die WM_POWERBROADCAST Nachrichten.

Dies wird benötigt damit der PC im Standby auch wieder per Fernbedienung eingeschaltet werden kann.

Per "PowerWatch_Service.exe /UNINSTALL" kann er manuel wieder deinstalliert werden.

 

Neu: In den Optionen kann man nun auch eine Tastenentprellung einstellen. Gute Werte sollten so bei 150-200ms liegen.

Link to comment
  • 2 months later...

Join the conversation

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

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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...