old qhy2 icx259 chip

old qhy2 icx259 chip
« on: July 04, 2008, 04:58:19 AM »
Hello all.
I recently got from friend an old qhy2  bw camera USBFtdi chip,It hasnt been used before and comes without any software.
I   tried astroart SAC10 driver and make it to work but x is comprised from 1 to 0.6x factor ..let me show http://www.terra.es/personal9/angel.caparros/qhy.jpg
Is there available any old astrowin version to make it work right?
firmware  date is 35/7/2005 ¿?
Thanks in advance


Re: old qhy2 icx259 chip
« Reply #1 on: July 05, 2008, 12:46:52 AM »

it looks like you have the ICX255 instead of the ICX259.  exchanging the chip mor or less gives this pattern.
so appart for the additional cropping you need to perform (justdefine a proper subframe) the camera may just work with the driver you have

The ICX255 has very rectangular pixels (as you can see from the dustspecs on your chip) so it works best in 2x2 binning to get a realistic image.


Re: old qhy2 icx259 chip
« Reply #2 on: July 05, 2008, 05:22:49 AM »
Thanks Tom
I think you are right .I was cropping visible area a resizing  for 1,6 for Horizontal ,I take look  at ICX255 DataSheet and see 9.9u x 6.3u pixel dimensions.
Did you know if there is a public available  header file for sac10.dll calls?, now that product seems to be discontinued i think it would not hurt  ...
I took a quick look with dependency walker but  I think i will have to work harder.


Re: old qhy2 icx259 chip
« Reply #3 on: July 05, 2008, 05:48:06 AM »
I have the source code here, what exactly do you need?

