sevenlab https://sevenlab.de Mon, 09 Mar 2026 12:46:09 +0000 en hourly 1 https://wordpress.org/?v=6.9.1 https://sevenlab.de/wp-content/uploads/2025/09/cropped-web-app-manifest-512x512-1-32x32.png sevenlab https://sevenlab.de 32 32 Free, High Precision, Real-Time GNSS Positioning in Germany https://sevenlab.de/2026/03/09/real-time_gnss_positioning_in_germany/ https://sevenlab.de/2026/03/09/real-time_gnss_positioning_in_germany/#respond Mon, 09 Mar 2026 10:53:59 +0000 https://sevenlab.de/?p=4416

How to achieve centimeter-level GNSS localization for commercial applications, when cost is a factor.

If you are aiming for high-precision, real-time positioning in Germany, you likely already know that standard GNSS isn’t enough. Navigating the landscape of correction services, especially the free options versus the paid ones, can be complex. In this post, we break down why standard GNSS fails at high precision, the correction methods available, and the specific quirks of the German market for real-time correction services.

The Basics: Why Isn’t GNSS Infinitely Precise?

To understand the solution, we have to look at the problem. GNSS receivers use timed signals from satellites to trilaterate their location. However, in the real world, several factors introduce errors, for example:
  • Satellite inaccuracies: Satellite orbits are not known to infinite precision, for example due to varying atmospheric drag. Their atomic clocks also have nanosecond jitter and the signal path is subject to varying delay for example due to thermal cycling.
  • Environmental influences: Space weather, and Earth-bound weather distort the signal as it travels to the receiver. Additionally the ground under the receiver moves ever so slightly, for example due to gravitational pull from the moon, tidal loading, especially in coastal regions. The movement of the receiver and the antenna placement also has an influence on signal propagation.
To overcome this, a standard GNSS module isn’t enough. First, you need a module that does not only use the transferred GNSS messages, but also measure the signal’s phase. The phase information has higher precision because the carrier signal is of much higher frequency. But to make sense of the phase measurements, you need a reference. The source of this reference and how it’s used is what we’ll look at next.

The Three Main Correction Methods

There are three primary ways to correct GNSS errors using phase measurements, each with its own trade-offs regarding accuracy, convergence time, and infrastructure dependency.

1. RTK (Real-Time Kinematic)

RTK relies on a reference station nearby with a known, exact location. The reference station measures the signal and its phase, and sends that to the receiver.
  • How it works: The reference station’s measurement is “subtracted” from the receiver’s measurement, removing all forms of inaccuracies in one go. But the further the receiver is from the reference station, the more the environmental factors differ, so the precision gets worse.
  • Accuracy: Best in class (~1-2 cm).
  • Constraint: You must be within ~30 km of a reference station. The closer the better.
  • Peculiarities: It’s quite easy to operate your own base station.

2. PPP (Precise Point Positioning)

PPP is model based and tries to identify and eliminate all possible interference factors individually. For satellite inaccuracies, PPP relies on precise measurements from ground stations of satellite orbits and their clock deviations. Additionally, it models ground movements and atmospheric influences. The remaining inaccuracies come mostly from tropospheric influence.
  • How it works: The PPP algorithm solves a system of equations involving the measurements of the signal and phase, the correction data (orbit, clock, bias), and the influence of the receiver hardware, while recursively estimating the influence of the troposphere and the signals’ cycle ambiguity.
  • Accuracy: Good (~10 cm).
  • Constraint: Convergence time of a few minutes (~15-30 min) to reach that accuracy.

3. PPP-RTK

As the name suggests, this is a hybrid approach.
  • How it works: PPP-RTK follows the same approach as PPP, but combines that with data from a regional network of reference stations transmitting model parameters for ionosphere and troposphere. As a bonus, not having to estimate influences from ionosphere and troposphere eliminates the major contributors to the high convergence time of PPP.
  • Accuracy: Better than standard PPP, but generally not as good as pure RTK (~3-5 cm).
  • Constraint: PPP-RTK is the “newest” evolution of precise positioning. It can be harder to find (or more costly to use) correction data services and GNSS modules supporting it. There also exist several competing correction data formats (RTCM-SSR, SPARTN, SSRZ) which results in incompatibilities between service providers and modules.

 

The Data Dilemma: Sourcing Corrections in Germany

All three methods above require a stream of correction data. This is where the situation in Germany can get quite complicated and costly.

RTK: The SAPOS Maze

Generally you have the option to deploy your own RTK reference station, which is useful for municipal application, but doesn’t scale well for larger applications.
For Germany-wide application, you need a correction data provider that operates a nationwide grid of reference stations. These providers usually offer data streams for virtual reference stations (VRS), which require you to send an approximate position first, so the server can forward the correction data stream from the nearest reference station.
In Germany, the primary nationwide service is SAPOS HEPS (“Satellitenpositionierungsdienst – Hochpräziser Echtzeit Positionierungs-Service“). However, it is fragmented into two variations:
1. ZSS-SAPOS (National): The “Zentrale Stelle SAPOS” offers a unified service that works Germany-wide.
  •  Cost: 10 €/month per device.
