Hello all, there are several SBC on the market nowadays that can run Windows (Intel Nuc, Asus Tinkerboard, LattePanda and a number of others); such devices could be useful in some projects of mine but I never had the ability to test any of them. Some SBCs offer some additional features like direct access to SPI, some physical I/O and so on that makes me feel I would be happy to try them!
So my question is: is it possible to run a CVI program on an SBC? Which characteristics do I have to check for this (processor, architecture...)? Can anybody share their experience with these devices?
My guess (but it's just a guess !) is that as long as Windows runs in x86 or x64 mode, and you have enough memory, it would run fine.
Personally my habits is to run Linux on SBC with locked-down embedded OS, minimalist programs (text only via ssh, no screen, no other open port), and exchange data with CVI programs running on standard Windows program via TCP or other protocol.
You have to watch out what Windows version they are running. Windows IoT may sound like it works fine as it is Windows, right? Nothing is further away from the truth though. You will need Windows IoT Enterprise Edition, which is basically the only IOT version that contains a full Win32 subsystem that a LabWindows CVI program needs. It is basically what the old Windows Embedded Prefessional version was and is a full Windows system. It will also require x86/x64 CPUs to run.
All other IOT versions are basically what Microsoft used to call Windows RT in the past. They can run on other CPU architectures like ARM but only support UWP compatible applications, which is basically a .Net execution model, without an old fashioned Win32 subsytem. UWP applications are usually compiled in IL code so are CPU independent and the underlaying .Net system translates them Just in Time into the according CPU code as the program gets executed.
LabWindows CVI however accesses the Win32 API, which the non Enterprise IoT versions do not have.
If you use LabWindows CVI to create Linux executables (is that still supported?) then you have similar requirements that it must be an x86/x64 Linux kernel.
as long as you have a "real" and supported version of Windows running, a CVI program will sure run on a SBC, with all the obvious limitations that may come from a limited processor, scarce RAM and all the limitations that may come from the board.
The minimum system I saw - some years ago - running a working application written in CVI was an embedded PC w/ 4 GB of RAM and a SSD for storage. I don't recall the processor family but was an almost ordinary Intel CPU.
It ran XP embedded, if I'm not wrong.
For all non-standard features, i.e. watchdog, SPI, I2C and so on, you must find drivers (and docs!) to access them from the user program side, you know.
First of all thanks to all of you for the information you provided 👍
As a resume, to try guessing if a specific SBC can run a CVI app I must check both the processor and the actual release of Windows it is runnig.
And what about the LattePanda v1.0 with a Atom® x5-Z8350 processor and the same OS?
Disclaimer: I'm not in relation with DFRobot at all! I'm just trying to figure out if and which SBC I could use in some of my equipment and this is more or less the only I found that sounds it will work. I'm open to alternatives if anybody can suggest one.
IMHO both the SBCs are capable to run a Labwindows program. Specs for the "big" board are very impressive, but a well written program will run as expected on the smaller one, too.
I have grate experience with intel nuc.
I installed full development version of cvi2017 on Intel NUC I3 running win 10 with no problems
I have several projects deployed in customer sites more than a year with no problem including the "usual" IO stuff DaqMx,comes etc... also SQL toolkit is there.
Hello Daniel, thanks for sharing your experience. I was expecting that Intel NUC works without problems as it is a "real" PC in mini dimensions😉 anyway it's good to have a confirmation of that. I have experience too of using small-form-factor PCs similar to the NUC and normally they behave well.
But it is to be said that the NUCs are a little out of my scope here, as I was looking for a simpler and cheaper solution to be integrated in distributed applications.