Alternative firmware for IKEA ORSALA lamp

Overview

orsala_hack

Alternative firmware for IKEA ORSALA lamp (https://www.ikea.com/de/de/p/orsala-arbeitsleuchte-led-dimmbar-weiss-00482904/)

but why?

The ORSALA lamp from IKEA is a nice desktop lamp but has a very strange user experience. It features one rotary encoeder with button to control the brightness, color temperature and an on/off switch.

On the original firmware the following functions are implemented:

If lamp is turned off:

  • Tap the encoder to turn on the lamp.

If lamp is turned on:

  • Press the encoder for about 750ms to turn off the lamp.
  • Tap the rotary encoder to switch between brightness and temperature control.
  • Turn the rotary encoder in to change brightness or color temperature according to the current mode.

Also the lamp does not save the brightness or color temperature on power loss.

This firmware fixes the user experience in the following way:

If lamp is turned off:

  • Tap the rotary encoder to turn on the Lamp
  • Turn the rotary encoder clockwise to turn on the lamp

If lamp is turned on:

  • Tap the rotary encoder to turn off the lamp
  • Turn rotary encoder to change the brightness
  • Turn the rotary encoder below minimum brightness to turn off the lamp
  • Press and turn the rotary encoder to change color temperature
  • Internal LED flashes if minimum/maximum temperature/brightness is reached

The current color and brightness is saved in EEPROM on power off the lamp.

Information

The IKEA ORSALA lamp contains a STM8S003F3P6 (https://www.st.com/resource/en/datasheet/stm8s003f3.pdf) cpu and two TTP932 led drivers for the warm and cold white leds. The SWIM Interface is lead out to pads with 2mm spacing:

SWIM Interface CPU

+    VSS     (VCC)      3.3V on STLINKv2
R    NRST    (Reset)    RST  on STLINKv2
S    SWIM    (SWIM)     SWIM on STLINKv2
-    VDD     (GND)      GND  on STLINKv2

Pinout

PD4   internal led
PA3   warm white leds (via TTP932)
PD3   cold white leds (via TTP932)
PA1   encoder pin 1
PA2   encoder pin 2
PB5   encoder button

Requirements

Build

Sduino Arduino API Ports to STM8S https://tenbaht.github.io/sduino/

Flash

stm8flash (https://github.com/tenbaht/stm8flash/)

STLINKv2 (https://www.st.com/en/development-tools/st-link-v2.html)

Flash firmware

  • Connect your STLINKv2 to the pads on the pcb (VCC is not needed if lamp is powered)
  • Flash firmware:
./stm8flash -c stlinkv2 -p stm8s003f3 -w orsala_hack.hex
Issues
  • Add license information

    Add license information

    Hello!

    I found link to this project from https://hackaday.com/2021/02/17/custom-firmware-for-ikeas-orsala-lamp/

    Could you please add information about license of this repository — is it allowed to copy, change and use the code and images in any purpose? It would be great to see any popular open source license.

    opened by vazhnov 3
  • Create LICENSE

    Create LICENSE

    This PR solves #1, lack of licensing information. I used j-zero as copyright owner - might need to be changed.

    Given the simple project, I'm proposing a MIT license.

    opened by newbrain 1
  • Internal LED hardly visible

    Internal LED hardly visible

    Just got a second hand Orsala after finding the post on hackaday and updated to your firmware. I used the stock firmware only for less than an hour and have to admit that yours is indeed much better!

    However I'm wondering about this internal LED. I didn't even notice it until I flashed the firmware and saw it flashing. Is it supposed to be visible from the outside? There some kind of guide going to the top of the case, but in fact it just casts shadow.

    Sure this is nothing that can be fixed through software, but I didn't find any other place to discuss.

    opened by stan23 4
Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor

MQTT connectivity for the Ikea VINDRIKTNING This repository contains an ESP8266 firmware, which adds MQTT to the Ikea VINDRIKTNING PM2.5 air quality s

Sören Beye 865 Aug 5, 2022
A free, offline Pokémon Home alternative for Switch!

Eevee A free, offline Pokémon Home alternative for Switch! Features currently available: Bank Cloning Editing Features planned: Editing LGPE support O

Ben 19 Jul 7, 2022
Alternative Shellcode Execution Via Callbacks

Alternative Code Execution This is gaining more popularity than expected, so I just wanted to give a shoutout to alfarom256 for informing me about cal

null 820 Aug 7, 2022
T-Watch 2020 v1 compatible firmware providing WiFi and BLE testing tools (and also, a watch :D)

ESP-IDF template app This is a template application to be used with Espressif IoT Development Framework. Please check ESP-IDF docs for getting started

Damien Cauquil 39 Jul 31, 2022
Firmware and SDK for the ER-301

ER-301 Sound Computer Table of Contents Introduction Emulator Compiling the emulator Running the emulator Configuring the emulator Installing packages

Orthogonal Devices 101 Jun 28, 2022
GCFFlasher is the tool to program the firmware of dresden elektronik's Zigbee products.

GCFFlasher 4 GCFFlasher is the tool to program the firmware of dresden elektronik's Zigbee products. Supported Hardware ConBee I ConBee II RaspBee I R

dresden elektronik ingenieurtechnik gmbh 21 Jul 8, 2022
ZigStar LAN Gateway - Firmware

ZigStar LAN Gateway - Firmware This firmware delevoped to use with ZigStar LAN Gateway Functions Zigbee UART port forwarding using socket LAN connecti

null 33 Aug 4, 2022
Update ESP32 firmware over WiFi from a web server

esp32-firmware-update Update ESP32 firmware over WiFi from Github This includes a python script which generates the update json file based on the firm

Felix Biego 9 Jun 28, 2022
ESPHome integration for the Xiaomi Mijia Bedside Lamp v2.

esphome-xiaomi_bslamp2 Warning: this code is still under development This code might not yet be production-ready. At this point, it is declared beta-q

Maurice Makaay 115 Aug 2, 2022
A flicker lamp for Arduino with Quake styles

arduino-quake-flicker-lamp A flicker lamp for Arduino with Quake styles. Context: Somebody in reddit found the same pattern of the flicker lamp in Hal

Rodrigo Feliciano 14 Feb 22, 2022
A tool to automatically benchmark the most performant core based on X% lows/percentile fps in lava-lamp.

AutoGpuAffinity A tool to automatically benchmark the best physical CPU for the GPU to execute dpcs/isrs on based on 0.1% percentile/lows fps. Tips to

AMIT 0 Jun 12, 2022
Alternative firmware for IP cameras based on the HiSilicon (and other) SoC's

OpenIPC v2.1 (experimental, buildroot based..) Alternative firmware for IP cameras based on the HiSilicon (and other) SoC's More information about the

OpenIPC 257 Aug 6, 2022
Minipops alternative firmware for Music Thing Modular Radio Music

RMoxy Minipops drummer alternative firmware for Music Thing Modular Radio Music module The repository for the Radio Music module by Tom Whitwell Kits

Johan Berglund 6 Apr 6, 2022
Alternative openhaystack firmware

OpenHaystack - (ultra low power) alternative firmware This is an alternative OpenHaystack firmware based on https://github.com/seemoo-lab/openhaystack

Antonio Calatrava 46 Aug 4, 2022
ESPHome component for Ikea Idasen desk control

This component creates a bluetooth bridge for an Ikea Idasen desk that uses a Linak controller with ESPHome and an ESP32 device. Cover integration Lin

Julien 111 Aug 4, 2022
Doom port to the Ikea Tradfri RGB1923R5 and any device using Silicon labs EFR32MG21 based modules

MG21DOOM Doom port to the Ikea Tradfri RGB1923R5 lamp and any device using Silicon labs EFR32MG21 based modules. Coded by Nicola Wrachien. WARNING Do

null 21 Jul 29, 2022
Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor

MQTT connectivity for the Ikea VINDRIKTNING This repository contains an ESP8266 firmware, which adds MQTT to the Ikea VINDRIKTNING PM2.5 air quality s

Sören Beye 865 Aug 5, 2022
DEV repository for full support of Ikea Vindriktning device to #Tasmota

Ikea Vindriktning a Tasmota V tomto repu. je vývojová verze úpravy Tasmota FW, tak aby mohl být použit na PCB LaskaKit ESP-VINDRIKTNING ESP-32 I2C. Cí

Adam Hořčica 5 May 22, 2022
A small self-contained alternative to readline and libedit

Linenoise A minimal, zero-config, BSD licensed, readline replacement used in Redis, MongoDB, and Android. Single and multi line editing mode with the

Salvatore Sanfilippo 3k Jul 28, 2022
A small self-contained alternative to readline and libedit that supports UTF-8 and Windows and is BSD licensed.

Linenoise Next Generation A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters. Unlik

ArangoDB 335 Jun 28, 2022
RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library.

This is the source code repository for RE2, a regular expression library. For documentation about how to install and use RE2, visit https://github.co

Google 7.1k Aug 5, 2022
A small self-contained alternative to readline and libedit

Linenoise A minimal, zero-config, BSD licensed, readline replacement used in Redis, MongoDB, and Android. Single and multi line editing mode with the

Salvatore Sanfilippo 3k Aug 8, 2022
A free, offline Pokémon Home alternative for Switch!

Eevee A free, offline Pokémon Home alternative for Switch! Features currently available: Bank Cloning Editing Features planned: Editing LGPE support O

Ben 19 Jul 7, 2022
Alternative Shellcode Execution Via Callbacks

Alternative Code Execution This is gaining more popularity than expected, so I just wanted to give a shoutout to alfarom256 for informing me about cal

null 820 Aug 7, 2022
Alternative LAZ implementation for C++ and JavaScript

What is this? Alternative LAZ implementation. It supports compilation and usage in JavaScript, usage in database contexts such as pgpointcloud and Ora

Howard Butler 52 Aug 1, 2022
GPU Task Spooler - A SLURM alternative/job scheduler for a single simulation machine

GPU Task Spooler - A SLURM alternative/job scheduler for a single simulation machine

Duc Nguyen 76 Jul 29, 2022
A cleaner and more intuitive std::variant alternative

[WIP] ExtendedVariant This single header library is part of my C++ extended standard stdex libraries. Check our my profile for more. Working with C++

pinsrq 3 Jun 13, 2021
anthemtotheego 342 Jul 23, 2022
A fast and easy to configure alternative to neofetch written in C and configured using Lua

lcfetch A fast and easy to configure alternative to neofetch written in C and configured using Lua (still in a very early stage)! IMPORTANT: I'm a new

Alejandro 23 Jul 29, 2022