03 — Embedded systems

Software designed
close to the physical system.

Embedded systems operate under physical, computational and communication constraints. AUKIAN designs software, hardware interfaces, protocols and connected architectures as parts of one coherent system rather than isolated technical layers.

01 — From component to system

Decide where
each responsibility belongs.

An embedded product is rarely one program running on one isolated microcontroller. It may combine processors, sensors, user interfaces, radio modules, storage and external equipment, with different components processing, presenting or transmitting information.

Architecture begins by deciding which operations must happen locally, what data needs to be stored, how components communicate, what remains available when connectivity disappears and which responsibilities belong to external systems.

These decisions shape the product before the exact technologies are selected. A processing task that is trivial on a server may require a completely different strategy when it must run with limited memory, constrained power or intermittent communication.

AUKIAN approaches the embedded system as a whole: physical inputs, local processing, user interaction, communications and external services must work together with explicit boundaries.

SENSORS / INPUTS physical information
LOCAL EMBEDDED LOGIC processing / state / decisions
LOCAL INTERFACE display / controls
COMMUNICATION radio / wired / network
EXTERNAL SYSTEM platform / service / control

02 — Embedded & low-level software

Control execution
where resources matter.

Embedded software may directly manage hardware interfaces, events, local processing, communication between components, system state and concurrent tasks. Memory, CPU time, storage, bandwidth and power consumption become architectural constraints rather than resources that can simply be assumed to exist.

01

Execution model

Organize tasks, events and time-sensitive operations around the real behavior required by the device.

02

Resource control

Design around available memory, processing power, storage, bandwidth and energy constraints.

03

Local state

Keep system state explicit so startup, shutdown, recovery and degraded behavior remain understandable.

04

Concurrent work

Separate tasks and synchronization responsibilities when several operations must progress at the same time.

Hardware interfaces & peripherals

Keep hardware dependencies
where they belong.

Embedded software connects the expected behavior of the product to sensors, displays, controllers, communication modules, memories, specialized peripherals or other microcontrollers. Each interface has its own frequency, data volume, latency and failure modes.

Integration layer

Separate device access from product logic.

Hardware access is isolated from application behavior where practical so changes to a sensor, controller or communication peripheral do not unnecessarily propagate throughout the codebase.

Sensors

Read physical inputs

Acquire, validate and transform information from the physical environment.

Displays

Present local information

Drive displays and embedded interfaces within the graphical and memory constraints of the device.

Controllers

Coordinate peripherals

Integrate buses, local controllers and specialized hardware components cleanly.

Embedded user interfaces

Useful interaction
within physical constraints.

Fixed resolution, graphical resources, memory, input methods and physical usage conditions directly influence interface design. The goal remains the same: present useful information and make important actions understandable without ignoring the limits of the device.

Display

Fixed visual constraints

Design around the actual screen, graphical resources and information density available on the device.

Interaction

Touch or physical controls

Adapt actions to the input model and the real context in which the product is operated.

Responsiveness

Immediate enough to trust

Balance visual behavior and processing cost so the interface remains clear and responsive on constrained hardware.

03 — Communications & protocols

Communication is
part of the product.

Moving bytes from one device to another is only the beginning. The system must define what is sent, to whom, in which order, with which identity and how failures, retries, fragmentation or temporary disconnection are handled.

APPLICATION meaning / commands
MESSAGE payload / identity
PROTOCOL order / validity / errors
TRANSPORT radio / serial / network
HARDWARE device / transceiver
APPLICATION meaning / commands
MESSAGE payload / identity
PROTOCOL order / validity / errors
TRANSPORT radio / serial / network
HARDWARE device / transceiver

Depending on the system, protocols may need to identify devices, structure messages, detect errors, fragment data, preserve ordering or control how long information remains valid.

Radio and intermittent networks add further constraints: bandwidth can be limited, latency variable and connectivity temporarily unavailable. The software should therefore be designed with disruption as an expected operating condition rather than an exception.

Clear communication boundaries also make systems easier to diagnose, evolve and connect to future devices or services.

Connected systems

The firmware is only
one part of the architecture.

Devices may send local data to an API or platform and receive parameters, commands, updates or external information in return. The important design decision becomes the boundary between device software, communication infrastructure and surrounding services.

01

Physical device

Sensors, controls, actuators and hardware constraints.

02

Embedded software

Drivers, state, local processing, tasks and user interaction.

03

Communication

Protocols, radio, wired links and network behavior.

04

Services

APIs, data processing, control systems and external platforms.

05

Users

Applications, web interfaces, supervision and operational tooling.

04 — Reliability

Design for
predictable failure.

Embedded systems may run for long periods, be difficult to access once installed or operate where manual intervention is not always possible. Communication failures, unavailable peripherals, invalid data or restarts should not automatically push the product into an inconsistent state.

