denonremote

A desktop GUI remote for the Denon DN-500 AV receiver.


Keywords
DN-500AV, Denon, Remote, control, kivy, nuitka, pyinstaller, python, python3, remote-control, touch-enabled, twisted, windows
License
Other
Install
pip install denonremote==0.10.0

Documentation

Denon Remote Logo Denon Remote

License: GPL v3 PyPI - Python Version Downloads PyPI - Version

Control Denon Professional DN-500AV surround preamplifier remotely.

Screenshot

Settings Screenshot

Features

Target hardware

  • Denon Professional DN-500AV (Seems to be based on the same platform as the Denon AVR-1912 and AVR-2112CI)
  • More? Contributions welcome!

Communication

  • Ethernet
    • Using Twisted
    • connection status detection
    • automatically try to reconnect with exponential backoff
  • RS-232? also using Twisted
  • General MIDI input using Mido

Controls

  • Setup
    • IP address
    • Serial port?
      • COM (Windows)
      • tty (*NIX OSes)
  • On/Standby
  • Main volume
    • Get
      • Relative
      • Absolute
    • Set
      • Relative
      • Absolute
    • Mute
  • SPL calibrated display
    • EBU/SMPTE RP200: 85dB C SPL @ -18 dBFS (Equivalent to 83 dB C SPL @ -20 dBFS)
    • K meter
      • K-20: -20dBFS = 83dB C SPL (Same as SMPTE and EBU)
      • K-14: -14dBFS = 83dB C SPL
        • Can be compensated from SMPTE/EBU levels by lowering the output volume by 6dB
      • K-12: -12dBFS = 83dB C SPL
        • Can be compensated from SMPTE/EBU levels by lowering the output volume by 8dB
    • EBU R 128: -23LUFS (-23dBFS) = 73dB C SPL (Debatable/unclear removed for now)
    • Presets!
      • Relative (-18dB, -24dB…)
      • Absolute
      • SPL calibrated
  • Zone 2
  • Per Channel level (Up to 7.1)
  • Tone
  • EQ
  • Sound presets
  • Input select
    • Favorites
  • Security
    • Panel Lock
    • IR Remote Lock
  • Settings backup/restore
    • All
    • Subsystems?
  • Retrieve status
    • Logger
    • Update the GUI
  • Import EQ settings
    • From REW value file
      • Only use negative values! You can’t compensate a destructive room mode by adding energy to it.
  • Full Profiles/presets?
GUI
  • Using Kivy
    • Keyboard shortcuts:
      • M for Mute
      • Up/Down Vol +/-
      • Left/Right VolPreset +/-
      • PgUp/PgDwn SrcPreset +/-
  • Systray/Taskbar support using pystray
  • Only one instance is allowed (Microsoft Windows only)
  • Option to make window stay always on top (Microsoft Windows only)
  • Touch doesn't activate the window and doesn't steal focus (Microsoft Windows only)
  • Trigger events without having to activate the window first (Microsoft Windows only)
  • Draw it on the first touch enabled display if available instead of the main one
Windows executable
  • Handle shutdown to power off the device
  • Generate icon with IconMaker
  • PyInstaller (Fairly stable for Microsoft Windows)
    • UPX support
    • How to build:
  • Nuitka (Alpha support for Microsoft Windows)
    • Use hatch build; hatch run build:nuitka
  • PyOxidiser
  • cx-Freeze for multiplatform support?
  • VST plugin? (Not required if MIDI input is implemented but would be neat to have in the monitoring section of a DAW)

Mobile

  • Autonomous mobile app? Kivy enables that!
    • Android
    • iOS/iPadOS

Proxy/background service?

The receiver only allows 1 active connection. A dispatcher proxy could allow multiple simultaneous remotes (Desktop and mobile).

Other opportunities

Open ports:

  • 23/tcp (TELNET): BridgeCo AG Telnet server
    AVR serial protocol used here
  • 80/tcp (HTTP): GoAhead WebServer
    Web control (index.asp) Shows nothing.
    Most of the useful code is commented!
    CSS loading at "css/mainMenu.css" times out.
    Main control is available at "MainZone/index.html"!
  • 443/tcp (HTTPS):
    ERR_SSL_PROTOCOL_ERROR in Google Chrome
    SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE in Mozilla Firefox
  • 1026/tcp (RTSP): Apple AirTunes rtspd 103.2
  • 6666/tcp: ?
  • 8080/tcp (HTTP): AV receiver http config

Similar projects

Android

JavaScript:

PHP

Python:

Legal notice

License

GPLv3

Author: ©2021-2022 Raphaël Doursenaud.

This software is released under the terms of the GNU General Public License, version 3.0 or later (GPL-3.0-or-later).

See LICENSE.

Logo and icons released under the Creative Commons Attribution-Share Alike 4.0 International.

Dependencies & License Acknowledgment

  • Python v3.10
    Copyright © 2001-2022 Python Software Foundation.
    Used under the terms of the PSF License Agreement.
  • Kivy
    Copyright 2010-2022, The Kivy Authors.
    Used under the terms of the MIT license.
    Uses:
  • Twisted
    Copyright (c) 2001-2022 Twisted Matrix Laboratories.
    Used under the terms of the MIT license.
  • PyInstaller
    Copyright (c) 2010-2022, PyInstaller Development Team.
    Copyright (c) 2005-2009, Giovanni Bajo.
    Based on previous work under copyright (c) 2002 McMillan Enterprises, Inc.
    Used under the terms of the GNU General Public License version 2.0.

Fonts

  • Free Serif
    Copyright © 2022 Free Software Foundation, Inc.
    Used under the terms of the GNU General Public License version 3.0.
  • Roboto Mono
    Copyright (c) 2015 The Roboto Mono Project Authors.
    Used under the terms of the Apache License, Version 2.0.
  • Unicode Power Symbol
    Copyright (c) 2013 Joe Loughry.
    Used under the terms of the MIT license.

Logo and icons

Own work based upon:

Trademarks

  • Denon is a trademark of Sound United, LLC and Affiliates.
  • Denon Professional is a trademark of inMusic Brands, Inc.

Other

Other trademarks are property of their respective owners and used fairly for descriptive and nominative purposes only.