Skip to content

Possible limitation with LIN-like bus at 19200 baud on ATmega328P #72

Description

@vladimirvmatveevithub

Hi,

I wanted to share a technical observation from a project involving an IKEA BEKANT standing desk.

I was building an Arduino Nano / ATmega328P controller that listens to the BEKANT desk's single-wire LIN-like communication bus. The goal was to understand the original wired remote protocol and later add memory presets while preserving the original remote.

The BEKANT bus in my setup behaves like a LIN-like protocol:

  • 19200 baud
  • single-wire bus
  • idle high around 13 V
  • RX connected to the Arduino through a resistor divider
  • common ground
  • BREAK appears as 0x00 on UART
  • frames look like: 0x00 0x55 PID DATA CHECKSUM
  • protected PIDs are used
  • enhanced checksum is used
  • the master cycle is roughly 100 ms

Hardware setup:

  • Arduino Nano, ATmega328P, 16 MHz, 5 V
  • LIN RX through a resistor divider to an Arduino input pin
  • LIN TX handled separately with a bit-banged open-collector style transistor driver
  • relay used to isolate the original BEKANT remote during Arduino master takeover

Observed behavior:

In this setup, AltSoftSerial did not reliably decode the BEKANT LIN-like frames. During sniffing and receiving, I observed corrupted or missing frames.

I am not sure whether this is a bug, a timing limitation, or simply an unsupported use case, since the BEKANT bus is not a normal continuous UART stream. It includes LIN BREAKs, strict frame timing, a single-wire bus, and a nonstandard master schedule.
As a cross-check, I tested an alternative software UART library under the same hardware conditions, wiring, board, and baud rate. That setup decoded the same BEKANT traffic reliably, with essentially 100% (versus 30% before) valid frame decoding in my tests.

I wanted to report this in case it is useful for documentation or compatibility notes. It may be worth mentioning that LIN-like receive/sniff applications with BREAK detection and strict timing may need extra care on ATmega328P.

Thanks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions