sonos_magic_hub

Public

@perja12

Download board files

Files for version 1. Pick what you came for.

Share sonos_magic_hub

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading 3D model… large boards can take a moment.

README

Sonos Magic Hub

UPDATE 2020-09-13: This workaround isn't needed anymore! Go to "device connector" in the menus of the LG TV and setup a new soundbar. When you come to the manufacturer selection you won't see Sonos listed, but if you use the search box and search for Sonos it will show up (I'm pretty sure it wasn't there before!). Now you should be able to control the Sonos Playbar with the remote when the TV is on.

Next step is to open the Sonos app (S1), go to the settings for the Playbar and follow the instructions for setting up a remote ("Remote Control Setup"). And voil�: you can now control the Playbar with the MagicRemote with TV both on and off.

This project contains firmware and hardware design files for using the LG Magic Remote that comes with LG OLED C9 TV with a Sonos Playbar. Sonos Playbar already has support for universal remotes, but the LG Magic Remote sends one set of codes when the TV is on and another set when the TV is off. So controlling the volume up, down and mute works fine when the TV is on, but not when it is off. It's not clear why LG has done it this way, but probably it is for controlling other LG devices.

Instead of waiting for LG to fix this I created a small circuit to translate the IR codes.

Note: there are various forum posts about the reverse problem for LG OLED CX. Apparently the Sonos Playbar can only be controlled by the LG remote when TV is off. This project doesn't solve that.

How does it work?

This is straightforward: when a IR signal is received it will be converted to a code that the Sonos Playbar understands.

List of IR codes

The table shows the IR codes sent by the remote when it is configured to send Philips RC6 codes as described here: https://support.sonos.com/s/article/3479?language=en

CommandIR code (TV off)IR code (TV on)
Volume upNEC, 20DF40BF, 32 bitsRC6, 1010, 20 bits
Volume downNEC, 20DFC03F, 32 bitsRC6, 1011, 20 bits
MuteNEC, 0DF906F, 32 bitsRC6, 100D, 20 bits

How to build the firmware

Use the Arduino IDE and install the ATTinyCore (https://github.com/SpenceKonde/ATTinyCore). Do this from Boards Manager in the IDE. Select "ATtiny 25/45/85" under boards and clock to 8 MHz (internal). For uploading the firmware I have used USBasp with Tag-Connect, but you can you use any way you prefer. Remember to burn the bootloader before uploading the firmware.

Various notes

  • Use this at your own risk! In the firmware I included support for NEC repeat code that the remote sends if one of the buttons are held down. There is a limit of 5 repeats in a row to avoid ramping up the volume too fast.
  • There is no USB enumeration and thereby it is not according to the USB specifications. Still I think it should work fine with most USB hosts.
  • It was unclear if the shield of the USB connector should be connected to GND or not. That is why I included R2. I left it unpopulated.
  • The fuse (F1) is probably not needed. Maybe it should have some TVS diodes instead to suppress ESD.
  • The IR library is from https://gist.github.com/SeeJayDee/caa9b5cc29246df44e45b8e7d1b1cdc5

BOM

RefValueFootprint
C110 uFCapacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder
C21 uFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder
C30.1 uFCapacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder
C40.1 uFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder
D1LD271LED_THT:LED_D5.0mm_IRGrey
D2LEDLED_SMD:LED_1206_3216Metric
F1Polyfuse_SmallFUSM1812X02:FUSM1812X02
J1AVR-ISP-6(No actual part) Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical
J2629105136821(Micro USB connector) WE_629105136821:WE_629105136821
Q1MMBT3904Package_TO_SOT_SMD:SOT-23
R11KResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R20Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R3220Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R410KResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R5220Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R635Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
U1ATtiny85V-10SUPackage_SO:SOIJ-8_5.3x5.3mm_P1.27mm
U2TSOP38238OptoDevice:Vishay_MINICAST-3Pin

The PCB fits inside the Hammond 1551H (http://www.hammondmfg.com/pdf/1551H.pdf).

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.