2. Regional SAPOS (Federal States): Every federal state runs its own SAPOS instance.
  •  Cost: Most states provide this for free under Open Data regulations.
  •  Drawback: Not all states are free. Rhineland-Palatinate charges ~120 €/year per device (the same as ZSS-SAPOS), Bavaria charges ~20 €/year per registration, and Mecklenburg-Vorpommern has a 100 € one-time fee per registration.
Note: If you are deploying a large fleet of devices, you can achieve massive cost savings by connecting to the free regional SAPOS instances, if you can go without servicing Rhineland-Palatinate. There are also other providers, but keep in mind that your application will be dependent on their availability, so free services like RTK2GO are most likely no alternative.

PPP: The Global Player

The key difference of PPP is that it relies on orbit corrections which are globally usable, rather than local reference stations. PPP correction data is also often delivered directly via satellite (L-band), eliminating the need for a separate cellular data stream. This combination makes it indispensable for niche environments, such as the open ocean, deserts, or polar regions, where local infrastructure is non-existent. PPP used to be one of the more expensive approaches, but in 2023 the EUSPA (European Union Agency for the Space Programme) launched the free correction data service GALILEO HAS (High Accuracy Service):
  • Cost: Free.
  • Benefit: It comes with comparatively low convergence time (~5 min) and is delivered via satellite.
  • Drawback: With officially <20 cm, though often better in practice, it’s not as precise as other PPP solutions. It currently “delivers Service Level 1 only with a reduced performance” with “Full Service Declaration targeted in Q1-Q2 of 2027”. It needs a compatible module.
There are other services that provide precise worldwide PPP support, but for general commercial application within Germany, they offer no advantage at low cost compared to the free PPP and PPP-RTK options available. They also are more expensive than RTK with ZSS-SAPOS. Consequently, we excluded them from further analysis.

PPP-RTK: The GEPOS Alternative (Internet or DAB+)

The German BKG (Bundesamt für Kartographie und Geodäsie) and the AdV (Amtliche deutsche Vermessung) provide a free PPP-RTK service called GEPOS (Gemeinsamer amtlicher PPP-RTK-Positionierungsdienst von Bund und Ländern).
  • Cost: Free.
  • Accessibility: No registration required.
  • Benefit: GEPOS is not only available via internet, it’s also broadcast via DAB+, which has good coverage in Germany even in rural areas.
  • Drawback: This service uses the niche SSRZ format which is not compatible with any available GNSS module. Instead a closed source converter tool is provided, though only for Android and Windows.

Use-Cases:
Which Path Should You Choose?

Deciding on the right architecture depends heavily on your budget, fleet size, area of operation, and precision requirements. Here is our strategic recommendation. Note that we’re only considering real-time, centimeter-level localization in Germany.

Scenario A:
You need the absolute best precision (1–2 cm)

If you have an internet connection and accuracy is paramount, use RTK.
  • Small Area: If you operate in a small area, consider using federal SAPOS or operate your own reference station.
  • Large Area + Small Fleet: If you have very few devices, save yourself the engineering headache and buy the ZSS-SAPOS service (10 €/month/device).
  • Large Area + Large Fleet: If you have many devices and you are willing to skip coverage in Rhineland-Palatinate, use the federal SAPOS instances. For this to work you will need to write some logic to switch instances based on location, because the federal VRSs will only work with their respective reference stations. (Note: We did not go this path and there are potential unknowns in the federal SAPOS instances and their administration, so test and evaluate properly before going this route.)

Scenario B:
You don’t need the highest precision (~20 cm)

If you only need decimeter level precision, consider using PPP with GALILEO HAS. This is easy to setup and works even without network connectivity. Be aware though that the convergence time is not suitable for all applications.

Scenario C:
You operate in rural areas with poor internet

If you are working in agriculture, forestry, or remote infrastructure you are quite free to choose, because all options work without internet:
  • RTK with your own reference station, sending corrections via radio.
  • PPP-RTK via DAB+, if you can work around its format conversion issues by using Android or Windows.
  • PPP with GALILEO HAS via satellite.

The Verdict

High-precision GNSS in Germany is accessible and affordable, but it isn’t always simple.
While the technology for centimeter-level accuracy is readily available, the most cost-effective paths require navigating a fragmented landscape of regional services or adopting newer hybrid standards like PPP-RTK.
Ultimately, as always, the choice comes down to a trade-off between operational cost and development cost. You can pay for precision and simplicity with a national subscription, or you can invest in development time or hardware to tailor your solution closer to what your business case can live with.

