Jump to content

Banner.jpg.b83b14cd4142fe10848741bb2a14c66b.jpg

OpenLiveStacker - live stacking open-source software/app for Linux and Android


Artik

Recommended Posts

I'm getting into EAA, but the big stopper for me is a cumbersome setup and one of big inconveniences is need to bring a laptop to control the camera and do the live stacking and even more so as Linux user I don't really have viable solution even if I bring a laptop.

Since we all have quite powerful computing device smartphone or tablet, if I only could connect an astronomical camera directly to a smartphone or tablet...

So I implemented it and released as open source... (my two hobbies open-source software and astronomy connected)

 

Supported cameras:

  • ASI ZWO cameras
  • Cameras that support standard UVC protocol (like SVBony sv105/sv205)

What it does:

  • Live stacking: live preview of the result
  • Calibration frames: darks, flats + dark-flats
  • Field derotation for AZ mounts
  • Auto and manual stretch
  • Can be used with manual tracking:
    • allows pause and adjust position and restart
    • allows to show both stacked and live views to see if the object had run away

Supported OS:

  • Android (you can download APK)
  • Linux - so I assume PI as well - also didn't check

How it works:

It is build as a service written in C++ and OpenCV that controls camera and runs all live stacking. It provides web interface so you control the app itself via browser locally or remotely. So Android app actually controls the service and the stacker is controlled via web browser.

How to connect camera to Android

Many modern Android devices support OTG, you only need an adaptor from USB-female to USB-type-C or micro-usb male. Some devices may lack the power to support the camera and external power may be needed, for example sv105 comes with a cable with 3 USB ends - one for camera, one for computer/device and one for power supply.

My phone needs external power but my tablet does not with sv105 and asi224

Screenshot (images from sv105)

 

image

 

Help Needed:

  1. Check it with your setups see if you see any issues 
  2. I'm far from UI expert, so if somebody who knows model client side web development and wants to join the project... help is appreciated 
Edited by Artik
  • Like 4
Link to comment
Share on other sites

This looks very impressive, thank you for publishing.

Wonder if it would make sense and be possible to add a feature that allows the stacking of light frames captured 'offline', as opposed to live stacking. Suspect that wouldn't be too difficult, as all the underlining algorithms are already there. Given the recent improvements in camera phone performance,  that would make it possible to use a smartphone for both capture and stacking, which may be fun to play with.

Regards.

Link to comment
Share on other sites

9 hours ago, thomasv said:

would make sense and be possible to add a feature that allows the stacking of light frames captured 'offline', as opposed to live stacking

What do you mean?

  • use OpenLiveStacker as stacking software for images acquired by other tools
  • or use OpenLiveStacker as capture software so you can stack images offline with other tool

Generally speaking  if it is first it is possible but there is a catch. In order to make registration efficient I use an algorithm that takes in account only shift and field rotation (for AZ) is handled by calculations (knowing frame capture time, location and RA/DE of object). 

However there are plenty of stacking/processing software for example using Siril with gimp would do a very good job and of course there are more.

In any case you can save all stacking data (light frames) so you can process everything offline if you want to.

9 hours ago, thomasv said:

that would make it possible to use a smartphone for both capture and stacking

I have plans adding android camera as one of the cameras but it isn't something trivial, especially since isn't something I can easily debug/develop on a PC with Linux OS.

Link to comment
Share on other sites

Updates, released 2nd beta: https://github.com/artyom-beilis/OpenLiveStacker/releases

  • Stability and error reporting fixes for ASI driver
  • Major performance improvements - now my tablet and phone can stack 2 images per second of 1920x1080 size - there is a room to increase to at least 4 images on Android ARM
  • Various improvements: support of binning for ASI driver, accuracy of registration and some UI improvements
  • On Linux/PI: added support of "directory watching camera" - you setup a directory that camera saves images to and the OpenLiveStacker consumes them as "virtual camera". It should allow easy integration with different cameras with KStars/EKOS

    See manual regarding this feature; I really need this experimental feature to be tested.

Here is my rig - AZ GTi + small archomat 60/400 (sv501p) + ASI ZWO 224mc + android tablet:

image.jpeg.afd66e4e070f8a97c3c7c044f9cb70ba.jpeg

 

Here some samples all taken using OpenLiveStacker under Bortle 8 skies

