diff --git a/components/aes67_ptp/aes67_ptp.c b/components/aes67_ptp/aes67_ptp.c
index 6ff4497..9b6ae5c 100644
--- a/components/aes67_ptp/aes67_ptp.c
+++ b/components/aes67_ptp/aes67_ptp.c
@@ -9,7 +9,7 @@
static const char PTP_DEFAULTS[] =
"{\"mode\":\"multicast\",\"role\":\"auto\",\"domain\":0,\"priority1\":250,\"priority2\":250,"
"\"log_sync\":0,\"log_announce\":1,\"announce_timeout\":3,\"log_delay_req\":0,"
- "\"dscp\":46,\"hw_ts\":true}";
+ "\"dscp\":46}"; // hardware timestamps always (status.ptp.hw_ts)
static bool ptp_validate(const cJSON *g, char *err, size_t n)
{
diff --git a/docs/aes67-core-base.md b/docs/aes67-core-base.md
index 5b818b4..70150c3 100644
--- a/docs/aes67-core-base.md
+++ b/docs/aes67-core-base.md
@@ -18,7 +18,7 @@ Reference devices for UI and defaults: Riedel Bolero (PTP status), Riedel Direct
- PTP preset buttons: "Riedel SIC defaults" and "AES67 media profile defaults" fill the form (Save to apply).
## Config schema (core groups)
-- ptp: {mode: multicast|hybrid, role: slave|auto|master, domain, priority1, priority2, log_sync, log_announce, announce_timeout, log_delay_req, dscp, hw_ts}
+- ptp: {mode: multicast|hybrid, role: slave|auto|master, domain, priority1, priority2, log_sync, log_announce, announce_timeout, log_delay_req, dscp} (hardware timestamps always; not configurable)
- aes67: {name, enabled, discovery: manual|sap, mcast, port, ttl, dscp, channels, mono_sum, encoding: L16|L24, rate: 48000 only (all sources are 48 kHz), ptime, pt, ssrc, clk_offset, session_id, session_ver}
- net: {hostname, vlan, web_on: both|inet|aes67, dhcp, ip, mask, gw, dns} (AES67 / untagged interface)
- inet: {vlan_id, pcp, dhcp, ip, mask, gw, dns} (internet / tagged, only if net.vlan)
diff --git a/docs/user-guide.md b/docs/user-guide.md
index 16bb756..4a6bac5 100644
--- a/docs/user-guide.md
+++ b/docs/user-guide.md
@@ -118,7 +118,7 @@ The secret is write-only: after saving, the field shows empty. Leave it empty to
## PTP
-The board locks its media clock to the PTP grandmaster on the network (IEEE 1588-2008, UDP/IPv4, E2E). *PTP status* shows the lock state and the grandmaster.
+The board locks its media clock to the PTP grandmaster on the network (IEEE 1588-2008, UDP/IPv4, E2E, always with hardware timestamps). *PTP status* shows the lock state and the grandmaster.
| Setting | Default | Notes |
|---|---|---|
@@ -127,7 +127,6 @@ The board locks its media clock to the PTP grandmaster on the network (IEEE 1588
| Domain | 0 | Must match your grandmaster. |
| Priority 1 / 2 | 250 / 250 | Lower wins the grandmaster election. |
| Intervals, timeout, DSCP (46) | | Presets below set them. |
-| HW timestamping | on | Leave on (much more accurate). |
**Presets:**
- **Riedel SIC defaults:** TimeReceiver only, priorities 128/126, Riedel's intervals. Use this when a Riedel system provides the clock.
diff --git a/web/index.html b/web/index.html
index 2150596..3b7d5e2 100644
--- a/web/index.html
+++ b/web/index.html
@@ -122,7 +122,6 @@ e.g. curl -X POST http://p4-aes67.local/api/player/next
-
Transport UDP/IPv4 224.0.1.129 (ports 319/320), delay mechanism E2E.
@@ -284,7 +283,7 @@ function showPlayer(p) {
const CORE_DEF = {
// Intervals follow Riedel SIC AES67 defaults; role/priorities are the "fallback TimeTransmitter" setup.
ptp:{mode:'multicast',role:'auto',domain:0,priority1:250,priority2:250,log_sync:0,log_announce:1,
- announce_timeout:3,log_delay_req:0,dscp:46,hw_ts:true},
+ announce_timeout:3,log_delay_req:0,dscp:46},
aes67:{name:'AES67',enabled:true,mcast:'239.69.1.10',port:5004,ttl:32,dscp:34,pt:96,encoding:'L24',
rate:'48000',channels:'2',ptime:'1',ssrc:0,clk_offset:0,mono_sum:false,discovery:'sap',session_id:1,session_ver:1},
net:{hostname:'aes67',vlan:false,web_on:'both',dhcp:true,ip:'',mask:'',gw:'',dns:''},