Bonus: Example RTK setup
using federal SAPOS (Berlin) and NEO-F9P module

  1. Registering on a federal instance: On sapos.de you can find a list of all federal instances. The registration process differs and in some states it’s not even needed. We registered for federal SAPOS in Berlin via the [online form]. It took one business day to receive our login data and another day for the login to be activated.
  2. Setup the hardware: For testing we used a Holybro H-RTK NEO-F9P Rover. We connected the antenna via a USB-UART-adapter to a development machine running Linux Mint.
  3. Start the GPS client: We want to use gpsd, so we checked its man page. Usually it suffices to pass the NTRIP caster URL sapos-be-ntrip, port 2101, and VRS mount point VRS_3_4G_BE; together with login information (USERNAME and PASSWORD) to gpsd, like so: ntrip://USERNAME:[email protected]:2101/VRS_3_4G_BE; The full command looks like this:

    $ sudo gpsd -n -N -D 4 -F /var/run/gpsd.sock /dev/serial/by-id/USB-UART-adapter ntrip://USERNAME:[email protected]:2101/VRS_3_4G_BE 2>&1 | tee gpsd.log

    This failed on the first try, because gpsd doesn’t support the RTCM 3.4 format yet, which this SAPOS instance uses. Luckily RTCM is backward compatible and gpsd; already supports RTCM 3.3, so it was a simple fix that we submitted upstream. Now running gpsd and checking with gpspipe we got:

    $ gpspipe -w | grep –line-buffered TPV | jq –unbuffered -c '{status, lat, lon, alt, ecefpAcc, ecefvAcc}'
    {"status":2,"lat":52.520843100,"lon":13.409317600,"alt":240.8120,"ecefpAcc":4.5000,"ecefvAcc":0.3100}
    {"status":2,"lat":52.520843100,"lon":13.409317500,"alt":240.8080,"ecefpAcc":4.5400,"ecefvAcc":0.3000}
    {"status":2,"lat":52.520843100,"lon":13.409317500,"alt":240.8080,"ecefpAcc":4.5400,"ecefvAcc":0.3000}
    {"status":2,"lat":52.520843100,"lon":13.409317500,"alt":240.8400,"ecefpAcc":4.5800,"ecefvAcc":0.3100}
    {"status":4,"lat":52.520817200,"lon":13.409312700,"alt":239.6610,"ecefpAcc":1.1900,"ecefvAcc":0.3100}
    {"status":4,"lat":52.520795700,"lon":13.409304900,"alt":236.4270,"ecefpAcc":0.7700,"ecefvAcc":0.3100}
    {"status":4,"lat":52.520788400,"lon":13.409300300,"alt":235.1760,"ecefpAcc":0.6900,"ecefvAcc":0.3000}
    {"status":4,"lat":52.520788400,"lon":13.409300300,"alt":235.1760,"ecefpAcc":0.6900,"ecefvAcc":0.3000}
    {"status":4,"lat":52.520784300,"lon":13.409298700,"alt":234.6180,"ecefpAcc":0.6600,"ecefvAcc":0.3200}
    {"status":4,"lat":52.520783700,"lon":13.409298200,"alt":234.3460,"ecefpAcc":0.6600,"ecefvAcc":0.2600}
    {"status":4,"lat":52.520784100,"lon":13.409296900,"alt":234.2430,"ecefpAcc":0.6200,"ecefvAcc":0.1100}
    {"status":4,"lat":52.520785200,"lon":13.409297100,"alt":234.1680,"ecefpAcc":0.5500,"ecefvAcc":0.1600}
    {"status":4,"lat":52.520785200,"lon":13.409297100,"alt":234.1680,"ecefpAcc":0.5500,"ecefvAcc":0.1600}
    {"status":3,"lat":52.520826800,"lon":13.409302700,"alt":239.4330,"ecefpAcc":0.0200,"ecefvAcc":0.1000}
    {"status":3,"lat":52.520826700,"lon":13.409302800,"alt":239.4290,"ecefpAcc":0.0200,"ecefvAcc":0.1900}
    {"status":3,"lat":52.520826600,"lon":13.409302800,"alt":239.4250,"ecefpAcc":0.0200,"ecefvAcc":0.1900}
    {"status":3,"lat":52.520826700,"lon":13.409303000,"alt":239.4270,"ecefpAcc":0.0200,"ecefvAcc":0.1300}
    {"status":3,"lat":52.520826700,"lon":13.409303000,"alt":239.4270,"ecefpAcc":0.0200,"ecefvAcc":0.1300}

    Interpretation: status (codes are gpsd specific): 2 = DGNSS, 4 = RTK float, 3 = RTK fix; lat/lon/alt: latitude, longitude, altitude; ecefpAcc: position accuracy estimate in meter; ecefvAcc: speed accuracy estimate in meters per second.

    4. Verify positioning accuracy: We didn’t do this, but if you really want to know the real accuracy of your solution, you will have to find a public reference station with known coordinates that are more precise than what your solution can provide. In Germany there are public reference points, so called “Geodätische Referenzpunkte” or “Geodätische Grundnetzpunkte“. The location of these is known to the centimeter and they can be used to measure the RTK positioning accuracy. [Wikipedia has a list of all public reference points.][/vc_column_text][/vc_column][/vc_row]

]]>
https://sevenlab.de/2026/03/09/real-time_gnss_positioning_in_germany/feed/ 0
Rugix with Buildroot https://sevenlab.de/2026/01/14/rugix-with-buildroot/ https://sevenlab.de/2026/01/14/rugix-with-buildroot/#respond Wed, 14 Jan 2026 10:53:59 +0000 https://sevenlab.de/?p=4393 Rugix with Buildroot

Rugix is a set of tools to build and deploy embedded Linux devices at scale. The suite includes an efficient and secure OTA update client. While Rugix has experimental support for Yocto, there is no official Buildroot integration yet. So we did just that.

