Commit Graph

56 Commits

Author SHA1 Message Date
jhChun
8fdc153ed5 블루투스 스캐닝 LED 1초 간격 점멸 -> 0.5초 간격 점멸 2026-03-31 17:58:49 +09:00
jhChun
d8ef9bcb41 dev 모드 BLE 연결 수정
- dev 모드인 경우 보안 x
2026-03-31 17:58:33 +09:00
jhChun
007e0b5683 Ver VBTFW0102 2026-03-31 14:27:14 +09:00
jhChun
d63a9cfa3c BLE 보안 실패 시 자동 재페어링 및 버그 3건 수정
- 앱과 기기 사이 키가 불일치하는 경우 새로운 키 생성 요청(재페어링 허용)
- main.c: PM_EVT_CONN_SEC_CONFIG_REQ 중복 핸들러 제거
- main.c: DEV 모드에서 pm_peers_delete() 이중 호출 방지
- main.c: 활성 연결 중 advertising 재시작 방지(m_conn_handle 체크)
- ble_quick_security: 보안 실패 시 bond 삭제 + 자동 재페어링 시도
- ble_quick_security: allow_repairing = true (항상 재페어링 허용)
2026-03-31 14:17:35 +09:00
jhChun
217d741d31 LED 상태 설정 명령 추가
- BLE 명령으로 LED 상태 설정
2026-03-31 14:01:02 +09:00
jhChun
f464838ed4 Connection Interval 30ms로 변경
- 기존: MIN=20, MAX=75
- 변경: MIN=30, MAX=30
- GAP Event Length=24(30ms)에 맞춰 변경함
- Piezo 6채널 ADC 데이터 7패킷 송신 시 3~4패킷/CI로, ~60ms 소요
2026-03-31 09:55:47 +09:00
jhChun
a150d1da96 LED 직접 제어 모듈 추가(BSP 대체)
- 전원 ON/OFF, 블루투스 스캐닝 초록 LED 적용 완료
2026-03-30 18:00:38 +09:00
jhChun
11a0b3f11a FW 버전 업데이트 2026-03-30 17:10:17 +09:00
jhChun
5e27eb762d BLE Piezo 6채널 데이터 패킷 병합 (reb+red -> reb 단일 패킷)
- BLE_MTU_SIZE 240 -> 244 (ATT MTU 247 - 3 = 244, 기존 4B 낭비 해소)
- reb: 헤더 축소(14B → 6B) 후 데이터 병합 -> 119샘플까지 단일 패킷(현재 100샘플)
- reb: 헤더에서 peak_raw/peak_index/baseline_raw/버전마커 제거
  → PC에서 raw 데이터로 직접 계산, 단일 패킷이므로 버전마커 불필요
