Get Connected!

Come and join our community. Expand your network and get to know new people!

Yes, that´s the hole issue the mount disagrees with Ekos ;-) I will check later today once more all the time settings in the hand conroller and in KStars and Ekos.

Read More...

Good to hear you got the main problem sorted out :)

Read More...

Hello everyone.

Last night I tested firmware v3.20 and this solved the problem. But the guiding was not as good as in Windows (I tested too).

It could be an encoders problem? I think I have read in a forum that it should be done, but I'm not sure.

I attach PHD logs from INDI and ASCOM. I can't attach KStars log because it's 48Mb long :-S.

I think that this problem is solved.

Thanks again.

Read More...

Dear all,
How do I turn off screen blanking? I want my screen on all the time!
Cheers, Arnold

Read More...

A 1st version of the capture.py is locatde here:

Read More...

Python script gets the fits file from indilibserver, tze cam model (in my case a QGYIII178C, is hard codded for now). you can set a few parameters:

capture.py -b binding -g gain -e exposure -f filename

#########################################
#!/usr/bin/python3

import PyIndi
import time
import sys
import getopt
import threading
import io
import numpy as np
from PIL import Image
from astropy.io import fits



class IndiClient(PyIndi.BaseClient):
def __init__(self):
super(IndiClient, self).__init__()
def newDevice(self, d):
pass
def newProperty(self, p):
pass
def removeProperty(self, p):
pass
def newBLOB(self, bp):
global blobEvent
print("new BLOB ", bp.name)
blobEvent.set()
pass
def newSwitch(self, svp):
pass
def newNumber(self, nvp):
pass
def newText(self, tvp):
pass
def newLight(self, lvp):
pass
def newMessage(self, d, m):
pass
def serverConnected(self):
pass
def serverDisconnected(self, code):
pass

def main(argv):
global blobEvent
try:
opts, args = getopt.getopt(argv,"hb:g:e:f:")
except getopt.GetoptError:
print ('capture.py -b binding -g gain -e exposure -f filename')
sys.exit(2)

if len(opts) == 0:
print ('capture.py -b binding -g gain -e exposure -f filename')
sys.exit(2)

for opt, arg in opts:
if opt == '-h':
print ('capture.py -b binding -g gain -e exposure -f filename')
sys.exit()
elif opt in ("-b"):
binding = arg
elif opt in ("-g"):
gain = arg
elif opt in ("-e"):
exposure = arg
elif opt in ("-f"):
filename = arg

print ('binding is ', binding)
print ('gain is ', gain)
print ('exposure is ', exposure)
print ('filename is ', filename)

# connect the server
indiclient=IndiClient()
indiclient.setServer("localhost",7624)

if (not(indiclient.connectServer())):
print("No indiserver running on "+indiclient.getHost()+":"+str(indiclient.getPort())+" - Try to run")
print(" indiserver indi_simulator_telescope indi_simulator_ccd")
sys.exit(1)

# Let's take some pictures
ccd="QHY CCD QHY5III178C-62f"
device_ccd=indiclient.getDevice(ccd)
while not(device_ccd):
time.sleep(0.5)
device_ccd=indiclient.getDevice(ccd)

ccd_connect=device_ccd.getSwitch("CONNECTION")
while not(ccd_connect):
time.sleep(0.5)
ccd_connect=device_ccd.getSwitch("CONNECTION")
if not(device_ccd.isConnected()):
ccd_connect[0].s=PyIndi.ISS_ON # the "CONNECT" switch
ccd_connect[1].s=PyIndi.ISS_OFF # the "DISCONNECT" switch
indiclient.sendNewSwitch(ccd_connect)

ccd_exposure=device_ccd.getNumber("CCD_EXPOSURE")
while not(ccd_exposure):
time.sleep(0.5)
ccd_exposure=device_ccd.getNumber("CCD_EXPOSURE")

ccd_gain=device_ccd.getNumber("CCD_GAIN")
while not(ccd_gain):
time.sleep(0.5)
ccd_gain=device_ccd.getNumber("CCD_GAIN")