The work targets the Raspberry PI 4, because:

  • It’s supported by the Yocto integration as well.
  • It’s a nice proof of concept target, because it’s cheap and widely available.
  • We had it laying in the drawer.

The first step was to understand how the whole system works. So we read some code and confirmed our findings by building and booting a Yocto image. The system uses the tryboot feature from the Raspberry PI EEPROM bootloader. This allows defining a main and alternate slot inside config.ini to implement A-B partition schemes. You can even put the Raspberry PI firmware on A-B partitions to make it part of your updates. To install an update, you simply install the new version into the unused partitions and reboot with a special flag which tells the bootloader to temporarily boot into the alternate slot. If that succeeded you can atomically replace the config.txt which defines the main slot using filesystem operations.

Rugix implements all of that in the rugix-ctrl tool. It’ll even mount the correct partitions for you if you make it load before your init system using the init kernel command line option. Image bundles which can be installed using rugix-ctrl can be created using rugix-bundler. So all we had to do was to add Buildroot packages for these two tools and configure the Rasberry PI 4 board for tryboot.

For that, we modified the partition table in the genimage config to look like this:

  • tryboot: contains the tryboot config.txt
  • boot_a, boot_b: The Raspberry PI config partitions (firmware, cmdline, kernel, …) corresponding to a boot slot.
  • rootfs_a, rootfs_b: The rootfs of the respective boot slot.
  • persistent: Since the rootfs is mounted read-only, this serves as an overlay. This is required in the default configuration of Rugix.

To tie Rugix into the build system, we wrote a rugix-bundle.toml and modified post-image.sh to create images from the modified genimage config and create an update bundle using rugix-bundler.

Creating Buildroot packages for rugix-bundler and rugix-ctrl was also mostly straight forward, but required a couple fixes:

  • Ignore rustfmt not being available, so we don’t have to install that just for formatting generated code.
  • Use symlinks instead of relative paths into parent directories to make cargo publish work. This is needed because Buildroot automatically vendors Rust dependencies.
  • Fix building on 32bit platforms. Our fixes are partly workarounds, so these could use some more work.

The only runtime fix we needed, was to make rugix-ctrl mount devtmpfs before running the init system. That’s usually done by the kernel, but since Rugix sets up a chroot, that mount was missing. Systemd can handle that and just mounts it itself if it’s missing, but the Busybox init system would need fstab changes for that.

And that’s it. We tested that it boots and successfully did an update via a local file. So far, it works great.

The code can be found on Github.

]]>
https://sevenlab.de/2026/01/14/rugix-with-buildroot/feed/ 0
SevenLab joins the Zephyr Project https://sevenlab.de/2025/12/12/sevenlab-zephyr/ https://sevenlab.de/2025/12/12/sevenlab-zephyr/#respond Fri, 12 Dec 2025 11:00:11 +0000 https://sevenlab.de/?p=4317

SevenLab joins the Zephyr Project

We at SevenLab are thrilled to announce a significant step for our future embedded projects: SevenLab is now an official member of the Zephyr Project, which operates under the umbrella of the Linux Foundation.

This membership is more than just formal recognition: it is a commitment to the values, technology, and community behind one of the world’s most advanced real-time operating systems (RTOS).

What is the Zephyr Project?

The Zephyr Project is an open-source, real-time operating system (RTOS) designed for resource-constrained devices within the Internet of Things (IoT) ecosystem. Managed by the Linux Foundation, it is developed by a global community, distinguishing it from proprietary RTOS solutions often tied to specific hardware vendors.

Technically, Zephyr is characterized by its modularity and integrated support for modern communication standards. Key features include:

  • Connectivity: Native support for protocols such as Cellular, Matter, Thread, Modbus, CAN, MQTT, CoAP, LwM2M, Bluetooth Low Energy (BLE) and many many more.
  • Hardware Abstraction: A focus on cross-architecture compatibility, allowing for easier migration between different microcontroller units (MCUs).
  • Security & Quality: A focus on integrated security mechanisms and rigorous quality assurance processes.
  • Modern Toolchain: Utilization of a contemporary development environment and a wide array of community-maintained drivers.

Unlike the minimalist approach of FreeRTOS, Zephyr is structured as a comprehensive, battery-included platform similar to a “tiny Linux.” It utilizes a Devicetree model to abstract hardware, which allows application code to remain portable across different microcontrollers. While this results in a larger initial footprint and a steeper learning curve, it provides a standardized environment where drivers, security stacks, and connectivity protocols are maintained as part of the core OS.

Why SevenLab Uses and Benefits from Zephyr

At SevenLab, Zephyr has become a core part of our development stack for embedded systems. Over the years, we have implemented it across various architectures, developing custom drivers and integrating stacks like DALI, DALI+, KNX RF, NFC, USB, BLE, and Thread.

As official members of the Zephyr Project, our engineers regularly contribute to the open-source codebase. This active participation gives us a thorough understanding of the internal architecture and the long-term roadmap. By building on a Linux Foundation governed RTOS supported by industry leaders like Nordic Semiconductor, STMicroelectronics, Silabs, Analog Devices, Renesas, ARM, Intel, and NXP, we ensure that the solutions we deliver are based on a stable, widely-supported foundation that remains maintainable for years to come.

