• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Remote codes for Topping?

thefsb

Addicted to Fun and Learning
Joined
Nov 2, 2019
Messages
796
Likes
660
Are there remote codes for a Topping D50s that select a specific input? The remote that comes with it has two buttons to cycle through the inputs, which, if you don't keep binoculars at the sofa, is inconvenient.

Before I set up my Sony RMVLZ620 Universal Remote Control, does anyone know of codes that allow me to assign a button to a DAC input?
 
Not sure what the actual codes are. My children got me a Harmony Elite for Christmas to replace an aging Harmony One.

I added the D90 as a new device and did the "infra marrying" of the two and believe or not, all I did was hit the power

button on the D90. After it synced up with the hub, the D90 is displayed and all the functions work ! This may not help

you, but it sure surprised me how easy this was. If your Sony has the learning feature, maybe it might work for you and your

D50. Good luck to you.
 
This might help. Its for a different model, but might work on the D50. Alternatively email Topping. They are quite responsive.
 
Not sure what the actual codes are. My children got me a Harmony Elite for Christmas to replace an aging Harmony One.

I added the D90 as a new device and did the "infra marrying" of the two and believe or not, all I did was hit the power

button on the D90. After it synced up with the hub, the D90 is displayed and all the functions work ! This may not help

you, but it sure surprised me how easy this was. If your Sony has the learning feature, maybe it might work for you and your

D50. Good luck to you.

But what about selecting a specific input without cycle through the inputs? I mean extra buttons for: Coax, USB, Toslink,
Did Harmony add such functionality?
 
I have the same issue and haven't been able to find codes for directly switching to specific inputs. Harmony remote has the ability to cycle through to the desired input when you switch, but it can be a miss if you've manually changed input at some point.
 
But what about selecting a specific input without cycle through the inputs? I mean extra buttons for: Coax, USB, Toslink,
Did Harmony add such functionality?
Good question. Without that I also need binoculars.
 
Just cycle through until you find one that works. Alternatively, remember the positions of the indicators on the display.
 
Just cycle through until you find one that works. Alternatively, remember the positions of the indicators on the display.
Such workarounds are clear enough. My question was if they are really needed. I think so.

Still, I'll email Topping to mention it.
 
It did not. I am guessing that it is a generic set of codes for all their models. It added a headphone option which the D90

does not have. I still have to cycle through the inputs. I am using mine as a DAC only with the volume bypassed, so

not sure if the volume control on the Harmony would allow adjustment of that or not. Still experimenting, learning

and listening.
 
Such workarounds are clear enough. My question was if they are really needed. I think so.

Still, I'll email Topping to mention it.

You could get up.
 
For reference, these are the Topping remote codes:

RC_20_USER_CODE 0X8877

RC_1X_IR_HEADPHONE 0X04

RC_1X_IR_LINEOUT 0X40

RC_1X_IR_INPUT_L 0X47

RC_1X_IR_INPUT_R 0X15

RC_1X_IR_VOL_INC 0X46

RC_1X_IR_VOL_DEC 0X16

RC_1X_IR_MUTE 0X06

RC_1X_IR_POWER 0X18

RC_1X_IR_HEADPHONE_LINEOUT 0X55

RC_1X_IR_A 0X10

RC_1X_IR_DIS 0X14

RC_1X_IR_FIR 0X54

As you can see (and have already confirmed) there seems to be no discreet input selection codes.
However, when you set up and activity in the Harmony software it does allow you to pick an input for the activity:
Screenshot 2020-04-07 at 7.02.45 pm.png
So you could set an activity for each input as desired.
 
Just cycle through until you find one that works. Alternatively, remember the positions of the indicators on the display.

You could get up.

edgy

No. It seemed pretty clear there are no IR codes for specific input selection so I didn't bother asking.

This would make the harmony implementation a lot better if Topping addressed it. That said, if you make sure to only use your logitech remote for any source functions on the d90, you should be ok with how they've done it (it does what a person would do and correctly iterates through the sources and remembers what it's on, kludgy).

Maybe if a few people ask, they'll do it. There have to be some unused IR commands it can recognize and use to change the source state, maybe with a firmware update. Maybe not, of course :)
 
Hi
Does anyone reach to control a Topping device with magic remote from LG tv?
I am planning to buy Topping E30 Dac just to have volume control on optical and will be nice to have same remote for tv and dac.
 
For reference, these are the Topping remote codes:

RC_20_USER_CODE 0X8877

RC_1X_IR_HEADPHONE 0X04

RC_1X_IR_LINEOUT 0X40

RC_1X_IR_INPUT_L 0X47

RC_1X_IR_INPUT_R 0X15

RC_1X_IR_VOL_INC 0X46

RC_1X_IR_VOL_DEC 0X16

RC_1X_IR_MUTE 0X06

RC_1X_IR_POWER 0X18

RC_1X_IR_HEADPHONE_LINEOUT 0X55

RC_1X_IR_A 0X10

RC_1X_IR_DIS 0X14

RC_1X_IR_FIR 0X54

As you can see (and have already confirmed) there seems to be no discreet input selection codes.
However, when you set up and activity in the Harmony software it does allow you to pick an input for the activity:
View attachment 57615So you could set an activity for each input as desired.

I tried using these codes whilst trying to use the "unused" buttons on my E30 and got nowhere. Perhaps if you set up the protocol differently the codes get interpreted differently. I ended up doing this: https://poldieblog.blogspot.com/2020/12/remote-control-of-mpd-on-raspberry-pi-i.html
 