#ccd_temperature=device_ccd.getNumber("CCD_TEMPERATURE")
#while not(ccd_temperature):
# time.sleep(0.5)
# ccd_temperature=device_ccd.getNumber("CCD_TEMPERATURE")

ccd_binding=device_ccd.getNumber("CCD_BINNING")
while not(ccd_binding):
time.sleep(0.5)
ccd_binding=device_ccd.getNumber("CCD_BINNING")

print("Current Values:")
print("Exposure: ", ccd_exposure[0].value)
print("Gain: ", ccd_gain[0].value)
#print("Temperature: ", ccd_temperature[0].value)
print("Binding: ", ccd_binding[0].value)


# Ensure the CCD simulator snoops the telescope simulator
# otherwise you may not have a picture of vega
ccd_active_devices=device_ccd.getText("ACTIVE_DEVICES")
while not(ccd_active_devices):
time.sleep(0.5)
ccd_active_devices=device_ccd.getText("ACTIVE_DEVICES")
ccd_active_devices[0].text="Telescope Simulator"
indiclient.sendNewText(ccd_active_devices)

# we should inform the indi server that we want to receive the
# "CCD1" blob from this device
indiclient.setBLOBMode(PyIndi.B_ALSO, ccd, "CCD1")

ccd_ccd1=device_ccd.getBLOB("CCD1")
while not(ccd_ccd1):
time.sleep(0.5)
ccd_ccd1=device_ccd.getBLOB("CCD1")

# a list of our exposure times
#exposure = 10
#gain = 0
#binding = 2

# we use here the threading.Event facility of Python
# we define an event for newBlob event
blobEvent=threading.Event()
blobEvent.clear()

ccd_exposure[0].value=float(exposure)
indiclient.sendNewNumber(ccd_exposure)

ccd_gain[0].value=float(gain)
indiclient.sendNewNumber(ccd_gain)

ccd_binding[0].value=float(binding)
indiclient.sendNewNumber(ccd_binding)

ccd_exposure=device_ccd.getNumber("CCD_EXPOSURE")
while not(ccd_exposure):
time.sleep(0.5)
ccd_exposure=device_ccd.getNumber("CCD_EXPOSURE")

ccd_gain=device_ccd.getNumber("CCD_GAIN")
while not(ccd_gain):
time.sleep(0.5)
ccd_gain=device_ccd.getNumber("CCD_GAIN")

#ccd_temperature=device_ccd.getNumber("CCD_TEMPERATURE")
#while not(ccd_temperature):
# time.sleep(0.5)
# ccd_temperature=device_ccd.getNumber("CCD_TEMPERATURE")

ccd_binding=device_ccd.getNumber("CCD_BINNING")
while not(ccd_binding):
time.sleep(0.5)
ccd_binding=device_ccd.getNumber("CCD_BINNING")

print("Set values to:")
print("Exposure: ", ccd_exposure[0].value)
print("Gain: ", ccd_gain[0].value)
#print("Temperature: ", ccd_temperature[0].value)
print("Binding: ", ccd_binding[0].value)

blobEvent.wait()
for blob in ccd_ccd1:
print("name: ", blob.name," size: ", blob.size," format: ", blob.format)
# pyindi-client adds a getblobdata() method to IBLOB item
# for accessing the contents of the blob, which is a bytearray in Python
fits=blob.getblobdata()
# print("fits data type: ", type(fits))

# write image data to StringIO buffer
blobfile = io.BytesIO(fits)
# open a file and save buffer to disk
with open(filename, "wb") as f:
f.write(blobfile.getvalue())


if __name__ == "__main__":
main(sys.argv[1:])

########################


For the fits -> png conversion I use this script below - still work in progress, i generate lots of files to find the best one. Seems that the little auto stretching, white balancing function does its job. Its looks very similar as the KStars Fits debayering / preview or as in ZWOs ASIFitsView.
Best one seems to be the combination of Menon2007 debayering and white balancing - capture_image_int8_Menon2007_wb.png.

########################

import os
import cv2
import numpy as np
import astropy.io.fits as pyfits

