Sign in   |  Join   |  Help
Untitled Page

ARCHIVED FORUM -- March 2012 to February 2022
READ ONLY FORUM

This is the second Archived Forum which was active between 1st March 2012 and 23rd February 2022

 

$25 IR receiver for BeoSound Core and any IR remote

rated by 0 users
This post has 6 Replies | 3 Followers

simphax
Not Ranked
Posts 10
OFFLINE
Bronze Member
simphax Posted: Sun, Aug 25 2019 9:20 PM

Hi!

Here's an option for you who might want to use your Apple TV remote or any* other IR remote to control the volume of your BeoSound Core. It should also work even if you have the older version of BeoSound Core without support for the B&O IR eye.

The solution is an Arduino board that connects to the BeoSound Core via Wifi.

Required hardware:

Steps to set it up:

  1. Connect the IR receiver to GPIO5 (labeled D1 on some boards). See the attached picture how I connected it to my board.
  2. Install and start Arduino IDE 
  3. Connect the ESP8266 board to your computer
  4. Go to Tools->Card->Manage cards... and install esp8266
  5. Set the card type to what corresponds to yours.
  6. Go to Tools->Manage library... and install IRremoteESP8266 and ArduinoJson
  7. Download my code from here
  8. Open the .ino file and change "your-wifi-ssid" and "your-wifi-password" to your WiFi name and password.
  9. Install the code onto the device
  10. Open serial monitor and use your remote of choice and press volume up and down and write down the codes that you see in the serial monitor.
  11. Set the variables ircode_volumeUp and ircode_volumeDown to the corresponding codes.
  12. Install the code again.

You should now be able to raise and lower the volume of your BeoSound Core with the IR remote. The ESP8266 device can be powered by the USB port on the back of the BeoSound Core.

*should work with most regular IR remotes but not B&O remotes since they use a different modulation than regular remotes. However it should be possible to get it to work if you change to a different IR receiver diode (TSOP7000). I have not tested this and the code might need to be updated aswell.

laseralex
Top 500 Contributor
Posts 240
OFFLINE
Bronze Member
laseralex replied on Wed, Aug 28 2019 5:25 AM

Brilliant!

 

 

Sources: 2x Beosound Moment • 4x Beosound Essence Mk II
Speakers: 3x Beolab 8000 • 2x Beolab 6000 • 2x Beolab 3 • 3x Beolab 2
Integrated:  1x Beosound 2 • 1x Beosound Level • 4x BeoPlay M5 • 1x BeoPlay A6
Control:  16x* Essence Remote  • 1x Beoremote Halo

* Yes, really! 🤦‍♂️

ngnear
Top 500 Contributor
Posts 245
OFFLINE
Bronze Member
ngnear replied on Wed, Aug 28 2019 1:14 PM
Just for clarification. Should this read ...and any other IR remote other than B&O?

I assume the IR receiver is for standard modulation 38Khz?

simphax
Not Ranked
Posts 10
OFFLINE
Bronze Member
simphax replied on Thu, Aug 29 2019 10:56 AM

ngnear:
Just for clarification. Should this read ...and any other IR remote other than B&O?

 

I assume the IR receiver is for standard modulation 38Khz?

 

Ohh, you are right. I did not consider that, i'll clarify that :-) I guess the code can be modified to support other modulations.

Turbojon123
Not Ranked
Posts 2
OFFLINE
Bronze Member

Hi.

 

Thank you for your guide. Have used it with to build my IR remote for Core.

Any tip to get this setup working with several Cores on the local network? I have two Cores and it seems like the board chooses randomly one of the Cores for connection.

simphax
Not Ranked
Posts 10
OFFLINE
Bronze Member
simphax replied on Fri, May 14 2021 10:14 AM

Hi!

You have 2 options.

1. Set the variable beoHost to the IP-address of the Core to be controlled. If this is set, the program will skip the automatic discovery. A downside is that you need to re-flash the Arduino every time the IP of the core changes.

2. Update the code on rows 106 to 117 to search for a specific name. Example (not tested):

  while(beoHost == "") {
    delay(500);
    Serial.print(".");

    int foundDevicesCount = MDNS.queryService("beoremote", "tcp")

    for (int i = 0; i < foundDevicesCount; i++) {
      Serial.println();
      Serial.print("Found ");
      Serial.print(MDNS.hostname(i));
      Serial.println("!");
      if(MDNS.hostname(i).equals("My BeoSound Core Host Name")) {
        beoHost = MDNS.IP(i).toString();
      }
    }
  }

EDIT: Updated code example

Turbojon123
Not Ranked
Posts 2
OFFLINE
Bronze Member

Thank you for your quick reply and sorry for my late replyStick out tongue

 

I used option 1 and it worked like a charm! The Core i wanted to control now has a static IP from the router so the IP does not change Big Smile

Thx.

Page 1 of 1 (7 items) | RSS