this is the DLL interface (don't know if you have the latest version.  Feel free to use/apply but cannot do much support on this.
If required I could maybe code up the ICX255 instead of the ICX259 for your DLL so it would properly work under Maxim/AstroArt



Copyright (c) 2005  Tom Van den Eede

Module Name:


    DLL -> VC++ driver interface for the SAC10 camera driver

Revision History:

    23/05/2005   Initial release

#ifndef SAC10_FLL_H
#define SAC10_DLL_H

#define SAC10_API __declspec(dllimport)

#define CCD_SUCCESS 1
#define CCD_FAILED  0
#define SAC_SUCCESS 1
#define SAC_FAILED  0

#ifdef __cplusplus
extern "C" {

SAC10_API int CCD_ScanForDevices();

SAC10_API char *CCD_GetDeviceInfo(unsigned int n);

SAC10_API void CCD_SetDefaultDevice(unsigned int n);

SAC10_API int CCD_GetInfo(unsigned int *x, unsigned int *y);

SAC10_API int CCD_IsConnected();

// Checks is the camera is currently connected

SAC10_API void CCD_ResetParameters();

// resets the parameters to default

SAC10_API int CCD_Disconnect();

// Disconnect from the camera

SAC10_API int CCD_Connect() ;

// connect to the camera

SAC10_API void CCD_SetADCOffset( unsigned int O);

// Valid values between 0 - 255

SAC10_API void CCD_SetGain( unsigned int G);

// Valid values between 0 - 63

SAC10_API void CCD_SetAntiAmpGlow( bool A) ;

#define _amplifier_on   0
#define _amplifier_off  1   

SAC10_API void CCD_SetVSUB ( bool V );

#define _vsub_normal    0
#define _vsub_off       1

SAC10_API void CCD_SetIOSpeed( bool S);

#define _speed_high     1
#define _speed_low      0

SAC10_API void CCD_SetBinning( bool S);

#define _image_unbinned 0
#define _image_binned   1

SAC10_API void CCD_SetImageDepth( bool D);

#define _image_16bit    1
#define _image_8bit     0

SAC10_API void CCD_SetRGGB( bool D);

#define _RGGB           0
#define _GBRG           1

SAC10_API void CCD_SetExposureMode( unsigned int D );
// 00 One frame   --> getred/green/blue readout in RGGB order mode
// 01 Two Frame   --> getred/green/blue readout in RGGB order mode
// 02 High frame  --> no readout modes supported
// 03 Single frame
// 04 ANY LINE    --> used for HW subframing, horizontal subframing is done in SW

SAC10_API int CCD_StartExposure( int expo );

// Starts an exposure of expo seconds

SAC10_API int CCD_CancelExposure();

// cancels the current exposure (only when exposure >1sec, otherwise HW timing is used

SAC10_API int CCD_Isexposing();

// returns SAC_SUCCESS if exposing, SAC_FAILED otherwise

SAC10_API unsigned int CCD_CameraStatus();

#define CAMERA_READY          0
#define CAMERA_EXPOSING_1     1
#define CAMERA_EXPOSING_2     3

SAC10_API unsigned int CCD_ExposureProgress();
//100 when ready, 0-99 when exposing, use CCD_CameraStatus to determine the frame number

SAC10_API unsigned int CCD_DownloadProgress();
//100 when ready, 0-99 when download is in progress, use CCD_CameraStatus to determine the frame number

SAC10_API int CCD_Isdownloading();

// return SAC_SUCCESS if the camera is downloading or is exposing or the second time, SAC_FAILED otherwise

SAC10_API int CCD_Subframe( unsigned int x, unsigned int y, unsigned int w, unsigned int h );

// Defines a subframe in function of the FULL FRAME SIZE

SAC10_API unsigned int CCD_GetHeight();

// Get height of the returned image

SAC10_API unsigned int CCD_GetWidth();

// Get Width of the returned image

SAC10_API char * CCD_About()

// Get an information string about the currently connected camera

SAC10_API void CCD_GetRED( void *buffer );

// Get the red image field in a 16bit buffer.

SAC10_API void CCD_GetGREEN( void  *buffer );

// Get the green image field in a 16bit buffer

#define _green_mode_RG   0
#define _green_mode_GB   1
#define _green_mode_RGGB 2

SAC10_API void CCD_GetBLUE( void *buffer );

// Get the blue image field in a 16 bit buffer

SAC10_API void CCD_GetRAW( void *buffer);

// get the raw image in a 16 bit buffer

SAC10_API void CCD_GetOneFrame( void *buffer);

SAC10_API void CCD_BottomUp( bool _bdir );

#define BOTTOM_UP = true      //Default
#define TOP_DOWN  = false

SAC10_API void CCD_LeftRight( bool _bdir );

#define LEFT_RIGHT = true      //Default
#define RIGHT_LEFT  = false

SAC10_API int CCD_GetCameraColorType(unsigned int *color);

#define COLOR_BW   0
#define COLOR_RGB  2

SAC10_API float *CCD_GetFRAMEPointer();

// get a pointer to the raw camera data (frame 1)

SAC10_API float *CCD_VBECorrect(bool V);

// Activates or deactivates the VBE correction.

// get a pointer to the raw camera data (frame 1)

SAC10_API unsigned int CCD_SetUserBuffer(float *buffer,int x, int y);

// fills the processing buffer with user data.
// size is restricted to the sensor size

SAC10_API int CCD_ConfigBuffer(unsigned int width, unsigned int height) ;

SAC10_API int CCD_FreeUserBuffer();

SAC10_API int CCD_Clear(unsigned int n);

SAC10_API void CCD_SetBufferType(unsigned int type);

// set the output buffer element type to one of the following:

#define _BYTE_BUFFER_  0
#define _WORD_BUFFER_  1
#define _FLOAT_BUFFER_ 2

SAC10_API void CCD_SetScale(float f);

SAC10_API void CCD_SetClipping(float f);

SAC10_API unsigned int CCD_GetLastError();

SAC10_API char *CCD_GetLastErrorString();

SAC10_API void CCD_ClearLastError();

#ifdef __cplusplus

#endif  /* SAC10_DLL_H */

Re: old qhy2 icx259 chip
« Reply #4 on: July 05, 2008, 04:52:54 PM »
This  was just i was looking for.
I have got another two old qhy2  3.3mp colour cameras. I dont exactly know what  version ,or ccd or firmware but they work with one of firts astrowin´s version.
And sometimes with astroart .(one of them swaps betwen two color channels).As I have develop my own telescope controller  ( and put it on public domain http://es.groups.yahoo.com/group/Picgotogroup/) I would like to be able to embbed all devices I own ,or simply correct issues like this for my own without bothering anyone   .Im interested too about making an windows INDI driver for this camera.
Thank for advice and support ,now I known  where the problem was and  got  dll´s headers I think i can do it for myself .
Mil gracias!!
Angel Caparrós


  • *****
  • 5005
    • View Profile
    • Email
Re: old qhy2 icx259 chip
« Reply #5 on: July 06, 2008, 11:22:02 PM »

         Seems I have still the firware/software in an old disk. Can you tell me which version of QHY2?  Are them all use FDTI USB chip?

Best regards,
Qiu Hongyun

Re: old qhy2 icx259 chip
« Reply #6 on: July 07, 2008, 10:06:35 AM »
B/Wcamera reports 35/7/2005 firmware icx259 chip but as Tom ssugested like to perform as  ICX255 one. Its performs the most stable response
First colour camera reports firmware 240/05/2000 and resolution 2128x1560
Second colour Camera firmware 26/8/2005 and same resvalues
All of them use ftdi chip and seems to respond   to calls form sac10.dll (I have made a tiny checker sofware for testing  each call).
Ángel Caparrós

Re: old qhy2 icx259 chip
« Reply #7 on: July 07, 2008, 10:23:42 AM »
I checked again first color camera and now returns 239/7/2005
I only allow one shot with astroart then  and trying next one gives error.