Flotilla without PI on Windows or QEMU Virtual Machine


#1

I am hardly waiting to get my Mega Treasure pack.

Before I get the pack I would like to prepare everything so it will work when it comes. Because I do not have Raspberry PI yet, I am wondering if it is possible to use Flotilla without PI.

Does it work if you connect it directly to a laptop running Windows? If not, do you plan to provide support (drivers) for that in the future?

If this is not working directly I am wondering if it would work if I use QEMU (http://raspberrypimaker.com/emulate-the-raspberry-pi-in-windows-for-free/) to emulate PI on Windows.


Testing Mac software
#2

… not yet, but Windows and Mac OS X support are planned (and likely not that far away).

It’s probably worth asking again when you get your kit, if not already public I would think there will be a possibility to preview/test where it’s at for those platforms at that point!


#3

Ok. Thank you for your quick reply.


#4

Right now it’s working for me on Windows extremely well, but making it work on my local machine(s) and getting it into a state where it can be deployed for other people to try are two different things. ( Windows software development and deployment is a whole new ballpark for me, I’ve only ever thrown together shoddy VB apps back when Windows 98 and XP were still in vogue ).

Keep in touch if you’re willing to try out some pre-release software, though, since it will be potentially very helpful to get some feedback from Windows users.

For the time being, it’d be useful to know what version of Windows you’re running.


#5

Of course I can do some testing of pre-release software. I am a software developer (.Net) and understand your concerns about having a version that works for you but is not good enough for general public.

Deploying software on Windows can be tricky. I am using a third party software to create my installers. But it is quite expansive. For you it might be enough to use the free tools that are available for Visual Studio 2015 Community edition (also free) - for example: Microsoft Visual Studio 2015 Installer Projects (https://visualstudiogallery.msdn.microsoft.com/f1cc3f3e-c300-40a7-8797-c509fb8933b9). You might also try to use the InstallShield Limited Edition (ISLE) but it might need the professional version of Visual Studio (or Visual Studio 2013 Community Edition).

If this would take to much time or the free products do not have all the features that you need, you might just pack everything into zip and write a detailed instruction on how to manually install that on Windows. I think that most of the users would be happy with that (at least for the first version).

Once I get the package I can test on Windows 8.1 64 bit laptop, Windows 10 64 bit desktop and very old Windows 7 32 bit laptop :) I can also test a pre-release installer if you want.


#6

I don’t think the main concern is so much stringing a MSI together as general QA. If you’re up to test a pre-release then that’s half the concern gone.


#7

General QA is definitely a problem. Linux remains ( fairly ) standard between distributions on the Pi, and for desktop Linux… well that’s an advanced use case, and the Daemon source code is freely available and easy to compile ( none of those build systems that drive me crazy ).

Windows, however, is still pretty fragmented between 64 and 32bit and Windows 7, 8 and 10- and probably older versions too which we might have to draw the line at excluding for our own sanity. But we’ll see!

I was a .NET developer once upon a time, and I’m really appreciating Visual Studio at the moment since it’s keeping all of my development environment under one OS so I can progress the Dock Firmware, Daemon and Rockpool all together without switching between multiple platforms.

Right now, you can even download the source and more or less build it yourself by installing Boost and Websocketpp in NuGet ( I think they’ll auto recover and hopefully not implode ). The tricky part is libserialport which requires Msys2/Msys64 to compile, although I see no reason why a small effort couldn’t get it working in Visual Studio too.

Anyway I’m rabbiting on! Latest source is in this branch: https://github.com/pimoroni/flotilla-daemon-vs/tree/ship


#8

So any hints on how to compile the daemon for other distros?

Im trying to compile it for Fedora but got into a few issues (g++ 5.3 is more exigent I guess)

Flotilla_Dock.cpp:144:21: error: ‘SP_MODE_READ_WRITE’ was not declared in this scope
if (sp_open(port, SP_MODE_READ_WRITE) == SP_OK){


#9

Woops, that last error is becuase I had an old libserialport :D

After updating my lib, I get like another hundred errors :/


#10

I’m guessing those are linker errors, which Makefile are you using? I managed to get it building under Ubuntu 16.x but not without ( and for reasons I can’t explain ) swapping the order of the object files with the linker flags.


#11

Thanks for the quick answer, actually It was (again ¬_¬) some libs not being well updated.

After that it compiled perfectly, thought I was missing one lib for flotilla daemon to work, strange enough.

oh well, working now!


#12

Note, the latest source wont work with your Dock, but if you want to install dfu-programmer and follow some instructions to update your firmware and use the latest version of Flotilla Rockpool then you can experience… Flotilla II Turbo: Fast As Ship Edition.

Sorry, I’ll get my coat.


#13

I can explain why.
If you don’t link the object files first, the linker doesn’t know which symbols it needs to link from static libraries.
When it links the object files it builds a table of missing symbols and only links modules from the libraries which contain symbols in this list, rather than linking the whole static library into the executable which would be wasteful.

I found exactly the same and I’ve posted full instructions for building on Ubuntu on my blog, linked in a separate topic in this forum.

Cheers,

Stephen


#14

I tried to compile the deamon for Windows in Visual Studio 2015.

I got the source and Visual Studio has downloaded all the packages.
Then I got some missing .h files error. I was able to fix that with updating the path in “Project Properties -> General Properties -> VC++ Directories”.

But then I was stuck with libserialport. I got the following error: "cannot open file "libserialport.dll.a"
I have updated the “Linker -> General -> Additional Library Directories” path and tried to change the “'libserialport.dll.a” into “libserial_0.dll” (that comes with the source). But this did not help. I clearly am a noob when it comes to c++.

Then I tried to compile the libserialport. As you said this requires the Msys2/Msys64 to compile. I tried to install it but then given up when the “Win-builds” installer application was started.

Compiling deamon looks so easy on Linux. But on Windows it would be much more handy to have already compiled binaries :)


#15

Hi, I’d be interested in trying out Windows Software, I’m running Windows 10.
Thanks


#16

Compiling for Windows is definitely easier said than done, but we’ll have a binary for Flotilla Daemon in the pre-release. However we won’t be properly supporting it for a while, since we just don’t have the manpower. Expect Windows/OSX to be a second-class citizen to Raspberry Pi until the Flotilla software stabilizes.


#17

Great. Thank you.
I fully understand that PI has priority.


#18

I’d be happy to testdrive a build for Win10. My kit just arrived today and I would be happy if I could tinker some stuff via my laptop.