01

Recovery

Define how the system returns to a valid operating state after faults, restarts or temporary disruptions.

02

Explicit states

Keep normal, degraded and error conditions understandable so the product reacts consistently.

03

Local diagnostics

Use logging, status information and integrity checks when diagnosis cannot depend on permanent connectivity.

04

Degraded service

Preserve useful local functions when external systems or communications are temporarily unavailable.

Security

Protect the system
at its real boundaries.

When a device exchanges information or accepts commands, identity, authenticity, confidentiality and authorization become architectural concerns. Security must be adapted to the capabilities of the hardware and to the actual threats faced by the product.

01 Device identity

Know which device or component is participating in an exchange.

02 Message authenticity

Verify that sensitive commands and information originate from an expected source.

03 Confidentiality

Protect information in transit when the context requires private communication.

04 Authorization

Restrict sensitive operations according to the role of the device, user or external service.

05 End-to-end thinking

Consider firmware, communication protocol and connected services together instead of securing one isolated layer.

05 — Resources & evolution

Physical constraints
shape software design.

In embedded systems, resources are design inputs. A feature that appears trivial on a server may require a different architecture when memory, energy, bandwidth or latency are tightly constrained.

EMBEDDED SYSTEM
CPU
MEMORY
POWER
STORAGE
NETWORK
LATENCY
SOFTWARE ARCHITECTURE

Modularity

Prepare for
the next hardware revision.

Sensors, communication modules, user interfaces and microcontroller generations can change. The objective is not to abstract everything, but to isolate responsibilities that are likely to evolve so future product revisions do not require rebuilding the entire software architecture.

01

Hardware access

Keep device-specific interfaces bounded.

02

Communications

Separate transport and protocol responsibilities.

03

Product logic

Keep business behavior independent where practical.

04

Storage

Define persistence and data ownership explicitly.

05

Embedded UI

Keep presentation concerns separate from low-level device handling.

06

External services

Treat connected platforms as explicit system boundaries.

Prototype, proof of concept & R&D

Validate the unknowns
before hardening the product.

Some systems need experimentation before a final architecture can be justified: communication range, microcontroller performance, interface behavior, resource usage, experimental protocols or cooperation between several devices may all need to be tested in reality.

01

Hypothesis

Identify the technical assumption that needs to be validated.

02

Prototype

Build the smallest real system capable of producing useful evidence.

03

Measure

Observe performance, communication, resource use and behavior under realistic constraints.

04

Harden

Keep what has been validated and restructure the parts that need production-grade reliability and maintainability.

From prototype to operable system

Working hardware
is only one milestone.

Reproducibility, configuration, version management, diagnostics, logging, testing and update procedures become increasingly important as a project moves from an experiment to a deployable product.

PHYSICAL WORLD sensors · controls · peripherals · displays
EMBEDDED SOFTWARE drivers · processing · state · tasks · embedded UI
COMMUNICATION LAYER protocols · radio · wired · networking
SERVICES / PLATFORM API · data · processing · control
USERS application · web · supervision

Technology

Choose for the system,
not for the label.

Technologies depend on the hardware, timing constraints, communication model, expected lifetime and deployment environment. They are tools selected to support the behavior of the system, not an architecture by themselves.

C C++ ESP32 Microcontrollers RTOS Embedded Linux Hardware Interfaces Serial Communications Buses Radio Network Protocols Embedded UI

When AUKIAN can help

From focused component
to complete connected system.

Embedded expertise can support a complete new product or one specific part of an existing system when performance, communication, architecture or maintainability has become a constraint.

01

Device software

Design the software behavior of an embedded product or equipment.

02

Multi-device communication

Make several devices exchange information through radio, wired links or custom protocols.

03

Peripheral integration

Integrate sensors, displays, memories, controllers or specialized hardware.

04

Embedded interfaces

Create local graphical or physical user interfaces adapted to the device.

05

Connected architecture

Connect embedded devices to APIs, software services and operational platforms.

06

Prototype & validation

Test uncertain technical assumptions before committing to the final product architecture.

One end-to-end architecture

Hardware, software and communication
belong to the same product.

Embedded products sit at the intersection of several disciplines. Hardware imposes constraints, software defines behavior, communications connect components, interfaces make the system usable and external services may supervise or enrich the information produced.

AUKIAN favors a system approach: understand how the parts interact, define clear responsibilities and build an architecture in which hardware, software and communication contribute to one coherent product.

An embedded system to design?

Start with the hardware,
the constraints and the expected behavior.

Describe the context, the hardware under consideration and the constraints already known. The first step is to determine the architecture that is actually appropriate for the system.

Discuss an embedded project