| | #71 (permalink) | |
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Quote:
I have determined that the 0xAD command is used to set the custom characters (Oh... By the way... The display supports custom characters!)... They are used by MHC to display the large numbers that it uses for it's clock display, radio channel display, etc. For the time being, the custom characters are not needed, nor are they used by the driver. so... here is the command set so far: 0xA0 - Clear Screen 0xA1 { 0xZZ - 1 byte of column position data } - Set cursor to line 1, column 0xZZ (where z = 0x00 to 0x13) 0xA2 { 0xZZ - 1 byte of column position data } - Set cursor to line 2, column 0xZZ (where z = 0x00 to 0x13) 0xA4 0x76 { 8 bytes of date/time data } - Set the displays internal clock ?? 0xA4 0x7D - Initialize fan controller 0xA5 { 1 byte of display brightness data } - Set display brightness 0xA7 { 20 bytes of character data } 0x00 - Send data to display 0xAA 0xAA - Identify device. mr300 returns "MZ4", mr700 returns "MZ5" (different command set) 0xAC { 2 bytes of speed data } - Set fan speed 0xAD { 64 bytes of custom character data } - Define custom characters 0xAF - Request temperature readings ?? (returns two bytes of data) 0x00 0x00 0x00 - sync?? break??? 0xA4 0xA4 - ????? part of restart after hibernate 0xA4 0x7E - set power mode to "passthrough" ?????? part of shutdown 0xAE 0xAE - set power mode to "ACPI" ????? part of display shutdown MODEL IDENTIFICATION STRINGS ----------------------------------------- LE2 - M.Play 202 ME4 - M.Play 202 Plus ME5 - M.Play 202 Plus R2 ME7 - M.Play MP300 MP4 - M.Play 202 MP5 - M.Play 202 Plus MP7 - M.Play Blast MR2 - M.Play Blast MZ4 - M.Play MP300 MZ5 - M.Play MP700 (not supported by M.Play Home Center) Regards, CybrMage Last edited by cybrmage; 2008-01-05 at 23:47. | |
| | |
| | #72 (permalink) | ||||||||||||
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | Quote: Quote:
Quote:
![]() Quote: Quote:
Assuming, the temperature values are linear and match degree celsius values a range from 0°C through 100°C (water turns to steam), than this would result in a range between 0x96 and 0xFA - if my analyzing of data and temperatures displayed by MHC is correct Worst case scenario would be, that I take some icce cubes and a hair dryer und find out about the capacities of these temperature sensors... I mean it - but as the pictures below show, getting the case out of the rack and opened would be a little bit annoying due to all the cables and stuff ![]() Can't be - your grammar is somewhat adventurous, but i clearly understood you ![]() Quote:
![]() Quote:
Quote:
![]() Quote:
Quote:
![]() Quote:
![]() And - i am learning and it's interesting ![]() Btw interesting - why am I always replacing thes process DLL? There is a subdirectory LCDDrivers - I assumed there would be all the device specific drivers and the ProcessPlugin DLL just is intended to call the selected display driver and provides funcionality to administrate the respective drivers. Shouldn't there be a MR300.DLL or MPLAY.DLL in this subdirectory? Quote:
Until then have fun with the year change and we'll talk next year again (time again for these flat kinda "let's defer it to next year" jokes)! Axel
__________________ Jazz oder nie! Last edited by Herr R aus B; 2008-01-04 at 22:17. | ||||||||||||
| | |
| | #73 (permalink) | |||||||
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Quote:
Quote:
Quote:
That makes sense now. Quote:
Quote:
Quote:
Quote:
One of those drivers is the LCDHype wrapper. The wrapper scans the LCDDrivers directory, and loads the libraries that it finds there. These libraries are drivers for specific displays for the third-party LCDHype program. Trust me... you do not want the Mplay driver as a LCDHype DLL... Having a native driver allows for far more functionality. Well.. then I should probably try to remember to attach the updated version. 8-} Regards, And HAPPY NEW YEAR!! CybrMage Last edited by cybrmage; 2008-03-14 at 08:07. | |||||||
| | |
| | #74 (permalink) | |||||||||
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | Quote: ![]() Quote:
Seems to work! At least setting one fan to 100% gave me nice sounds... And these are Zalman fans - shouldn't they be extremely quiet???Quote:
like that? ![]() Quote: Quote:
YES, I CONFESS! I AM A MEDIAPORTAL USER!!! Albeit I am still struggling a litle bit, because I am still used to XBMC which is a little bit more stable and offers a lot more functionality except you cant use it for recording TV. Quote:
Same to you - hope you made it in one piece ![]() I read all your comments and will answer in separated posts as these here get so long that I somehow lose the overview of what is where :-) Axel Great - I didn't count on the power of auto merge... OK - one post then... Custom Characters Quote:
The standby problem ... is still not fixed. Sending windows to sleep works perfectly. I had to change your default definition a little bit: Code: <button name="PwrOff" code="65"> <action layer="0" condition="*" conproperty="-1" command="POWER" cmdproperty="STANDBY" sound="back.wav" /> </button> Now - I dunno, what exactly you are doing. But following the COM port log sending pc to standby 1.txt, the MHC software seems to release the COM port - maybe this is crucial. And if you are releasing the COM port, maybe that's wrong Now what? I interpret the log file as if they really close it:015813: I/O Request (DOWN), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests Purge mask=TXABORT: Read requests, RXABORT: Receive buffer 015814: I/O Request (UP), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests 015815: I/O Request (DOWN), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask WaitMask=None 015817: I/O Request (UP), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask 015818: I/O Request (DOWN), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests Purge mask=TXCLEAR: Write requests, RXCLEAR: Write buffer 015819: I/O Request (UP), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests 015820: Close Request (DOWN), 30.12.2007 17:01:29.437 +0.0 Buffer size: 0x0 bytes 015821: Close Request (UP), 30.12.2007 17:01:29.546 +0.109 Buffer size: 0x0 bytes Status: 0x00000000 The result is a dimmed display showing the standby message (see attached picture) - but that is definately set before releasing the COM port. Any idea? ![]() Repeated remote codes I did it like you asked me for and attached the log file to this post here. Btw - your interpretation of hex codes in the log file is quite interesting ![]() Your command listing Great! One is missing. I sometimes find things like this:015779: Write Request (DOWN), 30.12.2007 17:01:28.796 +2.125 Buffer size: 0x3 bytes 00 00 00 ... 015780: Write Request (UP), 30.12.2007 17:01:28.796 +0.0 Buffer size: 0x3 bytes Status: 0x00000000 015781: Write Request (DOWN), 30.12.2007 17:01:29.203 +0.406 Buffer size: 0x2 bytes AE AE ®® 015782: Write Request (UP), 30.12.2007 17:01:29.203 +0.0 Buffer size: 0x2 bytes Status: 0x00000000 This is taken from the log of setting the PC to standby. The three 0x00 are the first three bytes after the MHC software got the standby command (if you look in the original log you'll find a "PwrOff" followed by a "OK" - that is, because when MHC is running, it displays a query dialogue, that has to be acknowledged with OK, before windows is being sent to standby - one of those "are you sure? I mean, are you really sure??? REALLY?????" lets-annoy-the-user-dialogues...) These three 0x00 occur in several situations - didn't make up my mind about that yet. Maybe some reset? Additional stuff Just a few questions:
And now I am going to take care of these custom characters ![]() Axel
__________________ Jazz oder nie! Last edited by Herr R aus B; 2008-01-04 at 22:17. | |||||||||
| | |
| | #75 (permalink) |
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Just a quick post for now... 8-} Please try this new driver... see if it still works... (and please post the mediaportal.log if it doesn't)... I changed the shutdown to more closely resemble the MHC log. I changed the serial processing routines. (using some of the assumptions we discussed last year). Hopefully this will allow extraction of the temperature data as well as remote control data... I also added more logging of the received data (hopefully this will allow a better picture of the datastream from the device... I also added another experimental feature... Automatic fan control (based on temperature)... (this goes along with the changes to the serial routine... I'll do a better replay later today!! 8-} Regards, CybrMage PS: you haven't posted the "sending pc to standby 1.txt" log file! 8-} Last edited by cybrmage; 2008-01-02 at 22:20. Reason: DRIVER REMOVED DUE TO NEW VERSION |
| | |
| | #76 (permalink) |
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | Here is what I've found out about the custom characters:
Code: #1 #2 #3 #4 #5 #6 #7 #8 | #1 #2 #3 #4 #5 #6 #7 #8 00 1F 1F 07 1F 1F 1F 1F | ····· ●●●●● ●●●●● ··●●● ●●●●● ●●●●● ●●●●● ●●●●● 00 13 19 04 00 00 00 01 | ····· ●··●● ●●··● ··●·· ····· ····· ····· ····● 00 11 11 05 13 14 08 15 | ····· ●···● ●···● ··●·● ●··●● ●·●·· ·●··· ●·●·● 00 11 11 05 0A 14 0E 09 | ····· ●···● ●···● ··●·● ·●·●· ●·●·· ·●●●· ·●··● 00 11 11 05 0A 14 0A 09 | ····· ●···● ●···● ··●·● ·●·●· ●·●·· ·●·●· ·●··● 00 11 11 05 13 17 0E 09 | ····· ●···● ●···● ··●·● ●··●● ●·●●● ·●●●· ·●··● 00 13 19 04 00 00 00 01 | ····· ●··●● ●●··● ··●·● ····· ····· ····· ····● 00 1F 1F 07 1F 1F 1F 1F | ····· ●●●●● ●●●●● ··●●● ●●●●● ●●●●● ●●●●● ●●●●● character definition character bitmap representation According to the COM port log your guess for the command was almost right. But it seems as if it is just AD {64 bytes character definition}: 000213: 01.01.2008 13:01:20.234 +3.0 00 00 00 ... 000215: 01.01.2008 13:01:20.250 +0.015 AD 1F 01 15 09 09 09 01 1F 00 00 00 00 00 00 00 *............... 00 1F 13 11 11 11 11 13 1F 1F 19 11 11 11 11 19 ................ 1F 07 04 05 05 05 05 04 07 1F 00 13 0A 0A 13 00 ................ 1F 1F 00 14 14 14 17 00 1F 1F 00 08 0E 0A 0E 00 ................ 1F . And once again here are these three 0x00... Analyzing this and comparing it to the definition it seems, as if setting the custom character definitions is done by sending the following sequence: 00 00 00 AD {8 bytes for character #8} {8 bytes for character #1} {8 bytes for character #2} {8 bytes for character #3} {8 bytes for character #4} {8 bytes for character #5} {8 bytes for character #6} {8 bytes for character #7} I wonder, why character #8 is first - but that is what I am reading from the COM port log... Writing the characters to the display then is easy as well - 0x01 represents character #1, 0x02 is character #2 and finally 0x08 is character #8. This matches the COM port log, when the logo is set: 000217: 01.01.2008 13:01:20.281 +0.031 A1 00 A7 02 03 04 05 06 07 08 20 44 69 67 69 74 ¡.§....... Digit 61 6C 20 20 20 20 20 00 al . 000219: 01.01.2008 13:01:20.281 +0.0 A2 00 A7 35 2E 31 20 53 79 73 74 65 6D 20 20 20 ¢.§5.1 System 20 20 20 20 20 20 20 00 . What I found was, that MHC transfers the character definition each time before it displays the custom characters. I wonder whether that's a must or not. That's all about these custom characters. Could be used to display the MP logo though maybe like this:Code: #1 #2 #3 #4 #5 #6 #7 #8 | #1 #2 #3 #4 #5 #6 #7 #8 03 18 1F 1F 03 18 0E 0E | ···●● ●●··· ●●●●● ●●●●● ···●● ●●··· ·●●●· ·●●●· 0F 1E 1F 1F 0F 1E FF 1B | ·●●●● ●●●●· ●●●●● ●●●●● ·●●●● ●●●●· ●●●●● ●●·●● 1F 1F 1F 1F 1C 07 FF 0E | ●●●●● ●●●●● ●●●●● ●●●●● ●●●·· ··●●● ●●●●● ·●●●· 1F 1F 1F 1F 1C 07 FF 00 | ●●●●● ●●●●● ●●●●● ●●●●● ●●●·· ··●●● ●●●●● ····· 1F 1F 1F 1F 1C ß7 FF 00 | ●●●●● ●●●●● ●●●●● ●●●●● ●●●·· ··●●● ●●●●● ····· 1F 1F 1F 1F 0F 1E FF 00 | ●●●●● ●●●●● ●●●●● ●●●●● ·●●●● ●●●●· ●●●●● ····· 1F 1F 0F 1E 03 18 FF 00 | ●●●●● ●●●●● ·●●●● ●●●●· ···●● ●●··· ●●●●● ····· 1F 1F 03 18 00 00 0E 00 | ●●●●● ●●●●● ···●● ●●··· ····· ····· ·●●●· ····· character definition character bitmap representation 000002: 01.01.2008 18:03:07.984 +1.750 00 00 00 ... 000004: 01.01.2008 18:03:08.0 +0.015 AD 0E 1B 0E 00 00 00 00 00 03 0F 1F 1F 1F 1F 1F *............... 1F 18 1E 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 0F ................ 03 1F 1F 1F 1F 1F 1F 1E 18 03 0F 1C 1C 1C 0F 03 ................ 00 18 1E 07 07 07 1E 18 00 0E 1F 1F 1F 1F 1F 1F ................ 0E . 000006: 01.01.2008 18:03:08.031 +0.031 A1 00 A7 01 02 01 02 05 06 20 20 20 20 20 20 20 ¡.§...... 07 07 08 20 20 20 20 00 ... . 000008: 01.01.2008 18:03:08.031 +0.0 A2 00 A7 03 04 03 04 20 20 20 20 20 4D 65 64 69 ¢.§.... Medi 61 50 6F 72 74 61 6C 00 aPortal. The result can be watched in the attached picture of the VFD. (the attached files dolby.txt and mediaportal.txt must be renamed to dolby.cg and mediaportal.cg to be used for use with the MHC software)
__________________ Jazz oder nie! Last edited by Herr R aus B; 2008-01-04 at 22:17. |
| | |
| | #77 (permalink) | |||
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | Quote:
Anyway - you still switch the VFD off somehow. The remote indicator LED shows, that there are signals coming in - but that's it. I also posted the forgotten COM port log for that standby sequence... There really must be some command saying: "Listen to the remote control and if there is any activity, simulate a short press of the PwrOn button". Just to give you an impression of the VFD's wiring: Code: PwrOn button at the case -----------> MR300 VFD ----------> mainboard PwrOn connector Quote:
Quote:
Here it is... I also posted the configuration log after installing the new driver.
__________________ Jazz oder nie! Last edited by Herr R aus B; 2008-01-04 at 22:17. | |||
| | |
| | #78 (permalink) | |||||||||
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Quote:
Quote:
Quote:
Quote:
Quote:
Custom characters are simple... The display expects ALL custom character to be defined when sent the "define characters" command. Each character is a 5x8 matrix defined by 8 bytes of character data... Each byte defines a horizontal row of pixels... The three high order bits are ignored... IE: the data { 0x00, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x11 } defines a character ........ 0x00 ........ 0x00 ....***. 0x0E ...*...* 0x11 ...*...* 0x11 ...*...* 0x11 ...*...* 0x11 ...*...* 0x11 So, the "define custom characters" command breaks down like this AD ; the "define custom characters" command 00 00 0E 11 11 11 11 11 ; The definition data for custom character 0 01 01 01 01 01 01 01 00 ; The definition data for custom character 1 00 00 0E 01 01 01 01 01 ; The definition data for custom character 2 00 00 01 11 11 11 11 0F ; The definition data for custom character 3 00 00 0E 10 10 10 10 10 ; The definition data for custom character 4 00 00 01 01 01 01 01 01 ; The definition data for custom character 5 0E 10 10 10 10 10 0E 00 ; The definition data for custom character 6 0E 01 01 01 01 01 0E 00 ; The definition data for custom character 7 To display a custom chatacter, you send the index of the custom character { 0 - 7 } to the display with the 0xA& command. IE: sending {0x05, 0x03, 0x20, 0x41, 0x42, 0x43 } to the display will show "{custom character 5}{custom character 3} ABC". The MHC program displays the large clock by redefining the custom characters before sending the two lines that make up the display. Still working on it... 8-} Quote:
The ExteralDisplay plugin controls the driver... When it receives a standby/hibernate/shutdown message, it stops the driver... (calls the Cleanup() function)... When it gets a "resume from hibernate/standby" message, it starts the driver again... (calls the Setup() and Initialize() functions)... In the drivers Cleanup() function, we (try to) send the display all the commands it needs to display a shutdown message, dim the display, set it's internal clock (I do not know if it actually has one), configure it to wake the machine, etc... Then we close the port completely. The logs do dhow that the port is being closed. We just need to determine the correct commands to send to it to enable it to wake the machine... Quote:
Quote:
It's use seems to be ambiguous... The 0xA1, 0xA2 and 0xA7 commands seem to be followed by a 0x00 end of command marker... but the other commands do not seem to be.... The other question is about the 0xAE command... what does it do?? I see in the logs that is is sent as 0xAE, { 0xAE, 0xAE } or { 0xAE, 0xAE, 0xAE }... Are these the same command being sent multiple times, or does the number of bytes signify a different command??? (I would suspect it is the same command multiple times... but why is it sent in multiples?) Quote:
Sorry... I can't help you with that... hopefully someone else on the forum can help you with that. Regards, CybrMage | |||||||||
| | |
| | #79 (permalink) |
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | I found the problem with the hex representation... I had a typo in the string format specifier... I also found the problem with the serial receive routine... and have rewritten it again... Here is a new version... The remote probably still won't work, but i've fixed the data logging and need to get information on what data is being sent to us from the display.... Please install the new driver, run Mediaportal and then: 1) press and release the buttons 1,2,3,4,5 and 6 on the remote (wait 1 to 2 seconds between each button press) 2) Press and release the button 9 on the remote (then wait 1 to 2 seconds) 3) Press and hold the button 9 on the remote... hold the button for at least 30 second. The shut down MediaPortal and post the logs... thanks... Herr R aus B: I'm going over your latest logs and will post another "fix" when i've figured something out... Regards, CybrMage Last edited by cybrmage; 2008-01-02 at 22:18. Reason: DRIVER REMOVED DUE TO NEW VERSION |
| | |
| | #80 (permalink) | |
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | why did I do all this stuff, when you already knew it - and where did you knew it from? anyway, there is this logo definition now and you seem to be wrong about the order in which the custom character definitions are transferred to the VFD. I think that's strange... (not you, but the character definition order)Quote:
Code: <button name="Warp/Mouse" code="71"> <action layer="0" condition="WINDOW" conproperty="2005" command="ACTION" cmdproperty="19" /> <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="19" /> <action layer="0" condition="WINDOW" conproperty="3001" command="ACTION" cmdproperty="19" /> </button> |