- 채널 간 딜레이 50ms -> 5ms (dr_binary_tx_safe 내부 재시도로 TX 보장)
- delta 전송(rdb/rdd)도 동일 방식 적용, 종료 패킷(ree:/rde:) 제거
- 채널 완료 판단: 종료 패킷(ree:) 제거, reb: 수신 시 채널 완료 (100샘플 기준 단일 패킷)
- 전체 완료는 기존과 동일하게 raa:로 판단
2026-03-30 16:37:41 +09:00
jhChun
689ad29aa6 BLE 명령 수신 시 Connection interval 재협상 요청 추가
- Windows BLE 스택이 장시간 연결 시 CI를 수초까지 늘려 응답이 지연되는 문제 대응
- 30초에 1회 20~75ms로 돌려달라고 요청
2026-03-30 15:27:22 +09:00
jhChun
aaf22d942a BLE 연결 실패 발생 시 추적을 위한 RTT 로그 추가
- 0: IMU 값 송신(msp)- 1: 배터리 SAADC 시작- 2: 배터리 콜백 완료(battery_event_handler)- 3: 배터리 대기 루프 탈출- 4: IMU 읽기 완료- 5: Piezo RX/TX Active- 6: 온도 SAADC 시작- 7: 온도 콜백 완료(tmp235_voltage_handler)- 8: 온도 대기 루프 탈출- 9: rbb: 패킷 전송- 10: Piezo 캡처 시작(maa_async_start)- 11: 전체 종료(mbb)
2026-03-30 15:22:59 +09:00
jhChun
91e294da5a 2M PHY 능동 요청 추가
- BLE 5.0 2M PHY는 심볼 레이트를 1Msps -> 2Msps로 높여 동일 패킷을 절반 시간에 전송- 연결 즉시 Peripheral에서 2M PHY를 능동 요청- 2M PHY 미지원 Central인 경우 1M 유지
2026-03-30 14:49:34 +09:00
jhChun
856cf084b2 GAP Event Length 확장(6 -> 24) 및 RAM 주소 조정
- GAP Event Length: BLE 통신 시 Connection interval 마다 Central과 Peripheral이 데이터를 주고 받을 수 있는 시간 슬롯으로 단위는 1.25ms
- SoftDevice RAM 사용량 증가로 시작 주소 조정(0x20002AF8 → 0x20002C00)
2026-03-30 14:48:32 +09:00
jhChun
9e48c084b4 SAADC 안정성 개선: 버퍼/해제 순서 수정
- 배터리 SAADC 더블 버퍼 -> 싱글 버퍼(1회 측정 후 해제이므로 불필요)
- 콜백 내 buffer_convert 제거(해제 직전 다음 버퍼 등록 제거)
- uninit 순서 변경: channel_uninit -> uninit(채널 먼저 해제)
- 5초마다 배터리를 측정하는 battery_loop에 info4(전체 측정) 체크 추가(전체 측정 중 SAADC 동시 init 충돌 방지)
2026-03-30 12:10:53 +09:00
jhChun
a9fa050bb0 SAADC 우선순위 변경
- NRFX_SAADC_CONFIG_IRQ_PRIORITY = 0 -> 6
- C:\jhChun\VesiScan-Basic_jhChun_new\components\libraries\util\app_util_platform.h
- 위 경로에 Cortex-M4(nRF52840) 우선순위 배분표가 정의되어 있음
- 0, 1, 4는 SoftDevice 전용, 앱 사용 가능한 우선순위는 2, 3, 5, 6(권장), 7
- 권장되는 우선순위인 6위로 변경
- SAADC 해상도 10 -> 12bit 변경 및 콜백 내 연산 int -> float 변경으로 ISR 처리 시간이 길어지고, SoftDevice와 충돌 가능성이 높아지는 것으로 추측
- 충돌이 발생하는 경우 콜백 지연 또는 누락
2026-03-30 11:41:59 +09:00
jhChun
de9774a7ce 양산 모드인 경우 BLE 보안 실패 처리 개선
- PM 핸들러 중복 호출 제거
- conn_sec_failed 재페어링 로직 일원화
- NRF_ERROR_BUSY 크래시 수정: 보안 실패 시 보드 리셋되는 현상 개선
2026-03-27 16:47:46 +09:00
jhChun
3455bc2b38 DEFAULT_PASSKEY 매크로 통합 + advertising_start 조건 변경
- 본딩 삭제가 실행되지 않는 버그 개선
2026-03-27 16:17:09 +09:00
jhChun
153c4a027f 배터리, 온도 SAADC 해상도 12bit 전환 및 float 연산 적용
- SAADC 해상도 10bit -> 12bit
- int 연산 -> float 연산 -> BLE 전송 시 int
2026-03-27 16:12:31 +09:00
jhChun
7459fffc20 배터리 전압 TACQ 조정 및 콜백 대기 조건 변경
- 배터리, 온도 모두 오버샘플링 X4 및 TACQ=10us 적용
- 배터리 측정 시 SAADC 콜백 완료 최대 100ms 대기, 콜백 오면 즉시 탈출(온도 측정 시와 동일)
- 전체 측정 시 SAADC 점유 및 충돌 방지
2026-03-27 13:54:39 +09:00
jhChun
4c2948eb43 Firmware 버전 식별 코드 정의를 main.h로 이동
- parser.c: DR_DEVICE_VERSION 제거
2026-03-27 10:52:26 +09:00
jhChun
89cef54f86 cpd_eraseALL.bat 추가: 전체 erase 개발용 플래싱 스크립트 2026-03-27 10:50:56 +09:00
jhChun
923f29db82 Firmware 버전 식별 코드 정의를 main.h로 이동
- parser.c: DR_DEVICE_VERSION 제거
2026-03-27 10:05:46 +09:00
jhChun
92ebe8ebb4 기본 버전 정보 및 패스키 기본값을 fstorage.h 매크로로 통합 2026-03-27 09:43:50 +09:00
jhChun
5db067f483 FDS 영역 보존 erase 옵션 추가
- cpd.bat: 기존 erase 옵션 설정 x, DEFAULT=ERASE_ALL(칩 전체 삭제)
2026-03-27 08:53:27 +09:00
jhChun
f666892987 배터리, 온도 전압 오버샘플링 및 TACQ 조정
- 배터리: 샘플링 4, TACQ 20us
- 온도: 샘플링 4, TACQ 10us(기본값)
2026-03-26 16:59:38 +09:00
jhChun
379bf9c294 배터리 전압 SAADC 오버샘플링 X4
- battery_saadc.c: 기존 1회 샘플링 -> 4회 샘플링 및 평균
- 배터리 전압 ADC 노이즈에 의한 측정값 흔들림 개선
2026-03-26 14:52:40 +09:00
jhChun
6fbd30244f 압력센서 관련 코드 정리
- battery_saadc.c/.h: 압력센서 미탑재로 관련 코드 제거
2026-03-26 12:23:40 +09:00
jhChun
b820589883 GPIO 초기화 POWER_HOLD(P0.8) 중복 설정 제거
- main.c: power_hold_init()에서 전원버튼(P0.8) 설정 후 gpio_init()에서 중복 설정
- gpio_init()에서 중복 설정 부분 제거
2026-03-26 11:42:26 +09:00
jhChun
af7afff117 EEPROM 레거시 코드 정리
- EEP_WP, eeprom_control, power_gpio_init 삭제
2026-03-26 11:39:12 +09:00
jhChun
dd3bce4f94 부트 로그 수정 2026-03-26 11:24:13 +09:00
jhChun
9580bffa65 DEBUG_MINIMAL_BOOT 삭제
- main.c: DEBUG_MINIMAL_BOOT 삭제 및 분기문 정리
- main.c: minimal_gpio_init() + full_gpio_init() → gpio_init() 하나로 통합
- main.c: icm42670_init() 분기 제거, advertising_start()만 남김
- power_control.c: SW I2C/센서 전원 시퀀스 제거, p_order = 2로 즉시 완료
2026-03-26 11:12:26 +09:00
jhChun
e461f59a5f 현재 IMU 센서는 폴링 방식 적용
- app_raw_main.c: 인터럽트 방식 적용을 위한 레거시 파일
2026-03-26 11:06:52 +09:00
jhChun
ed3a8d7acd BLE TX 재시도 대기 시간 단축
- main.c: dr_binary_tx_safe 함수 nrf_delay_ms(5) × 최대 100회 -> nrf_delay_ms(2) × 최대 20회
- 전력 소모 방지
2026-03-25 16:47:48 +09:00
jhChun
7b8103a530 디버그 로그 통일(UART -> RTT)
- app_raw.c: printf() -> DBG_PRINTF(RTT)
- 전력 소모 방지: CPU 문자열 포맷팅 실행 제거
2026-03-25 16:07:28 +09:00
jhChun
a805c0ab78 BLE Slave Latency 적용
- main.c: SLAVE_LATENCY 0 -> 4
- 1초 기준 연결 간격 75ms 마다 폴링이 오는데 데이터가 없는 경우 4번 건너뛰어 Radio On 횟수 줄임
- 전력 소모 방지: BLE 연결 중 Radio 절전
2026-03-25 15:53:56 +09:00
jhChun
0c44f32724 내부 전압 변환 방식 변경 LDO -> DC-DC
- sdk_config.h: NRFX_POWER_CONFIG_DEFAULT_DCDCEN 1
- sdk_config.h: POWER_CONFIG_DEFAULT_DCDCEN 1
- 전력 소모 방지
2026-03-25 15:46:22 +09:00
jhChun
5d507a05ac Piezo 측정 평균화를 위한 반복 횟수 기본값 3회로 변경
- fstorage.c: 5 -> 3
2026-03-25 15:44:19 +09:00
jhChun
e1b4793d57 전원 켜질 때 Piezo TX/RX Active 제거
- main.c: main문의 Piezo 드라이버 초기화 + 전원 -> 초기화만 진행, 측정 시에만 Piezo TX/RX Active
- 전력 소모 방지
2026-03-25 14:26:12 +09:00
jhChun
e29196c770 UART 비활성화
- main.c: main문의 uart_init(); 주석 처리
- 전력 소모 방지(약 1mA)
2026-03-25 11:25:55 +09:00
jhChun
f3d6dd290d FDS write 콜백 무한 대기 조건 변경
- fstorage.c: FDS write 콜백 무한 대기 -> 3초 타임아웃
2026-03-24 18:25:50 +09:00
jhChun
1aa6585725 BLE 연결이 끊어지는 경우 비동기 측정 상태로 인한 먹통 현상 방지
- main.c: BLE disconnected -> maa_async_abort() 함수 호출
- dr_adc121s051c: maa_async_abort() 함수에서 상태를 IDLE로 초기화 및 정리
2026-03-24 18:18:52 +09:00
jhChun
1f97bee322 온도 센서 콜백 대기 조건 변경
- parser.c: 콜백 완료 플래그 무한대기 -> 최대 100ms 대기, 콜백 오면 즉시 탈출
2026-03-24 17:59:58 +09:00
jhChun
35e09eee33 온도 센서 콜백 완료 플래그 추가
- tmp235_q1.c: SAADC 완료 플래그(tmp235_saadc_done) 추가
- parser.c: all_sensors()에서 고정 1ms 대기 -> 콜백 완료 플래그 대기로 변경
2026-03-24 17:26:36 +09:00
jhChun
be3ebc9a63 apply latest local changes 2026-03-23 16:22:25 +09:00
jhChun
35d6956de2 타이밍 최적화
- 온도 측정, Piezo 측정 사이 딜레이 줄이기
- Piezo 한 채널에서 평균화를 위한 반복 측정 사이 딜레이 줄이기

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 10:43:59 +09:00
jhChun
75ee2187d6 Bit-bang SPI(8MHz)에서 HW SPI(SPIM3, 16MHz)로 변경
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 18:04:04 +09:00
jhChun
aa3c040ae0 - FDS 피에조 파라미터 구조체 변경 (pd_adc_cnt/pd_delay_us 삭제, piezo 5개 필드 추가)
- maa/mbb 앱 파라미터 수신 → FDS 저장 기능 추가
- magic_number 변경 (0x20260319), cycles 범위 3~7로 제한

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 18:20:52 +09:00
jhChun
3ecd81c252 - Piezo 6ch 측정 + 센서(배터리, IMU, 온도) 측정: mbb 명령어 추가
- Flash Memory Piezo 측정 파라미터 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:54:06 +09:00
jhChun
96a46a26dd maa samples 140->100 변경, mec/maa 수신 시 Piezo 자동 Active/Sleep
- MAA_NUM_SAMPLES 140에서 100으로 변경 (DR_ADC_ECHO_SAMPLES_MAX 제한)
- 단일(mec) 및 모든 채널(maa) 에코 캡처 명령 수신 시 Piezo 자동 Active, 응답 송신 후 Sleep
- Cmd_mpa 중복 호출 정리 (dr_piezo_system_init 내부에 power_on 포함)
- 채널별 디버그 로그 추가
- 코드 리뷰 주석 정리 및 기타 파일 업데이트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:03:04 +09:00
jhChun
39b4ffe66a 레거시 cmd_parse.c 제거 및 dr_cmd_parser 직접 호출 구조로 전환
- main.c에서 received_command_process() 대신 dr_cmd_parser() 직접 호출
- cmd_parse.c 전역변수/함수(SERIAL_NO, HW_NO, param_error 등) main.c로 이동
- g_plat 초기화를 main.c 초기화 구간으로 이동, log를 RTT 출력으로 연결
- 미사용 명령 삭제: mta, mtr, mst, mxz, myz, mpn, mdc
- cmd_parse.c/h 삭제, 참조하던 5개 파일 include 정리

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 15:45:33 +09:00