SPARK Microsystems SDK
v1.3.1
Introduction
Features
Getting Started
Preferred Integrated Development Environment (IDE)
Prerequisites
VS Code Extensions
Hardware
Windows Long Path Support
Through Group Policy
Through Windows Registry
Create the Virtual Environment with VS Code
Bootstrap the Virtual Environment Manually (optional)
Activate the Virtual Environment Without VS Code (optional)
Building Applications
Debugging with ST-Link Debug Probes
Viewing the Terminal
Time to Explore
Structure Overview
Hardware Description
Applications
Example
Hello World
Description
Behavior
Coordinator Device
Node Device
Configuration
Dual Radio
Terminal
Ranging
Description
Nomenclature
Behavior
Coordinator Device
Node Device
Antenna Orientation and Line-of-Sight
Calibration Procedure
Configuration
Output Power Configuration
Terminal
Pairing Basic
Description
Behavior
Application States
Application Interfaces
Configuration
Audio Streaming
Description
Behavior
Coordinator Device
Node Device
Configuration
Audio Compression
Description
Behavior
Coordinator Device
Node Device
Configuration
Audio User Data
Description
Behavior
Coordinator Device
Node Device
User Data Processing Stage
Configuration
Audio High Resolution
Description
Behavior
Coordinator Device
Node Device
Configuration
Audio 4-Channel
Description
Behavior
Coordinator Device
Node Device
Configuration
Audio Mixer
Description
Behavior
Coordinator Device
Node Devices
Configuration
Star Network
Description
Behavior
Application Schedule
Coordinator Device
Node 1 Device
Node 2 Device
Configuration
Build
Terminal
Connection Priority
Description
Behavior
Link Capacity Utilization
Coordinator Device
Node Device
Configuration
Terminal
Pairing Gaming Hub
Description
Behavior
Dongle Device
Headset Device
Mouse Device
Keyboard Device
Pairing LED Pattern
Configuration
Fragmentation
Description
Fragmentation
Auto-Reply
Application Data Flow
Behavior
Coordinator Device
Node Device
Configuration
Terminal
Cores
Audio Core
Introduction
End-User Application
Audio Core Components
Audio Pipeline
Audio Endpoint
Audio Processing Stage
Clock Drift Compensation
Audio Compression
Digital Volume Control
Sampling Rate Converter
Mute Packet
Mute on Underflow
Audio Packing
Audio Header
Audio Module
Audio Mixer
Audio Fallback
Wireless Core
Introduction
Concepts
Time Division Multiple Access
Network
Schedule
Frequency Switching
Addressing
PAN ID
Node Address
PAN Broadcast
Connection
Channel
Stream Types
Auto-Reply
Timeslot Events
Main Frame Transmission
Auto-Replied ACK
Auto-Replied Payload
Synchronization Methods
Standard Sync
Fast Sync
Dual Radio
Topology
Star Network Topology
Peer to Peer Network Topology
Cluster Tree Network Topology
Concurrency
Personal Area Network ID (PAN ID)
Channel Sequence Randomization
Clear Channel Assessment (CCA)
Random Datarate Offset Protocol (RDO)
Distributed De-Synchronization Concurrency Algorithm (DDCM)
Sleep Modes
Modulation
Forward Error Correction (FEC) Level
Stop and Wait
Frame Fragmentation
Fallback Mode
Link Throttling
Limitations
Complete Example
Connection Priority
Ranging Mode
Frame Structure
Data frames
Sync frames
Acknowledgement frames
Header Configuration
Data Validation
CRC
Address filtering
Syncword match
Max frame size
MCU Requirements
MCU Footprint
Memory
CPU
Schedule Design Consideration
Bandwidth
Retransmission Margin
Sync Timeslot (Beacon)
Concurrency Considerations
Latency Calculation
Case Study: Latency Evaluation of an Application
Schedule Design Trade-off
Power Saving Strategies
Pairing Module
Description
Pairing Usage
Pairing Configuration
Pairing Assigned Address
Pairing Discovery List
Device Role
Pairing Error
Pairing Events
Pairing Application Callback
Pairing Abort
Timeout
Application Code
Unique ID
Pairing Address Generation
Pairing Procedure
Pairing Phases
Authentication Phase
Identification Phase
Addressing phase
Pairing Module Wireless Configuration
Ranging Core
Introduction
Concepts
Roles
Distance Calculation
Initiator’s Receiver Wait Time
Preamble Phase Correlation Metrics
Preamble Phase Correlation Metrics Exchange Sequence
Improving Precision
API Reference
Audio Core API
Initialization
Audio Core Configuration
Audio Pipeline Configuration
Audio Endpoint Configuration
Hardware Abstraction Layer
Statistics
Reference
sac_api.h
sac_error.h
sac_stats.h
sac_utils.h
Wireless Core API
Initialization
Wireless Core Configuration
timeslot_sequence
timeslot_sequence_length
channel_sequence
channel_sequence_length
fast_sync_enabled
random_channel_sequence_enabled
certification_mode_enabled
rdo_enabled (Core)
ddcm_enabled
memory_pool
memory_pool_size
Wireless Node Configuration
role
pan_id
coordinator_address
local_address
sleep_level
Wireless Radio Configuration
irq_polarity
std_spi
no_reset
no_calibration
Wireless Connection Configuration
name
source_address
destination_address
max_payload_size
queue_size
modulation (encoding)
fec
timeslot_id
timeslot_count
ack_enabled
arq_enabled
arq_settings.try_count
arq_settings.time_deadline
auto_sync_enabled
cca_enabled
cca_settings.threshold
cca_settings.try_count
cca_settings.retry_time
cca_settings.fail_action
throttling_enabled
rdo_enabled (connection)
fallback_enabled
ranging_enabled
ranging_settings.sample_count
fallback_settings.threshold
fallback_settings.tx_pulse_count_offset
fallback_settings.tx_pulse_width_offset
fallback_settings.tx_pulse_gain_offset
fallback_settings.cca_try_count
rx_ack_payload_size
(experimental) latency_opt_enabled
connection_id_enabled
priority
Wireless Beacon Connection Configuration
Wireless Channel Configuration
frequency
tx_pulse_count
tx_pulse_width
tx_pulse_gain
rx_pulse_count
Wireless Status
Callbacks
TX Success
TX Fail
TX Dropped
RX Success
Event Callback
Connect Event
Disconnect Event
Error Event
Ranging Data Ready Callback
Sending Data
Receiving Data
Statistics
References
swc_api.h
swc_error.h
swc_stats.h
swc_utils.h
Ranging Core API
Initialization
Distance Calibration
Distance Processing
Using the API
References
srac_api.h
srac_error.h
Development Environment
Prerequisites
Recommended extensions
Creating a New Application Alongside the Example Applications
Build System
CMake external resources
Porting Guide
Articles
Hardware Platform Requirements
MCU Resources
MCU Performance
SPI Implementation
Wireless Core Porting Article
Step 1. Populate the
swc_hal_t
Structure
Step 2. Provide Callback Function Setters
Step 3. Provide Enter/Exit Critical Section Functions
BSP Interface (iface)
Adding a New BSP
Porting Checklist
1 - Provide BSP for User’s Hardware
2 - Adapt the BSP Interface
2.1 - bsp/interface/wireless_core/iface_wireless.h
2.2 - bsp/interface/lib/queue/
2.3 - bsp/interface/audio_core/iface_audio.h
2.4 - bsp/interface/pairing/iface_pairing.h
2.5 - bsp/interface/app/audio_streaming/iface_audio_streaming.h
BSP Validator
Description
Terminal
Porting Optimizations
1 - Introduction
2 - Memory Layout
3 - Modifying the Linker Script
4 - Copying from Flash to CCMRAM
5 - Adding User Functions to CCMRAM
Annexes
Annex swc_radio_hal_t Structure
set_shutdown_pin
reset_shutdown_pin
set_reset_pin
reset_reset_pin
read_irq_pin
set_cs
reset_cs
delay_ms
get_tick
tick_frequency_hz
transfer_full_duplex_blocking
transfer_full_duplex_non_blocking
is_spi_busy
context_switch
disable_radio_irq
enable_radio_irq
disable_radio_dma_irq
enable_radio_dma_irq
Annex Critical Section Macros
CRITICAL_SECTION_ENTER
CRITICAL_SECTION_EXIT
Annex context_switch Function Pointer
context_switch
Annex IRQ Callback Setter
swc_radio_irq_handler
swc_radio_spi_receive_complete_handler
swc_connection_callbacks_processing_handler
Annex Dual Radio Timer
timer_start
timer_stop
timer_set_period
disable_timer_irq
enable_timer_irq
Annex EVK1.4 MCU Priority List
Changelog
SDK
v1.3.1 - 2024-xx-xx
v1.3.0 - 2023-12-20
v1.2.1 - 2023-10-18
v1.2.0 - 2023-05-31
v1.1.0 - 2022-11-30
v1.0.1 - 2022-06-16
v1.0.0 - 2022-05-27
v0.12.0 - 2022-03-03
v0.11.0 - 2022-02-04
v0.10.0 - 2021-12-13
v0.9.0 - 2021-11-09
v0.8.0 - 2021-09-30
SPARK Cores
Audio Core Changelog
v0.9.0 - 2023-12-08
v0.8.0 - 2023-05-31
v0.7.0 - 2022-11-30
v0.6.0 - 2022-05-27
v0.5.0 - 2022-03-03
v0.4.0 - 2022-02-04
v0.3.0 - 2021-12-13
v0.2.0 - 2021-11-09
v0.1.0 - 2021-09-30
Wireless Core Changelog
v0.9.0 - 2023-12-08
v0.8.1 - 2023-10-18
v0.8.0 - 2023-05-31
v0.7.0 - 2022-11-30
v0.6.1 - 2022-06-16
v0.6.0 - 2022-05-27
v0.5.1 - 2022-04-19
v0.5.0 - 2022-03-03
v0.4.0 - 2022-02-04
v0.3.0 - 2021-12-16
v0.2.0 - 2021-11-09
v0.1.0 - 2021-09-30
Ranging Core Changelog
v0.4.0 - 2023-05-31
Misc
EVK BSP Changelog
v0.8.1 - 2023-12-08
v0.8.0 - 2023-05-31
v0.7.0 - 2022-11-30
v0.6.1 - 2022-06-16
v0.6.0 - 2022-05-27
v0.5.0 - 2022-03-03
v0.4.0 - 2022-02-04
v0.3.0 - 2021-12-13
v0.2.0 - 2021-11-09
v0.1.0 - 2021-09-30
SPARK Drivers Changelog
v0.6.0 - 2022-11-30
v0.5.0 - 2022-05-27
v0.4.0 - 2022-02-04
v0.3.0 - 2021-12-13
v0.2.0 - 2021-11-09
v0.1.0 - 2021-09-30
SPARK Libraries Changelog
v0.6.0 - 2022-11-30
v0.5.0 - 2022-05-27
v0.4.0 - 2022-02-04
v0.3.0 - 2021-12-13
v0.2.0 - 2021-11-09
v0.1.0 - 2021-09-30
Glossary
Audio Core Glossary
Wireless Core Glossary
Ranging Core Glossary
SPARK Microsystems SDK
»
Changelog
»
Ranging Core Changelog
Ranging Core Changelog
v0.4.0 - 2023-05-31
Initial release.