|
Bogdan Timofte
authored
2 weeks ago
|
1
|
# HM-10 and DX-BT18 Module Working Summary
|
|
|
2
|
|
|
|
3
|
This note summarizes two imported module references used to reason about the Bluetooth path of the `UM25C` / `UM34C` family.
|
|
|
4
|
|
|
|
5
|
## Source Set
|
|
|
6
|
|
|
|
7
|
### `DSD TECH HM-10 datasheet.pdf`
|
|
|
8
|
|
|
|
9
|
- imported file: `Documentation/Research Resources/Manuals/DSD TECH HM-10 datasheet.pdf`
|
|
|
10
|
- pages: `38`
|
|
|
11
|
- SHA-1: `37f96b85b742312d8db592241c97fad95c7ac2a9`
|
|
|
12
|
- scope: generic `HM-10` BLE serial module reference
|
|
|
13
|
|
|
|
14
|
### `Users-Manual-4216091.pdf`
|
|
|
15
|
|
|
|
16
|
- imported file: `Documentation/Research Resources/Manuals/Users-Manual-4216091.pdf`
|
|
|
17
|
- pages: `14`
|
|
|
18
|
- SHA-1: `7e175833582422dcd8005399dc01d2f42d27e7b7`
|
|
|
19
|
- scope: `DX-BT18` dual-mode Bluetooth module user manual
|
|
|
20
|
- title page identifies:
|
|
|
21
|
- `FCC ID: 2AKS8DX-BT18`
|
|
|
22
|
- `Model Name: DX-BT18`
|
|
|
23
|
|
|
|
24
|
## Why These Matter
|
|
|
25
|
|
|
|
26
|
The current app models the `UM25C` / `UM34C` family as using an `HM-10`-style radio path over:
|
|
|
27
|
|
|
|
28
|
- service `FFE0`
|
|
|
29
|
- characteristic `FFE1`
|
|
|
30
|
|
|
|
31
|
These manuals help us understand whether that path is:
|
|
|
32
|
|
|
|
33
|
- generic `HM-10` BLE serial behavior
|
|
|
34
|
- or a more specific dual-mode module story that also explains desktop and iOS support
|
|
|
35
|
|
|
|
36
|
## Confirmed `HM-10` Baseline
|
|
|
37
|
|
|
|
38
|
The `HM-10` datasheet confirms a classic BLE-uart bridge shape:
|
|
|
39
|
|
|
|
40
|
- BLE version: `4.0 BLE`
|
|
|
41
|
- default service: `0xFFE0`
|
|
|
42
|
- default characteristic: `0xFFE1`
|
|
|
43
|
- characteristic mode: `Notify` and `Write`
|
|
|
44
|
- UART-side AT configuration before connection
|
|
|
45
|
|
|
|
46
|
Useful implications:
|
|
|
47
|
|
|
|
48
|
- this strongly supports the app's existing `FFE0` / `FFE1` assumption for the `UM` family
|
|
|
49
|
- it also supports the idea that the application-layer `0xF0` request and `130`-byte UM snapshot sit above a simple serial-like BLE transport
|
|
|
50
|
|
|
|
51
|
## Confirmed `DX-BT18` Details
|
|
|
52
|
|
|
|
53
|
The `DX-BT18` manual is even more interesting because it describes a dual-mode module:
|
|
|
54
|
|
|
|
55
|
- Bluetooth `4.2`
|
|
|
56
|
- `BR/EDR + BLE`
|
|
|
57
|
- UART interface
|
|
|
58
|
- default Bluetooth name: `DX-BT18`
|
|
|
59
|
- default SPP pairing code: `1234`
|
|
|
60
|
- default service UUID: `FFE0`
|
|
|
61
|
- default `Notify/Write` UUID: `FFE1`
|
|
|
62
|
- default `Write` UUID: `FFE2`
|
|
|
63
|
|
|
|
64
|
Additional points explicitly documented:
|
|
|
65
|
|
|
|
66
|
- the module supports `SPP` for desktop, notebook, Android phones, and Bluetooth master modules
|
|
|
67
|
- the module supports `BLE` at the same time
|
|
|
68
|
- the module can connect directly to `iOS` devices with BLE
|
|
|
69
|
- the SPP and BLE sides use the same module MAC address
|
|
|
70
|
- the Bluetooth names for SPP and BLE are the same
|
|
|
71
|
|
|
|
72
|
## Best Working Interpretation For `UM25C` / `UM34C`
|
|
|
73
|
|
|
|
74
|
These module documents help reconcile the previously awkward mix of clues around the UM family:
|
|
|
75
|
|
|
|
76
|
- Windows desktop software that looks serial-port-like
|
|
|
77
|
- Android app support
|
|
|
78
|
- iOS app support
|
|
|
79
|
- existing app code that uses an `HM-10`-style BLE service
|
|
|
80
|
|
|
|
81
|
Best current interpretation:
|
|
|
82
|
|
|
|
83
|
- the `UM25C` / `UM34C` family likely uses a radio path that is compatible with the `HM-10` style `FFE0` / `FFE1` serial bridge model
|
|
|
84
|
- a `DX-BT18`-class dual-mode module is a plausible concrete implementation because it explains:
|
|
|
85
|
- BLE access for iOS
|
|
|
86
|
- serial-port-style behavior for desktop
|
|
|
87
|
- the same vendor family naming and wiring style
|
|
|
88
|
|
|
|
89
|
This does not prove every `UM25C` / `UM34C` device contains the exact same module, but it moves the current app assumptions onto much firmer ground.
|
|
|
90
|
|
|
|
91
|
## Transport-Level Validation For The Current App
|
|
|
92
|
|
|
|
93
|
High-confidence validations:
|
|
|
94
|
|
|
|
95
|
- keeping `UM25C` / `UM34C` on the `FFE0` / `FFE1` path is justified
|
|
|
96
|
- the current app's `HM-10`-style transport model is consistent with both manuals
|
|
|
97
|
- the family can plausibly expose BLE to iOS while still appearing as serial-port style in desktop workflows
|
|
|
98
|
|
|
|
99
|
Moderate-confidence inferences:
|
|
|
100
|
|
|
|
101
|
- `DX-BT18` may be closer to the real `UM25C` / `UM34C` module than a pure `HM-10`
|
|
|
102
|
- if so, `FFE2` may exist as a write-only characteristic even though the current app only needs `FFE1`
|
|
|
103
|
- dual-mode behavior may explain why family documentation mixes Bluetooth app control with desktop COM-port language
|
|
|
104
|
|
|
|
105
|
## Throughput and Framing Hints
|
|
|
106
|
|
|
|
107
|
The manuals provide useful transport hints, but not product payload maps:
|
|
|
108
|
|
|
|
109
|
- `HM-10` datasheet lists typical asynchronous throughput in the `2-6 KBytes` range
|
|
|
110
|
- `DX-BT18` lists example BLE throughput around `5 KB/s` under one test setup
|
|
|
111
|
- both manuals still describe a UART-bridge style transport, not a product-specific application protocol
|
|
|
112
|
|
|
|
113
|
This aligns with the existing UM-family parser model:
|
|
|
114
|
|
|
|
115
|
- BLE provides the transport
|
|
|
116
|
- the meter firmware defines the `0xF0` request and `130`-byte snapshot semantics
|
|
|
117
|
|
|
|
118
|
## What These Manuals Do Not Prove
|
|
|
119
|
|
|
|
120
|
These module manuals do not directly validate:
|
|
|
121
|
|
|
|
122
|
- the `0xF0` request command
|
|
|
123
|
- the `130`-byte UM payload size
|
|
|
124
|
- the byte offsets in the UM snapshot
|
|
|
125
|
- whether the installed module in a specific `UM25C` or `UM34C` is exactly `DX-BT18`
|
|
|
126
|
|
|
|
127
|
So they validate the radio shape, not the meter payload.
|
|
|
128
|
|
|
|
129
|
## Practical Implications For The Codebase
|
|
|
130
|
|
|
|
131
|
- keep the `UM25C` / `UM34C` transport separate from `TC66C`
|
|
|
132
|
- keep the `UM25C` / `UM34C` transport on the `FFE0` / `FFE1` path
|
|
|
133
|
- treat desktop serial-port clues for the UM family as compatible with BLE/iOS support, not contradictory
|
|
|
134
|
- if future captures show `FFE2` on a UM-family device, that would fit the `DX-BT18` manual and should not be surprising
|