Aller au contenu

Retour sur la GPCam couleur


Greg34

Messages recommandés

Salut à tous (et à toutes),

 

Un petit retour perso concernant cette petite caméra histoire d'enrichir la base de connaissance.

 

Caméra AltairAstro GPCam couleur:

Packaging:

Rien à dire, c'est propre et complet (câble ST4 fourni, bouchons de protections).Pas besoin d'acheter la bricole qui manque dans la foulée.

Une petite planche pour résumer ces quelques lignes:

 

26125-1463335285.jpg

 

26125-1463335341.jpg

 

Caractéristiques (copié/collé de leur site):

GPCAMAR0130C: Aptina AR0130 Colour CMOS sensor (USB2)

Sensor Size: 1/3" diagonal (4.8x3.6mm)

Exposure duration shortest/longest: 0.4 ms (0.0004 secs) / 800 secs

Bit depth: 8bit & 12bit mode switchable

Pixel size microns: 3.75x3.75 um

Resolution in pixels: 1280x960

Recording System: Still Picture and Video

Region Of Interest (ROI) support: Yes, user selectable via driver

Approx. Max frame rates (assuming computer Bus and Hard Drive operating at full bandwidth)*:

 

8 bit mode:

1280x960 17-26fps

640x480 56-62fps ROI

320x240 80-93fps ROI

12 bit mode - approx 50% of above.

 

* Based on average user reports. May be revised as we get more data. The shorter the exposure duration, the faster the frame rate. An expensive PC does not guarantee a fast frame rate.

 

*Traduction:

Touptek vend des cam et reportent ensuite les tests via les utilisateurs.

Peut être amélioré lorsque nous auront plus de données.

Si ça marche mal, c'est pas grave ^^

Bref, d'ici là,Touptek aura sorti une autre caméra pleine de prouesses sur le papier et attendra à nouveau les retours de tests en passant par la case 200 boules au passage...

 

 

Sensor QE / Quantum Efficiency:

GPCAMAR0130C: Approx. 68% peak in green light

Gain Sensitivity:

GPCAMAR0130C: 5.5v/lux-sec

Dynamic Range:

GPCAMAR0130C: >85.3dB

SNR Maximum:

GPCAMAR0130C: 44dB

Readout: Progressive Scan

Shutter: Electronic Rolling Shutter

 

La forme de la caméra permet d'aller chercher la MAP bien à l'intérieur du PO et de plus, elle ne pèse que 70g.

Le corps de la caméra est en alu et le filtre IR peut être dévissé.

 

Fps obtenus max en mode ROI 8bit 320*240=34 (Yeah ?)

Un truc que je comprend pas, c'est pourquoi les constructeurs ne standardisent pas les taux de transfert USB via le même hardware ??

Pour une capture raw de 8bit, on se retrouve avec un flux de données de x_résolution X y_résolution soit pour ce capteur 1280*960= 1228800 bytes.

Cette valeur est quasi la même pour toutes les caméras utilisant cette résolution et pourtant les débits fluctuent...

3 PC différents et sur le portable CoreI3, c'est là ou j'ai le moins de débit.

 

 

La Dll fournie pour faire tourner les programmes tel que AltairCapture ou l'excellent SharpCap contient un programme qui gère les diverses améliorations d'images/vidéo:

AutoExposure, balance auto des blancs, équalisation de l'histogramme, ROI hardware...

Peut-être même trop d'améliorations apportées qui ont tendance à tuer l'image de base.

Suite à ma demande du coup, ils ont ajouté le mode Raw Capture dans la dernière version.

 

J'ai demandé 3 fois par mail, un retour sur le SDK...je l'attend encore ^^

Mais en grattant un peu, on s'aperçoit que c'est une touptek à la base et là le SDK, on peut le télécharger directement sur leur site.

Un petit mail à Touptek pour demander (à tout hasard) s'ils comptaient faire un wrapper en delphi est la réponse a été non (ils aiment pas le delphi nos amis les chinois ?)

