Skip to content
github-actions[bot] edited this page Oct 12, 2026 · 5 revisions

πŸ’‘ IKEA Kortlinje

Article number: 906.204.68

πŸ“Œ Diagrams

LED panel diagram

 DA1 ──────────┐
CLK1 ─────────┐│
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚β”Œβ”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β” U1       R31 β”Œβ”΄β”β”‚
      β”‚β””β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”˜              β””β”¬β”˜β”‚
      β”‚                               └─┼─ Buzzer
      β”‚  U2                             β”‚
      β”‚ β”Œβ”€β”                          B1 β”Ό B1
      β”‚ ─ β”œ                          B2 β”Ό B2
      β”‚ ─ β”œ                          B3 β”Ό B3
      β”‚ ─ β”œ                          B4 β”Ό B4
      β”‚ ─ β”œ                          B5 β”Ό B5
      β”‚ ─ β”œ                             β”‚
      β”‚ ─ β”œ    U3                     1 ─
 DA2 ─┼── β”œ   β”Œβ”€β”                     2 ─
CLK2 ─┼── β”œ   ─ β”œ                     3 ─
      β”‚ ─ β”œ   ─ β”œ    U6               4 ┼─ BAT+
      β”‚ ─ β”œ   ─ β”œ   β”Œβ”€β”                 β”‚
      β”‚ ─ β”œ   ─ β”œ   ─ β”œ             VDD ┼─ +5.0 V DC
      β”‚ ─ β”œ   ─ β”œ   ─ β”œ   Q2  D43   GND ┼─ 0 V DC
      β”‚ ─ β”œ   ─ β”œ   ─ β”œ  β”Œβ”€β”΄β”€β”β”Œβ”΄β”    CC ┼─ USB CC
      β”‚ ─ β”œ   ─ β”œ   ─ β”œ  β””β”¬β”€β”¬β”˜β””β”¬β”˜       β”‚
      β”‚ β””β”€β”˜   ─ β”œ   ─ β”œ     └──┴────────┼─ +4.7 V DC
      β”‚       ─ β”œ   ─ β”œ                 β”‚
      β”œ K1    ─ β”œ   ─ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€ PDM
      β”œ K2    ─ β”œ   ─ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€ Enable
      β”œ K3    ─ β”œ   β””β”€β”˜ R32 β”Œβ”€β”         β”‚
      β”‚       β””β”€β”˜          ── β”œβ”¬β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€ Wake
 DA3 ─┼────────┐            β””β”€β”˜β”‚        β”‚
CLK3 ─┼───────┐│        R33 β”Œβ”€β”β”‚ Q3 β”Œβ”€β”€β”€β”Όβ”€ CdS
      β”‚β”Œβ”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”΄β”    ── β”œβ”˜  β”Œβ”€β”΄β”€β” β”‚
      β”‚β””β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”¬β”˜U4   β””β”€β”˜   β””β”¬β”€β”¬β”˜ β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Buttons top diagram

β”Œβ”€β”€β”€β”
β”‚ 1 ┼─ 0 V DC    [white]
β”‚ 2 ┼─ Buttons   [red]
β”‚ 3 ┼─ +3.3 V DC [black]
β””β”€β”€β”€β”˜

Buttons rear diagram

β”Œβ”€β”€β”€β”
β”‚ 1 ┼─ +3.3 V DC [blue]
β”‚ 2 ┼─ Buttons   [black]
β”‚ 3 ┼─ 0 V DC    [red]
β”‚ 4 ┼─ BAT+      [white]
β””β”€β”€β”€β”˜

Leg diagram

β”Œβ”€β”€β”€β”€β”
β”‚ B1 ┼─ B1 [white]
β”‚ B2 ┼─ B2 [red]
β”‚ B3 ┼─ B3 [black]
β”‚ B4 ┼─ B4 [blue]
β”‚ B5 ┼─ B5 [yellow]
β””β”€β”€β”€β”€β”˜

USB cable diagram

──────┐
White ┼─ +5.0 V DC
Black ┼─ 0 V DC
Green ┼─ USB CC
β”€β”€β”€β”€β”€β”€β”˜

RP2350 diagram

β”Œβ”€β”€β”€β”€β”€β”€β”
β”‚ VBUS β”œβ”€ +5.0 V DC
β”‚ VSYS β”œβ”€ +4.7 V DC
β”‚  3V3 β”œβ”€ +3.3 V DC
β”‚  GND β”œβ”€ 0 V DC
β”‚      β”‚
β”‚  ADC β”œβ”€ Buttons top
β”‚  ADC β”œβ”€ Buttons rear
β”‚      β”‚
β”‚   GP β”œβ”€ CLK1
β”‚   GP β”œβ”€ CLK2
β”‚   GP β”œβ”€ CLK3
β”‚   GP β”œβ”€ DA1
β”‚   GP β”œβ”€ DA2
β”‚   GP β”œβ”€ DA3
β”‚   GP β”œβ”€ CdS
β”‚   GP β”œβ”€ Enable
β”‚   GP β”œβ”€ PDM
β”‚   GP β”œβ”€ Wake
β”‚      β”‚
β”‚  PWM β”œβ”€ Buzzer
β””β”€β”€β”€β”€β”€β”€β”˜              

πŸš€ Getting started

Opening up

The back cover is held in place by 5 screws under the battery cover and two clips on the right side, which can be pried open with a flathead screwdriver or similar tool. Once the clips are released, the back cover can be removed to access the internal components.

It is recommended to desolder the various wiring harnesses from the main PCB to get better access, as there’s a lot of fine pitch soldering to be done.

Removing the U3 chip

The U3 chip handles display outputs, buzzer output, button inputs, and CdS input. It is necessary to remove this chip as the RP2350 will be taking over these functions. The U3 chip can be removed by heating the pins with a soldering iron and gently prying it off the PCB.

Battery backup

For RP2350 boards with both VBUS and VSYS pins, offline battery backup is possible. The AAA batteries keep internal time through power cuts and reboots without needing Wi-Fi. Simpler wiring is also possible, but bypasses the battery circuit and the device will need to resync time on every boot.

For simplified wiring without battery backup, these deviations take place:

  • Connect 5 V to VDD
  • Do not connect power to Q2/D43
  • Skip the Wake line to R32/R33

Wiring

Wire up everything in accordance with diagrams. The CdS ambient light sensor and buzzer are optional, and it’s advised to defer the USB cable, buttons and environmental sensors to the end.

πŸ”§ Configuration

Label Type Constant
CLK1 Digital output PIN_CLK1
CLK2 Digital output PIN_CLK2
CLK3 Digital output PIN_CLK3
DA1 Digital output PIN_DA1
DA2 Digital output PIN_DA2
DA3 Digital output PIN_DA3
Enable Digital output PIN_EN
Buzzer PWM output PIN_BUZ
CdS Digital input PIN_CDS
Wake Digital input PIN_WAKE
PDM Digital input PIN_PDM
Buttons top Analog input PIN_TOP
Buttons rear Analog input PIN_REAR

Power and ground

  • Connect 5.0 V VBUS to VDD
  • Connect VSYS (after Scchottky diode) to Q2 (source) and/or D43 (left side).

Caution

To prevent backfeeding, ensure only one power source is connected at a time.

LED driver clock

Any 5 V tolerant GPIO pin can be used for the VK1640 SCLK clock lines.

Configure in secrets.h:

#define PIN_CLK1 1
#define PIN_CLK2 2
#define PIN_CLK3 3

LED driver data

Any 5 V tolerant GPIO pin can be used for the VK1640 DIN data lines.

Configure in secrets.h:

#define PIN_DA1 4
#define PIN_DA2 5
#define PIN_DA3 6

Environment sensor enable

Any GPIO pin can be used to activate the U6 chip.

Configure in secrets.h:

#define PIN_EN 7

Buzzer

Optional to connect. Any PWM pin can be used for control signals to the buzzer.

Configure in secrets.h:

#define PIN_BUZ 8

CdS ambient light sensor

Optional to connect. Any 5 V tolerant GPIO pin can be used to detect ambient light presence.

Configure in secrets.h:

#define PIN_CDS 9

Wake-up and sleep

  • R32 and R33 are interconnected on the right side, attach a wire to either of them.

Used to wake up the RP2350 from sleep when USB power is applied, and to put it back to sleep when switching to battery backup power.

Any 5 V tolerant GPIO pin can be used to detect the presence of USB power.

Configure in secrets.h:

#define PIN_WAKE 10

Environment sensor PDM

Any 5 V tolerant GPIO pin can be used to read temperature and humidity data from the U6 chip.

Configure in secrets.h:

#define PIN_PDM 11

Snooze, brightness, cycle and alarm buttons

Any analog input pin can be used to detect button presses.

Configure in secrets.h:

#define PIN_TOP 12

Config, alarm, plus and minus buttons

Any analog input pin can be used to detect button presses.

Configure in secrets.h:

#define PIN_REAR 13

πŸ”— Resources

A collection of external links for deeper exploration β€” provided for reference only and with no formal connection to this project.