Important Notice: If you want to support my work on this project consider buying the Hotspot Starter App. Maybe you will find it useful :).

Remote control your Denon® AVR via local network.

You can create your own remote control button layouts with XML files.

On how to do this, take a look at this tutorial.

The app uses the Denon® control protocol. Protocol infos can be found at the official Denon® support/download pages.


  • Create your own button layouts which fits your needs (there is a built-in default layout)
  • Switch between multiple layouts
  • Save/Export/Import/Share XML layouts (via Mail, Dropbox, local file manager…)
  • Commands/button labels can be edited in-App
  • Chain commands like: “Increase volume by 5 steps” or “Power on -> select Preset 1 -> set volume to -30db”
  • Different layout styles
  • Simple shell-like interface to test commands
  • Lock/unlock screen (keep screen on, lock orientation) with swipe up/down

Its best to use the app with a static ip address for the receiver since there is no automatic recognition. You have to set the ip address manually in the settings but therefore it is quite snappy.

The app uses INTERNET, ACCESS_NETWORK_STATE, WRITE_EXTERNAL_STORAGE permissions to connect to the receiver (when on WiFi only) and to store/manage XML layout files on local storage.

This is my first Android project so use on your own risk ;). It is tested with the AVR-3312 model only, protocol commands must be adapted to your model eventually.

If you like this app, please leave a comment.

Send me bug reports, general feedback or feature requests via email or just share your layouts.

For XML serialization the Simple XML serialization open source library is used in this application.

This application is not affiliated with Denon. Denon is a registered trademark of D&M Holdings, Inc.

Get it on Google Play