For reference, these are the Topping remote codes:

Some additional info to share, I used an ESP8266-based IR module from SparkFun to dump all of the NEC codes from the Topping RC-15A remote:

This is the module I bought: https://www.sparkfun.com/products/15031
It also needs an FTDI programmer board if you want to use it with the Arduine IDE over USB.

Code:
Power        Mute
0x11EE18E7    0x11EE609F

Input Left    Input Right
0x11EEE21D    0x11EEA857

Vol Down    Vol Up
0x11EE6897    0x11EE629D

Headphones    Line Out
0x11EE20DF    0x11EE02FD

FIR            M
0x11EE2AD5    0x11EE0AF5

AUTO        Brightness
0x11EE08F7    0x11EE28D7

My goal is to make an IR repeater module that listens for Vol +/- commands from my Amazon Fire TV remote and translates them into the Topping remote codes, so I don't have to find both remotes all of the time when I want to watch TV :D
 
Ok, that was easier than I thought. I used the IRremoteESP8266 library. You can download it directly within the Arduino IDE via Tools > Manage libraries.

Within the Fire TV settings, I added a "Receiver" under equipment, selected Sony, then yes "Yes" to both questions (does it power on/off?, does the volume control work?). This should set it up with the 1st Sony IR profile.

The code works by listening for the Sony IR profile coming off of the remote for vol +/- and mute, the re-broadcasting the NEC codes that the Topping DAC uses. Code below.

IMG_7350.jpg


C:
/*
* AmznTopping_IR_Repeater.ino
* Capture SONY IR codes form Amazon Fire TV Remote and convert to Topping RC-15A Remote Codes
* Copyright 2021 Samuel A. Hurley (halfSpinDoctor)
* http://www.paradime.net  [email protected]
*
* Based on IRremoteESP8266: SmartIRRepeater.ino, (C) 2019 David Conran (crankyoldgit)
*
* License: BSD-2-Clause
*
* Copyright 2021 Samuel A. Hurley
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
*    following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
*    the following disclaimer in the documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/

#include <Arduino.h>
#include <IRsend.h>
#include <IRrecv.h>
#include <IRremoteESP8266.h>
#include <IRutils.h>
#define DECODE_SONY

// ==================== start of TUNEABLE PARAMETERS ====================

// The GPIO an IR detector/demodulator is connected to. Recommended: 14 (D5)
// Note: GPIO 16 won't work on the ESP8266 as it does not have interrupts.
const uint16_t kRecvPin = 13; // This must be set to 13 for the SparkFun board

// GPIO to use to control the IR LED circuit. Recommended: 4 (D2).
const uint16_t kIrLedPin = 4;

// The Serial connection baud rate.
// NOTE: Make sure you set your Serial Monitor to the same speed.
const uint32_t kBaudRate = 115200;

// As this program is a special purpose capture/resender, let's use a larger
// than expected buffer so we can handle very large IR messages.
const uint16_t kCaptureBufferSize = 1024;  // 1024 == ~511 bits

// kTimeout is the Nr. of milli-Seconds of no-more-data before we consider a
// message ended.
const uint8_t kTimeout = 50;  // Milli-Seconds

// kFrequency is the modulation frequency all UNKNOWN messages will be sent at.
// NOT USED
const uint16_t kFrequency = 38000;  // in Hz. e.g. 38kHz.

// ==================== end of TUNEABLE PARAMETERS ====================

// The IR transmitter.
IRsend irsend(kIrLedPin);
// The IR receiver.
IRrecv irrecv(kRecvPin, kCaptureBufferSize, kTimeout, false);
// Somewhere to store the captured message.
decode_results results;

// This section of code runs only once at start-up.
void setup() {
  irrecv.enableIRIn();  // Start up the IR receiver.
  irsend.begin();       // Start up the IR sender.

  Serial.begin(kBaudRate, SERIAL_8N1, SERIAL_TX_ONLY);

  Serial.print("SmartIRRepeater is now running and waiting for IR input "
               "on Pin ");
  Serial.println(kRecvPin);
  Serial.print("and will retransmit it on Pin ");
  Serial.println(kIrLedPin);


}

// The repeating section of the code
void loop() {
  // Check if an IR message has been received.
  if (irrecv.decode(&results)) {  // We have captured something.
    // The capture has stopped at this point.
    decode_type_t protocol = results.decode_type;
    uint16_t size = results.bits;
    bool success = true;
  
    // Is it the SONY protocol?
    if (protocol == decode_type_t::SONY) {
      // Check for vol+ / vol- / mute result:
      if (results.value == 0x240C) {
        Serial.println("vol up");
        irsend.sendNEC(0x11EE629D);
      
      } else if (results.value == 0x640C) {
        Serial.println("vol down");
        irsend.sendNEC(0x11EE6897);
      
      } else if (results.value == 0x140C) {
        Serial.println("mute");
        irsend.sendNEC(0x11EE609F);
      
      } else {
        serialPrintUint64(results.value, 16);
        Serial.println(" - command not recognized.");
      }
    }
  
    // Resume capturing IR messages. It was not restarted until after we sent
    // the message so we didn't capture our own message.
    irrecv.resume();
  }

  yield();  // Or delay(milliseconds); This ensures the ESP doesn't WDT reset.
}
 

Attachments

  • IMG_7350.jpg
    IMG_7350.jpg
    497.6 KB · Views: 210
Last edited:
Back
Top Bottom