How Our Clients Benefit from Our Membership

Our membership in the Zephyr Project provides advantages that go beyond simply using the RTOS. By participating directly in the project’s governance and development, we offer our clients a more integrated engineering approach:

    • Active Roadmap Participation: As members of the Technical Steering Committee (TSC), we are involved in the strategic decisions and voting processes that shape Zephyr. This allows us to align client projects with the upcoming technical direction of the ecosystem and ensure that the requirements of our customers are heard at a core level.
    • Established Maintainer Network: We maintain direct working relationships with the project’s key architects and maintainers. When complex technical blockers arise, these connections facilitate faster problem-solving and provide clarity that isn’t always available through public documentation.
    • Efficient Upstreaming: Our visibility within the project makes it easier to contribute code, drivers, and fixes back to the official Zephyr main branch. For our clients, this reduces long-term maintenance efforts, as specific project requirements become part of the upstream codebase rather than remaining as isolated, local patches.
    • Early Insight into Working Groups: Through our involvement in internal working groups, we gain early visibility into architectural shifts and security developments. This enables us to build forward-compatible solutions and proactively manage the lifecycle of an embedded product.

About SevenLab

SevenLab is your partner for the development and optimization of demanding embedded systems and industrial IoT solutions. Based in Cologne, Germany, we guide companies from conception to series production. Our core competencies lie in the development of secure and reliable firmware, the integration of radio technologies (Cellular, BLE, Thread, LoRaWAN, Mioty, DALI+, KNX RF etc.), and the application of open-source technologies like Zephyr. We value clean code, agile development processes, and transparent collaboration to create digital products that work today and endure tomorrow.

Are you planning a new embedded project and looking for a partner who can leverage the advantages of Zephyr for you?

Contact us today to find out how we can make your connected devices more secure, efficient, and future-proof.

]]>
https://sevenlab.de/2025/12/12/sevenlab-zephyr/feed/ 0
SevenLab @ Nordic Tech Tour https://sevenlab.de/2025/11/20/nordic-tech-tour2025/ https://sevenlab.de/2025/11/20/nordic-tech-tour2025/#respond Thu, 20 Nov 2025 11:00:11 +0000 https://sevenlab.de/?p=4275

Nordic Tech Tour

We’re excited to announce our attendance at the upcoming Nordic Tech Tour hosted by Nordic Semiconductor, an essential event for anyone involved in IoT innovation across Europe, the Middle East, and Africa!

This is a fantastic opportunity to dive deep into the world of low-power wireless connectivity solutions offered by Nordic Semiconductor, a global leader in the field. You’ll gain valuable insights into the technologies that are shaping the next generation of connected products.

What to expect

The Tech Tour is designed to empower innovators, offering a chance to connect directly with Nordic’s engineers and wireless IoT experts. Attendees will:

  • Explore the latest on the nRF54L Series and software development options in the nRF Connect SDK.

  • Learn about optimizing designs using Power Management ICs and advanced cellular IoT capabilities (NB-IoT, LTE-M, DECT NR+, and NTN/satellite communication).

  • Discover how low-power Wi-Fi 6 is expanding opportunities in various IoT applications.

  • See live demonstrations and participate in an open Q&A session.

Meet our Managing Partner Dr. Sven Hädrich

Dr. Sven Hädrich will be attending the event and is looking forward to meeting with everyone interested! This is a unique chance to discuss your projects, ask specific technical questions, and network with our team.

Mark your calendar and plan to join us in Eindhoven on December 4th!

Don’t miss this chance to empower your IoT development and connect with industry leaders.

We hope to see you there! Registrations: Nordic Tech Tour EMEA 2025 – nordicsemi.com

]]>
https://sevenlab.de/2025/11/20/nordic-tech-tour2025/feed/ 0
DALI: From Idea to Certification https://sevenlab.de/2025/10/28/dali-gerate-vom-konzept-zur-zertifizierung/ https://sevenlab.de/2025/10/28/dali-gerate-vom-konzept-zur-zertifizierung/#respond Tue, 28 Oct 2025 09:12:36 +0000 https://sevenlab.de/?p=4251

Why is intelligent lighting becoming a competitive advantage?

In an era where smart buildings and the internet of things are no longer vision but reality, intelligent lighting control has become a decisive factor. Whether in production halls, commercial properties, or street lighting, DALI (Digital Addressable Lighting Interface) has established itself as the global standard.

The business case is compelling: demand-driven control, daylight harvesting, and preventive maintenance through integrated diagnostics reduce operating costs. The flexible adaptation to changing usage scenarios creates additional value.

What is DALI and how does it work?

DALI is based on a digital bus system that makes lighting flexible and precisely controllable. The principle is elegant and well thought out:

Control gears, also known as LED drivers, have two separate connections – one for electrical power and one for the DALI bus for control purposes. Via this bus, luminaries can be specifically switched on and off, dimmed, adjusted in light color, and monitored. Maintenance data, consumption values, and even emergency lighting systems can be captured and controlled.