M38 Starfish, 26 x 2s, with darks

starfish_m38_20230210_224940_stacked_small.thumb.jpg.75232df8c2290fe819f040d259d3be1a.jpg

 

M82 Cigar Galaxy, 90 x 2s, with darks + flats + dark_flats

m82_20230217_002412_stacked_small.thumb.jpg.bccb1f658b8ca95653974948ee21557c.jpg

M42 Orion Nebula, 42 x 5s, with darks

m42_20230126_224340_stacked_small.thumb.jpg.4818ac710a9ebcb04d9d62768d49aaa7.jpg

M1 Crab Nebula, 139 x 1.5s, with darks

m1_20230210_221200_stacked_small.thumb.jpg.b0ce321de28bcb9ac3da727992a4101c.jpg

 

NGC2024 Flame Nebula, 101 x 2s, with darks

flame_ngc2024_20230210_222711_stacked_small.thumb.jpg.e693349f118098be2b1a99af2067fc46.jpg

 

 

Edited by Artik
notes about Bortle 8
  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Beta 3 released: https://github.com/artyom-beilis/OpenLiveStacker/releases/tag/beta3

Manual: https://github.com/artyom-beilis/OpenLiveStacker/wiki/Open-Live-Stacker-Manual

Changelog:

  • Added support of plate solving using ASTAP
  • Linux only: added support of "watch dir" camera allowing to integration with 3rd part tools that can save raw images to a directory in real time.
  • Switched to config.json - for various settings to reduce number of command line parameters
  • Android: ASI SDK updated with fixes for Android >= 10 from ASI dev team
  • Fixes to support Intel CPUs without SSE4
  • Fixes to support older OpenCV (>= 3.2)
  • Added checker patter to live video to show before first image arrived - to prevent live video stream disconnects and make sure screen is visible
     
Link to comment
Share on other sites

  • 2 weeks later...

Beta 4 released: https://github.com/artyom-beilis/OpenLiveStacker/releases/tag/beta4

Manual: https://github.com/artyom-beilis/OpenLiveStacker/wiki/Open-Live-Stacker-Manual

Changelog:

  • Android - fixed major issue with stability of background processing of the application.
    • Now a notification that shows that OLS is active is always shown as notification
    • Process does not exits while working in background.
    • fixed exiting from the application
  • Fixed UI issue with camera parameters settings - added button with clear way to submit new value
  • Added support of plate solving for stacked frames in addition to live frames
  • Added information of how much to move in RA/DE & Alt/Az coordinates to make accurate corrections of location after plate solving
  • Added support of discarding stacked result in case we don't want to keep it
  • Some UI code refactoring

Help Needed

Even if you have a working Live Stacking setup, please try to check it and give feedback. It is vital for improving the app.

 

Link to comment
Share on other sites

  • 2 weeks later...

Beta 7 ready: https://github.com/artyom-beilis/OpenLiveStacker/releases/tag/beta7

 

- Fixed ASTAP/platesolving support for older Android 7, 8
- Added feature of auto-removing of satellite trails during live stack.
- Added support of temperature and cooling controls for ASI cameras
- Added support of Auto Exposure and White Balance to ASI cameras
- Now mono-cameras do stacking as mono - not faking RGB - major performance improvements
- Various UI/UX improvements

I'm still looking for more beta testers - for this open-source project.

 

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Release 9.1

This is preparation for Google Play release - moving to latest SDK 33 and adaptations to Android 13.

image image.png.86fe4e90c88e47ac73d48dea1c39c080.png

Chagelog

  • Added support of external SD card for storage of the data.
  • For better look and feel, internal WebView is now used instead of external browser by default (you still can select using external browser if issues appear)
  • The directory all the data is now saved is Android/data/org.openlivestacker/files instead of DCIM due to new permission model in new Android versions that made it virtually impossible to write to common media storage.
    • The downside of it, if you uninstall the application all the data and files are lost - both calibration frames and ASTAP database.
  • Added support of downloading ASTAP database from the application itself (under configuration -> ASTAP tab)
  • Added support of image zoom (+/- buttons on bottom left)
  • Removed confusing on/off defaults, fixing issue #13

You can download latest APK here: https://github.com/artyom-beilis/OpenLiveStacker/releases

Manual: https://github.com/artyom-beilis/OpenLiveStacker/wiki/Open-Live-Stacker-Manual

 

 

