Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cc8c4d36d5 | |||
| 712259eec5 | |||
| 57ae49fd09 |
@@ -1,350 +0,0 @@
|
||||
# VictronBLE Project Context
|
||||
|
||||
## Project Overview
|
||||
Portable Arduino library for reading Victron Energy devices via Bluetooth Low Energy (BLE). Runs on ESP32 (Bluedroid) and nRF52840 (Bluefruit); BLE scanning is the only platform-specific code (src/esp32, src/nrf52), while decoding and AES-128-CTR crypto are common.
|
||||
|
||||
## Key Files
|
||||
- `src/` - Main library source code
|
||||
- `examples/` - Example sketches
|
||||
- `experiment/` - Experimental code
|
||||
- `library.json` / `library.properties` - PlatformIO/Arduino library config
|
||||
|
||||
## Build & Test
|
||||
- This is an Arduino/PlatformIO library
|
||||
- Test with PlatformIO: `pio run`
|
||||
|
||||
## Session Notes
|
||||
<!-- Add learnings from each session below -->
|
||||
|
||||
|
||||
### Session: 2026-01-29 18:41
|
||||
**Modified files:**
|
||||
- TODO
|
||||
|
||||
|
||||
### Session: 2026-02-11 13:51
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- .claude/scripts/update-claude-md.sh
|
||||
- TODO
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
|
||||
|
||||
### Session: 2026-02-11 15:57
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- .claude/scripts/update-claude-md.sh
|
||||
- TODO
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
|
||||
|
||||
### Session: 2026-02-12 18:02
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- .claude/scripts/update-claude-md.sh
|
||||
- TODO
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
|
||||
|
||||
### Session: 2026-02-12 18:02
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- .claude/scripts/update-claude-md.sh
|
||||
- TODO
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- library.json
|
||||
|
||||
|
||||
### Session: 2026-02-12 18:06
|
||||
**Commits:**
|
||||
```
|
||||
5a210fb Experimenting with a claude file and created new logging example
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- TODO
|
||||
- examples/Logger/platformio.ini
|
||||
- examples/Logger/src/main.cpp
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- library.json
|
||||
|
||||
|
||||
### Session: 2026-02-12 18:08
|
||||
**Commits:**
|
||||
```
|
||||
5a210fb Experimenting with a claude file and created new logging example
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- README.md
|
||||
- TODO
|
||||
- VERSIONS
|
||||
- examples/Logger/platformio.ini
|
||||
- examples/Logger/src/main.cpp
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- library.json
|
||||
- library.properties
|
||||
|
||||
|
||||
### Session: 2026-02-12 18:10
|
||||
**Commits:**
|
||||
```
|
||||
5a210fb Experimenting with a claude file and created new logging example
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- README.md
|
||||
- TODO
|
||||
- VERSIONS
|
||||
- examples/Logger/platformio.ini
|
||||
- examples/Logger/src/main.cpp
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- library.json
|
||||
- library.properties
|
||||
|
||||
|
||||
### Session: 2026-02-12 18:23
|
||||
**Commits:**
|
||||
```
|
||||
a843eb9 Keep v0.3.1
|
||||
5a210fb Experimenting with a claude file and created new logging example
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- README.md
|
||||
- VERSIONS
|
||||
- library.json
|
||||
- library.properties
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-12 18:35
|
||||
**Commits:**
|
||||
```
|
||||
a64fef8 New version with smaller memory footprint etc
|
||||
a843eb9 Keep v0.3.1
|
||||
5a210fb Experimenting with a claude file and created new logging example
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-13 11:02
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-15 18:59
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- library.json
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-15 19:06
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- library.json
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-15 19:10
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- library.json
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-15 19:18
|
||||
**Commits:**
|
||||
```
|
||||
8a2402c Repeater and Test code for ESP Now
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- examples/FakeRepeater/platformio.ini
|
||||
- examples/FakeRepeater/src/main.cpp
|
||||
- examples/Receiver/platformio.ini
|
||||
- examples/Receiver/src/main.cpp
|
||||
- examples/Repeater/platformio.ini
|
||||
- examples/Repeater/src/main.cpp
|
||||
- library.json
|
||||
|
||||
|
||||
### Session: 2026-02-15 19:20
|
||||
**Commits:**
|
||||
```
|
||||
24712c2 Work on receiver and sender
|
||||
8a2402c Repeater and Test code for ESP Now
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- examples/Receiver/platformio.ini
|
||||
- examples/Receiver/src/main.cpp
|
||||
- examples/Repeater/src/main.cpp
|
||||
|
||||
|
||||
### Session: 2026-02-28 12:26
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- examples/Receiver/src/main.cpp
|
||||
- examples/Repeater/src/main.cpp
|
||||
|
||||
|
||||
### Session: 2026-02-28 14:32
|
||||
**Commits:**
|
||||
```
|
||||
4944757 Fix to be non blocking without tasks
|
||||
31765c7 Update notes
|
||||
84d153c Single callback version - vastly simplified.
|
||||
```
|
||||
**Modified files:**
|
||||
- examples/Logger/src/main.cpp
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- examples/Repeater/src/main.cpp
|
||||
- library.json
|
||||
- library.properties
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-28 14:33
|
||||
**Commits:**
|
||||
```
|
||||
4944757 Fix to be non blocking without tasks
|
||||
31765c7 Update notes
|
||||
84d153c Single callback version - vastly simplified.
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- VERSIONS
|
||||
- examples/Logger/src/main.cpp
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- examples/Repeater/src/main.cpp
|
||||
- library.json
|
||||
- library.properties
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-28 14:36
|
||||
**Commits:**
|
||||
```
|
||||
4944757 Fix to be non blocking without tasks
|
||||
31765c7 Update notes
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- VERSIONS
|
||||
- examples/Logger/src/main.cpp
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- examples/Repeater/src/main.cpp
|
||||
- library.json
|
||||
- library.properties
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
|
||||
|
||||
### Session: 2026-02-28 14:40
|
||||
**Commits:**
|
||||
```
|
||||
39a89c8 Versions v0.4 ready for release
|
||||
4944757 Fix to be non blocking without tasks
|
||||
31765c7 Update notes
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- README.md
|
||||
- VERSIONS
|
||||
- library.json
|
||||
- library.properties
|
||||
|
||||
|
||||
### Session: 2026-02-28 14:48
|
||||
**Commits:**
|
||||
```
|
||||
261cc0d Improve readme ready for v0.4 release
|
||||
39a89c8 Versions v0.4 ready for release
|
||||
4944757 Fix to be non blocking without tasks
|
||||
31765c7 Update notes
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- README.md
|
||||
- REVIEW.md
|
||||
|
||||
|
||||
### Session: 2026-06-04 21:23
|
||||
**Commits:**
|
||||
```
|
||||
cd3b462 ignore local
|
||||
7706f88 Bug fixes for reported issues
|
||||
```
|
||||
**Modified files:**
|
||||
- .gitignore
|
||||
- README.md
|
||||
|
||||
|
||||
### Session: 2026-06-04 22:59
|
||||
**Commits:**
|
||||
```
|
||||
105d66b Update info
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- README.md
|
||||
|
||||
|
||||
### Session: 2026-06-04 23:46
|
||||
**Commits:**
|
||||
```
|
||||
105d66b Update info
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- README.md
|
||||
- VERSIONS
|
||||
- examples/MultiDevice/platformio.ini
|
||||
- examples/MultiDevice/src/main.cpp
|
||||
- library.json
|
||||
- library.properties
|
||||
- src/VictronBLE.cpp
|
||||
- src/VictronBLE.h
|
||||
- src/crypto/vble_aes.c
|
||||
|
||||
|
||||
### Session: 2026-06-04 23:58
|
||||
**Commits:**
|
||||
```
|
||||
53fa6fa ignore pka file
|
||||
de6607d Branch version ready for testing with nRF52
|
||||
```
|
||||
**Modified files:**
|
||||
- .gitignore
|
||||
- README.md
|
||||
- UPGRADE_V0.4.md
|
||||
- VERSIONS
|
||||
- library.json
|
||||
- library.properties
|
||||
|
||||
|
||||
### Session: 2026-06-05 00:00
|
||||
**Commits:**
|
||||
```
|
||||
53fa6fa ignore pka file
|
||||
de6607d Branch version ready for testing with nRF52
|
||||
```
|
||||
**Modified files:**
|
||||
- .claude/CLAUDE.md
|
||||
- .gitignore
|
||||
- README.md
|
||||
- UPGRADE_V0.4.md
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Auto-update CLAUDE.md at end of session
|
||||
|
||||
CLAUDE_MD="$(git rev-parse --show-toplevel)/.claude/CLAUDE.md"
|
||||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
|
||||
|
||||
# Get recent git activity from this session (last hour)
|
||||
RECENT_COMMITS=$(git log --oneline --since="1 hour ago" 2>/dev/null | head -5)
|
||||
MODIFIED_FILES=$(git diff --name-only HEAD~1 2>/dev/null | head -10)
|
||||
|
||||
# Append session summary
|
||||
{
|
||||
echo ""
|
||||
echo "### Session: $TIMESTAMP"
|
||||
|
||||
if [ -n "$RECENT_COMMITS" ]; then
|
||||
echo "**Commits:**"
|
||||
echo "\`\`\`"
|
||||
echo "$RECENT_COMMITS"
|
||||
echo "\`\`\`"
|
||||
fi
|
||||
|
||||
if [ -n "$MODIFIED_FILES" ]; then
|
||||
echo "**Modified files:**"
|
||||
echo "$MODIFIED_FILES" | sed 's/^/- /'
|
||||
fi
|
||||
|
||||
echo ""
|
||||
} >> "$CLAUDE_MD"
|
||||
|
||||
echo "Updated CLAUDE.md with session summary"
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# check_version.sh -- verify the library version is consistent and released.
|
||||
#
|
||||
# Read-only: confirms the version matches in both manifests and that a matching
|
||||
# git tag (vX.Y.Z) exists. Run it before tagging a release. Non-zero exit if the
|
||||
# versions disagree or the tag is missing.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
set -u
|
||||
cd "$(dirname "$0")" || exit 2
|
||||
|
||||
json=$(sed -nE 's/.*"version"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/p' library.json | head -1)
|
||||
prop=$(sed -nE 's/^version=([^[:space:]]+).*/\1/p' library.properties | tr -d '\r' | head -1)
|
||||
|
||||
echo "library.json : ${json:-<none>}"
|
||||
echo "library.properties : ${prop:-<none>}"
|
||||
|
||||
fail=0
|
||||
|
||||
if [ -n "$json" ] && [ "$json" = "$prop" ]; then
|
||||
echo "ok versions match ($json)"
|
||||
else
|
||||
echo "FAIL versions differ (json=$json properties=$prop)"; fail=1
|
||||
fi
|
||||
|
||||
if git rev-parse -q --verify "refs/tags/v$json" >/dev/null 2>&1; then
|
||||
echo "ok git tag v$json exists"
|
||||
else
|
||||
echo "FAIL no git tag v$json -- create one to release: git tag v$json"; fail=1
|
||||
fi
|
||||
|
||||
exit "$fail"
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"build": {
|
||||
"arduino": {
|
||||
"ldscript": "nrf52840_s140_v6.ld"
|
||||
},
|
||||
"core": "nRF5",
|
||||
"cpu": "cortex-m4",
|
||||
"extra_flags": "-DARDUINO_WISCORE_RAK4631_BOARD -DNRF52840_XXAA",
|
||||
"f_cpu": "64000000L",
|
||||
"hwids": [
|
||||
["0x239A", "0x8029"],
|
||||
["0x239A", "0x0029"],
|
||||
["0x239A", "0x002A"],
|
||||
["0x239A", "0x802A"]
|
||||
],
|
||||
"usb_product": "WisCore RAK4631 Board",
|
||||
"mcu": "nrf52840",
|
||||
"variant": "wiscore_rak4631",
|
||||
"bsp": {
|
||||
"name": "adafruit"
|
||||
},
|
||||
"softdevice": {
|
||||
"sd_flags": "-DS140",
|
||||
"sd_name": "s140",
|
||||
"sd_version": "6.1.1",
|
||||
"sd_fwid": "0x00B6"
|
||||
},
|
||||
"bootloader": {
|
||||
"settings_addr": "0xFF000"
|
||||
}
|
||||
},
|
||||
"connectivity": ["bluetooth"],
|
||||
"debug": {
|
||||
"jlink_device": "nRF52840_xxAA",
|
||||
"svd_path": "nrf52840.svd",
|
||||
"openocd_target": "nrf52.cfg"
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "WisCore RAK4631 Board",
|
||||
"upload": {
|
||||
"maximum_ram_size": 235520,
|
||||
"maximum_size": 815104,
|
||||
"speed": 115200,
|
||||
"protocol": "nrfutil",
|
||||
"protocols": ["jlink", "nrfjprog", "nrfutil", "stlink"],
|
||||
"use_1200bps_touch": true,
|
||||
"require_upload_port": true,
|
||||
"wait_for_upload_port": true
|
||||
},
|
||||
"url": "https://www.rakwireless.com",
|
||||
"vendor": "RAKwireless"
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
[platformio]
|
||||
src_dir = src
|
||||
boards_dir = boards
|
||||
|
||||
[env]
|
||||
lib_extra_dirs = ../..
|
||||
|
||||
@@ -20,6 +24,17 @@ framework = arduino
|
||||
monitor_speed = 115200
|
||||
build_flags = -DCFG_DEBUG=0
|
||||
|
||||
; RAKwireless RAK4630 (WisBlock) — nRF52840 with Bluefruit backend.
|
||||
; Board definition lives in boards/rak4631.json (always available).
|
||||
[env:rak4630]
|
||||
platform = nordicnrf52
|
||||
platform_packages = framework-arduinoadafruitnrf52 @ 1.10700.0
|
||||
framework = arduino
|
||||
board = rak4631
|
||||
monitor_speed = 115200
|
||||
upload_protocol = nrfutil
|
||||
build_flags = -DCFG_DEBUG=0
|
||||
|
||||
[env:esp32dev]
|
||||
platform = espressif32
|
||||
board = esp32dev
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "victronble",
|
||||
"version": "0.6.0",
|
||||
"version": "0.6.1",
|
||||
"description": "Portable Arduino library for reading Victron Energy device data via Bluetooth Low Energy (BLE) advertisements. Runs on ESP32, ESP32-S3, ESP32-C3 and nRF52 (nRF52840, nRF52832). Supports SmartSolar MPPT, SmartShunt, BMV, MultiPlus, Orion, Blue Smart AC chargers and other Victron devices. No external crypto dependency.",
|
||||
"keywords": "victron, ble, bluetooth, solar, mppt, battery, smartshunt, smartsolar, bmv, inverter, multiplus, esp32, esp32-s3, esp32-c3, nrf52, nrf52840, nrf52832, xiao, iot, energy, monitoring",
|
||||
"repository": {
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
name=VictronBLE
|
||||
version=0.6.0
|
||||
version=0.6.1
|
||||
author=Scott Penrose
|
||||
maintainer=Scott Penrose <scottp@dd.com.au>
|
||||
sentence=Portable library for reading Victron Energy device data via BLE on ESP32/S3/C3 and nRF52 (nRF52840/nRF52832)
|
||||
paragraph=Read data from Victron SmartSolar, SmartShunt, BMV, inverters, Blue Smart AC chargers and other devices using Bluetooth Low Energy advertisements. Runs on ESP32, ESP32-S3, ESP32-C3 and nRF52 (nRF52840, nRF52832 — Bluefruit or Seeed cores) with no external crypto dependency. Supports multiple devices simultaneously with no pairing required.
|
||||
category=Communication
|
||||
url=https://gitea.sh3d.com.au/Sh3d/VictronBLE
|
||||
url=https://github.com/SH3D/VictronBLE
|
||||
architectures=esp32,nrf52
|
||||
depends=
|
||||
includes=VictronBLE.h
|
||||
|
||||
Reference in New Issue
Block a user