DuetLapse available for Alpha testing
-
I was attempting to run this on the same PI as my OctoPrint setup. I kept getting errors saying numpy wasn't installed. After attempting the suggested command to get numpy installed, it claimed that pip wasn't installed for python3. After a lot of googling I got pip and numpy installed, but I was still getting the same error saying numpy was required.
I finally added some additional output to DuetLapse.py file and found that I was getting the following error:
Original error was: libf77blas.so.3: cannot open shared object file: No such file or directory
It looks like the answer to that error was to run
sudo apt-get install libatlas-base-dev
I just thought I would post this here in case anyone else runs into this issue, or if anyone has a better way to solve it. I am novice with Linux and Python, so this may not be the best way to handle things.
I am using the following versions of OctoPrint/OctoPi:
OctoPrint version: 1.4.0
OctoPi version: 0.17.0 -
Interesting.
I developed the script on the "Duet" provided image for a Pi, and I'm sure that has things installed that were transparent to me. I've tried to have the script produce meaningful errors when something is missing, and I will need to do that for Numpy. Also, I will look into the libatals-base-dev.
pip is not needed by the script at runtime; it is needed to install things the script needs. As you say, python3 does not install pip by default.
A lot of instructions show how to "bootstrap" pip install via python itself. The actual proper way to install pip on a Python3 (or mixed) system is
sudo apt install python-pip
. This would (should?) get the libatlas dependence automatically.I've updated the script to show the required commands, if numpy is not found.
Thank you.
-
@Danal
I am pretty sure that is not how I did it . Good to know. Thanks for looking into that. Hopefully it will help others in the future.I would also like to mention that it is working now, happily taking pictures of my current print. Good work. I appreciate it.
-
@phdrumlineka said in DuetLapse available for Alpha testing:
I am pretty sure that is not how I did it
No worries. Most of the instructions and tips that turn up in a search are for older versions.
-
just figured out fswebcam will fetch image from rpi camera too .. and its "title" works better than "annotate" with raspistill for adding txt on the image
-
I managed to make the "dual channel video"
samplenow don't know how to properly view it. In potplayer you can switch between the channel using ALT+V but I'd like some picture in picture or something similar more .. will experiment more with the result.. I forked the original repo so I can keep track of changes and so it's safe to play with it as I'm not a python dev so I'm probbly doing things wrong
-
Python is pretty easy in some ways.
A pic-n-pic video "editor" would make a very cool result.
-
@Danal I managed to get used to "no ;" somehow with go but this whitespace structuring is really annoying ... irrelevant ... enough ppl bitching about it online on programming forums no need to spill it here, I just mentioned 'cause probably things I did can/should be done differently (properly - in the spirit of language).
A pic-n-pic video "editor" would make a very cool result.
I actually expected that I'll easily find a video player that will do just that, allow 2 tracks to be played pip style or one next to another or something like that, but most players don't even support multi track video and best I could find is "easy switching" with ALT+V on the potplayer. I generate first both videos as mk4 and then use ffmpeg to copy them into single mkv with two tracks. Will investigate further, maybe there is better way. So far I like that I don't have to use raspistill and that the fs.. can do both rpi camera and usb camera, and I want to be able to capture both and that works somehow ok. Now I need to see how to make a best output from the two sets of images
-
@arhi said in DuetLapse available for Alpha testing:
@Danal I managed to get used to "no ;" somehow with go but this whitespace structuring is really annoying ... irrelevant ... enough ppl bitching about it online on programming forums no need to spill it here, I just mentioned 'cause probably things I did can/should be done differently (properly - in the spirit of language).
I am doing a BUNCH of Python, regular old C, C++, and C# right now (different projects). Subtleties of syntax difference are driving me crazy. (As well as C string/pointer stuff, which I'd forgotten how bad that really is/was).
It is really funny how your mind works. I am really good about no ";" in Python, and yes ";" in the various C flavors... except... on printf statements. The syntax checking editor gets me every time. I just can't make my mind do it.
And, I really, really, really, like the indentation based structure of Python. It is 1/2 the reason I use it instead of PERL. To each his own...
-
@arhi said in DuetLapse available for Alpha testing:
I actually expected that I'll easily find a video player that will do just that, allow 2 tracks to be played pip style or one next to another or something like that, but most players don't even support multi track video and best I could find is "easy switching" with ALT+V on the potplayer. I generate first both videos as mk4 and then use ffmpeg to copy them into single mkv with two tracks. Will investigate further, maybe there is better way. So far I like that I don't have to use raspistill and that the fs.. can do both rpi camera and usb camera, and I want to be able to capture both and that works somehow ok. Now I need to see how to make a best output from the two sets of images
I was thinking more of an editor, so there is nothing at "my end". Just a regular vid, with side-by-side or p-n-p.
Speaking of which, I don't have any players installed on this machine, and I haven't been able to look at that mkv quite yet.
-
@Danal yes, everyone has their preferences. I do system service programming 10 hours a day in c/c++ and since not many of us in my group know how to debug a core file without symbols that was dumped by a 64bit sparc cpu I kinda do some of those too so asm/c/c++ .. and while I can carry syntax of "whatever you throw at me" including python, I rarely write it "in the spirit of ..." but rather "hack it somehow so it produces required results" (as you can see if you diff your tree to my fork)
-
@Danal said in DuetLapse available for Alpha testing:
and I haven't been able to look at that mkv quite yet
not much to see really, usb camera looking at the print, rpi camera looking at ceeling, you play the video and if your player support only one track you will see either part being printed or ceeling of my workshop, if player support multitrack you can switch between one or second video... so far did not find a way to see both tracks in the same time, exploring if that's possible, if not I'll try to make different videos then. What I do is make IMGA*.jpg and IMGB*.jpg, I make two mp4 videos (one from IMGA* other from IMGB*) and then I make a third video .mkv that combines first and second video
-
@arhi said in DuetLapse available for Alpha testing:
I do system service programming 10 hours a day in c/c++
Then I have a really off the wall question for you:
Do you know how to FORCE "Visual Studio Code" (Note: not Visual Studio) with PlatformIO installed running the Espressif32/ESPIDF platform, force it to compile a mixed source module project with C compiler for .c and .h files and C++ compiler for .cpp and .hpp files? I can handle the 'extern' and such for the cross-calling, so the linker is happy, no problem. I just need it to use the right #$% compiler.
I thought the whole "use the right compiler by file extension" thing was automatic, and it seemed like it has worked before in VSC. However, at the moment, I have a project that throws tons of errors in the .cpp files, because it is treating them as .c.
Like I said, off the wall, because it is a VERY narrow question: VSC (not VS), PlatformIO and Espressif32/ESPIDF...
-
@arhi said in DuetLapse available for Alpha testing:
I do system service programming 10 hours a day in c/c++ ...
Then I have a trick question for you Give an example where the insertion of a space char between two tokens changes the semantic of the program.
(inserting a space in a string literal doesn't count since it's not between two tokens).
-
@Danal no idea, I'm mostly the "ssh to a dev machine and work in console", gui is not my thing. I use "visual studio code" only barely (learning go and rust) and that's it. For ESP32 I use basic arduino IDE, did not use it so far for anything serious, ESP8266 I did some "bigger" projects back in the day and with their whole SDK I used xtensa from them and made Makefiles manually, so easy to call gcc or g++ depending on the c/cpp extension. I had platformio setup on previous computer that went out in flames half a year ago and never redid the setup on the new one as I didn't find it very nice. Something about VSC is not sitting with me properly and PlatformIO was taking it too far. I'm the old style Makefile / autoconf and VIM ... recently we moved to cmake but I still did not use cmake for any of my own projects and the cmake structure of mysql is maintained by someone else
-
@zapta said in DuetLapse available for Alpha testing:
@arhi said in DuetLapse available for Alpha testing:
I do system service programming 10 hours a day in c/c++ ...
Then I have a trick question for you Give an example where the insertion of a space char between two tokens changes the semantic of the program.
u talking about +++ situation?
-
@arhi said in DuetLapse available for Alpha testing:
@Danal no idea, I'm mostly the "ssh to a dev machine and work in console", gui is not my thing. I use "visual studio code" only barely (learning go and rust) and that's it. For ESP32 I use basic arduino IDE, did not use it so far for anything serious, ESP8266 I did some "bigger" projects back in the day and with their whole SDK I used xtensa from them and made Makefiles manually, so easy to call gcc or g++ depending on the c/cpp extension. I had platformio setup on previous computer that went out in flames half a year ago and never redid the setup on the new one as I didn't find it very nice. Something about VSC is not sitting with me properly and PlatformIO was taking it too far. I'm the old style Makefile / autoconf and VIM ... recently we moved to cmake but I still did not use cmake for any of my own projects and the cmake structure of mysql is maintained by someone else
Yeah, I have a lot of resonance with that. Nonetheless, breakpoints on the embedded board and hover the mouse over a variable (when paused) to see its value... that makes me put up with a lot from the IDE.
You'll both appreciate this: I'm all over that very lower right magic dot...
-
@Danal hahahahahhaha
I have to say, I learned to "take a walk" .. it is the most effective one, 3d printers help big time here as I stop go fiddle with printer, return fresh :), kids arrived few years ago, they help even more ..
print("here") is my favorite debugging tool in "embedded" systems that I do as a hobby, on my day job it's rather useless so I never do it. On the other hand my daily job debugging in 90% cases the best I can do is crash a server and then go trough core, or follow the JAM log and go trough core. In the rare 10% of cases gdb connect to live server helps (my daily job is a verification and fixing of bugs in mysql server, I don't work on new features). TBH I'd love to use some good IDE for this but it's not that simple, I for e.g. need to debug a problem on 20+ cpu machine with a terabyte of RAM, big O will supply that machine in our lab in Norway for the duration of the work, or our lab in murica or ... but no way I will have that box at home :(. It might be possible that VS these days knows how to go through 2 layers of VPN and connect to a remote box trough access box and do this, but I have to say I have no clue how to set that up and since gdb works, even over shady network from screen I bite the bullet and do it that way. It's not too bad when you get used to it, not as easy as gui but works.
-
@arhi said in DuetLapse available for Alpha testing:
u talking about +++ situation?
Not related to +++. It's a trick question. Here is a hint: how the semantic of ' x(y) ' can be different than the semantic of ' x (y) ' ?
(the single quotes are not part of the code).
-
@zapta does sound vaguely familiar but no clue really. I assume it is most likely something obvious but my brain don't do tricks today and I don't think it's fair I go duckgogo-ing now to find a solution