not sure if there’s one in BP, but I detect Knuckles from C++ using this (admittedly rather clunky) way:
...
if (SteamVRSystem && trackedDeviceClass == ETrackedDeviceClass::TrackedDeviceClass_Controller)
{
uint32 StringBytes = SteamVRSystem->GetStringTrackedDeviceProperty(id, ETrackedDeviceProperty::Prop_ModelNumber_String, buf, sizeof(buf));
FString stringCache = *FString(UTF8_TO_TCHAR(buf));
//UE_LOG(LogKnucklesLivelinkSource, Display, TEXT("[KNUCKLES LIVELINK] Found the following device: %i] %s"), id, *stringCache);
// Check if Knuckles is present and active
if (stringCache.Contains(FString(TEXT("Knuckles"))) &&
SteamVRSystem->GetControllerRoleForTrackedDeviceIndex(id) == ETrackedControllerRole::TrackedControllerRole_LeftHand
)
{
KnucklesControllerIdLeft = id;
if (SteamVRSystem->IsTrackedDeviceConnected(KnucklesControllerIdLeft))
{
bLeftKnucklesPresent = true;
//UE_LOG(LogKnucklesLivelinkSource, Warning, TEXT("[KNUCKLES LIVELINK] Knuckles Left found and is ACTIVE"));
}
}
...
Hope that helps!