Bref, une petit journée de code pour parer à ce manque et tout fonctionne en delphi.

Le wrapper que j'ai crée pour interfacer avec la dll:

unit ToupcamUnit;

interface

uses windows,classes,sysutils;

type enump=^integer;
type SN= array [0..31] of ansichar;
type PTOUPCAM_EVENT_CALLBACK= procedure (nEvent:cardinal;pCallbackContext:pointer);  stdcall;

const SDK = 'toupcam.dll';

{Options}
const TOUPCAM_OPTION_NOFRAME_TIMEOUT      =$01;// iValue: 1 = enable; 0 = disable. default: enable
const TOUPCAM_OPTION_THREAD_PRIORITY      =$02;// set the priority of the internal thread which grab data from the usb device. iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; default: 0; see: msdn SetThreadPriority
const TOUPCAM_OPTION_PROCESSMODE          =$03;//  0 = better image quality, more cpu usage. this is the default value
                                              //  1 = lower image quality, less cpu usage
const TOUPCAM_OPTION_RAW                  =$04;// raw mode, read the sensor data. This can be set only BEFORE Toupcam_StartXXX()
const TOUPCAM_OPTION_HISTOGRAM            =$05;// 0 = only one, 1 = continue mode
const TOUPCAM_OPTION_BITDEPTH             =$06;// 0 = 8bits mode, 1 = 16bits mode
const TOUPCAM_OPTION_FAN                  =$07;// 0 = turn off the cooling fan, 1 = turn on the cooling fan
const TOUPCAM_OPTION_COOLER               =$08;// 0 = turn off cooler, 1 = turn on cooler
const TOUPCAM_OPTION_LINEAR               =$09;// 0 = turn off tone linear, 1 = turn on tone linear
const TOUPCAM_OPTION_CURVE                =$0a;// 0 = turn off tone curve, 1 = turn on tone curve
const TOUPCAM_OPTION_TRIGGER              =$0b;// 0 = continuous mode, 1 = trigger mode, default value =  0
const TOUPCAM_OPTION_RGB48                =$0c;// enable RGB48 format when bitdepth > 8

const TOUPCAM_PROCESSMODE_FULL            =$00;// better image quality, more cpu usage. this is the default value
const TOUPCAM_PROCESSMODE_FAST            =$01;// lower image quality, less cpu usage

const TOUPCAM_EVENT_EXPOSURE              =$01;// exposure time changed */
const TOUPCAM_EVENT_TEMPTINT              =$02;// white balance changed, Temp/Tint mode */
const TOUPCAM_EVENT_CHROME                =$03;// reversed, do not use it */
const TOUPCAM_EVENT_IMAGE                 =$04;// live image arrived, use Toupcam_PullImage to get this image */
const TOUPCAM_EVENT_STILLIMAGE            =$05;// snap (still) frame arrived, use Toupcam_PullStillImage to get this frame */
const TOUPCAM_EVENT_WBGAIN                =$06;// white balance changed, RGB Gain mode */
const TOUPCAM_EVENT_ERROR                 =$80;// something error happens */
const TOUPCAM_EVENT_DISCONNECTED          =$81;// camera disconnected */

const S_OK          =$00;      //Operation successful
const S_FALSE       =$01;      //Operation successful
const E_FAIL        =$80004005;//Unspecified failure
const E_INVALIDARG  =$80070057;//One or more arguments are not valid
const E_NOTIMPL     =$80004001;//Not supported or not implemented
const E_POINTER     =$80004003;//Pointer that is not valid
const E_UNEXPECTED  =$8000FFFF;//Unexpected failure

