Supported hosting platforms for XVF3800 device control

Technical questions regarding the XTC tools and programming with XMOS.
thomie321
New User
Posts: 2
Joined: Mon Apr 07, 2025 8:32 pm

Supported hosting platforms for XVF3800 device control

Post by thomie321 »

Hello,

We’re hoping to use the XVF3800 with a RP2350 (Raspberry Pi Pico 2) in an INT-Device configuration using i2c and retrieve the DoA from the device. In the user guide of the SQ66, it mentions the supported systems for the host control application are either linux or windows based. Can we apply the RP2350 as a control host using the already build host control application released in the binary? Thank you for any input and help!
User avatar
upav
Verified
Member++
Posts: 20
Joined: Wed May 22, 2024 3:30 pm

Post by upav »

So there are only 2 things that can restrict building the host application for a particular platform.

1. The app needs C++14 to compile (tho you can lower it to C++11 if you remove range checking)
2. The app used dynamic linking to link the drivers and the command map, this is where you might have problems

To answer your question shortly. No, you can't use the prebuilt ones as they all assume you have an OS underneath :(

There is a way to modify the host app software to remove the dynamic linking.
The dynamic linking was added to make an app agnostic to the protocol it uses and the device it talks to.
Given that you've set on your protocol (i2c) and your device (a version of 3800), you don't need dynamic linking.
To make it work you'll need to do 2 things:

1. Implement/compile in the I2C driver for pico as our rpi i2c uses linux/i2c.h
2. Remove dynamic linking and compile in the driver and the command map

We do have an appnote with the host app where we've removed dynamic linking, might be helpful to you.
It should be public next week, I can ping you if you want :)

Hope it helps,
Pavel
xmos software engineer
thomie321
New User
Posts: 2
Joined: Mon Apr 07, 2025 8:32 pm

Post by thomie321 »

upav wrote: Tue Apr 08, 2025 9:48 am So there are only 2 things that can restrict building the host application for a particular platform.

1. The app needs C++14 to compile (tho you can lower it to C++11 if you remove range checking)
2. The app used dynamic linking to link the drivers and the command map, this is where you might have problems

To answer your question shortly. No, you can't use the prebuilt ones as they all assume you have an OS underneath :(

There is a way to modify the host app software to remove the dynamic linking.
The dynamic linking was added to make an app agnostic to the protocol it uses and the device it talks to.
Given that you've set on your protocol (i2c) and your device (a version of 3800), you don't need dynamic linking.
To make it work you'll need to do 2 things:

1. Implement/compile in the I2C driver for pico as our rpi i2c uses linux/i2c.h
2. Remove dynamic linking and compile in the driver and the command map

We do have an appnote with the host app where we've removed dynamic linking, might be helpful to you.
It should be public next week, I can ping you if you want :)

Hope it helps,
Hi Pavel, thanks for the detailed reply!

It sounds like then we'd have to build the host app from source. If you’re planning to release a host app without dynamic linking that uses i2c as the protocol that would be very helpful!
User avatar
upav
Verified
Member++
Posts: 20
Joined: Wed May 22, 2024 3:30 pm

Post by upav »

Yes, you'll have to modify the source code of the host_xvf_contol and build your binary.
Btw the appnote I mentioned went public today, you can get a source from our website https://www.xmos.com/file/an02031-live- ... d-example/
That one has a host app stripped down as much as it can. Few things for you to note there:

- That host app implements --instance-id option which is specific to the dsp app it's used for, you don't need it
- It has the range checking removed from the host app, 3800 doesn't do any parameter range checking, so when you give it things that are out of range it might result in an undefined behaviour
- The app uses usb as a protocol

Between those two, I'm sure you can make the one you want,
Good luck
Pavel
xmos software engineer