Edited by Artik
Link to comment
Share on other sites

  • 2 weeks later...

Using the app leads to bug fixes 

Here release beta-10 changelog 

  • Android specific fixes:
    • All the data moved to Android/media instead of Android/data due to access restrictions on Android 13.
    • Fixed browser resize issue when using split Window
  • Plate solving improvements:
    • Added support of downloading g05 and w08 databases
    • Updated astap_cli to version 2023-05-14, thanks to @han-k59
    • Added support of looping plate-solving, implementing feature request #8
    • Improved plate-solving UI
    • Now raw images are transfered to ASTAP instead of RGB to prevent hot pixes to be identified as stars after de-bayer processing
  • Data saving
    • Now recorded tiff data contains raw images (before de-bayer process) rather than RGB
    • Watch-dir camera driver sends raw images rathe than RGB
  • Video Streaming performance improvements:
    • Fixed incorrect video stream closing at client that caused an app to continue video stream even when it is closed
    • Changed framerate handling - now minimal framerate to keep video alive is 1FPS but upon arrival of new frame it is resent withing 100ms to make sure it is shown to user due to video double buffering.
  • Live/Stacked video view, fixed incorrect framing that caused unneeded scrolling if video
  • Added scrolling to configuration views to make sure you can access all the controls even on small screen

Release is as usual here https://github.com/artyom-beilis/OpenLiveStacker/releases

I finally managed to get few hours of clear skies and here the results,

Bortle 8, AZ GTi at-az mode, sv501p 60/400 achromat, ASI224MC with darks, 5s lights gain 300, live stack as is on.

I only cropped central part to show images. All around 20-40 frames. 

Camera connected Galaxy A31 thats runs both OpenLiveStacker and synscan apps

M3 

M3_20230519_235341_stacked.jpeg.02b8d8c38f47460b051ad718b3b20014.jpeg

M53

M53_20230520_000118_stacked.jpeg.55eef9b8160c8cdd67e1833ac1271630.jpeg

M64 Black Eye galaxy

m64_20230520_000733_stacked.jpeg.c8d5acd5aa66cbfd3cd0812ba74d3815.jpeg

M104 Sombrero Galaxy (only 19 frames and clouds arrived

m104_20230520_001544_stacked.jpeg.1d75598aa0efea55138a5c7cbf4eff92.jpeg

 

And here screenshot of SynScan running together with OpenLiveStacker - doing focus

synscan.thumb.jpeg.85644edf60b888d8d4e0b00b5fac89b1.jpeg

 

 

 

Link to comment
Share on other sites

The last version of OpenLiveStacker is starting to work well.  Below a 5 minutes video from my test last night. First a test using the solver for navigation and then stacking.  I used a 58 mm camera lens connected to my ASI1600 piggyback mounted on my HEQ5 mount:

 

58mmlensandASI1600.jpg.34e63e94efac3b287637d2f852f7f003.jpgtestsetup.jpg.826f629cb16729cd68f896a85d061519.jpg

Video:

 

  • Like 1
Link to comment
Share on other sites

Any here a stacked image x 25 of M3 from last night. Exposure time?.  Field of view is  something like 17 x 13 degrees. The distortion in the corners is severe. I better had reduced the diaphragm to a smaller opening.  These old camera lenses are no so good. But the center of the image is nice sharp so stacking works:

Han

M3_20230526_001925_stacked.thumb.jpg.31b9b0ac7d82ff11c82eeba31fa8460a.jpg

  • Like 1
Link to comment
Share on other sites

On 26/05/2023 at 22:21, han59 said:

These old camera lenses are no so good

Having tried a 44M-6 myself I could have predicted this result :) and can tell you have to close at least 5.6 to improve a bit (far from perfect) on this lens. Its renowned swirling bokeh is due to severe astigmatism so not much can be done.

However don't ditch all old glass, as most are much better than that. e.g. a 50mm/1.7-1.8 from Asahi/Takumar, Pentacon or Minolta will be perfect or nearly from F4 on.

Link to comment
Share on other sites

Beta 11+12 changelog: https://github.com/artyom-beilis/OpenLiveStacker/releases/tag/beta12

 

New major features:

  • Added support of camera configuration profiles that allow switching between different setups
  • Added support of live video stretch #24
  • Added copyright info and link to manual to the app #25, #30
  • Added support of ROI for ASI camera - critical for large sensors and focusing

