Installation

This guide covers how to obtain and integrate the AS5047U driver library into your project.

Prerequisites

Before installing the driver, ensure you have:

  • C++20 Compiler: GCC 10+, Clang 12+, or MSVC 2019+
  • Build System: Make, CMake, or ESP-IDF (depending on your platform)
  • Platform SDK: ESP-IDF, STM32 HAL, Arduino, or your platform’s SPI driver

Obtaining the Source

Option 1: Git Clone

1
2
git clone https://github.com/n3b3x/hf-as5047u-driver.git
cd hf-as5047u-driver

Option 2: Copy Files

Copy the following files into your project:

1
2
3
4
5
6
7
8
inc/
  β”œβ”€β”€ as5047u.hpp
  β”œβ”€β”€ as5047u_spi_interface.hpp
  β”œβ”€β”€ as5047u_registers.hpp
  β”œβ”€β”€ as5047u_types.hpp
  └── as5047u_config.hpp
src/
  └── as5047u.cpp

Integration Methods

Using CMake

Add the driver as a subdirectory in your CMakeLists.txt:

1
2
3
4
5
add_subdirectory(external/hf-as5047u-driver)
target_link_libraries(your_target PRIVATE hf_as5047u)
target_include_directories(your_target PRIVATE 
    ${CMAKE_CURRENT_SOURCE_DIR}/external/hf-as5047u-driver/inc
)

Using ESP-IDF Component

The driver can be used as an ESP-IDF component. Add it to your components directory:

1
2
3
4
5
6
# In your main CMakeLists.txt
idf_component_register(
    SRCS "your_code.cpp"
    INCLUDE_DIRS "."
    REQUIRES hf_as5047u
)

Manual Integration

  1. Copy the driver files to your project
  2. Add the inc/ directory to your include path
  3. Include the header:
    1
    
    #include "as5047u.hpp"
    
  4. Compile with C++20 support:
    1
    
    g++ -std=c++20 -I inc/ your_code.cpp src/as5047u.cpp
    

Running Unit Tests

The library includes unit tests. To run them:

1
2
3
cd tests
g++ -std=c++20 -I ../inc ../src/as5047u.cpp test_as5047u.cpp -o test
./test

Expected output:

1
All tests passed.

Verification

To verify the installation:

  1. Include the header in a test file:
    1
    
    #include "as5047u.hpp"
    
  2. Compile a simple test:
    1
    
    g++ -std=c++20 -I inc/ -c src/as5047u.cpp -o test.o
    
  3. If compilation succeeds, the library is properly installed.

Next Steps


Navigation ⬅️ Back to Index | Next: Quick Start ➑️