Control devices are the counterpart: switches, push buttons, presence detectors, or brightness sensors. Particularly relevant for intelligent buildings are sensors that automatically detect where people are present and adjust the lighting autonomously and energy-efficiently. Modern DALI systems enable, for example, human centric lighting: the lighting adapts not only in brightness but also in color temperature to the time of day. In the morning and during the day, cooler, bluish-white light promotes concentration and alertness, while warm white light in the evening contributes to relaxation. This demonstrably increases well-being and productivity.

The application controller processes the sensor data and generates the corresponding commands for the control gears. The DALI standard precisely defines the format in which data is exchanged.

The DALI standard is published in the International Electrotechnical Commission (IEC 62386) standards and is publicly accessible to everyone. The DALI Alliance, a consortium of leading manufacturers, continuously develops the standard further.

Why is DALI the market standard?

DALI has prevailed because it offers practical solutions for all stakeholders:

For manufacturers and product development

The technical concepts are clearly defined and can be implemented with any current microcontroller. Certification as a DALI-2 device is transparent and calculable: with access to a DALI test device, the standardized test sequences can be run independently. The automatically generated protocols are submitted – done.

Critical for development planning: certification can occur in parallel with development. This minimizes risks and significantly accelerates time-to-market.

This low entry barrier has led to an impressive variety of devices. The DALI-2 logo guarantees interoperability – devices from different manufacturers work together seamlessly. For product managers, this means: the customer base is hardly limited by broad integration possibilities.

For installation

The galvanic isolation between the DALI bus and mains supply allows joint routing in one cable – typically, two cores of a NYM 5 × 1.5 mm² cable are simply used as the bus line. Switches, push buttons, and sensors often require only minimal power and can be supplied directly from the DALI bus. Thus, they only need two wires.

The topology of the DALI bus can be freely chosen and polarity doesn’t matter. This makes wiring on the construction site particularly forgiving of errors – a real cost advantage.

What technical challenges and development perspectives exist?

Application controllers – the central intelligence

The standard makes precise specifications for control gears and control devices. However, when linking these components – the task of the application controller – the requirements of IEC 62386 become less concrete.

The challenge: this openness enables innovative solutions but also leads to proprietary approaches and complex configuration procedures. Tools like dali-cli offer full functionality but require deep DALI knowledge.

The opportunity: there is enormous potential here for differentiation and genuine innovation. Those who develop clever, standard-compliant solutions create real added value.

The path to a wireless future

Radio standards such as Bluetooth Low Energy, Zigbee, or Thread are technically mature and facilitate integration into existing buildings without rewiring. The DALI Alliance has already responded with DALI+ (IEC 62386 Part 104).

Particularly exciting for developers: the integration of DALI with modern wireless protocols, IoT platforms, and cloud services. This is where the next generation of smart building solutions is emerging.

How do you develop a DALI device from idea to certification?

Developing a DALI device follows clear specifications but also brings unusual requirements:

Hardware design

An example: the edges of DALI signals must not be too steep. This is an unusual requirement in digital signal processing, but it prevents the bus, distributed over many meters, from radiating too much electromagnetic power and violating EMC specifications. Such details make DALI development both demanding and interesting.

Software architecture

In software development, it’s essential to consider all standard requirements and consciously decide where additional functions make sense without conflicting with the standard.

The advantage in the development process: certification using a DALI tester can occur in parallel with development. The test sequences provided by the DALI Alliance significantly reduce the effort for in-house testing and ensure product quality.

How does sevenlab support your DALI projects?

Our experience covers the entire development cycle:

From product idea to series production: We translate customer requirements into technical specifications and support through to series production readiness. Hardware design, component selection, PCB layout, CE and DALI certification, as well as EMC conformity – we have successfully mastered these challenges repeatedly.

Software development: We develop firmware for control gears and control devices based on extensive experience from many projects that have met diverse requirements. Additionally, we implement configuration software and interfaces to other smart building solutions.

Integration: Connection to cloud platforms, IoT systems, and building management software.

Why use a ready-made DALI stack?

From numerous DALI projects, we have identified recurring elements and bundled them into a library: the sevenlab-dali-stack.

What the stack delivers

The protocol stack implements all standard-compliant properties and behaviors of a DALI product – regardless of whether it acts as a control gear or control device, including various device types.

Technical characteristics:

  • Programmed in C, easily portable to different microcontrollers

  • Clear interfaces and clean architecture

  • Efficient use of processor resources

  • Standard-compliant and certifiable

Your advantages

For development: Developers can focus on the application instead of protocol details. This significantly accelerates development and reduces the risk of costly implementation errors.

For project management: Products are created in the shortest possible time on a standardized basis. This means predictable coding efforts and reduced development risks.

For maintenance: Care and updates can be organized efficiently across products. This reduces long-term maintenance effort.

For business: Faster time-to-market with simultaneously higher product quality. That’s the decisive competitive advantage.

What’s next for your DALI project?

Whether you want to refine your product idea, expand an existing system, or develop a completely new DALI device – we develop the right solution for your requirements.

Typical project scenarios:

  • Integration of DALI into existing product lines

  • Development of customer-specific DALI devices

  • Links to other protocols

  • Wireless DALI solutions (DALI+, BLE, Thread)

Get in touch and share your idea with us. Together we will develop a tailored approach that makes your DALI project successful.