Bug fixes

  • Fixed #28 Solver screen is not readable, instead of showing all formats user selects what he needs
  • Fixed configuration screens overlapping each other, now upon opening new screen other is closed
  • Fixing issue #12 added support of asynchronous error notifications, for example errors of inability to save results
  • Fixed Camera permission request needed UVC devices
  • Fixed zoom for solved image as well
  • Improved user settings saving - now all should be saved (not camera - for this there are presets)
  • Attempt to fix WebView missing keyboard sign issue for numerical inputs
  • Fixed incorrect path in error messages
  • Fixed notifications issues on Android 13
  • Fixed crash on Android 12 and above
     

I still need more beta testers.

 

  • Like 1
Link to comment
Share on other sites

Yesterday I had some time and regardless of full moon I made some pictures with my bigger 102/660 achromat using ASI 224MC

Subs of 2 seconds on M3 and 5 on M82/M51 all less than 5 min total,

m82

m51

m3

 

And here from few days ago 60/400 5s subs all less than 5min total all from Bortle 8 area

This is M101 with supernova - I liked to see magnitude difference between the core of the galaxy and single SN.

I did little bit stretching afterwards

101 + SN

 

Leo Triplet

image.thumb.jpeg.1c9bb1de3843643e34a476804bf3cc8a.jpeg

I also did comparison of sv105 and 224mc for fun on some DSO (sv105 was my first camera I started with)

sv105-vs-224mc

 

  • Like 2
Link to comment
Share on other sites

This night I could test again OpenLiveStacker with my 58mm camera lens on my ASI1600,  uncooled.

Stretching during streaming worked great. Now I get a good view of the sky. See in the video below the satellite moving through the sky. The video below was made with the camera looking up from a fixed position. Please make stretch default on.

 

 

ROI,  "regio of interest" works goods. But if I change from format "4656x3520,  bin 1x1" to format "2328 x1760,  bin 2x2", my field of view halves from 13 degrees to 6.5 degrees. (bug) g). Solving could fail due to this. You can see the tree disappearing when I change format.

 

 

Exposure time is remembered in simulation. But using the ASI1600 the last used gain, format and exposure are not remembered.

Using the SD card option gives still a runtime error after a second restart.

The backspace of my lens in not optimal. Therefore the corners of the images are distorted. I have ordered other T2 adapters to reach the required backspace distance.

 

Han

Edited by han59
  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Beta 15 released:

https://github.com/artyom-beilis/OpenLiveStacker/releases/tag/beta15

I'm still looking for more beta testers! This can be highly useful tool for EAA.

Updates since beta 12:

  • Added force landscape option for UI 
  • Fixed #37 - change behavior to allow resume and continue:
    • Now there are pause/resume and stop buttons for stacker
    • Save only saves the frame, it does not cancel stacking
    • Moved "Stack" button to up to no need to scroll down
    • Rearranged some stack form inputs to keep most used one at the top
  • Fixed #36 - registration does not work on 32 bit arm - armel-v7a.
  • Fixed #45 Arrow points to wrong direction when plate solving over mirrored/flipped image
  • Fixing #40 allow longer plate solving times
  • Fixed #41 Object ID need to be shared between solver and stacker
  • Reduce minimal required Android version to 6 - highly experimental
  • Implemented #48 - allow delay when starting stacking
  • Added better error reporting for failures of ASI Cameras - such that error message and code are displayed in case camera fails to open at early stages
  • Fixed colour issues on some Android phones, and formatting updates
  • Fixed crash when listening port is busy
  • Fixed #34 incorrect FOV calculation in plate solver when using binning
  • Changed binning formatting from :B2/:B4 to more readable :bin2/:bin4
  • Added more debug information in case of permissions denied issue
  • Fixed #46 request camera permission that is probably needed on some devices when using ASI driver
  • Change "FR limit" to "FPS limit"
  • Fixed #42 rename "Save Debug" to "Save All Frames"

 

Link to comment
Share on other sites

  • 3 weeks later...

This is the release that is ready for Google Play.

If everything works as expected I'll push it to google store

It is very important to do as many tests as possilbe

Beta 17:

https://github.com/artyom-beilis/OpenLiveStacker/releases/tag/beta17

New features and updates:

