Back

Dash7

Loading views...

Dash7

Category: Wireless

Overview

DASH7 (ISO/IEC 18000-7) is an active RFID and wireless sensor networking standard at 433 MHz. D7AP (DASH7 Alliance Protocol) adds networking features enabling long-range, bi-directional, file-based IoT communication with background scan for ultra-low duty cycle.


1. Theory & Fundamentals

  • Frequency: 433.92 MHz (globally license-free sub-GHz)
  • Range: Up to 2 km LOS; 200 m indoor
  • Data rate: 9.6 kbps – 167 kbps
  • Modulation: GFSK, 25 kHz or 200 kHz channel
  • Background Advertising Scan (BAS): Device wakes briefly to listen
  • File system model: Data exposed as numbered files
  • Power: < 1 µA sleep, 15 mA TX

2. Frame / Packet Structure

D7AP Frame:
  LL Header | DLL Frame | NL Frame | Transport | Application

DLL Frame:
  Length | DLL Control | Sync Word | Frame | FCS(CRC-16)

D7AP Query:
  Action | FileID | Offset | Length
  Response: file contents from slave

Addressing:
  VID (virtual) | UID (unique 64-bit) | Broadcast

3. Protocol Mechanics

  • Background Advertising Scan: Device wakes at ~1% duty to check for foreground preamble
  • Foreground Frame: Sender transmits extended preamble to wake sleeping devices
  • Query model: Master queries slave's file system
  • D7AQL: Query language for response filtering
  • ACK: Configurable per packet

4. Hardware Implementation

  • Chipset: STM32WL (sub-GHz + M4), CC1310 (TI), Si4463
  • OpenD7AP: Open-source DASH7 stack
  • 433 MHz antenna: ~17 cm quarter-wave whip
  • Crystal: 26 MHz main + 32.768 kHz RTC
  • Power supply: 3.3 V, coin cell or 2×AA

5. Register-Level / Configuration

#include "d7ap.h"
d7ap_init();
d7ap_resource_desc_t res = {
    .read_handler = on_read,
    .write_handler = on_write
};
d7ap_register_client(&res, &client_id);

// Broadcast sensor file
d7ap_session_config_t sess = {
    .qos.id = SESSION_QOS_REQUEST_ACK,
    .target_addr = {0xFF} // broadcast
};
d7ap_send(client_id, &sess, data, len);

6. Driver / Software Development

void Dash7_QueryFile(uint8_t *uid, uint8_t file_id) {
    d7ap_session_config_t sess;
    sess.qos.id = SESSION_QOS_REQUEST_ACK;
    memcpy(sess.target_addr, uid, 8);
    d7ap_send_query(client_id, &sess, file_id, 0, 16);
    // Response arrives in read_handler callback
}

7. Debugging & Testing

  • OpenD7AP CLI (serial console) for network tests
  • 433 MHz SDR sniffer: RTL-SDR + GNU Radio
  • Logic analyzer on SPI/UART to radio module
  • Common issues: Preamble length too short; BAS timing; frequency calibration

8. Real-World Applications

  1. Industrial asset tracking (forklifts, containers)
  2. Oil & gas pipeline monitoring
  3. Military logistics
  4. Smart utility metering
  5. Cold chain with long-range read

9. Advanced Topics & Edge Cases

  • 433 MHz penetrates concrete/steel better than 868/2.4 GHz
  • Vs LoRa: DASH7 lower latency, bi-directional query; LoRa wider ecosystem
  • D7AP file system: Structured interoperability model
  • Multi-hop relay configurations supported
  • DASH7 + GPS: Combined asset tracking

10. Standards & Variants

Aspect Value
Standard ISO 18000-7 / D7AP v1.1
Frequency 433 MHz
Range 200 m (indoor) / 2 km (LOS)
Data rate 9.6 – 167 kbps
Power <1 µA sleep

💡 Practical Examples

Ex 1: Broadcast: d7apsend(id, &broadcastsess, sensor_data, 8);

Ex 2: Query temperature file from specific device UID.

Ex 3: Background scan wake: Sleep 99% duty; wake when foreground preamble detected.


🧪 Practice Questions

Beginner: 1) Frequency? 2) Background Advertising Scan? 3) DASH7 file? 4) Range? 5) Modulation?

Intermediate: 1) Foreground/background mechanism. 2) D7AQL query filter. 3) OpenD7AP on CC1310. 4) Vs LoRa for warehouse. 5) ACK configuration.

Advanced: 1) 500-device warehouse RTLS. 2) Mesh relay extended coverage. 3) 433 MHz SDR base station. 4) Vs UWB for position accuracy. 5) Cloud gateway.


Checklist

  • [ ] Understand BAS mechanism
  • [ ] Initialize OpenD7AP stack
  • [ ] Implement file read/write handlers
  • [ ] Send broadcast and unicast messages
  • [ ] Query remote device file
  • [ ] Debug with 433 MHz SDR
  • [ ] Build DASH7-to-MQTT gateway
  • [ ] Implement low-power BAS node