We look forward to hearing from you!

]]>
https://sevenlab.de/2025/10/28/dali-gerate-vom-konzept-zur-zertifizierung/feed/ 0
Buy hardware, own software https://sevenlab.de/2025/10/09/diy-software/ https://sevenlab.de/2025/10/09/diy-software/#respond Thu, 09 Oct 2025 06:47:05 +0000 https://bracht.me/2019/11/03/etiam-scelerisque-iaculis-felis-arcu-hendrerit-vitae/

Lifecycle Management for white-label hardware

You might want to buy ready-to use hardware from an overseas manufacturer, but noticed that they only support old operating system versions or you are worried about software support from them in general. Updating software as fast as possible is important to keep devices secure and simplifies development a lot by being able to utilize the latest features.

The solution is to choose hardware which is based on a very common SoC where the SoC manufacturer itself actively maintains and updates the software. With that, all you have to do is to understand the differences between the manufacturer’s official development kit and your hardware. Then you take the device definitions from the development kit which are compatible with the latest version of the operating system and adjust the parts where your hardware differs. We did that to get Android 15 running on the Advantech TPC-107W which uses an NXP i.MX 8M Mini. We did this without access to any hardware documentation like schematics.

Understanding the board manufacturer’s changes

The Advantech TPC-107W comes with Android 10 support while the latest version is 15. The first important step is to figure out, which version of which software they based their work on, so you can see what exactly they changed. This process depends on the software, but in Android, a good indication is the file build/core/build_id.mk. Additionally, you can look at files which changed between git tags of the SoC manufacturers releases.

Once you know the base version, you look at the changes made by the board manufacturer to understand the hardware and what’s required to get it working. We also found it useful to compare everything against the official development kit from the SoC manufacturer. This way, you understand the hardware differences and will be able to quickly port any SDK version and migrate to new ones by looking at what was changed in the devkit related files.

The changes made by board manufacturers usually fall into these categories:

• Changes that you really need to support the hardware.
• Changes for hardware components, that you don’t need.
• Changes that were needed in the old version, but are not needed anymore thanks to advances in the upstream project.
• Changes that are unrelated to the hardware, e.g. additional features or demo code.

Luckily, we only need to care about the first category. Depending on the hardware and the scope of the SDK, these can be surprisingly little compared to the total amount of changes they made. In a multi-repository project like Android it’s also important to stay focused on the repositories that actually are relevant for the hardware. Usually, these are the firmware, the bootloader, the kernel and the Android board configs. For NXP, the Android HAL components should be board-independent and work as is.

Porting Android 15

For the TPC-107W, we started by creating a new device config based on the development kit. At this point it doesn’t have to be complete or correct, it just needs to compile and then you can adapt it more and more during the porting process.

As said before, for NXP, there aren’t any changes needed in Android itself outside of the device configs, so the focus is on:

• Bootloader (U-Boot)
• Kernel

The process for both of these is actually identical, because they both use device-trees for configuring the hardware. Bootloader support usually needs some additional C code to initialize board specific hardware without a driver. For Linux, that’s usually not needed, but you might need to add new drivers which are not mainline, yet. If the difference in bootloader/kernel versions isn’t too big and you’re lucky, you can actually just use the “old” device tree as is, with no or only minor modifications and it’ll work just fine. We tried that out and, lo and behold, we were greeted with the android boot screen.

 

We managed to get a fully functional port that way. Later we then decided to fully redo the device-tree based on the official development kit to understand all of the hardware differences and make it easier to adapt future changes in the dev kit device-tree to the Advantech device-tree.

For the Advantech board thes most importants differences were:

• Different PMIC
• Different LCD panel and backlight
• No USB-C
• Different pin numbers and regulator configuration
• Different I2C devices
• Special GPIO initialization in U-Boot.
• Read ethernet MAC address from SPI flash and write it to device tree.
• One of the ethernet ports uses a driver that’s not mainline.

And this is basically it. Of course, all of this took a couple of weeks, but it was very straight forward and mostly slowed down by compile-times. With this, we now have a very new and standard software stack which allows us to fully utilize the hardware. We even got secure boot working.

]]>
https://sevenlab.de/2025/10/09/diy-software/feed/ 0
New Office – Cologne, Hansaring https://sevenlab.de/2025/09/25/new-office/ https://sevenlab.de/2025/09/25/new-office/#comments Thu, 25 Sep 2025 06:44:16 +0000 https://sevenlab.de/?p=4072

Move is Imminent

After nine months, we are already preparing for our relocation. We can hardly wait to move into our new office spaces in Cologne at Hansaring 20, 7th floor, in Neustadt-Nord near the Mediapark starting October 1, 2025. There, we’ll also have a nice large meeting room. Curious about the new surroundings? We look forward to your visit!
]]>
https://sevenlab.de/2025/09/25/new-office/feed/ 1
Picoports https://sevenlab.de/2025/09/23/picoports/ https://sevenlab.de/2025/09/23/picoports/#respond Tue, 23 Sep 2025 10:00:11 +0000 https://sevenlab.de/2025/08/26/lorem-ipsum-dolor-nulla-amet-2-2-2/

