Home AMX User Forum NetLinx Studio

Sharp Aquos LC-80UH30U RS232 Control

Hello Everyone. I'm programming my first Netlinx project for an NX-2200 and trying to control the Aquos LC-80UH30U using rs232 commands. I downloaded the comm module from the amx site and followed the programming from the guides, but I get a strange issue with the volume controls. It only moves the volume up 1 or down 1 and never again. the Mute function also does not work. I'm wondering where I might have went wrong. Happy to share the code with you, if you want to PM me or I can share here in the forum. Just wondering if anyone has experience with that tv and ran into a similar issue.

Comments

  • It could be anything at this point. In my experience quite a few AMX drivers aren't really tested on the device and sometimes just don't work. The sentence "The device was not present during module development", seems to come up a lot... (as is the case with this particular tv)
    But it could also be a simple mistake in the programming, of course.

    Don't have experience with this device, so cant help you with that.

    I assume you use channels 24/25 on the virtual device to control the volume? (so not the level)
    If you say 'never again', you mean the volume doesn't repeat by itself?Does it work when you manually pulse channel 24/25?
    Have you looked at notifications to see what is sent to the tv from the module?

  • I would encourage you to reach out to tech support so that if there is an issue with the module it can be fixed.

    They will ask you to put the module in debug:

    send_command vdvDEVICE,'DEBUG-4';

    Then with Diagnostics enabled, log the module messages through a module REINIT

    send_command vdvDEVICE,'REINIT';

    followed by manipulation of the volume and mute channels on the virtual device.

    The Diagnostics messages can then be copied (right click / copy all), pasted into notepad and saved as a txt file that can be forwarded on.

  • mohillicmohillic Posts: 15

    Thank you Ian, I will try that next time I am on site. Maybe next week thanks to covid :/

  • mohillicmohillic Posts: 15

    Hi again everyone and thank you all so much for your help with this. After fighting with myself for what feels like an eternity in hell (this building has no air conditioning right now) I finally got, what I believe is a very simple way to control my volume on the tv. Below is what worked for me, and I hope it helps others that may stumble upon this forum:

    DEFINE_EVENT

    data_event[dvSharpLC80UH30UTV]
    {
    online:
    {
    send_command dvSharpLC80UH30UTV,'SET BAUD 9600,N,8,1'
    send_command dvSharpLC80UH30UTV,'HSOFF'
    send_command dvSharpLC80UH30UTV,'REINIT'
    }
    }

    button_event[dvSharpLC80UH30UTVTp,VOL_UP]
    {
    push:
    {
    to[vdvSharpLC80UH30UTV,button.input.channel];
    }
    }
    button_event[dvSharpLC80UH30UTVTp,VOL_DN]
    {
    push:
    {
    to[vdvSharpLC80UH30UTV,button.input.channel];
    }
    }
    button_event[dvSharpLC80UH30UTVTp,VOL_MUTE]
    {
    push:
    {
    to[vdvSharpLC80UH30UTV,button.input.channel];
    }
    }

  • FYI - assuming that dvSharpLC80UH30UTV is the DPS of the serial port that data event will never happen. The communication settings are set in the module code and configured from property commands submitted to the virtual device

    data_event[vdvSharpLC80UH30UTV]
    {
      online:
      {
        send_command data.device,'PROPERTY-BaudRate,9600,N,8,1'
    
        send_command data.device,'REINIT'
      }
    }
    

    Also in consideration of how your buttons are addressed in the touchpanel there are more efficient methodologies available

    button_event[dvSharpLC80UH30UTVTp,0]
    {
      push:
      {
        to[vdvSharpLC80UH30UTV,button.input.channel];
      }
    }
    
  • @HARMAN_icraigie said:

    Also in consideration of how your buttons are addressed in the touchpanel there are more efficient methodologies available

    button_event[dvSharpLC80UH30UTVTp,0]
    {
      push:
      {
        to[vdvSharpLC80UH30UTV,button.input.channel];
      }
    }
    

    Ha, is this the same person who said in another post that using ^PPX is 'is just a way too indiscriminate and could lead to unintended consequences' ? :D

    In the online courses on the Harman training site, this way of coding (using channel 0 or the 'catch all') is actively discouraged, so... as always, do what works for you, but keep that in mind.

  • mohillicmohillic Posts: 15
    Interesting thoughts. I’ll comment out the data event and see if it still works. Im sure I have other codes I dont need. And yes the catch all did not work as I had used it for another device already.
  • SCamphaugSCamphaug Posts: 24

    using a different port makes sense if you're catching all. Depends on style really

  • mohillicmohillic Posts: 15

    Last question on this issue I hope. I can't seem to get the send_command to work in the programming, the code works fine when I send from the netlinx controller to the TV but for some reason nothing happens when I use the touch panel buttons.

    Here is how this works, when a user touches an activity button, it turns the tv on, then switches to the input on the tv for the activity they selected (hdmi 1 for polycom, hdmi 2 for pc, etc)

    Below is the code for the button push, in this case for an appletv, the tv powers on just fine, but never switches input:

    button_event[dvSharpLC80UH30UTVTp,PWR_ON]
    {
    push:
    {
    to[vdvSharpLC80UH30UTV,button.input.channel];
    {
    wait 50
    {
    send_command vdvSharpLC80UH30UTV,'INPUT-HDMI,3';
    send_level vdvSharpLC80UH30UTV,1,25;
    }
    }
    }
    }

    below is the diagnostic info for both the button push and the direct control

    Sent using programming code
    Line 4433 2020-08-03 (11:50:10):: Command To [41001:1:1]-[INPUT-HDMI,3]
    Line 4434 2020-08-03 (11:50:10):: Command From [41001:1:1]-[INPUT-HDMI,3]

    Sent from netlinx controller
    Line 4163 2020-08-03 (11:42:39):: Command To [41001:1:1]-[INPUT-HDMI,3]
    Line 4164 2020-08-03 (11:42:39):: Command From [41001:1:1]-[INPUT-HDMI,3]
    Line 4165 2020-08-03 (11:42:39):: String To [5001:2:1]-[IAVD3 $0D]
    Line 4166 2020-08-03 (11:42:39):: String From [5001:2:1]-[OK$0D]

    why does the button push send_command not work?

  • mohillicmohillic Posts: 15

    also, this is in my diagnostics, not sure if it's helpful info

    Line 91 2020-08-03 (14:13:10):: LampComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
    Line 92 2020-08-03 (14:13:10):: SharpTV: getLampComponentCount() called
    Line 93 2020-08-03 (14:13:10):: SharpTV: getLampComponent(1) called
    Line 94 2020-08-03 (14:13:10):: MenuComponent:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
    Line 95 2020-08-03 (14:13:10):: VolumeComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
    Line 96 2020-08-03 (14:13:10):: SharpTV: getVolumeComponentCount() called
    Line 97 2020-08-03 (14:13:10):: SharpTV: getVolumeComponent(1) called
    Line 98 2020-08-03 (14:13:10):: DisplayComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
    Line 99 2020-08-03 (14:13:10):: SharpTV: getDisplayComponentCount() called
    Line 100 2020-08-03 (14:13:10):: SharpTV: getDisplayComponent(1) called
    Line 101 2020-08-03 (14:13:10):: DisplayComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
    Line 102 2020-08-03 (14:13:10):: SharpTV: getDisplayComponentCount() called
    Line 103 2020-08-03 (14:13:10):: SharpTV: getDisplayComponent(1) called
    Line 104 2020-08-03 (14:13:10):: SourceSelectComponent3:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
    Line 105 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponentCount() called
    Line 106 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponent(1) called
    Line 107 2020-08-03 (14:13:10):: SourceSelectComponent3:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
    Line 108 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponentCount() called
    Line 109 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponent(1) called
    Line 110 2020-08-03 (14:13:10):: called setInputSource
    Line 111 2020-08-03 (14:13:10):: SharpTV: setInputSource(HDMI,3) called
    Line 112 2020-08-03 (14:13:10):: SharpTV: SET_INPUTA(3) called
    Line 113 2020-08-03 (14:13:10):: SharpTV: GET_INPUT() called

  • @mohillic said:

    why does the button push send_command not work?

    If you are using a passive wait (the wait 50), so not actually checking if the display has turned completely on, have you tried a longer wait? could be that the module doesn't send strings to the real device until that has given feedback that it is turned on. The documentation for the device mentions: "The device has a warm-up time of 10 sec and cool down time of 3 sec during which it does not respond to any other commands."
    I know you tried with longer waits before, but see that you've gone back to 5s.

  • mohillicmohillic Posts: 15

    it's true, i'm impatient lol. i'll do some more testing. thank you.

  • mohillicmohillic Posts: 15

    The warmup and cooldown times were the piece I was missing. I finally have this project up and running. Thanks again for all your help!

  • Glad I could assist :)
    Good luck with your next projects!

Sign In or Register to comment.