
Gatekeeper
mjrskiles/gatekeeper
A digital gate/trigger processor for Eurorack modular synthesizers. Gatekeeper has a two-state (0 or 5V) output driven by push button and CV input. The input response is configurable via menu settings.

Circuit for using the LG OLED C9 TV remote (LG Magic Remote) with the Sonos Playbar.
Sonos magic hub is an open-source printed circuit board by perja12, from the perja12/sonos_magic_hub repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 54 × 29 mm with 18 parts on 16 nets, routed with 124 tracks and 34 vias.
It is built around the ATTINY85V-10SU, TSOP38238 and MMBT3904. Its parts include 6 resistors, 4 capacitors, 2 ICs, 2 diodes and 2 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.
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.
This is straightforward: when a IR signal is received it will be converted to a code that the Sonos Playbar understands.
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
| Command | IR code (TV off) | IR code (TV on) |
|---|---|---|
| Volume up | NEC, 20DF40BF, 32 bits | RC6, 1010, 20 bits |
| Volume down | NEC, 20DFC03F, 32 bits | RC6, 1011, 20 bits |
| Mute | NEC, 0DF906F, 32 bits | RC6, 100D, 20 bits |
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.

| Ref | Value | Footprint |
|---|---|---|
| C1 | 10 uF | Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder |
| C2 | 1 uF | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| C3 | 0.1 uF | Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder |
| C4 | 0.1 uF | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| D1 | LD271 | LED_THT:LED_D5.0mm_IRGrey |
| D2 | LED | LED_SMD:LED_1206_3216Metric |
| F1 | Polyfuse_Small | FUSM1812X02:FUSM1812X02 |
| J1 | AVR-ISP-6 | (No actual part) Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical |
| J2 | 629105136821 | (Micro USB connector) WE_629105136821:WE_629105136821 |
| Q1 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 |
| R1 | 1K | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| R2 | 0 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| R3 | 220 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| R4 | 10K | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| R5 | 220 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| R6 | 35 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder |
| U1 | ATtiny85V-10SU | Package_SO:SOIJ-8_5.3x5.3mm_P1.27mm |
| U2 | TSOP38238 | OptoDevice:Vishay_MINICAST-3Pin |
The PCB fits inside the Hammond 1551H (http://www.hammondmfg.com/pdf/1551H.pdf).
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 220 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R3, R5 |
| 1 | 0 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R2 |
| 1 | 0.1 uF | Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder | C3 |
| 1 | 0.1 uF | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | C4 |
| 1 | 1 uF | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | C2 |
| 1 | 10 uF | Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder | C1 |
| 1 | 10K | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R4 |
| 1 | 1K | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R1 |
| 1 | 35 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R6 |
| 1 | 629105136821 | WE_629105136821:WE_629105136821 | J2 |
| 1 | ATtiny85V-10SU | Package_SO:SOIJ-8_5.3x5.3mm_P1.27mm | U1 |
| 1 | AVR-ISP-6 | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | J1 |
| 1 | LD271 | LED_THT:LED_D5.0mm_IRGrey | D1 |
| 1 | LED | LED_SMD:LED_1206_3216Metric | D2 |
| 1 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | Polyfuse_Small | FUSM1812X02:FUSM1812X02 | F1 |
| 1 | TSOP38238 | OptoDevice:Vishay_MINICAST-3Pin | U2 |

mjrskiles/gatekeeper
A digital gate/trigger processor for Eurorack modular synthesizers. Gatekeeper has a two-state (0 or 5V) output driven by push button and CV input. The input response is configurable via menu settings.
perja12/roomba_beacon
IR beacon that can be used to limit where the Roomba vacuum cleaner goes.

IvDm/Z-probe-on-smd-resistors-2512
Auto bed level strain gage for 3D printer using resistors 2512 instead of strain gauges.

MouseBiteLabs/Super-Game-Boy-Plus
A replacement circuit board for improving the Super Game Boy, or for creating a standalone Game Boy game for the SNES.

joelsernamoreno/Attiny85-Standalone
PCB designs based on the Attiny85 microcontroller for standalone development.

hzeller/digi-spherometer
A digital spherometer, reading data from digital dial indicator and converting it to radius, displaying on OLED display.


rjhsun/moleblink
ATtiny85-based illuminated PCB keychain featuring the Blacker House crest
It measures 54 × 29 mm and has 2 copper layers, 1.6 mm thick.
18 parts, built around the ATTINY85V-10SU, TSOP38238 and MMBT3904. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the perja12/sonos_magic_hub repository on GitHub, at the commit this page was made from: the board is kicad/sonos_magic_hub/sonos_magic_hub.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).