Internal tools

GPIO from laptop

Ever tried to toggle a GPIO pin from your laptop? 🤔
Turns out it is (or was) much harder than you’d think.

I ran into this surprisingly awkward problem while building a test setup: I needed to toggle boot pins for the target from my laptop. But how? I first tried an Adafruit FT232H Breakout, but I had to reflash the EEPROM with special tooling, and even risked bricking the device in the process. And that cost me ~15€ for just 4 GPIOs.

This bugged me. Every micro-controller can do that with a few lines of C code and they have plenty of GPIOs! At this point I wondered if maybe someone had already written a firmware I could use for some microcontroller, that just exposes the GPIO pins via USB to the PC. But I found nothing. I assumed this may be due to hidden complexity for custom USB drivers.

Then I wondered, can’t that just use the same driver as the FT232H? I did a quick search through the Linux kernel and found out that there are some more (but very few) drivers for USB-to-GPIO devices. One caught my eye, the “dln2” driver: It not only supports GPIO, but also I2C, ADC, and SPI. It’s also well written and the interface is simple to understand.

So I took a stab at it. I chose the Raspberry Pi Pico and wrote a small firmware utilizing TinyUSB, basically just a shim to map the kernel interface to the Pico SDK interface. It was really exciting when I got the first error messages and warnings from the kernel driver, meaning the detection and loading of the driver worked! Not too much later I was able to toggle my first GPIO. 🎉

A few joyous coding sessions later, it has become a really useful tool, providing not only GPIO, but also ADC, I2C and UART. It’s also super simple to install, thanks to the factory included bootloader on all Raspberry Pi Picos. You just drag-and-drop the firmware onto the Pico. You don’t even need to open a terminal. And you don’t need to install a driver either, since it has been in the Linux kernel for multiple years now, so all current distros are shipped with it. The last, most beautiful part of it (for me) is that it works with standard tooling for GPIO (gpiod) and I2C (i2c-tools).

Of course, it has nowhere near the performance that other commercial solutions provide, but it’s cheap and easy to set up, and you probably already have it in your drawer. 😉

Would love feedback if you try it out! 🙌

/GS

]]>
https://sevenlab.de/2025/09/23/picoports/feed/ 0
DALI – Digital Addressable Lighting Interface https://sevenlab.de/2025/09/12/dali/ https://sevenlab.de/2025/09/12/dali/#respond Fri, 12 Sep 2025 11:24:31 +0000 https://bracht.me/?p=1

 

What is DALI?

The acronym DALI stands for Digital Addressable Lighting Interface, a standardized system designed to control lighting in professional environments. The DALI standard is easy to implement, manufacturer-independent, and allows precise control of individual light sources, even in large building complexes. It is widely used in professional settings, with seamless integration of components like LED drivers, switches, relays, and motion sensors regulated by the DALI Alliance.

References

The team at sevenlab engineering has successfully completed numerous DALI-based projects for various manufacturers. Examples include:

 

    • A system to control DALI lighting via a mobile app, enabling on/off switching, color/temperature adjustments, scene creation, and automated workflows. Our team developed the full solution—hardware, firmware, backend, cloud, and app—while managing CE and DALI certifications.
    • An automated lighting system for complex, reconfigurable spaces, featuring script-based responses to switches or motion sensors. We delivered hardware, firmware, backend, and a web-based application.
    • A solution to connect spatially separated DALI bus systems over long distances, including hardware, firmware, enclosure design, and manufacturing processes, developed in collaboration with the client.
    • Various development tools (e.g., dali_usb_lpc1114) used by our team to accelerate the development process.

 

Current Trends

DALI is a living standard, open to integrating modern technologies into its ecosystem. The latest base standard, DALI – Part 104: General requirements – Wireless and alternative wired systems, enables DALI devices to interact via alternative transmission methods, reducing reliance on dedicated wiring. Key technologies include:

    • Bluetooth Mesh
    • Ethernet UDP
    • Thread
    • Matter

Our team has hands-on experience with these technologies and is ready to support your next project.

Services

sevenlab engineering can assist with your lighting project through:

 

    • Refining product ideas
    • Project management
    • Hardware development
    • Firmware development
    • Antenna design
    • Certifications: DALI / CE / FCC

 

Regardless of your project phase, feel free to contact us at

[email protected].

 

 

]]>
https://sevenlab.de/2025/09/12/dali/feed/ 0
MQTT-SN talk by Steffen Görtz https://sevenlab.de/2025/08/25/mqtt-sn-talk/ https://sevenlab.de/2025/08/25/mqtt-sn-talk/#respond Mon, 25 Aug 2025 10:00:11 +0000 https://sevenlab.de/2025/08/26/lorem-ipsum-dolor-nulla-amet-2-2/

Hello from Amsterdam

meet us

Time flies – already the second day at Open Source Summit in Amsterdam!

I’m especially excited to take part in the Zephyr Developers Summit this week, and even happier that my lightning talk on MQTT-SN was accepted. 🚀

If you’re around, feel free to drop by and say hi: I’ll be at the Zephyr Booth today from 12:00 – 14:00.

]]>
https://sevenlab.de/2025/08/25/mqtt-sn-talk/feed/ 0