from colour_demosaicing import (
EXAMPLES_RESOURCES_DIRECTORY,
demosaicing_CFA_Bayer_bilinear,
demosaicing_CFA_Bayer_Malvar2004,
demosaicing_CFA_Bayer_Menon2007,
mosaicing_CFA_Bayer)

def white_balance(img):
stack = []
for i in cv2.split(img):
hist, bins = np.histogram(i, 256, (0, 256))
# remove colors at each end of the histogram which are used by only by .05%
tmp = np.where(hist > hist.sum() * 0.0005)[0]
i_min = tmp.min()
i_max = tmp.max()
# stretch history a bit
tmp = (i.astype(np.int32) - i_min) / (i_max - i_min) * 255
tmp = np.clip(tmp, 0, 255)
stack.append(tmp.astype(np.uint8))
return np.dstack(stack)

hdul = pyfits.open('/home/fritz/python/test.fits')
print (hdul.info)
image_uint16=hdul[0].data
print("Raw fits file:")
print(image_uint16)
print("######################################################")

image_int8 = cv2.normalize(image_uint16, None, 0, 255, cv2.NORM_MINMAX, dtype=cv2.CV_8U)

print("Normalized data:")
print(image_int8)
print("######################################################")


image_int8_eq = cv2.equalizeHist(image_int8)

print("EqualizeHist data:")
print(image_int8_eq)
print("######################################################")


balanced_img = np.zeros_like(image_int8) #Initialize final image

image_rgb1 = cv2.cvtColor(image_uint16, cv2.COLOR_BayerGB2RGB)
image_rgb2 = cv2.cvtColor(image_int8, cv2.COLOR_BayerGB2RGB)
image_rgb3 = cv2.cvtColor(image_int8_eq, cv2.COLOR_BayerGB2RGB)
debayerImage1 = demosaicing_CFA_Bayer_Malvar2004(image_int8, pattern='GRBG')
debayerImage2 = demosaicing_CFA_Bayer_bilinear(image_int8)
debayerImage3 = demosaicing_CFA_Bayer_Menon2007(image_int8, pattern='GRBG', refining_step=True)

print("RGB image_uint16 data:")
print(image_rgb1)
print("######################################################")

print("RGB image_int8 data:")
print(image_rgb2)
print("######################################################")

print("RGB image_int8_eq data:")
print(image_rgb3)
print("######################################################")

cv2.imwrite('/home/fritz/python/capture_image_uint16.png', image_rgb1)
cv2.imwrite('/home/fritz/python/capture_image_int8.png', image_rgb2)
cv2.imwrite('/home/fritz/python/capture_image_int8_eq.png', image_rgb3)
cv2.imwrite('/home/fritz/python/capture_image_int8_Malvar2004.png', debayerImage1)
cv2.imwrite('/home/fritz/python/capture_image_int8_bilinear.png', debayerImage2)
cv2.imwrite('/home/fritz/python/capture_image_int8_Menon2007.png', debayerImage3)
cv2.imwrite('/home/fritz/python/capture_image_int8_wb.png', white_balance(image_rgb2))
cv2.imwrite('/home/fritz/python/capture_image_int8_Malvar2004_wb.png', white_balance(debayerImage1))
cv2.imwrite('/home/fritz/python/capture_image_int8_Menon2007_wb.png', white_balance(debayerImage3))

########################

Read More...

Jörg Schirmer replied to the topic 'Altair video' in the forum. 4 hours 10 minutes ago

Sorry, it was my fault! I didn't see the notice: ".... if you are connected to a remote INDI server, then the directory must be a valid directory on the remote file system where it is saved."

Jörg!

Read More...

You just respond here and I'll format it later, the content is what matter!

Read More...

gilesco wrote: This looks fantastic, is the only option to build one ourselves according to your plans, or can this be developed into a purchasable product?

I created a repository for that project: github.com/tikiss/PowerShield
So everybody can build their own, but I am planning to order machine populated boards if there are interests.

Read More...

Hello-

