This reference project shows a structured workflow for defining and managing embedded system features in a domestic oven project. Solaros Specify lets you organise your embedded systems as bounded, lawful features - creating a single source of truth that drives implementation, testing, and certification.
Information relating to your Solaros Specify account.
A note for viewers of this reference project.
This is the production release of Specify Lite.
This is the free to use, pre-production version of Specify Lite.
This is the production release of Specify Teams.
Specify all clock sources and requirements.
The ADC clock is required for analog-to-digital conversions. It is sourced from the peripheral clock / N.
The peripheral clock is required the APB peripherals. The peripheral clock is sourced from the system clock / N.
The real-time clock (RTC) is required to maintain the current time of day and date. It is sourced from a 32.768 kHz crystal.
The system clock is required for the CPU and AHB. It is sourced from the external crystal + PLL.
This clock is required for timed event management and to support frequency scheduled VSMs.
The USB clockis required for USB communication. It is derived from the PLL.
The WatchDog Timer (WDT) clock is required for the management of system crash recovery, when a fault generally halts the CPU. The watchdog timer provides a mechanism by which the system can restart.
This is a reference feature set of common protocols. For each protocol required by your product, create a protocol specific feature set and add all protocol features that need to be supported, usually a subset of those available.
A BLE Feature Set is needed when BLE protocol functionality is required for low-power wireless communication. Create a feature set and add all protocol features that need to be supported by your product.
A CAN Feature Set is needed when CAN protocol functionality is required for automotive and distributed device communication. Create a feature set and add all protocol features that need to be supported by your product.
An Ethernet Feature Set is needed when Ethernet protocol functionality is required for industrial and IoT communication. Create a feature set and add all protocol features that need to be supported by your product.
An I2C Feature Set is needed when I2C protocol functionality is required for sensor and peripheral device communication. Create a feature set and add all protocol features that need to be supported for your product.
A LIN Feature Set is needed when LIN protocol functionality is required for automotive low-speed communication. Create a feature set and add all protocol features that need to be supported by your product.
A LoRaWAN Feature Set is needed when LoRaWAN protocol functionality is required for long-range IoT device communication. Create a feature set and add all protocol features that need to be supported by your product.
A Modbus Feature Set is needed when Modbus protocol functionality is required for industrial fieldbus communication. Create a feature set and add all protocol features that need to be supported by your product.
An MQTT Feature Set is needed when MQTT protocol functionality is required for IoT device messaging / communication. Create a feature set and add all protocol features that need to be supported by your product.
An SPI Feature Set is needed when SPI protocol functionality is required for high speed peripheral communication. Create a feature set and add all protocol features that need to be supported by your product.
A TCP/IP Feature Set is needed when TCP/IP protocol functionality is required for networking stack communication. Create a feature set and add all protocol features that need to be supported by your product.
A USB Feature Set is needed when USB protocol functionality is required for external serial device communication. Create a feature set and add all protocol features that need to be supported by your product.
A Wi-Fi Feature Set is needed when Wi-Fi protocol functionality is required for external wireless device communication. Create a feature set and add all protocol features that need to be supported by your product.
A Zigbee Feature Set is needed when Zigbee protocol functionality is required for Mesh and IoT communication. Create a feature set and add all protocol features that need to be supported by your product.
User input control panel feature set. Provides all features that report operational requests made by a user of the oven.
Data capture of baking mode changes following intervention by the oven user.
Data capture of baking temperature changes following intervention by the oven user.
Data capture of baking time changes following intervention by the oven user.
Debug Services feature set. Specify debug and diagnostic capabilities.
Development debug interface descriptions.
Diagnostic capability descriptions.
Display handler feature set. Provides all features required for updating the display with oprational data so that the user can see current bake session information.
Requests that the display module is powered down.
Requests that the display is updated with the current baking mode.
Requests that the display is updated with the latest oven temperature reading.
Requests that the display is updated with the current baking time.
Requests that the display is updated with the current power status, either on or off.
Requests that the display is updated with the remaining baking time duration.
Error Handling feature set.
Document what firmware design assumes hardware will provide.
Firmware assumes "Communication resilient to 100ms interruptions".
Explicitly document what firmware assumes hardware will provide.
Firmware assumes "External events captured with < 5 μs latency".
Firmware assumes "Calibration data survives power loss".
Firmware assumes "Temperature measurement accurate to ±0.5°C".
Firmware assumes "Sensor data valid within 10ms of request".
Firmware assumes system can detect power failure 5ms before shutdown.
Document what hardware design assumes firmware will do.
Document what hardware design assumes firmware will do.
Hardware timing constraints on firmware. Document hardware limitations that constrain firmware design.
Document hardware limitations that constrain firmware design.
Interrupt Handling feature set. Provide details for every hardware event that results in an interrupt being raised. The ISR may or may not send an event notification message to an associated VSM.
Specify which hardware events generate interrupts, their priorities, maximum latencies and firmware's handling requirements.
Memory Management feature set. Provides all features required for the correct allocation and partitioning of system memory devices.
External Memory feature set. Provides all features required for the correct allocation and partitioning of external memory.
Non-volatile flash memory allocation and partitioning features and configuration info.
Volatile RAM memory allocation and partitioning features and configuration info.
Oven control feature set. Provides all features required to manage the oven so that it performs according to latest user input.
Performs cold start initialisation of hardware and software following a power cycle, typically when the oven power supply is switched on.
Performs warm start initialisation of hardware and software following a software reset, typically as part of a recovery strategy following system errors.
The oven is powered but switched off and this VSM is suspended until activated by the User Features Controller following a user request to switch the oven on and start a baking session.
This state maintains the stable bake temperature set by the user.
Checks the internal oven temperature at regular intervals.
Requests that the alarm should be switched off, typically after a configured alarm indication period has elapsed.
Requests that the alarm should be switched on, indicating that the bake temperature has been reached and the baking session will begin, or that the baking session has now ended.
Allows the heating elements to be re-configured the so that the oven bake mode is changed to either GRILL, COOK or ROAST.
Informs the Oven Controller that the baking session has started and that temperature monitoring can commence.
Informs the Oven Controller that the baking session has completed and that temperature monitoring can be suspended.
Requests that the oven light should be switched off, typically when a baking session has ended.
Requests that the oven light should be switched on, typically when a baking session begins.
Turn the oven heater elements off so that the oven temperature can drop down to the required baking temperature, or because a baking session has completed or been cancelled.
Turn the oven heater elements on so that the oven temperature can be raised to the required baking temperature.
Power Saving feature set. Provides all features necessary for a 'sleep' manager that minimises power consumption.
Add Sleep manager feature description.
Power cycle control and sequencing feature set. Provides all features required to correctly manage the boot sequence from hardware power-on to software operational state.
Execution of the Bootloader code.
Clock source starts.
Clock stabilization
Initialises all peripheral deices required by this embedded system.
Ensures that the power-up hardware rest is released.
Manages the power-up sequence from the occurance of the hardware reset to when the system enters operational mode. Failure to comply with this could create safety issues or simply degrade the user experience. For multi-voltage systems, specify power-up and power-down sequences.
Activates power supply.
Performs diagnostic verification during power-up and any appropriate recovery actions.
Ensures that voltage stabilisation is achieved.
Reset Bahaviour feature set. Specifies all reset sources and associated firmware responses.
Brown-Out Reset (BOR) behaviour is the system response when the supply voltage drops below a defined threshold, causing the device to reset and preventing unreliable operation until the voltage returns to a safe level.
External Reset (NRST) behaviour is the system response when the external reset pin (NRST) is asserted, forcing the device to reset and restart its initialization sequence.
Lockup Reset behaviour is the automatic system reset that occurs when the processor enters a lockup state due to unrecoverable faults or exceptions.
Power-on Reset (POR) behavior is the automatic reset sequence triggered when power is first applied, initializing the system and ensuring it starts in a known, stable state.
Specify all reset sources and firmware response.
Software Reset behaviour is the system response when a reset is triggered by software, causing the device to restart its execution as if a hardware reset occurred.
Watchdog Reset (IWDG) behavior is the system response when the independent watchdog timer is not refreshed in time, triggering an automatic reset to recover from software faults or hangs.
Sensor handling feature set. Provides all features required for operational status and control of the oven's sensory devices.
Requests the current temperature inside the oven so that the bake temperature can be adjusted if necessary.
Requests the current door status to ascertain whether the door is currently open or closed. This is typically used during startup / initialisation.
Notification that the oven door has been closed so that the necessary actions can be taken depending on the current operational state of the oven.
Notification that the oven door has been opened so that the necessary actions can be taken depending on the current operational state of the oven.
Timed Event Management feature set. Provides all features required to handle timed events, whether time/date scheduled or frequency scheduled.
Provides all activities that must be performed at regular intervals.
Provides all activities that must be performed at specified time/dates.
Add all UART protocol features that need to be supported by your product.
Inialises and prepares the protocol stack's software and hardware dependencies prior to using UART communication.
Description needs to be added.
UART Feature Set needed when UART protocol required for debug and serial communication.
Manages all events, protocol states and transitions.
Performs all power-on reset actions.
EARS feature set. Easy Approach to Requirements specification Syntax (EARS).
When to Use: Requirement applies all the time, no conditions.
When to Use: System must respect power constraints.
When to Use: Specific event triggers a one-time behaviour.
When to Use: Continuous condition results in continuous/repeated behaviour.
When to Use: Behaviour depends on whether optional feature/component exists.
When to Use: System must handle failures, errors, exceptional conditions.
When to Use: System must perform data transformation on source data to satisfy destination data requirements.
When to Use: System must ensure that control processes are performed within configuration targets.
When to Use: System must respect timing constraints.
When to Use: System must respect resource constraints.
An example specification of how different user acounts might work.
This feature manages the 'Demo' account signup and login process for new and current users of the 'Demo App'.
User interface feature set. Manages all user requests as per the feature specifications and associated use cases.
A request by a user to cancel the current baking session and switch the oven off, by turning the bake period dial to zero (off).
A request by a user to change the current baking mode, by turning the bake mode dial to the desired mode position.
A request by a user to change the current baking temperature, by turning the temperature dial to the desired temperature position.
Change the current baking time, by turning the time dial to the desired time duration.
Switch the oven on and start a baking session for a specified time duration, by turning the time dial to the desired time duration.
Performs cold start initialisation of hardware and software following a power cycle, typically when the oven power supply is switched on.
Performs warm start initialisation of hardware and software following a software reset, typically as part of a recovery strategy following system errors.
User Features Controller waits for notifications of user interventions.
This state is primarily waiting for notification that the requested bake temperature is reached.
The oven is on and the baking session is in progress.
The User Features Controller (UFC) manages all operational inputs as per the feature dialogue specifications and associated use cases.
A Test Feature Wed pm TWO
The Capture Timer Clock (CTC) is useful when measuring pulse width and frequency (like speed or RPM signals).
Required when aerospace and avionics safety certification required.
Required when railway systems safety certification required.
The General Purpose Timer (GPT) can be used for delays and periodic interrupts.
Required when industrial safety certification required.
Required when medical device safety certification required.
Required when automotive safety certification required.
This feature manages the 'Lite' signup and login process for new and current users of the Lite App.
The Pulse Width Modulation (PWM) timer is used to generate PWM signals for motor control, LED dimming and power-related applications etc.
This feature manages the 'Trial' account signup and login process for new and current users of the 'Trial App'.
Performs all software reset actions.
Create structured features, use cases, and requirements for your embedded systems projects.