ADC까지, 신호 확인 필요(반사 신호 약함 or 뒤쪽을 찍고 있음)
This commit is contained in:
+118
@@ -0,0 +1,118 @@
|
||||
# TODO
|
||||
|
||||
현재 프로젝트에서 다음에 이어서 작업할 항목들을 정리한다.
|
||||
|
||||
## 현재 상태
|
||||
|
||||
- BLE 보안은 아직 개발 모드 기준이다.
|
||||
- `CONFIG_BT_SMP=n`: [prj.conf](/C:/jhChun/blinky/prj.conf:42)
|
||||
- `BLE_DEV_MODE = 1`: [src/ble/ble_service.h](/C:/jhChun/blinky/src/ble/ble_service.h:18)
|
||||
- `Dev mode: no security / Production mode: bonding + passkey (TODO)`: [src/ble/ble_service.c](/C:/jhChun/blinky/src/ble/ble_service.c:10)
|
||||
- 플래시 저장소는 아직 미구현이다.
|
||||
- `Phase 3: FDS/NVS (TODO)`: [src/main.c](/C:/jhChun/blinky/src/main.c:328)
|
||||
- DFU는 아직 미구현이다.
|
||||
- `CONFIG_BOOTLOADER_MCUBOOT` 미설정: [build/blinky/zephyr/.config](/C:/jhChun/blinky/build/blinky/zephyr/.config:94)
|
||||
- 파티션도 앱 단일 영역만 사용 중: [build/partitions.yml](/C:/jhChun/blinky/build/partitions.yml:1)
|
||||
- `mcf?`는 현재 고정값 반환만 구현되어 있다.
|
||||
- `freq=1`, `cycles=7`, `avg=10`, `delay=10`, `samples=100`: [src/parser.c](/C:/jhChun/blinky/src/parser.c:38)
|
||||
- 실제 측정도 현재 위 고정값을 사용한다.
|
||||
- `avg=10`: [src/parser.c](/C:/jhChun/blinky/src/parser.c:28)
|
||||
- `cycles=7`, `delay=10us`: [src/drivers/piezo/piezo.h](/C:/jhChun/blinky/src/drivers/piezo/piezo.h:12)
|
||||
- `samples=100`: [src/drivers/echo_adc/echo_adc.h](/C:/jhChun/blinky/src/drivers/echo_adc/echo_adc.h:11)
|
||||
|
||||
## 1. BLE 보안
|
||||
|
||||
목표:
|
||||
- LESC
|
||||
- MITM
|
||||
- Fixed Passkey
|
||||
- Bonding
|
||||
|
||||
해야 할 일:
|
||||
- `CONFIG_BT_SMP=y`
|
||||
- `CONFIG_BT_FIXED_PASSKEY=y`
|
||||
- `CONFIG_BT_BONDABLE=y`
|
||||
- `CONFIG_BT_SMP_ENFORCE_MITM=y`
|
||||
- 필요 시 `CONFIG_BT_SMP_SC_ONLY=y` 또는 `CONFIG_BT_SMP_SC_PAIR_ONLY=y`
|
||||
- `bt_conn_auth_cb` 등록
|
||||
- 고정 패스키를 `m_static_passkey`와 연결
|
||||
- 기본값 선언: [src/main.h](/C:/jhChun/blinky/src/main.h:21)
|
||||
- RAM 보관: [src/main.c](/C:/jhChun/blinky/src/main.c:56)
|
||||
- 본딩 키 복원을 위해 `BT_SETTINGS + SETTINGS + NVS` 연동
|
||||
|
||||
주의:
|
||||
- Bonding은 저장소 없이 켜도 부팅 후 유지되지 않는다.
|
||||
- 보안 설정을 올리면 앱 테스트 절차도 함께 바뀐다.
|
||||
|
||||
## 2. 플래시 저장소 (NVS)
|
||||
|
||||
목표:
|
||||
- 예전 FDS 역할을 Zephyr/NCS 방식으로 대체
|
||||
- 측정 파라미터, passkey, 필요 시 serial/HW info 저장
|
||||
|
||||
권장 방향:
|
||||
- FDS를 다시 붙이기보다 `NVS` 사용
|
||||
- Bluetooth bonding 키는 `BT_SETTINGS`가 저장하고
|
||||
- 앱 파라미터는 별도 `NVS` 또는 `settings/NVS backend`로 저장
|
||||
|
||||
우선 저장할 후보:
|
||||
- piezo config
|
||||
- `freq`
|
||||
- `cycles`
|
||||
- `avg`
|
||||
- `delay_us`
|
||||
- `samples`
|
||||
- passkey
|
||||
- 필요 시 `SERIAL_NO`, `HW_NO`
|
||||
|
||||
해야 할 일:
|
||||
- `piezo_config` 구조체 추가
|
||||
- 부팅 시 기본값 로드 후 NVS 값이 있으면 덮어쓰기
|
||||
- `mcf?`는 구조체 읽기
|
||||
- `mcs?`는 구조체 갱신 + 저장
|
||||
- 유효 범위 체크 추가
|
||||
|
||||
현재 메모:
|
||||
- `mcf?`는 아직 고정 응답만 구현됨: [src/parser.c](/C:/jhChun/blinky/src/parser.c:442)
|
||||
- `mcs?`는 아직 없음: [src/parser.c](/C:/jhChun/blinky/src/parser.c:503)
|
||||
|
||||
## 3. DFU
|
||||
|
||||
목표:
|
||||
- BLE 기반 펌웨어 업데이트 지원
|
||||
|
||||
권장 방향:
|
||||
- `MCUboot + MCUmgr SMP over BLE`
|
||||
|
||||
해야 할 일:
|
||||
- `CONFIG_BOOTLOADER_MCUBOOT=y`
|
||||
- `CONFIG_MCUMGR=y`
|
||||
- `CONFIG_MCUMGR_TRANSPORT_BT=y`
|
||||
- `CONFIG_IMG_MANAGER=y`
|
||||
- 필요 시 `CONFIG_MCUMGR_GRP_IMG=y`
|
||||
- 파티션 구성 추가
|
||||
- `slot0`
|
||||
- `slot1`
|
||||
- 필요 시 `scratch` 또는 overwrite-only 전략
|
||||
- 광고/서비스에 SMP transport가 정상 노출되는지 확인
|
||||
|
||||
주의:
|
||||
- 지금 프로젝트는 NUS만 사용 중이라 일반적인 OTA DFU는 바로 안 된다.
|
||||
- DFU를 넣으면 파티션 구조와 빌드 방식이 함께 바뀐다.
|
||||
|
||||
## 4. 권장 작업 순서
|
||||
|
||||
1. `piezo_config` 구조체 도입
|
||||
2. `mcf?`를 고정값이 아닌 실제 구조체 반환으로 변경
|
||||
3. `mcs?` 구현
|
||||
4. `NVS` 저장/복원 구현
|
||||
5. BLE 보안 적용
|
||||
6. Bonding 저장 확인
|
||||
7. 마지막에 DFU 적용
|
||||
|
||||
## 5. 체크 포인트
|
||||
|
||||
- `mcf?` 값과 실제 측정값이 항상 같아야 함
|
||||
- `mcs?`로 바꾼 값이 재부팅 후에도 유지되어야 함
|
||||
- 보안 적용 후 앱에서 pairing/passkey 흐름 확인
|
||||
- DFU 적용 후 기존 NUS 기능과 충돌 없는지 확인
|
||||
@@ -20,8 +20,8 @@
|
||||
| 1 | 1 | 0 | 1 | 0 |
|
||||
| 2 | 1 | 0 | 0 | 1 |
|
||||
| 3 | 1 | 0 | 1 | 1 |
|
||||
| 4 | 0 | 1 | 1 | 1 |
|
||||
| 5 | 0 | 1 | 0 | 1 |
|
||||
| 4 | 0 | 1 | 0 | 0 |
|
||||
| 5 | 0 | 1 | 1 | 0 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -405,7 +405,7 @@ rbb: ... [temp_L][temp_H] ... ← °C × 100 단위 (25.50°C = 2550)
|
||||
## 9. 다음 구현 순서
|
||||
|
||||
```
|
||||
Step 1 ✅ 온도 센서 (tmp235.c) — 완료, 테스트 필요
|
||||
Step 1 ✅ 온도 센서 (tmp235.c) — 완료
|
||||
|
||||
Step 2 피에조 드라이버 (piezo.c)
|
||||
└─ GPIO 초기화, MUX, SW burst (NOP 기반, nrf HAL 직접 사용)
|
||||
|
||||
Reference in New Issue
Block a user