I am a recent new comer to this excellent program. I am testing my installation of a local astrometry solver on linux by implementing a simulated telescope/mount and CCD system. I used values for the telescope and CCD that are in the PAA video used I believe by the author of this program, iee 3326x2504 resolution and 5.4 um pixel size. I am using the same 900 FL scope as well. This generates a FOV of 68.6' x 51.7'.

I am trying to do a polar alignment.

The problem I'm having is that the mount does not seem to be rotating under command after acquiring an image and plate solving (successfully). In fact, it appears that the RA is changing at the rate of the planet's rotation, so after about 2 hours I believe, it does complete the 30 deg rotation and continue to the next image acquisition and plate solve.

I've attached a partial log file with debugging enabled. This log includes the start of Kstars, the unparking of the simulated mount, the slewing to a star near Polaris, and the initiation of the PAA routine. The PAA performs an image capture, successfully solves it, then commands a 30 deg rotation. At this point the program just sits there as the mount is not moving. Rather than uploading a full log of all three such sequences I just uploaded at that point. But I do have at least one large sequence where it did complete the rotations after several hours of running.

The odd thing is I believe I had this working initially, and I was seeing automated 30-deg rotations, but I must have changed some setting that is now interfering with the functionality of the PAA routine.

Thanks in advance,
Eric

File Attachment:

File Name: log_11-07-22.txt
File Size: 399 KB


P.S. - even though I created a new profile for this simulation test, I see in the log file a reference to my Nikon D5300 DSLR which I used in a different profile. Not sure why that is carrying over.

P.P.S - my physical system consists of an F10 203mm aperature Orion 8" scope and the Nikon. This gives a FOV of only 39.74' x 26.38', well below the stated requirement of 1 deg of FOV. Is this doomed to failure if I try to do solving in the PAA or other modules?

Read More...

Hello-

I am a recent new comer to this excellent program. I am testing my installation of a local astrometry solver on linux by implementing a simulated telescope/mount and CCD system. I used values for the telescope and CCD that are in the PAA video used I believe by the author of this program, iee 3326x2504 resolution and 5.4 um pixel size. I am using the same 900 FL scope as well. This generates a FOV of 68.6' x 51.7'.

I am trying to do a polar alignment.

The problem I'm having is that the mount does not seem to be rotating under command after acquiring an image and plate solving (successfully). In fact, it appears that the RA is changing at the rate of the planet's rotation, so after about 2 hours I believe, it does complete the 30 deg rotation and continue to the next image acquisition and plate solve.

I've attached a partial log file with debugging enabled. This log includes the start of Kstars, the unparking of the simulated mount, the slewing to a star near Polaris, and the initiation of the PAA routine. The PAA performs an image capture, successfully solves it, then commands a 30 deg rotation. At this point the program just sits there as the mount is not moving. Rather than uploading a full log of all three such sequences I just uploaded at that point. But I do have at least one large sequence where it did complete the rotations after several hours of running.

The odd thing is I believe I had this working initially, and I was seeing automated 30-deg rotations, but I must have changed some setting that is now interfering with the functionality of the PAA routine.

Thanks in advance,
Eric

File Attachment:

File Name: log_11-07-22.txt
File Size: 399 KB


P.S. - even though I created a new profile for this simulation test, I see in the log file a reference to my Nikon D5300 DSLR which I used in a different profile. Not sure why that is carrying over.

P.P.S - my physical system consists of an F10 203mm aperature Orion 8" scope and the Nikon. This gives a FOV of only 39.74' x 26.38', well below the stated requirement of 1 deg of FOV. Is this doomed to failure if I try to do solving in the PAA or other modules?

Read More...

Hi everybody.

I'm having a lot of problems using EKOS and external autoguiding in PHD2. If I enable DEC guiding mode as "Auto" I always get a graph like the attached one. At first, it goes well but when a north correction pulse is done, the DEC red line goes down wildly.

Instead of that, if I only change USBs to my Windows laptop and start ASCOM + Cartes du ciel + APT + PHD2, the graph is perfect, as seen on attachment.

