IKEA Obegransad - VIPnytt/Frekvens GitHub Wiki
π‘ IKEA ObegrΓ€nsad LED wall lamp
Article number: 005.262.48
π Schematics
LED panels schema
βββββββββββββββββββββββββ +5 V DC
β βββββββββββββββββββββ SPI CS
β β βββββββββββββββββ SPI SCLK
β β β βββββββββββββ SPI MOSI
β β β β βββββββββ OE
β β β β β βββββ 0 V DC
ββββββββΌββββΌββββΌββββΌββββΌββββΌβββ
β VCC CLA CLK DI EN GND β
Button ββΌ SW ββββββββββββββββββββββββ β
β SW1 | |
0 V DC ββΌ DC- U1 ββ΄ββ΄ββ΄ββ΄ββ΄ββ΄ββ΄ββ΄β | β
+5 V DC ββΌ DC+ ββ¬ββ¬ββ¬ββ¬ββ¬ββ¬ββ¬ββ¬β | β
| ββββββ |
βββββββββββββββββββββββββββββββ€
β DC- β
β DC+ β
βββββββββββββββββββββββββββββββ€
β DC- β
β DC+ β
βββββββββββββββββββββββββββββββ€
β DC- β
β DC+ β
β VCC CLA CLK DO EN GND β
βββββββββββββββββββββββββββββββ
Button schema
βββ
ββ Button
ββ 0 V DC
βββ
USB cable schema
βββββββ
White βΌβ +5 V DC
Black βΌβ 0 V DC
βββββββ
ESP32 schema
ββββββββββββββββββ
β VIN ββ +5 V DC
β 3V3 ββ +3.3 V DC
β GND ββ 0 V DC
β β
β SCLK ββ SPI SCLK
β MOSI ββ SPI MOSI
β β
β Digital output ββ SPI CS
β Digital output ββ OE
β β
β Digital input ββ Button
ββββββββββββββββββ
Logic level shifter schema
0 V DC βββββββββ¬ββββββββ 0 V DC
+3.3 V DC βββββ β βββββ +5 V DC
ββββ΄ββββ΄ββββ΄βββ
β VCC GND VCC β
SPI CS ββ€ A1 βββΊ B1 ββ SPI CS
SPI SCLK ββ€ A2 βββΊ B2 ββ SPI SCLK
SPI MOSI ββ€ A3 βββΊ B3 ββ SPI MOSI
OE ββ€ A4 βββΊ B4 ββ OE
βββββββββββββββ
π Getting started
Opening the back panel
The recommended method is to break the rivets with a 3mm drill bit. When drilled slowly, they will usually form a spiral which leaves minimal amounts of aluminum shavings. Clean and remove the back panel once the upper edge of all rivets are broken. Then switch to a 2mm drill bit to remove the last fragments, preferably in combination with a flat screwdriver or pliers.
[!TIP] The risk of hitting something inside is minimal, there are few electronic components and it is mostly just an empty box. For those who wish, it is possible to use 2 mm rivets to seal the unit again afterwards.
[!NOTE] Alternative methods to open the back panel could be using a tiny chisel and hammer, or even just a utility knife.
Removing the U1 chip
The U1 chip handles display outputs as well as the button input. Itβs easy to locate as the device consists of 4 panels where the U1 chip is only present on one of them. Remove it by desoldering.
Wiring the LED panels
Next up is attaching the ESP32, via the logic level shifter. Thereβs two noteworthy locations, at the top labeled IN, and at the bottom labeled OUT. Thereβs no difference between input and output, except for DI and DO.
Connecting the button
The button can be wired in several ways, depending on the desired level of modification. The simplest and most visually clear method is to connect it directly between the ESP32 and GND. This keeps the wiring straightforward and self-contained, reducing the chance of confusion from the PCBβs existing circuitry.
If reusing existing connections is preferred, the wire on the SW pad can either be re-routed to the ESP32 or simply spliced by adding a second wire. For those comfortable with fine-pitch soldering, the newly desoldered U1 pad 7 provides another solder point with the same electrical result.
[!NOTE] On the LED panel,
SW1is internally tied toGND.
βοΈ Logic level shifter
For safe and reliable communication between the ESP32 and the LED panels, a suitable logic level shifter is required. An TXU0104 is the ideal choice for this application, but alternatives such as the SN74AHCT125, TXB0104/TXB0108, and even TXS0104E/TXS0108E are reported to work as well, although with some minor caveats.
The ESP32βs 3.3 V signals are too weak for the SCT2024 to reliably register. At the same time, the SCT2024 operates at 5 V and uses pull-resistors on its inputs β which can feed unsafe voltages back into the ESP32. To protect the microcontroller and ensure consistent communication, all signal lines must go through a level shifter.
[!WARNING] Some users have reported success without level shifting, but this is outside the specifications of both ESP32 and SCT2024. Skipping it can lead to unstable behavior, and even damage the ESP32.
π οΈ Hardware considerations
The IKEA ObegrΓ€nsad hardware is sub-optimally designed, but fortunately for those who desire itβs easy and straightforward to do something about it.
Wiring
The USB cable powers the first LED panel by connecting to its DC+ and DC- pads. Power is then passed along to the other panels through the secondary bus interface.
For best performance, the power supply should be wired in parallel to all four DC+ and DC- pads. This ensures even power delivery, significantly shorter power paths, and reduced noise.
Capacitors
The original U1 microcontroller lacked dimming capabilities, but the ESP32 enables full PWM dimming. Because PWM involves rapid switching, it can stress the power supply and introduce noise. Decoupling capacitors are recommended to smooth out these fluctuations, improving stability and preventing timing issues.
The SCT2024 datasheet suggests a total of ββ₯85 Β΅F, placed as close as possible to the SCT2024 chips and LEDs. Optimal performance is achieved by distributing capacitance across multiple solder points, rather than concentrating it in a single large capacitor.
Easily accessible soldering points:
- 4x
DC+/DC-pads β one at each panel - 2x
VCC/GNDpads β top and bottom - 4x
J3JTAG pads β pin 1 (square,VCC) and pin 4 (round,GND) - 3x
C2SMD pads β one at each panel, except the fourth which is already populated - 4x
C7SMD pads β one at each panel
[!NOTE] Capacitors are optional β consider adding if you already have some available, or if you notice flicker or instability.
π§ Configuration
| Label | Type | Constant |
|---|---|---|
CLA |
Digital output | PIN_CS |
CLK |
SPI SCLK | PIN_SCLK |
DI |
SPI MOSI | PIN_MOSI |
EN |
Digital output | PIN_OE |
SW |
Digital input | PIN_SW2 |
Power and ground
Supplies power to both logic and LEDs.
DC+/DC-is intended to supply high current to the LEDs.VCC/GNDis intended as outputs for low current components handling the logic.- Both are tied together internally on the PCB.
The IKEA ObegrΓ€nsad can draw up to 2.0 A at 5 V (10 W) under full load. Use a USB power supply rated for at least this continuous output.
[!CAUTION] Do not use the ESP32βs USB port while the IKEA ObegrΓ€nsadβs USB-cable is connected to a power source!
SPI CS
Chip Select for the LED drivers.
Any digital output pin can be used.
Configure in secrets.h:
#define PIN_CS 1 // CLA
[!IMPORTANT] Logic level shifter required.
[!WARNING] Avoid strapping pins as this pin is pulled LOW with 25 kΞ© resistance. On ESP32 classic it is recommended to use specialized pins, such as
CS(sometimes labeledSSon older boards).
SPI SCLK
Serial clock for SPI communication.
Any SPI SCLK pin can be used.
Configure in secrets.h:
#define PIN_SCLK 2 // CLK
[!IMPORTANT] Logic level shifter required.
SPI MOSI
Master-out data line for SPI.
Any SPI MOSI pin can be used.
Configure in secrets.h:
#define PIN_MOSI 3 // DI
[!IMPORTANT] Logic level shifter required.
Output Enable
Enables or disables LED output.
Any digital output pin can be used.
Configure in secrets.h:
#define PIN_OE 4 // EN
[!IMPORTANT] Logic level shifter required.
[!WARNING] Avoid strapping pins as this pin is pulled HIGH with 25 kΞ© resistance.
Button
Button input for user interaction.
Optional to connect. Use an RTC-capable digital input pin for best compatibility.
Configure in secrets.h:
#define PIN_SW2 5 // SW
[!IMPORTANT] Avoid strapping pins as this pin is pulled LOW when pressed.
π Template
Configure in .env:
# Device type
IKEA_OBEGRANSAD='true'
# Names
NAME='ObegrΓ€nsad' # optional
HOSTNAME='obegransad' # optional
Configure in secrets.h:
#pragma once
// GPIO pins
#define PIN_CS 1 // CLA
#define PIN_SCLK 2 // CLK
#define PIN_MOSI 3 // DI
#define PIN_OE 4 // EN
#define PIN_SW2 5 // SW
// Wi-Fi credentials
#define WIFI_SSID "name"
#define WIFI_KEY "secret"
// Weather location (optional)
#define LATITUDE "0.000"
#define LONGITUDE "0.000"
π Resources
A collection of external links for deeper exploration β including teardowns, mods, datasheets, and community projects β provided for reference only and with no formal connection to this project.
- GitHub: a-johanson/rusty-obegraensad
- GitHub: atesgoral/obegraensad-hack
- GitHub: Drewbi/oberled
- GitHub: grandpasquarepants/IKEA-Obegransad-Tetris
- GitHub: MakeMagazinDE/Obegraensad
- GitHub: ph1p/ikea-led-obegraensad
- GitHub: unframework/obehack-202301
- Hackaday: IKEA OBEGRΓNSAD LED wall lamp + ESP32
- Hackaday: Hacking The IKEA OBEGRΓNSAD LED Wall Lamp
- Hackster: Play Tetris on an IKEA Wall Lamp
- Heise magazine: IKEA-Matrix gehackt
- IKEA: IKEA and Swedish House Mafia to launch the OBEGRΓNSAD collection
- IKEA: OBEGRΓNSAD collection in collaboration with Swedish House Mafia
- IKEA: OBEGRΓNSAD PR kit
- PixelkΓΆnig Blog: X-Clock (IKEA OBEGRΓNSAD Hack)
- StarChips: SCT2024 DataSheet
- YouTube: ESP32 powered Tetris clone running on an IKEA OBEGRΓNSAD wall lamp