- Implemented #49 updated ASTAP to latest version and with better DB ranges
- Add option to use tablet/smartphone screen that runs OpenLiveStacker to take flats 
- Implemented #54 mark plate solving result in screen diagonal distances for better perception
- Implemented #44 allow modification of font size
- Add IP and port option for Linux builds
- Implemented #51 Save previous resolution/format/binning to prevent searching it each time

Bug fixes:

- Fixed #55 - drop last stacked frame if delay > 0 is used (when the phone is connected to OTA and touching screen can create distorsions)
- Fixed #53 - save lat/lon settings between restarts if not provided automatically
- Fixed UVC driver crash due to uninitialized data
- Fixed #56 - incorrect histogram behavior when black/0 line too high
 

Beta 16:

New Features

- Now stretching uses histogram based UI

Bugs/Issues:

- Fixed #50 move solve button up so no need to scroll to rerun
- Fixed #38 request cancel confirmation if stacking collected 60s of integration time or more, improved saved data to include much more information
 

hist.thumb.jpeg.bc119faf92f8abf0ff2925ce98f20185.jpeg

 

 

 

Edited by Artik
Link to comment
Share on other sites

And there my observation log from few weeks ago.

I took my small EAA rig: SVBony sv501p 60/400 achromat, ASI224MC camera and AZ GTi on lightweight tripod. It was late and I was tired but I took it for an hour outside, went to a parking lot near the building with open skies (bortle 8 ) did quick 3 star alignment and started: Ring Nebugla, Globular clusters, Laguna, Trifid, Dumbell and even Eagle Nebual. I spend 2 to 5 minutes on each object

post-363840-0-86104400-1687335309.jpeg.24e4f9ab54079f044210df496bf5d619.jpeg

 

post-363840-0-53654900-1687333848.jpeg.029b0012d4d7c0cc307669b0b7a1597e.jpeg

 

I was so pleased because it was exactly what I was hoping for to have a small and portable rig I can take easily outside and start observing. Dark skies are hard to get to so EAA sometimes is only option to see something.

It was pure fun. It happened that AZ GTi worked perfectly putting each object in the middle of the frame and it was really blast.

Here results (downscaled of course) - 11 objects in 1 hour. 

Butterfly, Dumbbell, Ealge, 
M10, M12, Trifid,
M5, Ring, Lagoon,
Ptolemy and Wild Duck clusters

post-363840-0-56217200-1687334721.jpeg.2c985318b77d9ff208e26500efe8d410.jpeg

  • Like 1
Link to comment
Share on other sites

Smartphone camera isn't implemented yet. Currently following are supported

  • USB Video Class cameras like SVBony sv105/sv205
  • ASI ZWO cameras

I've started to work on DSLR support. The support of Android camera is planned but I hadn't started implementing one yet

Link to comment
Share on other sites

2 hours ago, Artik said:

Smartphone camera isn't implemented yet. Currently following are supported

  • USB Video Class cameras like SVBony sv105/sv205
  • ASI ZWO cameras

I've started to work on DSLR support. The support of Android camera is planned but I hadn't started implementing one yet

If you could support Android cameras that would be awesome! I only use a smartphone (Google Pixel 6 Pro), no Astro camera, so would be able to give this a go.

  • Like 1
Link to comment
Share on other sites

It is planned. I now work on DSLR and polishing it for Google Play.

Once DSLR is ready I'll start working on Android camera driver... Also I'm not big fan of quality of Android cameras (also maybe because mine isn't any good)

  • Thanks 1
Link to comment
Share on other sites

2 minutes ago, Artik said:

It is planned. I now work on DSLR and polishing it for Google Play.

Once DSLR is ready I'll start working on Android camera driver... Also I'm not big fan of quality of Android cameras (also maybe because mine isn't any good)

They are getting pretty good! There is built in stacking with the Google Pixel phones but it doesn’t give a live view. It takes a 4 mins exposure, works pretty well!

A7B215BC-1B7A-4E3B-8A45-03B5AAD4011B.jpeg

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Wow  - that is nice indeed.


 Is it using raw images? jpeg? what is subs exposure?

 

And I'll implement it. You aren't the first one asking for this feature. Just unlike ASI, UVC or libgphoto2 that I can easily build and debug on Linux this one is way trickier :-) 

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. By using this site, you agree to our Terms of Use.