Uisng Pulse for HoloLens 2 with ARM platform build

I just tried to build Demo scene on HoloLens but didn’t found the pulse are working on those boards,
what i did is i made arm folder and copied the PulseC from windows in it , cause it gave me error first time when it tried to copy the dll from arm folder.
also added link.xml in project.Build got succeeded but didn’t see any pulses on the board.

Any thoughts ?

I believe you need to build the PulseC.dll with an ARM64 target

I have built one here: https://data.kitware.com/#collection/59849c788d777f7d33e9c084/folder/5e4e9f0baf2e2eed35bb0445

Replace the PulseC.dll in our Unity Asset with this one.

Do i need other dll’s too?

Yeah, the other 2 are Microsoft redistributables that go along with the compiler I used to make the PulseC.dll, so you should probably grab those too

still dint work , i’m getting DllNotFound exception for PulseC .i pasted the dll in arm folder under plugins, i saw you have PulseC_arm.dll in that zip, so which one i need to use?

You need to rename the PulseC_arm.dll to PulseC.dll and replace the original one in the native windows folder

Still no luck, :frowning:
i’m getting this error when i try to build the app using VS solution created by Unity , : error MSB3030: Could not copy the file “…\Plugins\ARM\PulseC.dll” because it was not found .
I copied that dll into Native-Win folder , 2nd time also made one copy of dll into Native-ARM Folder still no luck.

It sounds like something in your project may not be configured correctly
Ensure the PulseC.dll is properly associated with windows and you are building for x86_64

I believe they may need to be under a Native folder in Plugins?

i’m Building for ARM

Sure, but from a Unity perspective, I am not sure if you need to configure your project any different or not. I do not actually have any of those fun toys. I suppose you just need to tag the PulseC.dll with the proper meta data for Unity to know what to do with it.

Okay, so this is the configuration i’m using .

i just completed the build when i set all this config setup.But pulses are not moving. :frowning:

Is there anything in the Log?
Did you copy up the StreamingAssests folder from inside PulsePhysiologyEngine under your Assets folder?
Are you running in just the editor, or actually building and deploying onto the HoloLens?

You can try to just run the VitalsMonitor Demo under the PulsePhysiologyEngine scene…

yes i’ve copied all the streaming assets into root assets folder.
yes i’m actually building the app on HoloLens 2, and i’m getting “DllNotFound exception: unable to found PulseC.dll: the specified module could not found” message in developer log window. when i run the Vitals monitor demo.

If you run inside the Unity editor, you may need to have the original windows PulseC.dll
Since you are running that on your development machine

When you actually build to the HoloLens and run, is the dll still missing there as well?

Okay so yes , it works well in editor when i use the original windows dll.
and i get this error message when i actually runs the app in hololens, using the ARM version of dll. and above Config

Can you check the unity logging system
Somewhere in your user AppData\Local\application folder there should be some logs from unity in there. Maybe it will have some more detailed information

Did you add those other 2 dlls to your arm folder and mark them as ARM as well?

Actually it runs well in Editor so no error log, but in hololens i can see the error log i copied above in developer log windows .
Ohh yes i need to make that change for those dlls also, let me give a try.
BTW i also added PulseC in link.xml, so oi will not get stripped while il2cpp converion.

Oh yeah?
What does that look like in the link.xml

<assembly fullname="PulseC" preserve="all"/>

Something like that?

Okay so i added ARM for those other 2 dll’s, still i’m getting DLL not Found exception , its strange why its not getting the dll :frowning:

yeah it looks like this:

<assembly preserve="all" fullname="System"/>

<assembly preserve="all" fullname="Google.Protobuf"/>

<assembly preserve="all" fullname="DataModelBindings"/>

<assembly preserve="all" fullname="PulseC"/>


Yeah, that is pretty strange
I would try to dig through Unity logs and see if there are other errors Unity might be having to see if that helps.

I just don’t have an easy way to test various deployment workflows on the HoloLens along with you. But maybe a log would provide more insight, like maybe there are missing dependencies, or some data files cannot be found… or something…