Some screenshots:



  1. Very responsive! Are you working on displaying Net apps like Pandora and station choices?

    1. You can do this on your own by editing the xml layout and add the missing commands

  2. Dennis H · · Reply

    thanks for this app!
    I own a 4520, but somehow the panel lock is not a menu option any longer. I found the command controls pdf, and with your app I managed to make a button send the panel lock command, and it worked! Maybe integrate a ‘free’ commandline option in the menu?

    1. Thanks.
      There is a commandline interface. Try “AVR shell” from the menu.

  3. that’s great!! shame it is quite hidden 😉 after pressing settings and seeing ‘about’, I don’t expect any other options below it,so I don’t scroll normally

  4. Would you be able to add application shortcuts for this app? I’m looking to run a specific command that is triggered via Tasker. I’m guessing there is a way to do it manually via a terminal emulator but I can’t get it to work.

    If we were able to call a shortcut and define an AVR shell command, it would be much appreciated!

    1. hi,

      Take a look at


      for release version V1.2.

      It is about tasker integration. Exactly what you are looking for.


      1. Hi, thanks for a great app!

        I’m also interested in Tasker integration, but I’m having a hard time figuring out how to make up the intent in Tasker.

        Can you please elaborate on the commands needed? Especially the “putExtra” part, since there are two “Extra”-fields in Tasker’s send intent action.
        Also, should the commands be in the format “PWON” for power on, or something else?

        Actually, please write down everything you know 🙂


      2. Action: “de.thjunge11.avrdroid.action.SEND_COMMAND”
        First Extra: “command:PWON” (or “comman:WhatEverCommandStringYouLike”)
        Target: Broadcast Receiver

        Thats enough, leave all other at optional.

        Screen 1
        Screen 2

      3. Well now it works great! 🙂
        Thank you so much for your support!

  5. Patrick Glose · · Reply

    This is great, thank you! Where’s the DONATE button? I own a 1613 and only 5.1, so many of the existing commands were irrelevant for me. Imagine my excitement as I began simply altering the state commands and query boxes. I can’t wait to go through and create my own layout.One question; can I make/use different Icons?

    1. Hi, I am glad that you like the App.

      The Standard Android Icon set is used. How to define them is explained on page https://avrdroid.wordpress.com/xml-button-layout-for-avrdroid/ “Icon ID Table”.
      At the moment no custom icons are supported. Its possible to do that, so we will see what the future brings…

  6. I like what you’ve started here. I’d like to use some other style options but apparently that requires access to java.util.ArrayList. Is it possible to use our own ArrayList so I don’t corrupt yours?

    Also, where are out layouts stored???

    1. regarding your comment I am not shure what you mean by acessing/changing java.utils.ArrayList?

      The xml layout files are stored at /storage(depending on device implementation)/Android/data/de.thjunge11.avrremote/files.

  7. I want to be able to use additional colors for the buttons. It looks like the three color definitions are stored/defined in one of your java files (java.utils.ArrayList). Maybe you can just add some additional colors
    I found the layout files.

    1. More style options incl. possibility to add image to a button is on the todo list

      1. Amazing app, looking forward to the next release! Any idea on the ETA of one?

  8. Hi, I love the app and its custumization capabilities for my DENON X2000. Very Nice work.

    But I have en issue, AVRdroid cannot connect to the denon unless I activite it with the IR remote before. Like if the wifi access need the Denon to be “active”. Then it works for few minutes and become unaccessible after few minutes of inactivity.
    I tested other remote apps, they have the same issue. But official Denon Apps works fine !!!
    Any idea what the official Denon apps could do that other remote apps don’t to connect to the AVR ? Am I the only one with the issue ? could it be a setup at the AVR level ? I already configured it to keep wifi active when AVR on standbye. Thanks for your feedback.

    1. hi, thank you.
      i have an older series (AVR-3312). Looks like you are not the only one having troubles with the X2000 and this app. The app got some bad ratings lately from people with the x2000.
      The only thing i can think of is to implement some kind of keep-alive strategy like sending request on a regularly basis to the receiver although i do not like this kind of stuff.

      Would you mind testing this once implemented if it helps? I will come back to you once i did the changes…

      1. Sure no problem on testing any good idea. The keep alive strategy might work but might also drain more batery and will require to keep the app device on the WiFi network ( which is my case since I use an old android phone as remote control). But I will be happy to test.
        I also wanted to try to find what message the official denon app sents to “awake” the connection. Could try to install a network monitoring software but didn’t took the time to do it yet. Any recommendation on what I could/should use to find out how it works. Cheers ?

      2. I search the web and found discussions mentioning that Official Denon app uses Http (port 80) to access the AVR (this is undocumented method but roomieremote found a way to reverse engineer it) and not RS232 over IP (port 23) public method known to loose connections. I also sniffed my network during the demon app opening. I can share the generated file since I have trouble analysing it. Would it be possible to continue using standard method and just have a “connect” button using denon methode just to activate the connection ? Or call denon method automatically whenever the connection is lost ? I am just trying to contribute with my limited skills 🙂

      3. sounds good, please share the file with my…

      4. Hi again, sorry for the multiple comments but I might have found a “workaround”. I tested sending an http command via my phone browser when Avrdroid is disconnected and it reconnects it. So an option could be to send a “non invasive” command when the avrdroid realize its disconnected. Something like :><
        I moves volume up and down 1 increment and reactivate the connection at the same time.
        I you could include that in avrdroid I will be more than happy to test it.
        A nice implementation of the solution would be to provide in the setup a way to enter the command we want to send in case of disconnection.
        Note: there is even less invasive command to collect status in xml format but it didn't seems to wake up the connection !!

      5. ok, really looks like the x2000 is waiting for an command via http-interface

        -> though there must be an really noninvasive “wakeup” http request somehow

        should be easily figured out with the http dump, just send it to me (thjunge11@gmail.com) or upload it to dropbox (I sent you the link)

      6. just realized that the http command doesn’t copied properly it should end by greater than sign and the 2nd one less than sign ( > and <)

  9. Hey! I’m reading some of the comments about the x2000 and still having trouble… I can’t ever get my phone to connect up to my avr, and it’s not just this app (but I’m most interested in this one). Was there any additional discoveries on getting the two synced up?

  10. is it possible we could have a updated icon for this awesome app more material like …? thx

    1. hi

      are you talking of the app icon itself or the remote icons/layout?

      1. Clayon Mclaren · ·

        Actual app icon … It clashes with with google material design guideline … Great app by the way

  11. Антонсunemi · · Reply

    Базы данных фирм городов России. найти клиента услуги

    Собираем сразу после заказа из открытых источников Интернета, БЕЗ ПРЕДОПЛАТЫ!

    Только лучшее для наших клиентов – новейшие базы данных предприятий и организаций.

    Базы от 500 руб. скидки на Праздники.

    Если есть вопросы, напишите нам сюда: bazy-gorodow(собачка)yandex.ru

    Базы данных фирм городов России. как найти клиентов фотографу

  12. giovanne · · Reply

    Great app, but do you have an idea why I can’t connect anymore?
    The app was working well, but suddenly stopped working.
    Everytime the app tells, that ‘no connection’ is possible.
    Is there some debugging possibility?
    Maybe a setting on the avr itself? Because ‘AVR-Remote’ isnt working either and was working in the past.
    On ios marantz remote app is working! Using http?

    Vi a browser / http I can connect.

    1. Try to reset your AVR receiver. Sometimes the Telnet service on the receiver crashes. Switching it to standby does not heal it.

      1. giovanne · ·

        does reset mean, power off for e.g. 5 minutes?
        Tried it already, problem still exists 😦

        I don’t want a factory reset or so that every setting has to be configured again.
        A telnet restart would be fine 😉

      2. several seconds power off (detach power cord really) should be fine

    2. giovanne · · Reply

      Found it, stupid mistake or circumstance.
      I had activated a plugin within fhem.pl for the avr and this was connected everytime to the avr, so that not other device couldn’t 😦

  13. Please add a Value check for the IP address.
    I just wasted 30 minutes trouble shooting just to realize that i by accident added a space after the IP

    Also with the Way SINET works in the new 2016 models with Heos integration (in my case the x4300h) it would be very handy if you could control Heos devices as well.

    I will now dig into automating stuff with tasker. Thanks for this amazing app.

    PS: I just realized you can use “_” to send multiple commands in the XML? Is that something you do handle via the app or is that actually supported by the Denon protocol?

    1. Handled via App. Will be seperated sequenced by the App in single commands

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s