This is my equipement:

  • Mount: Skywatcher AZ-GTI + Star Adventurer wedge + serial cable
  • Main tube: Skywatcher Evostar 72ED 420mm + Canon 550D
  • Guiding tube: Svbony SV165 30mm/120mm + ZWO ASI178MC
  • System: Raspberry PI 4 & Astroberry (INDI Library v1.8.6 & KStars v3.4.3 using EQMod driver)

I have a friend with the same problem.

What could be the problem? Bad settings? Driver bug?

Here are PHD2 logs. I think I'm going to test it again tonight and I'll get INDI logs.


Thank you in advance.

Read More...

Dear all,

let introduce you my latest development, a power shield for Astroberry (Raspberry).
This board has the following HW features:

  • One power input
  • Integrated 3A 5V power supply for RPi
  • 4 switchable (ON/OFF) (not regulated) power outputs
  • 2 switchable (ON/OFF) or PWM controlled power outputs for dew heaters
  • Each output has LED feedback
  • Each output are protected with 4A fuse
  • All fuses have separate sense pin to detect if a fuse burned
  • Integrated GPS module with integrated antenna (but there is the possibility to connect external antenna as well)
  • Integrated BME280 sensor to measure temperature/humidity/pressure
  • Input voltage level measurement (max 20V)
  • Total output current measurement (max 16A, allowed 15A)
  • Cooling fan for RPi processor (selectable 3,3V or 5V fan power supply)
  • 3,5mm jack connector with selectable one wire or I2C interface to external sensor or extension board
  • Box size: 105x125x35mm (WxDxH)

I have already tested every feature of the board and they working correctly.
One thing is open, to load the board with 15A and check how the temperature spread over the board, the next weeks I will perform the measurement.

But I have a big problem, I am an HW developer, I can write some easy SW, like I wrote some scripts to test the different features of the board but I fill myself no so confident to write an Indi library with that high quality how you do it guys.
So if someone is interested in this board I am looking for somebody who could make an Indi implementation. Of course, I can provide HW for SW development.

And finally some pictures about it:





Read More...

Hello all,

Just started using astroberry (bought a new RPI 3B+ just for that).

Here is my setup:
RPI (astroberry last available edition 2.0.3 + updates) - Connected to the internet via Wifi
USB GPS (working fine, getting Fix and time but for some weird reasons no maps are displayed) Indi driver GPSD
Synscan handheld connected to RPI via USB (control of the AZ-GTI mount working fine via KStars) Indi driver SynScan
ZWO ASI385MC via USB (Now I know the camera is USB3 and RPI 3B+ is USB2 but in all fairness I doubt that this is the issue) Indi driver ZWO CCD as I didn't find any other that would match it, but the control panel recognises the camera as a ASI385MC so I guess it is ok.
Canon 5D Mark III via USB using Indi Canon DLSR driver.

Everything shows up in lsusb -v.

All of this works (seems to work fine - no chance to fully test everything yet).
When in Indi control panel, I can do all the setups for every single bit of kit connected to the RPI and the communications look ok. I can do streaming from the Canon 5D without an issue and even click lights (though I messed up the setup and the lights were not saved at all...)
As soon as I start the streaming for the ASI, I have around 5-10 seconds and the RPI simply crashes, when I say crash I mean a full crash, even the TCP Stack stops working (ssh connection lost, no answers to ping). The only option is a full power cycle of the RPI. And this is systematic, I start the streaming on the ZWO, RPI crash.

Any ideas???

Thanks in advance,
C

Read More...

Do I understand that there is a zone of the sky close to the meridian which your mount cannot enter because the scope will hit the tripod?

You avoid this area by setting the mount Ra axis limits to -5 degrees rather than the default of +20 degrees. This means that the mount will stop tracking 20 minutes before the scope reaches the meridian, at an hour angle of -20 minutes. You then need to wait 40 minutes, until the target is at an hour angle of +20 minutes before a slew to that position works.

If that's correct, that there is a zone close to the meridian which the scope cannot enter, then at present I don't think that Ekos will cope.
There are properties that would help but the underlying code doesn't support it.