procedure Toupcam_Close(c_Handle:THandle);stdcall; external SDK name 'Toupcam_Close';  //ok
function Toupcam_Version:pwchar ;stdcall; external SDK name 'Toupcam_Version';  //ok
function Toupcam_Enum(n:enump ):integer ;stdcall; external SDK name 'Toupcam_Enum';//ok
function Toupcam_Open(const id:pwchar):THandle ;stdcall; external SDK name 'Toupcam_Open'; //ok
function Toupcam_get_MaxSpeed(c_Handle:THandle):integer ;stdcall; external SDK name 'Toupcam_get_MaxSpeed'; //ok
function Toupcam_get_ExpoAGain(c_Handle:THandle; var _gain:integer ):integer ;stdcall; external SDK name 'Toupcam_get_ExpoAGain';//ok
function Toupcam_put_ExpoAGain(c_Handle:THandle; _gain:integer ):integer ;stdcall; external SDK name 'Toupcam_put_ExpoAGain';//ok
function Toupcam_get_ExpoTime(c_Handle:THandle; var _Time:integer ):integer ;stdcall; external SDK name 'Toupcam_get_ExpoTime';//ok
function Toupcam_put_ExpoTime(c_Handle:THandle; _Time:integer ):integer ;stdcall; external SDK name 'Toupcam_put_ExpoTime';//ok
function Toupcam_get_SerialNumber(c_Handle:THandle;var _SN:SN ):integer ;stdcall; external SDK name 'Toupcam_get_SerialNumber';//ok
function Toupcam_get_HwVersion(c_Handle:THandle;var _SN:SN ):integer ;stdcall; external SDK name 'Toupcam_get_HwVersion';//ok
function Toupcam_get_ProductionDate(c_Handle:THandle;var _SN:SN ):integer ;stdcall; external SDK name 'Toupcam_get_ProductionDate';//ok
function Toupcam_put_Option(c_Handle:THandle;_Option:integer; _Value:integer ):integer ;stdcall; external SDK name 'Toupcam_put_Option';  //ok
function Toupcam_get_Option(c_Handle:THandle;_Option:integer; _Value:integer ):integer ;stdcall; external SDK name 'Toupcam_get_Option';  //ok
function Toupcam_put_LEDState(c_Handle:THandle;_iLed:short; _iState:short; _iPeriod:short ):integer ;stdcall; external SDK name 'Toupcam_put_LEDState';  //marche pas cette merde
function Toupcam_put_Size(c_Handle:THandle; _Width:integer; _Height:integer):integer ;stdcall; external SDK name 'Toupcam_put_Size';
function Toupcam_get_Size(c_Handle:THandle;var _Width:integer;var _Height:integer):integer ;stdcall; external SDK name 'Toupcam_get_Size';
function Toupcam_get_ResolutionNumber(c_Handle:THandle):integer ;stdcall; external SDK name 'Toupcam_get_ResolutionNumber';
function Toupcam_get_MaxBitDepth(c_Handle:THandle):integer ;stdcall; external SDK name 'Toupcam_get_MaxBitDepth';
function Toupcam_get_Temperature(c_Handle:THandle;var _pTemperature:SmallInt):integer ;stdcall; external SDK name 'Toupcam_get_Temperature';
function Toupcam_get_RawFormat(c_Handle:THandle;var _FourCC:integer;var _bitdepth:integer):integer ;stdcall; external SDK name 'Toupcam_get_RawFormat';
function Toupcam_get_HZ(c_Handle:THandle):byte ;stdcall; external SDK name 'Toupcam_get_HZ';
function Toupcam_get_Speed(c_Handle:THandle;var _pSpeed:byte):integer ;stdcall; external SDK name 'Toupcam_get_Speed';
function Toupcam_put_Speed(c_Handle:THandle;nSpeed:byte):integer ;stdcall; external SDK name 'Toupcam_put_Speed';
function Toupcam_put_eSize(c_Handle:THandle;nResolutionIndex:byte):integer ;stdcall; external SDK name 'Toupcam_put_eSize';
function Toupcam_put_Mode(c_Handle:THandle;bSkip:byte):integer ;stdcall; external SDK name 'Toupcam_put_Mode';
function Toupcam_put_RealTime(c_Handle:THandle;bEnable:byte):integer ;stdcall; external SDK name 'Toupcam_put_RealTime';
function Toupcam_Stop(c_Handle:THandle):integer ;stdcall; external SDK name 'Toupcam_Stop';
function Toupcam_put_Roi(c_Handle:THandle;xOffset:integer;yOffset:integer;xWidth:integer;yHeight:integer):integer ;stdcall; external SDK name 'Toupcam_put_Roi';
function Toupcam_Flush(c_Handle:THandle):integer ;stdcall; external SDK name 'Toupcam_Flush';

