Installation
The driver is header-only. CMake generates fdo2_version.h and exposes an
INTERFACE target hf::fdo2 for consumers.
Requirements
- C++17 (
std::string_view,if constexpr,<cmath>helpers). - CMake ≥ 3.16 for the root
CMakeLists.txt. - A byte-level UART (3.0 V signalling per FDO2-G2 data sheet; host IO must respect 3.3 V max on the module side).
- ESP-IDF ≥ 5.4 recommended; CI targets
release/v5.5(seeexamples/esp32/app_config.yml).
Repository layout
1
2
3
4
5
6
7
8
9
10
11
12
hf-fdo2-driver/
├── inc/ ← public headers (`fdo2.hpp`, …)
├── cmake/
│ ├── hf_fdo2_build_settings.cmake
│ └── hf_fdo2Config.cmake.in
├── examples/esp32/ ← ESP-IDF example + `hf_fdo2` component wrapper
├── docs/ ← this documentation (Jekyll + Doxygen input)
├── _config/ ← Doxygen, Jekyll, clang-format, lychee, …
├── .github/workflows/ ← CI (build, lint, docs)
├── CMakeLists.txt
├── LICENSE
└── README.md
Submodule (recommended)
1
2
git submodule add https://github.com/N3b3x/hf-fdo2-driver.git third_party/hf-fdo2-driver
git submodule update --init --recursive third_party/hf-fdo2-driver
1
2
add_subdirectory(third_party/hf-fdo2-driver)
target_link_libraries(my_app PRIVATE hf::fdo2)
ESP-IDF component
See Examples for the shipped wrapper under
examples/esp32/components/hf_fdo2/.
Doxygen (optional)
From the repository root:
1
doxygen _config/Doxyfile
HTML output is written under docs/html/ (ignored by Git).
Next: Quick start →