Closed Fredrum closed 3 years ago
Thanks I'll start looking through these!
Ok I think I'm ready to send you the next update! Would you be able to explain briefly how I do that as I'm not great with Git yet. I'm working in a folder structure on my machine that is not the same folders that are the fork from your Master.
Do I commit all the changes to my forked project, and then do a new PR using that?
I'm working in a folder structure on my machine that is not the same folders that are the fork from your Master.
Normally, you just directly work on the git repository instead of separate folders. I would suggest to do that.
Do I commit all the changes to my forked project, and then do a new PR using that?
You created this pr from master of your fork to master of this repo, so you just have to push a new commit to your fork's master and it will show up here.
Ok I think Iv'e now pushed the new changes to my fork repo. I find Git very confusing and I'm not confident Iv'e done it right. Just let me know if I can do this in a better way. I'll work straight in the folder structure of the fork next time.
But I got an build error when trying to build the fork and I don't recognize it having to do with the files Iv'e touched,
home/pi/chiaki/chiaki/gui/src/main.cpp: In function ‘int real_main(int, char**)’:
/home/pi/chiaki/chiaki/gui/src/main.cpp:165:110: error: no matching function for call to ‘StreamSessionConnectInfo::StreamSessionConnectInfo(Settings*, QString&, QByteArray&, QByteArray&, bool)’
ssionConnectInfo connect_info(&settings, host, regist_key, morning, parser.isSet(fullscreen_option));
Cheers Fred
Nice, this is definitely going in the right direction, it already looks much better without all the third party code. But there are still a lot of small unrelated changes. I recommend you to switch to the "Files changed" tab here, go through the changes line by line and revert the ones that are not directly related to what you want to achieve. There are ways to do this more automatically with git but if you are not yet that familiar with it, this will be easier.
About the StreamSessionConnectInfo
error, it is caused by one of these changes. I have added a comment at the place.
After that, I suggest to look at this guideline and make sure all the new code strictly follows it: https://gist.github.com/thestr4ng3r/d0b1de10852ca3d119e8c83375211e4b
When that is all done, we can do a little bit of further refactoring and it should be good.
Ok so Iv'e gone through all the listed files and made quite a few comments / asked questions. Ontop of those please let me know any further things I need to do!
I'm seeing a lot of differences and things I don't have in my files. I wonder if that's because I'm not using the system in the correct way? Maybe my general process is not right?
For example, should I be re-pulling all the latest before adding my changes? The problem then is that I'd be chasing changing code. I'd be happy to learn better workflows.
Cheers, Fred
Oops I missed that last bit! I think I have some functions where the tabulation is a bit iffy. I'll take another pass now!
On Fri, Nov 6, 2020 at 3:45 AM Florian Märkl notifications@github.com wrote:
Nice, this is definitely going in the right direction, it already looks much better without all the third party code. But there are still a lot of small unrelated changes. I recommend you to switch to the "Files changed" tab here, go through the changes line by line and revert the ones that are not directly related to what you want to achieve. There are ways to do this more automatically with git but if you are not yet that familiar with it, this will be easier. About the StreamSessionConnectInfo error, it is caused by one of these changes. I have added a comment at the place.
After that, I suggest to look at this guideline and make sure all the new code strictly follows it: https://gist.github.com/thestr4ng3r/d0b1de10852ca3d119e8c83375211e4b
When that is all done, we can do a little bit of further refactoring and it should be good.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#issuecomment-723037910, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUTN5E44SYPYCBTW5ETSOPOXBANCNFSM4TIGWWEQ .
Ok hoping that's pretty good now? Just did the push.
I'm seeing a lot of differences and things I don't have in my files. I wonder if that's because I'm not using the system in the correct way? Maybe my general process is not right?
So what you did was take an old state (A) of the code and apply the pi changes on top of that. Then you took your fork, which was already on a more recent state (B), and manually copied over the code of state A+pi changes over B and made a commit. This is why the commit consists of the pi changes + the changes from A to B in reverse.
What you should have done instead would have been to paste your code over git branch standing on A instead of B, or directly work on git.
For example, should I be re-pulling all the latest before adding my changes? The problem then is that I'd be chasing changing code.
Not necessarily, if you would just keep working on top of A, git will be aware of that and you won't ever see any weird stuff in your diff. If you explicitly want to take your changes and put them from A on top of B instead, you can do a git rebase (or merge), which does everything automatically except in the case when there are conflicts.
Yesterday I started looking into how to make a smaller 'window' and did figure it out. It's not actually a window but you tell the hardware to render a region with offset + w|h. Do you remember a good Qt call to get the window coordinates. Ideally the 'inside' coordinates. It's probably not hard to figure out so I'll have a look.
But I also realized that I'd need to be able to reach the ChiakiPihwDecoder from the gl streaming window class. What would be the way to do that? Should I add some kind of 'parent' parameter to my class/struct and would that enable me to step over?
On Sat, Nov 7, 2020 at 1:55 AM Florian Märkl notifications@github.com wrote:
@thestr4ng3r commented on this pull request.
In gui/src/videodecoder.cpp https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159726:
- if(1) //is RPi?
- {
- pi_hw_decoder = new ChiakiPihwDecoder;
- chiaki_pihw_decoder_init(pi_hw_decoder);
- }
The idea is that the ChiakiPihwDecoder will be used instead of VideoDecoder rather than embedding it inside of it. Therefore, instead of your current chiaki_pihw_decoder_get_buffer(), you should implement a function that has exactly the signature bool ChiakiVideoSampleCallback(uint8_t buf, size_t buf_size, void user); where void *user will be used to pass the pointer to the ChiakiPihwDecoder . Then, you can take this function and pass it here instead of VideoSampleCb:
https://github.com/thestr4ng3r/chiaki/blob/8fbd1b942714e86c5173142080642d342c7bbfa3/gui/src/streamsession.cpp#L77 The decision whether to pass VideoSampleCb or the callback for the pi decoder should come from a combination of a define (whether the pi decoding is available at all) and a user setting (whether the user also wants to use it instead of ffmpeg).
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159726, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUTWR7MGMMW35RTINFLSOUKQFANCNFSM4TIGWWEQ .
Hmm I'm getting build errors when I do this, I'm not sure if I have understood you correctly?
in .h: // "...where void user will be used to pass the pointer to the ChiakiPihwDecoder." // Function, not typedef bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void *user);
in .c: bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void user) { user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); // using existing functions user->chiaki_pihw_decoder_draw(user); // using existing functions return True; }
The Errors I get: /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:27:6: warning: dereferencing ‘void ’ pointer user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); ^~ /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:27:6: error: request for member ‘chiaki_pihw_decoder_get_buffer’ in something not a structure or union /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:28:6: warning: dereferencing ‘void ’ pointer user->chiaki_pihw_decoder_draw(user); ^~ /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:28:6: error: request for member ‘chiaki_pihw_decoder_draw’ in something not a structure or union /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c: In function ‘chiaki_pihw_decoder_init’:
On Sat, Nov 7, 2020 at 1:56 AM Florian Märkl notifications@github.com wrote:
@thestr4ng3r commented on this pull request.
In gui/src/videodecoder.cpp https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159830:
- {
- //ORIG only line: frame = hw_decode_engine ? GetFromHardware(frame) : frame;
- //frame = hw_decode_engine ? GetFromHardware(frame) : frame;
When the pi decoder completely replaces the VideoDecoder as mentioned above, this won't be a problem anymore since it will never reach this code.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159830, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUTWNPYKEPQ55UT6F23SOUKU3ANCNFSM4TIGWWEQ .
Iv'e got something going I think with the window transforms. It's not going to be perfect I think but probably good enough for a first version.
I still don't follow exactly what I'm supposed to do with the callback function? In opusdecoder it looked like something similar was set up with 'typedef's ?
On Sat, Nov 7, 2020 at 11:30 AM Blueroom fred.sund@googlemail.com wrote:
Hmm I'm getting build errors when I do this, I'm not sure if I have understood you correctly?
in .h: // "...where void user will be used to pass the pointer to the ChiakiPihwDecoder." // Function, not typedef bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void *user);
in .c: bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void user) { user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); // using existing functions user->chiaki_pihw_decoder_draw(user); // using existing functions return True; }
The Errors I get:
/home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:27:6: warning: dereferencing ‘void ’ pointer user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); ^~ /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:27:6: error: request for member ‘chiaki_pihw_decoder_get_buffer’ in something not a structure or union /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:28:6: warning: dereferencing ‘void ’ pointer user->chiaki_pihw_decoder_draw(user); ^~ /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:28:6: error: request for member ‘chiaki_pihw_decoder_draw’ in something not a structure or union /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c: In function ‘chiaki_pihw_decoder_init’:
On Sat, Nov 7, 2020 at 1:56 AM Florian Märkl notifications@github.com wrote:
@thestr4ng3r commented on this pull request.
In gui/src/videodecoder.cpp https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159830:
- {
- //ORIG only line: frame = hw_decode_engine ? GetFromHardware(frame) : frame;
- //frame = hw_decode_engine ? GetFromHardware(frame) : frame;
When the pi decoder completely replaces the VideoDecoder as mentioned above, this won't be a problem anymore since it will never reach this code.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159830, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUTWNPYKEPQ55UT6F23SOUKU3ANCNFSM4TIGWWEQ .
Hello,
Over the last couple of days I was trying to get a dynamic window scaling refresh working but there were too many obstacles so Iv'e done a simpler version. I'm currently just turning the hardware screen Off during window transforms.
One problem is that I'm not getting continuous resize/move events from Qt they only trigger a single event after the window scale or move finishes. So then I started adding my own X11 code to try and do it by hand but in the end there were too many little glitches and it was taking too long. I'd rather spend that time on trying to get the Pis hardware to generate textures for the GL window. But that's quite a tricky thing for me so is not going to happen just now. Hopefully this could work to start with. I'm guessing people want to play mostly in fullscreen mode anyway?
https://www.youtube.com/watch?v=EZVWjM8AWWU
So with the call back system, did you have any updates or instructions for me or is what you told me last still the thing to go with I I got a bit confused? I might just have to sit down with it as I haven't focused on that yet.
Let me know! Cheers, Fred
On Mon, Nov 9, 2020 at 1:55 PM Blueroom fred.sund@googlemail.com wrote:
Iv'e got something going I think with the window transforms. It's not going to be perfect I think but probably good enough for a first version.
I still don't follow exactly what I'm supposed to do with the callback function? In opusdecoder it looked like something similar was set up with 'typedef's ?
On Sat, Nov 7, 2020 at 11:30 AM Blueroom fred.sund@googlemail.com wrote:
Hmm I'm getting build errors when I do this, I'm not sure if I have understood you correctly?
in .h: // "...where void user will be used to pass the pointer to the ChiakiPihwDecoder." // Function, not typedef bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void *user);
in .c: bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void user) { user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); // using existing functions user->chiaki_pihw_decoder_draw(user); // using existing functions return True; }
The Errors I get:
/home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:27:6: warning: dereferencing ‘void ’ pointer user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); ^~ /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:27:6: error: request for member ‘chiaki_pihw_decoder_get_buffer’ in something not a structure or union /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:28:6: warning: dereferencing ‘void ’ pointer user->chiaki_pihw_decoder_draw(user); ^~ /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c:28:6: error: request for member ‘chiaki_pihw_decoder_draw’ in something not a structure or union /home/pi/chiaki/chiaki_wip/lib/src/pihwdecoder.c: In function ‘chiaki_pihw_decoder_init’:
On Sat, Nov 7, 2020 at 1:56 AM Florian Märkl notifications@github.com wrote:
@thestr4ng3r commented on this pull request.
In gui/src/videodecoder.cpp https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159830:
- {
- //ORIG only line: frame = hw_decode_engine ? GetFromHardware(frame) : frame;
- //frame = hw_decode_engine ? GetFromHardware(frame) : frame;
When the pi decoder completely replaces the VideoDecoder as mentioned above, this won't be a problem anymore since it will never reach this code.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#discussion_r519159830, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUTWNPYKEPQ55UT6F23SOUKU3ANCNFSM4TIGWWEQ .
bool_t ChiakiPiDecodeRenderCallback(uint8_t *buf, size_t buf_size, void *user) { user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); // using existing functions user->chiaki_pihw_decoder_draw(user); // using existing functions return True; }
Do it like this:
bool chiaki_pihw_decoder_video_cb(uint8_t *buf, size_t buf_size, void *user)
{
ChiakiPihwDecoder *dec = user;
chiaki_pihw_decoder_get_buffer(dec, buf, buf_size);
chiaki_pihw_decoder_draw(dec);
return true;
}
I moved on to see how it would install and build on a clean Rasbian boot and of course there's things I forgot that I did and some other things not working well.
One thing was that 'git submodule update --init' didn't work in my fork. I had to clone your one, run it there and then copy the 'third-party' folder back to my cloned structure.
What decides how that gets executed? Can I copy some file over to my fork to get it to work?
Another one was that cmake couldn't find SDL2 even if I had it installed. I ended up copying this file from my 'build machine' to my 'test install machine':
/usr/lib/arm-linux-gnueabihf/cmake/SDL2/sdl2-config.cmake
A funny one was that it now complained again that the OpenGL file was pointing to an unsupported gl version, so I swapped again back to your one and it seems to work. I'll have to check if there's a difference in what 3d drivers I have set in the two machines. I might have changed at some point on my work Pi.
I'm going to try and make an install script that people can run to install dependencies and build.
There were issues to get protobuf and nanopb to work but I have to re-do that part as I did so many things I don't know exactly which of them actually solved it.
Cheers!
On Thu, Nov 12, 2020 at 7:50 AM Florian Märkl notifications@github.com wrote:
bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void user) { user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); // using existing functions user->chiaki_pihw_decoder_draw(user); // using existing functions return True; }
Do it like this:
bool chiaki_pihw_decoder_video_cb(uint8_t buf, size_t buf_size, void user) { ChiakiPihwDecoder *dec = user; chiaki_pihw_decoder_get_buffer(dec, buf, buf_size); chiaki_pihw_decoder_draw(dec); return true; }
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#issuecomment-726163338, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUXBRALLRWTBCEZH2MDSPP75LANCNFSM4TIGWWEQ .
I'm sorry the 'git submodule update --init' seems like it might be ok now.
I'd better work on this a bit more before saying anything more...
On Thu, Nov 12, 2020 at 8:28 PM Blueroom fred.sund@googlemail.com wrote:
I moved on to see how it would install and build on a clean Rasbian boot and of course there's things I forgot that I did and some other things not working well.
One thing was that 'git submodule update --init' didn't work in my fork. I had to clone your one, run it there and then copy the 'third-party' folder back to my cloned structure.
What decides how that gets executed? Can I copy some file over to my fork to get it to work?
Another one was that cmake couldn't find SDL2 even if I had it installed. I ended up copying this file from my 'build machine' to my 'test install machine':
/usr/lib/arm-linux-gnueabihf/cmake/SDL2/sdl2-config.cmake
A funny one was that it now complained again that the OpenGL file was pointing to an unsupported gl version, so I swapped again back to your one and it seems to work. I'll have to check if there's a difference in what 3d drivers I have set in the two machines. I might have changed at some point on my work Pi.
I'm going to try and make an install script that people can run to install dependencies and build.
There were issues to get protobuf and nanopb to work but I have to re-do that part as I did so many things I don't know exactly which of them actually solved it.
Cheers!
On Thu, Nov 12, 2020 at 7:50 AM Florian Märkl notifications@github.com wrote:
bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void user) { user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); // using existing functions user->chiaki_pihw_decoder_draw(user); // using existing functions return True; }
Do it like this:
bool chiaki_pihw_decoder_video_cb(uint8_t buf, size_t buf_size, void user) { ChiakiPihwDecoder *dec = user; chiaki_pihw_decoder_get_buffer(dec, buf, buf_size); chiaki_pihw_decoder_draw(dec); return true; }
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#issuecomment-726163338, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUXBRALLRWTBCEZH2MDSPP75LANCNFSM4TIGWWEQ .
Do you know what this error message from 'make' means, regarding SDL2 ?
[ 11%] Built target gf_complete [ 17%] Built target jerasure [ 19%] Built target chiaki-x11 [ 21%] Built target chiaki-pb [ 25%] Built target protobuf-nanopb-static [ 59%] Built target chiaki-lib [ 61%] Built target setsu [ 62%] Automatic MOC for target chiaki [ 62%] Built target chiaki_autogen gui/CMakeFiles/chiaki.dir/build.make:411: target pattern contains no '%'. Stop. make[1]: [CMakeFiles/Makefile2:482: gui/CMakeFiles/chiaki.dir/all] Error 2 make: *** [Makefile:163: all] Error 2
Line 411 looks like:
SDL2::SDL2-NOTFOUND
On Thu, Nov 12, 2020 at 9:56 PM Blueroom fred.sund@googlemail.com wrote:
I'm sorry the 'git submodule update --init' seems like it might be ok now.
I'd better work on this a bit more before saying anything more...
On Thu, Nov 12, 2020 at 8:28 PM Blueroom fred.sund@googlemail.com wrote:
I moved on to see how it would install and build on a clean Rasbian boot and of course there's things I forgot that I did and some other things not working well.
One thing was that 'git submodule update --init' didn't work in my fork. I had to clone your one, run it there and then copy the 'third-party' folder back to my cloned structure.
What decides how that gets executed? Can I copy some file over to my fork to get it to work?
Another one was that cmake couldn't find SDL2 even if I had it installed. I ended up copying this file from my 'build machine' to my 'test install machine':
/usr/lib/arm-linux-gnueabihf/cmake/SDL2/sdl2-config.cmake
A funny one was that it now complained again that the OpenGL file was pointing to an unsupported gl version, so I swapped again back to your one and it seems to work. I'll have to check if there's a difference in what 3d drivers I have set in the two machines. I might have changed at some point on my work Pi.
I'm going to try and make an install script that people can run to install dependencies and build.
There were issues to get protobuf and nanopb to work but I have to re-do that part as I did so many things I don't know exactly which of them actually solved it.
Cheers!
On Thu, Nov 12, 2020 at 7:50 AM Florian Märkl notifications@github.com wrote:
bool_t ChiakiPiDecodeRenderCallback(uint8_t buf, size_t buf_size, void user) { user->chiaki_pihw_decoder_get_buffer(user, buf, buf_size); // using existing functions user->chiaki_pihw_decoder_draw(user); // using existing functions return True; }
Do it like this:
bool chiaki_pihw_decoder_video_cb(uint8_t buf, size_t buf_size, void user) { ChiakiPihwDecoder *dec = user; chiaki_pihw_decoder_get_buffer(dec, buf, buf_size); chiaki_pihw_decoder_draw(dec); return true; }
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/thestr4ng3r/chiaki/pull/360#issuecomment-726163338, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJPWUXBRALLRWTBCEZH2MDSPP75LANCNFSM4TIGWWEQ .
Do you know what this error message from 'make' means, regarding SDL2 ?
[ 11%] Built target gf_complete [ 17%] Built target jerasure [ 19%] Built target chiaki-x11 [ 21%] Built target chiaki-pb [ 25%] Built target protobuf-nanopb-static [ 59%] Built target chiaki-lib [ 61%] Built target setsu [ 62%] Automatic MOC for target chiaki [ 62%] Built target chiaki_autogen gui/CMakeFiles/chiaki.dir/build.make:411: target pattern contains no '%'. Stop. make[1]: [CMakeFiles/Makefile2:482: gui/CMakeFiles/chiaki.dir/all] Error 2 make: *** [Makefile:163: all] Error 2
Line 411 looks like:
SDL2::SDL2-NOTFOUND
I can only assume this is because you manually copied the sdl2-config.cmake
but it looks like you eventually figured out how to build it. I tried a few days ago on a clean raspbian where I just had to install libsdl2-dev
to make it work, not sure why symlinking the lib was necessary there for you.
Hi Florian!
here's what I have done for the Pi to work. Most of it is in the new pihwdecode.cpp and .h in 'gui'. To save CPU I commented out almost all of VideoDecoder::PushFrame and AVOpenGLFrameUploader::UpdateFrame.
The gui/CMakeLists has quite a few additions and I need to go through and check what I could remove again. But it would be good to get some pointers where in the file I should put it.
So the main code is heavily borrowed from a a few files in the Moonlight project. I made the functions into a class and did changes in it to make it work for Chiaki. Maybe we need to copy in their top-of-the-file headers to follow licensing?
If you have any ideas why I'm having trouble with the Joypad when I restart chiaki I'd love to hear it! UPDATE: I think this was due to signals conflicting as I had the PS4 console just next to me and the PS4 controller wired into the Pi, but it must be still sending input over Bluetooth to the PS4. I have now spent all morning with a xbox controller wired to the Pi instead and Iv'e had no problems at all all morning! :)
Cheers Fred
Fix #126