function Toupcam_StartPullModeWithCallback(c_Handle:THandle;pEventCallback:PTOUPCAM_EVENT_CALLBACK; var pCallbackCtx:pointer):Integer; stdcall;external SDK name 'Toupcam_StartPullModeWithCallback';

function Toupcam_PullImage(c_Handle:THandle;pImageData:pbyte;_bitdepth:byte ;var pnWidth:integer;var pnHeight:integer):cardinal ;stdcall; external SDK name 'Toupcam_PullImage';

implementation

end.

Ce qui est fun, c'est qu'en faisant soi-même sa débayerisation à partir des raw, on y gagne déjà en débit en pleine résolution sur un PC qui en temps normal n'affichait que 3fps et qui est passé à 13 fps...

 

 

Pas testé en mode auto guidage car j'ai toujours pas pris ce qu'il fallait pour le faire mais les pilotes ASCOM sont présents et fonctionnent sous Open PHD2 Guiding.

 

En conclusion, je trouve cette caméra (à titre perso), ni bonne ni mauvaise.

Pour le prix, elle reste du même gabarit que ses autres copines dans la même fourchette de tarif.

Plus destinée à l'autoguidage ? (sans mode bin2x2?)

Je sais pas trop...

Ce qui est sur, c'est que la prochaine va me couter plus de 800 boules car aux prix des petites cam, ça va finir par me la payer au bout de 2 ans.

 

Quelques images ci-dessous (pas tant que ça au vu du temps pourri auquel je goute à chaque retour de déplacement) pour illustrer l'interface et quelques tests fait récemment:

Rien à voir avec vos superbes shoot, ça reste qu'une petite cam :be:

 

L'interface d'AltairCapture:

26125-1463335479.jpg

 

Un test sur M51 (50*30s avec reducteur x0.5) avec le 150/750 &SharpCap 2.8:

26125-1463335187.jpg

 

La lune au réducteur (la rame de faire une mosaïque) & SharpCap 2.8:

26125-1463335802.jpg

 

Un test one shoot avec un télescope jouet et AltairCapture de mon bureau sur la haie que je dois tailler :p :

26125-1463336198.jpg

Lien vers le commentaire
Partager sur d’autres sites

Salut et merci pour ce retour d'expérience. Je ne connaissais pas cette camera mais c'est maintenant chose faite :)

Sauf erreur de ma part, le capteur en question est le même que celui qui équipe les anciennes ZWO ASI120MC (j'en ai une...). Or je suis très étonné par ton image de M51. J'avais moi aussi fait des essais en CP avec la ZWO et j'étais loin d'obtenir de tels résultats avec 30s. Mes poses étaient horriblement bruitées en comparaison.

 

Pourrais tu poster un exemple de brute de cette galaxie, par curiosité?

 

Merci encore et bon ciel ;)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Avec plaisir pour la brute, mais vendredi soir plutôt.

Je suis toutes les semaines en déplacement.

Par contre, je te confirme que la brute est extrèmement bruitée.

Pour la sortir, j'ai fait aussi (ce que j'ai oublié de préciser) 20 darks et 20 offsets ->Iris & toshop pour finir la balance des blancs et le tirage sur les rvb.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.