The Ha Limit needs to be set so that Ekos stops tracking before the mount hits it's internal stop so this needs to be set to -6 degrees.
The Flip limit needs to be set to a position where the mount can move to the position safely, so this needs to be set to +6 degrees.

In practice the mount will then track to the -6 degree Ha limit and stop. That's where it remains because the scope hour angle, which is used to determine when the flip is done stops changing. what's needed is that in this case the hour angle used changes to being the hour ange of the target and when that is reached, in 48 minutes, the flip will be done, tracking will be restarted and the system can contiune.

It looks as if all that's needed is for the flip management system to change to using the target position rather than the scope position. Maybe only when he Ra limit has been reached. The trouble is that this section of code and the various state machines that manage it are so complex that chaning it is difficult and it is easy for it to break something else.

Read More...

Stephane replied to the topic 'New adventure: a CEM25P' in the forum. 5 hours 12 minutes ago

So the https://indilib.org/telescopes/ioptron.html]StarFi adapter, from what I'm reading, is just a fancy RS323>wifi box that you connect at the back of the hand controller. Just to eliminate the cable between your computer and the hand controller :S
I was under the impression that it would bypass it, good thing I do a lot of forum searching :P ... I'd rather have a cable thank you very much.

Read More...

Hello all,

Just started using astroberry (bought a new RPI 3B+ just for that).

Here is my setup:
RPI (astroberry last available edition 2.0.3 + updates) - Connected to the internet via Wifi
USB GPS (working fine, getting Fix and time but for some weird reasons no maps are displayed) Indi driver GPSD
Synscan handheld connected to RPI via USB (control of the AZ-GTI mount working fine via KStars) Indi driver SynScan
ZWO ASI385MC via USB (Now I know the camera is USB3 and RPI 3B+ is USB2 but in all fairness I doubt that this is the issue) Indi driver ZWO CCD as I didn't find any other that would match it, but the control panel recognises the camera as a ASI385MC so I guess it is ok.
Canon 5D Mark III via USB using Indi Canon DLSR driver.

Everything shows up in lsusb -v.

All of this works (seems to work fine - no chance to fully test everything yet).
When in Indi control panel, I can do all the setups for every single bit of kit connected to the RPI and the communications look ok. I can do streaming from the Canon 5D without an issue and even click lights (though I messed up the setup and the lights were not saved at all...)
As soon as I start the streaming for the ASI, I have around 5-10 seconds and the RPI simply crashes, when I say crash I mean a full crash, even the TCP Stack stops working (ssh connection lost, no answers to ping). The only option is a full power cycle of the RPI. And this is systematic, I start the streaming on the ZWO, RPI crash.

Any ideas???

Thanks in advance,
C

Read More...

If you choose to auto select a star to focus using the entire frame it can use an annulus for where the stars are used to perform the focus.

Is there any way when using a sub frame to make sure the star selected for the sub frame is within the defined annulus?

I believe this would avoid the issue, I have found, where it always seems to select a globular star to attempt focus on.

Paul

Read More...

naugustin, if Ekos wants to flip, but mount do a mini slew without flipping, reason is that mount and Ekos doesn't agree about where meridian is. To command a meridian flip is nothing but saying to the mount to slew to the very same coordinates it is pointing to; then the mount, that has tracked the same coordinates past the meridian until now, thinks "ok, someone told me to slew to an object ovest of the meridian, so I should point it from east" and slew to it the only way it knows, moving east of the pier. Problem arise when Ekos (or any other software) sends slew command, but the mount thinks the requested coordinates are STILL EAST of the meridian, so it feels itself on the right side.
You can verify this also inside your house, asking KStars to slew your mount to a star near the meridian; then to slew to a star near the meridian, but on the other side: if the mount doesn't move on the other side on the pier, it's because the mount thinks the two stars are on the same side of the meridian, while KStars doens't agree (actually they don't agree where the meridian is).
My GEM45 behaved exactly the same as yours, until I found that time was not in sync between the to: my problem was the DST settings I think you already disabled. But maybe there's something else you're not seeing
Hope this helps-.

Read More...