├── .gitignore ├── C++-Source ├── !!!111!!!READMEBeforeCompiling.pdf ├── !BeforeCompiling_README! ├── QDisplay2D.cpp ├── QDisplay2D.h ├── QtContinuousStepper.cpp ├── QtContinuousStepper.h ├── QtKineticStepper.cpp ├── QtKineticStepper.h ├── TSC_Preferences.tsp ├── TwoStepperControl.pro ├── TwoStepperControl.pro.user ├── background.jpg ├── backup_Client.zip ├── backup_Client │ ├── ccd_client.cpp │ └── ccd_client.h ├── ccd_client.cpp ├── ccd_client.h ├── currentObjectCatalog.cpp ├── currentObjectCatalog.h ├── lx200_communication.cpp ├── lx200_communication.h ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── obsolete.zip ├── obsolete │ ├── backup_Client │ │ ├── ccd_client.cpp │ │ └── ccd_client.h │ ├── bt_serialcomm.cpp │ ├── bt_serialcomm.h │ ├── tsc_bt_serialcomm.cpp │ └── tsc_bt_serialcomm.h ├── ocv_guiding.cpp ├── ocv_guiding.h ├── qclientindi.cpp ├── qclientindi.h ├── qdarkstyle.tar ├── qdarkstyle.zip ├── qdarkstyle │ ├── LICENSE.md │ ├── rc.tar │ ├── style.qrc │ └── style.qss ├── spi_drive.cpp ├── spi_drive.h ├── tsc_globaldata.cpp ├── tsc_globaldata.h ├── usb_communications.cpp └── usb_communications.h ├── COPYING ├── Catalogs ├── Abell.tsc ├── Arp.tsc ├── Barnard.tsc ├── BrightStars.tsc ├── Caldwell.tsc ├── Herschel2500.tsc ├── Herschel400.tsc ├── Hickson.tsc ├── IC.tsc ├── LyndsBrightNebulae.tsc ├── LyndsDarkNebulae.tsc ├── Messier.tsc ├── NGC.tsc ├── PreciseAlignmentStars.tsc ├── Shakbazian.tsc ├── Sharpless.tsc └── YaleBrightStarsSAO.tsc ├── Hardware ├── 1_TSC_PiHAT_GPS │ ├── GerberFiles.tar │ ├── GerberFiles │ │ ├── TSC_PiHat_ILD_V1_5.2_contour.gm1 │ │ ├── TSC_PiHat_ILD_V1_5.2_copperBottom.gbl │ │ ├── TSC_PiHat_ILD_V1_5.2_copperTop.gtl │ │ ├── TSC_PiHat_ILD_V1_5.2_drill.txt │ │ ├── TSC_PiHat_ILD_V1_5.2_maskBottom.gbs │ │ ├── TSC_PiHat_ILD_V1_5.2_maskTop.gts │ │ ├── TSC_PiHat_ILD_V1_5.2_pnp.txt │ │ ├── TSC_PiHat_ILD_V1_5.2_silkBottom.gbo │ │ ├── TSC_PiHat_ILD_V1_5.2_silkTop.gto │ │ ├── TSC_PiHat_ILD_V1_5.3_contour.gm1 │ │ ├── TSC_PiHat_ILD_V1_5.3_copperBottom.gbl │ │ ├── TSC_PiHat_ILD_V1_5.3_copperTop.gtl │ │ ├── TSC_PiHat_ILD_V1_5.3_drill.txt │ │ ├── TSC_PiHat_ILD_V1_5.3_maskBottom.gbs │ │ ├── TSC_PiHat_ILD_V1_5.3_maskTop.gts │ │ ├── TSC_PiHat_ILD_V1_5.3_pnp.txt │ │ ├── TSC_PiHat_ILD_V1_5.3_silkBottom.gbo │ │ └── TSC_PiHat_ILD_V1_5.3_silkTop.gto │ ├── ST4_Temp │ │ └── ST4_Temp.ino │ ├── ST4_Temp_GPS │ │ └── ST4_Temp_GPS.ino │ └── TSC_PiHat_ILD_V1_5.3.fzz ├── 2_AMIS_Drives │ └── Teensy4 │ │ ├── AMIS30543_Teensy_2.fzz │ │ ├── AMIS30543_Teensy_2_pcb.jpg │ │ ├── AMIS30543_Teensy_4.fzz │ │ ├── AMIS_StepperInterface_DE │ │ └── AMIS_StepperInterface_DE.ino │ │ ├── AMIS_StepperInterface_RA │ │ └── AMIS_StepperInterface_RA.ino │ │ ├── Gerber │ │ ├── AMIS30543_Teensy_2_contour.gm1 │ │ ├── AMIS30543_Teensy_2_copperBottom.gbl │ │ ├── AMIS30543_Teensy_2_copperTop.gtl │ │ ├── AMIS30543_Teensy_2_drill.txt │ │ ├── AMIS30543_Teensy_2_maskBottom.gbs │ │ ├── AMIS30543_Teensy_2_maskTop.gts │ │ ├── AMIS30543_Teensy_2_pnp.txt │ │ ├── AMIS30543_Teensy_2_silkBottom.gbo │ │ └── AMIS30543_Teensy_2_silkTop.gto │ │ ├── Gerber4 │ │ ├── AMIS30543_Teensy_4_contour.gm1 │ │ ├── AMIS30543_Teensy_4_copperBottom.gbl │ │ ├── AMIS30543_Teensy_4_copperTop.gtl │ │ ├── AMIS30543_Teensy_4_drill.txt │ │ ├── AMIS30543_Teensy_4_maskBottom.gbs │ │ ├── AMIS30543_Teensy_4_maskTop.gts │ │ ├── AMIS30543_Teensy_4_pnp.txt │ │ ├── AMIS30543_Teensy_4_silkBottom.gbo │ │ └── AMIS30543_Teensy_4_silkTop.gto │ │ └── StepperCommunicationsProtocol.txt ├── 3_TCP_Handbox │ ├── TCP_Handbox_AdafruitFeather │ │ ├── TCP_Handbox.fzz │ │ ├── TCP_Handbox │ │ │ ├── TCP_Handbox.ino │ │ │ └── TCP_HandboxNew.ino │ │ ├── TCP_Handbox_Drilling_Template.pdf │ │ └── TCP_Handbox_Faceplate.pdf │ └── TCP_Handbox_LOLIND32Pro │ │ ├── Gerber │ │ ├── TCP_Handbox_contour.gm1 │ │ ├── TCP_Handbox_copperBottom.gbl │ │ ├── TCP_Handbox_copperTop.gtl │ │ ├── TCP_Handbox_drill.txt │ │ ├── TCP_Handbox_maskBottom.gbs │ │ ├── TCP_Handbox_maskTop.gts │ │ ├── TCP_Handbox_pnp.txt │ │ ├── TCP_Handbox_silkBottom.gbo │ │ └── TCP_Handbox_silkTop.gto │ │ ├── TCP_Handbox.fzz │ │ ├── TCP_HandboxWemos │ │ └── TCP_HandboxWemos.ino │ │ ├── TCP_Handbox_pcb.jpg │ │ └── TCP_Handbox_schem.jpg ├── 4_FocusMotors │ ├── Focusstepper_Test │ │ └── Focusstepper_Test.ino │ ├── Gerber.tar │ ├── Gerber │ │ ├── MotorBoard_contour.gm1 │ │ ├── MotorBoard_copperBottom.gbl │ │ ├── MotorBoard_copperTop.gtl │ │ ├── MotorBoard_drill.txt │ │ ├── MotorBoard_maskBottom.gbs │ │ ├── MotorBoard_maskTop.gts │ │ ├── MotorBoard_pnp.txt │ │ ├── MotorBoard_silkBottom.gbo │ │ └── MotorBoard_silkTop.gto │ ├── MotorBoard.fzz │ ├── MotorBoard_pcb.jpg │ ├── MotorBoard_schem.jpg │ ├── SPI_TSC_Slave │ │ └── SPI_TSC_Slave.ino │ └── TheTSCStepperProtocol ├── AMIS_Drives │ ├── Teensy3_5 │ │ ├── AMIS30543_Teensy_1_3.fzz │ │ ├── AMIS_StepperInterface_DE │ │ │ └── AMIS_StepperInterface_DE.ino │ │ └── AMIS_StepperInterface_RA │ │ │ └── AMIS_StepperInterface_RA.ino │ └── Teensy4 │ │ └── AMIS30543_Teensy_4.fzz ├── ConnectorBreakout │ ├── ConnectorBreakout.fzz │ ├── ConnectorBreakout_pcb.jpg │ ├── Gerber.tar │ └── Gerber │ │ ├── ConnectorBreakout_contour.gm1 │ │ ├── ConnectorBreakout_copperBottom.gbl │ │ ├── ConnectorBreakout_copperTop.gtl │ │ ├── ConnectorBreakout_drill.txt │ │ ├── ConnectorBreakout_maskBottom.gbs │ │ ├── ConnectorBreakout_maskTop.gts │ │ ├── ConnectorBreakout_pnp.txt │ │ ├── ConnectorBreakout_silkBottom.gbo │ │ └── ConnectorBreakout_silkTop.gto ├── Docs │ ├── LX200CommandSet.pdf │ └── Taki_matrix_method_rev_e.pdf ├── FocusMotors │ ├── Focusstepper_Test │ │ └── Focusstepper_Test.ino │ ├── MotorBoard.fzz │ ├── SPI_TSC_Slave │ │ └── SPI_TSC_Slave.ino │ └── TheTSCStepperProtocol ├── TCP_Handbox │ ├── TCP_Handbox_AdafruitFeather │ │ ├── TCP_Handbox.fzz │ │ ├── TCP_Handbox │ │ │ ├── TCP_Handbox.ino │ │ │ └── TCP_HandboxNew.ino │ │ ├── TCP_Handbox_Drilling_Template.pdf │ │ └── TCP_Handbox_Faceplate.pdf │ └── TCP_Handbox_LOLIND32Pro │ │ └── TCP_Handbox.fzz ├── TSC_PartsList.ods ├── TSC_PartsList.xls └── obsolete │ ├── BluetoothHandbox │ ├── HandboxV1_2.fzz │ └── sketch_handbox_TSC │ │ └── sketch_handbox_TSC.ino │ ├── TSC_PiHat_ILD_V1_5.1.fzz │ ├── Teensy3_5 │ ├── AMIS30543_Teensy_1_3.fzz │ ├── AMIS_StepperInterface_DE │ │ └── AMIS_StepperInterface_DE.ino │ └── AMIS_StepperInterface_RA │ │ └── AMIS_StepperInterface_RA.ino │ └── USB_TSC_TeensySlave │ ├── Bigger4DriveBoardV1.1.fzz │ ├── DRVTeensyTest.ino │ ├── TheTSCStepperProtocolForTheQuadDriverBoard │ └── USB_TSC_TeensySlave.ino ├── Manual_Imagedata ├── creator-compilers.png └── creator-kits.png ├── QuickstarterDocs ├── QuickstartCompile.odt ├── QuickstartCompile.pdf ├── TSC_DEMO_README.odt ├── TSC_DEMO_README.pdf ├── TSC_Quickstart.odt └── TSC_Quickstart.pdf ├── README.md └── TSCUserGuide.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | *.pro.user 2 | build-TwoStepperControl*/ -------------------------------------------------------------------------------- /C++-Source/!!!111!!!READMEBeforeCompiling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/C++-Source/!!!111!!!READMEBeforeCompiling.pdf -------------------------------------------------------------------------------- /C++-Source/!BeforeCompiling_README!: -------------------------------------------------------------------------------- 1 | If you have downloaded TSC from Github, 2 | you need to untar the "rc" file in the 3 | "qdarkstyle" folder before opening the .pro file 4 | with QtCreator!!! -------------------------------------------------------------------------------- /C++-Source/QDisplay2D.h: -------------------------------------------------------------------------------- 1 | /*-------------------------------------------------------------------------- 2 | // this code is part of "TSC", a free control software for astronomical telescopes 3 | // Copyright (C) 2016-18, wolfgang birkfellner 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | // You should have received a copy of the GNU General Public License 13 | // along with this program. If not, see . 14 | 15 | //--------------------------------------------------- 16 | // and apparently it is derived from a Qt class 17 | *************************************************************************** 18 | ** 19 | ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 20 | ** All rights reserved. 21 | ** Contact: Nokia Corporation (qt-info@nokia.com) 22 | ** 23 | ** This file is part of the examples of the Qt Toolkit. 24 | ** 25 | ** $QT_BEGIN_LICENSE:LGPL$ 26 | ** Commercial Usage 27 | ** Licensees holding valid Qt Commercial licenses may use this file in 28 | ** accordance with the Qt Commercial License Agreement provided with the 29 | ** Software or, alternatively, in accordance with the terms contained in 30 | ** a written agreement between you and Nokia. 31 | ** 32 | ** GNU Lesser General Public License Usage 33 | ** Alternatively, this file may be used under the terms of the GNU Lesser 34 | ** General Public License version 2.1 as published by the Free Software 35 | ** Foundation and appearing in the file LICENSE.LGPL included in the 36 | ** packaging of this file. Please review the following information to 37 | ** ensure the GNU Lesser General Public License version 2.1 requirements 38 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 39 | ** 40 | ** In addition, as a special exception, Nokia gives you certain additional 41 | ** rights. These rights are described in the Nokia Qt LGPL Exception 42 | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 43 | ** 44 | ** GNU General Public License Usage 45 | ** Alternatively, this file may be used under the terms of the GNU 46 | ** General Public License version 3.0 as published by the Free Software 47 | ** Foundation and appearing in the file LICENSE.GPL included in the 48 | ** packaging of this file. Please review the following information to 49 | ** ensure the GNU General Public License version 3.0 requirements will be 50 | ** met: http://www.gnu.org/copyleft/gpl.html. 51 | ** 52 | ** If you have questions regarding the use of this file, please contact 53 | ** Nokia at qt-info@nokia.com. 54 | ** $QT_END_LICENSE$ 55 | ** 56 | ****************************************************************************/ 57 | 58 | #ifndef QDISPLAY2D_H 59 | #define QDISPLAY2D_H 60 | 61 | #include 62 | #include 63 | #include 64 | #include 65 | 66 | class QDisplay2D: public QGraphicsView { 67 | Q_OBJECT 68 | 69 | public: 70 | QDisplay2D(QWidget *parent = 0, int = 425, int = 340); 71 | void addBgImage(QPixmap image); 72 | bool isImageLoaded(); 73 | 74 | protected: 75 | void keyPressEvent(QKeyEvent *event); 76 | void mousePressEvent(QMouseEvent *event); 77 | void mouseMoveEvent(QMouseEvent *event); 78 | void mouseReleaseEvent(QMouseEvent *event); 79 | void wheelEvent(QWheelEvent *event); 80 | 81 | private: 82 | void setupScene(); 83 | QGraphicsScene *scene; 84 | QGraphicsLineItem *cursorV; 85 | QGraphicsLineItem *cursorH; 86 | QGraphicsPixmapItem *bg; 87 | QPixmap *backGrndImg; 88 | void changeLinePos(int x, int y); 89 | int xDrag; 90 | int yDrag; 91 | int xLineDrag; 92 | int yLineDrag; 93 | qreal minScaleFactor; 94 | bool imageLoaded; 95 | 96 | signals: 97 | void currentViewStatusSignal(QPointF cursorPos); 98 | 99 | private slots: 100 | void currentViewStatusSlot(QPointF cursorPos); 101 | void currentViewStatusSlot(void); 102 | }; 103 | 104 | #endif // QDISPLAY2D_H 105 | -------------------------------------------------------------------------------- /C++-Source/QtContinuousStepper.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | 16 | // a class similar to QtKineticStepper; this one does, in addition, carry a permanent motion. in TSC, this is the right ascension drive ... 17 | #ifndef QTCONTINUOUSSTEPPER_H 18 | #define QTCONTINUOUSSTEPPER_H 19 | 20 | #include 21 | 22 | class QtContinuousStepper { 23 | private: 24 | int errorOpen; // error received when opening a communication channel 25 | int errorCreate; // error received when creating a contact to the controller of the drive 26 | int snumifk; // an identifier for the controller, can be a serial number or something similar 27 | int vifk; // version number of the interface 28 | double speedMax; // maximum speed in microsteps/sec 29 | double speedMin; // minimal speed in microsteps per second 30 | double acc; // acceleration value for the stepper in microsteps/s^2 31 | double currMax; // maximum current if it can be set via the software 32 | double gearRatio; // the product of planetary gear, intermediated gear and worm wheels divided by step size 33 | double microsteps; // the current number of microsteps 34 | int stopped; // a flag that indicates whether the drive has stopped 35 | double stepsPerSecond; // the current rate of microsteps per second 36 | bool hBoxSlewEnded; // a boolean that is set to true when a long slew has timed out; needed for the handbox-slew from TSC 37 | bool isHBoxSlew; 38 | short RADirection = 1; // a value that takes +/-1; it inverts continuous motion, for instance when moving to the southern hemisphere 39 | QString sendCommandToAMIS(QString, long); 40 | QString sendCommandToAMIS(QString); 41 | 42 | public: 43 | QtContinuousStepper(void); 44 | ~QtContinuousStepper(void); 45 | void startTracking(void); // start continuous motion to compensate for earth's rotation 46 | void travelForNSteps(long,short,int,bool); 47 | void travelForNSteps(short,float); 48 | void travelForGuide(float, bool); // quick changes in speed for guiding 49 | void setRADirection(short); // switch "RADirection" 50 | void setGearRatioAndMicrosteps(double, double); // the product of the gears divided by the step size and the number of microsteps is stored here 51 | void changeMicroSteps(double); // switches the microstepping ratio for variable drivers 52 | void setInitialParamsAndComputeBaseSpeed(double,double); // after opening 53 | // a multiple of sidereal speed and a flag that indicates whether the slew was triggered by the handbox. 54 | // handbox slews terminate either after 180 or 360 degrees ... 55 | double getKineticsFromController(short); //get parameters from controller such as maximum current, currently set acceleration, currently set velocity and so on ... 56 | bool getErrorFromDriver(void); // return the state of the error pin 57 | void setStepperParams(double, short); // set acceleration, speed and current and convey it to the controller 58 | void shutDownDrive(void); // set motor to "unengaged state" - no more current is applied 59 | void hwResetDriver(void); 60 | bool getStopped(void); // check whether the motor is active or not ... 61 | void resetSteppersAfterStop(void); 62 | void setDriveToStopped(void); // necessary to convey the AMIS that they were stopped 63 | void stopDrive(void); // halt the motor 64 | //void engageDrive(void); // set motor to "engaged" stae without driving it 65 | void changeSpeedForGearChange(void); // a callback that changes speeds if the gear ratios change 66 | bool hasHBoxSlewEnded(void); // retrieve the state of the "hBoxSlewEnded" - flag ... 67 | 68 | }; 69 | #endif // QTCONTINUOUSSTEPPER_H 70 | -------------------------------------------------------------------------------- /C++-Source/QtKineticStepper.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | // a base class handling stepper motors that are controlled by accceleration and speed (=kinetic parameters); 16 | // it is a parent to QtContinuousStepper, which features motors that do not only carry out motion on demand, 17 | // but also a permamnent motion on top of it. for TSC, this class is parent to the declination drive, whereas 18 | // the RA drive is a continuous drive ... 19 | 20 | #ifndef QTKINETICSTEPPER_H 21 | #define QTKINETICSTEPPER_H 22 | 23 | #include 24 | //#include "usb_communications.h" 25 | 26 | class QtKineticStepper { 27 | 28 | private: 29 | int errorOpen; // error received when opening a communication channel 30 | int errorCreate; // error received when creating a contact to the controller of the drive 31 | int snumifk; // an identifier for the controller, can be a serial number or something similar 32 | int vifk; // version number of the interface 33 | double speedMax; // maximum speed in microsteps/sec 34 | double speedMin; // minimal speed in microsteps per second 35 | double acc; // acceleration value for the stepper in microsteps/s^2 36 | double currMax; // maximum current if it can be set via the software 37 | double gearRatio; // the product of planetary gear, intermediated gear and worm wheels divided by step size 38 | double microsteps; // the current number of microsteps 39 | int stopped; // a flag that indicates whether the drive has stopped 40 | double stepsPerSecond; // the current rate of microsteps per second 41 | bool hBoxSlewEnded; // a boolean that is set to true when a long slew has timed out; needed for the handbox-slew from TSC 42 | bool isHBoxSlew; 43 | QString sendCommandToAMIS(QString, long); 44 | QString sendCommandToAMIS(QString); 45 | 46 | public: 47 | QtKineticStepper(void); // contructor, gets maximum acceleration and maximum current 48 | ~QtKineticStepper(void); 49 | void setGearRatioAndMicrosteps(double, double); // the product of the gears divided by the step size and the number of microsteps is stored here 50 | void changeMicroSteps(double); // switches the microstepping ratio for variable drivers 51 | void setInitialParamsAndComputeBaseSpeed(double,double); // after opening 52 | void travelForNSteps(long,short,int,bool); // tell the drive to travel for steps, direction (+/-1), 53 | // a multiple of sidereal speed and a flag that indicates whether the slew was triggered by the handbox. 54 | // handbox slews terminate either after 180 or 360 degrees ... 55 | void travelForNSteps(short,float); // tell the drive to travel a constant number of steps in direction (+/-1) and a fraction of sidereal speed - used in ST4 guiding 56 | double getKineticsFromController(short); //get parameters from controller such as maximum current, currently set acceleration, currently set velocity and so on ... 57 | bool getErrorFromDriver(void); // return the state of the error pin 58 | void setStepperParams(double, short); // set acceleration, speed and current and convey it to the controller 59 | void shutDownDrive(void); // set motor to "unengaged state" - no more current is applied 60 | bool getStopped(void); // check whether the motor is active or not ... 61 | void stopDrive(void); // halt the motor 62 | void resetSteppersAfterStop(void); 63 | void hwResetDriver(void); 64 | //void setDriveToStopped(void); // necessary to convey the AMIS that they were stopped 65 | //void engageDrive(void); // set motor to "engaged" stae without driving it 66 | void changeSpeedForGearChange(void); // a callback that changes speeds if the gear ratios change 67 | bool hasHBoxSlewEnded(void); // retrieve the state of the "hBoxSlewEnded" - flag ... 68 | }; 69 | #endif // QTKINETICSTEPPER_H 70 | -------------------------------------------------------------------------------- /C++-Source/TSC_Preferences.tsp: -------------------------------------------------------------------------------- 1 | 418664// Phidget 1067 Board Serial Number for RA. 2 | 421153// Phidget 1067 Board Serial Number for Declination. 3 | 9.000000// Gear ratio for planetary connected to RA-stepper. 4 | 1.000000// Gear ratio of non planetary/non worm gear in RA. 5 | 288.000000// Number of teeth of the RA-worm. 6 | 1.800000// Size of the full step for RA-Stepper in degrees. 7 | 9.000000// Gear ratio for planetary connected to Declination-stepper. 8 | 1.000000// Gear ratio of non planetary/non worm gear in Declination. 9 | 213.000000// Number of teeth of the RA-worm. 10 | 1.800000// Size of the full step for Declination-Stepper in degrees. 11 | 16.000000// Number of microsteps your drive can do - 16 for the 1067-board. 12 | 10000.000000// Acceleration in Microsteps/s^2 for Right Ascension Drive. 13 | 10000.000000// Acceleration in Microsteps/s^2 for Declination Drive. 14 | 0.300000// Maximum Current in A for RA-Drive. 15 | 0.300000// Maximum Current in A for Declination Drive. 16 | 5.200000// Pixelsize x for guiding camera. 17 | 5.200000// Pixelsize y for guiding camera. 18 | 1280// Chip width x for guiding camera. 19 | 1024// Chip width y for guiding camera. 20 | 1000// Focal length of guidescope. 21 | 48.000000// Latitude of observation site. 22 | 15.000000// Longitude of observation site. 23 | 1.000000// UTC Offset of Observation site. 24 | TSC// Name of observation site. 25 | Auxiliary Drive 1// Name of first auxiliary stepper. 26 | Auxiliary Drive 2// Name of second auxiliary stepper. 27 | 500// Standard number of microsteps for first auxiliary drive. 28 | 500// Standard number of microsteps for second auxiliary drive. 29 | 500// Acceleration for both auxiliary drives. 30 | 500// Speed for both auxiliary drives. 31 | 16// Denominator for microstepping ratio. 32 | 0// auxDrive connected to the focuser of the guider. 33 | 7.000000// Pixel diagonal size of the DSLR in micron. 34 | 1000// Focal length of the main telescope in mm. 35 | 3// Minimum range for dithering of DSLR exposures. 36 | 15// Maximum range for dithering of DSLR exposures. 37 | -------------------------------------------------------------------------------- /C++-Source/TwoStepperControl.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2016-10-30T19:59:37 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui 8 | QT += serialport 9 | QT += network 10 | 11 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 12 | 13 | TARGET = TwoStepperControl 14 | TEMPLATE = app 15 | RESOURCES += qdarkstyle/style.qrc 16 | CONFIG += c++11 17 | CONFIG += j4 18 | 19 | 20 | 21 | SOURCES += \ 22 | main.cpp \ 23 | mainwindow.cpp \ 24 | currentObjectCatalog.cpp \ 25 | QDisplay2D.cpp \ 26 | tsc_globaldata.cpp \ 27 | lx200_communication.cpp \ 28 | ocv_guiding.cpp \ 29 | ccd_client.cpp \ 30 | QtKineticStepper.cpp \ 31 | QtContinuousStepper.cpp \ 32 | spi_drive.cpp \ 33 | usb_communications.cpp 34 | 35 | HEADERS += \ 36 | mainwindow.h \ 37 | currentObjectCatalog.h \ 38 | QDisplay2D.h \ 39 | tsc_globaldata.h \ 40 | lx200_communication.h \ 41 | ocv_guiding.h \ 42 | ccd_client.h \ 43 | QtKineticStepper.h \ 44 | QtContinuousStepper.h \ 45 | spi_drive.h \ 46 | usb_communications.h 47 | 48 | # INCLUDEPATH += /home/pi 49 | # INCLUDEPATH += /home/pi/libindi/libs/ 50 | # INCLUDEPATH += /home/pi/libindi/ 51 | INCLUDEPATH += /usr/local/include/opencv2 52 | INCLUDEPATH += /usr/include/libindi 53 | INCLUDEPATH += /usr/include/opencv2 54 | 55 | FORMS += mainwindow.ui 56 | 57 | QMAKE_DEFAULT_INCDIRS = \\ 58 | 59 | win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/release/ -lusb-1.0 60 | else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/debug/ -lusb-1.0 61 | else:unix: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lusb-1.0 62 | 63 | win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib/release/ -lindiclient 64 | else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib/debug/ -lindiclient 65 | else:unix: LIBS += -L$$PWD/../../../../usr/lib/ -lindiclient 66 | 67 | 68 | win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/release/ -lm 69 | else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/debug/ -lm 70 | else:unix: LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/ -lm 71 | 72 | INCLUDEPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 73 | DEPENDPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 74 | 75 | win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/release/ -lz 76 | else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/debug/ -lz 77 | else:unix: LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/ -lz 78 | 79 | INCLUDEPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 80 | DEPENDPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 81 | 82 | win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/release/ -lcfitsio 83 | else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/debug/ -lcfitsio 84 | else:unix: LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/ -lcfitsio 85 | 86 | INCLUDEPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 87 | DEPENDPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 88 | 89 | win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/release/ -lpthread 90 | else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/debug/ -lpthread 91 | else:unix: LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/ -lpthread 92 | 93 | INCLUDEPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 94 | DEPENDPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 95 | 96 | unix:!macx: LIBS += -L$$PWD/../../../usr/local/lib/ -lopencv_core 97 | 98 | INCLUDEPATH += $$PWD/../../../usr/local/include 99 | DEPENDPATH += $$PWD/../../../usr/local/include 100 | 101 | INCLUDEPATH += $$PWD/../../../usr/include 102 | DEPENDPATH += $$PWD/../../../usr/include 103 | 104 | unix:!macx: LIBS += -L$$PWD/../../../usr/local/lib/ -lopencv_imgproc 105 | 106 | INCLUDEPATH += $$PWD/../../../usr/local/include 107 | DEPENDPATH += $$PWD/../../../usr/local/include 108 | 109 | unix:!macx: LIBS += -L$$PWD/../../../usr/lib/ -lwiringPi 110 | 111 | INCLUDEPATH += $$PWD/../../../usr/include 112 | DEPENDPATH += $$PWD/../../../usr/include 113 | 114 | unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/arm-linux-gnueabihf/ -lnova 115 | 116 | INCLUDEPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 117 | DEPENDPATH += $$PWD/../../../../usr/lib/arm-linux-gnueabihf 118 | -------------------------------------------------------------------------------- /C++-Source/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/C++-Source/background.jpg -------------------------------------------------------------------------------- /C++-Source/backup_Client.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/C++-Source/backup_Client.zip -------------------------------------------------------------------------------- /C++-Source/backup_Client/ccd_client.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | // this class handles reading FITS files from an INDI server for autoguiding 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | using namespace cv; 31 | 32 | class ccd_client:public QObject, public INDI::BaseClient { 33 | Q_OBJECT 34 | public: 35 | ccd_client(bool); 36 | ~ccd_client(); 37 | void takeExposure(int); 38 | void sendGain(int); 39 | bool setINDIServer(QString, int); 40 | QString* getINDIServerMessage(void); 41 | void sayGoodbyeToINDIServer(void); 42 | bool getCCDParameters(void); 43 | void setStoreImageFlag(bool); 44 | void setCameraName(QString); 45 | void disconnectFromServer(void); 46 | bool probeForCCD(void); 47 | bool cameraGainAvailable(void); 48 | 49 | protected: 50 | virtual void newDevice(INDI::BaseDevice *dp); 51 | virtual void removeDevice(INDI::BaseDevice *dp) {} 52 | virtual void newProperty(INDI::Property *property); 53 | virtual void removeProperty(INDI::Property *property) {} 54 | virtual void newBLOB(IBLOB *bp); 55 | virtual void newSwitch(ISwitchVectorProperty *svp) {} 56 | virtual void newNumber(INumberVectorProperty *nvp) {} 57 | virtual void newMessage(INDI::BaseDevice *dp, int messageID); 58 | virtual void newText(ITextVectorProperty *tvp) {} 59 | virtual void newLight(ILightVectorProperty *lvp) {} 60 | virtual void serverConnected() {} 61 | virtual void serverDisconnected(int exit_code) {} 62 | 63 | private: 64 | QString *ccdINDIName; // name of the camera in INDI lingo 65 | INDI::BaseDevice *ccd; // the camera device 66 | double pixSizeX; // physical size of one pixel in x-direction 67 | double pixSizeY; // physical size of one pixel in y-direction 68 | double frameSizeX; // number of pixels in x-direction 69 | double frameSizeY; // number of pixles in y-direction 70 | double bitsPerPixel; // depth of the camera 71 | bool cameraHasGain; // some cameras can set gain, some cannot ... 72 | QImage* fitsqimage; // a qimage, generated form raw FITS data 73 | char *scaledfitsdata; // in case of 16 bit data, this one holds the scaled 8 bit image 74 | QPixmap* displayPMap; // a qpixmap, generated for GUI display form the qimage 75 | bool newCameraImageAvailable; // name says it all 76 | QVector *myVec; // a vector for grayscale conversion 77 | QString *serverMessage; // a string for holding data non-image data from the INDI server 78 | INumberVectorProperty *ccd_exposure = NULL; // an INDI data structure on exposure time 79 | INumberVectorProperty *ccd_gain = NULL; // an INDI data structure on camera gain 80 | long expcounter; // a counter for exposures 81 | bool storeCamImages; // a boolean for handling storage of images to the SD card 82 | short simulatorCounter; // a helper for debugging 83 | bool isAProbeImage; // a flag that causes storage rather than further processing of image data 84 | bool isMainCCD; 85 | void saveBLOB(IBLOB*); // saves a BLOB to a FITS image 86 | 87 | signals: 88 | void imageAvailable(QPixmap*); // emitted when an image is available 89 | void messageFromINDIAvailable(void); // emitted when a message form INDI is available 90 | }; 91 | -------------------------------------------------------------------------------- /C++-Source/currentObjectCatalog.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | // a class for organizing the catalogs of TSC 16 | 17 | #ifndef CURRENTOBJECTCATALOG_H 18 | #define CURRENTOBJECTCATALOG_H 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | class currentObjectCatalog { 25 | public: 26 | currentObjectCatalog(QString); 27 | ~currentObjectCatalog(void); 28 | long getNumberOfObjects(void); 29 | std::string getNamesOfObjects(long); 30 | float getRADec(long); 31 | float getDeclDec(long); 32 | long getEpoch(void); 33 | 34 | private: 35 | long numberOfObjects; // the numbe rof objects in the catalog 36 | long epoch; // the epoch of the catalog 37 | struct catalogEntry { 38 | long oindex; 39 | std::string oname; 40 | std::string oconstellation; 41 | float oRADec; 42 | float oDeclDec; 43 | }; 44 | std::vector currentCatalogObjects; // wohooo - wolfi uses templates!!! 45 | }; 46 | 47 | #endif // CURRENTOBJECTCATALOG_H 48 | -------------------------------------------------------------------------------- /C++-Source/lx200_communication.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | // thi class implements the basic LX200 protocol of TSC 16 | 17 | #ifndef LX200_COMMUNICATION_H 18 | #define LX200_COMMUNICATION_H 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | class lx200_communication:public QObject { 30 | Q_OBJECT 31 | public: 32 | lx200_communication(void); 33 | ~lx200_communication(void); 34 | void handleDataFromClient(QString); 35 | double getReceivedCoordinates(short); // 0 for RA, 1 for Decl - retrieve data conveyed from LX 36 | QString* getLX200Command(void); 37 | QString* getLX200Response(void); 38 | QString* getLX200ResponseRA(void); 39 | QString* getLX200ResponseDecl(void); 40 | void clearReplyString(void); 41 | void setNumberFormat(bool); 42 | 43 | private: 44 | QString *replyStrLX; 45 | QString *assembledString; 46 | QString *msgRAString; 47 | QString *msgDeclString; 48 | QString *incomingCommand; 49 | QString *subCmd; 50 | QString *lastSubCmd; 51 | QString *timeString; 52 | QString *dateString; 53 | double receivedRAFromLX; 54 | double receivedDeclFromLX; 55 | double llong; 56 | double llat; 57 | int lutc; 58 | bool handleBasicLX200Protocol(QString); 59 | bool gotRACoordinates; 60 | bool gotDeclCoordinates; 61 | bool gotDate; 62 | bool gotTime; 63 | bool gotLat; 64 | bool gotLong; 65 | bool gotUTCOffset; 66 | bool sendSimpleCoordinates; // use either ddd.mm or ddd.mm.ss 67 | void assembleDeclinationString(void); 68 | void assembleRAString(void); 69 | void sendCommand(short what); 70 | void setSystemDateAndTime(void); 71 | void setLocalization(void); 72 | 73 | struct LX200CommandStruct { 74 | QString slewRA; 75 | QString slewDecl; 76 | QString slewPossible; 77 | QString syncCommand; 78 | QString getDecl; 79 | QString getRA; 80 | QString getHiDef; 81 | QString moveEast; 82 | QString moveWest; 83 | QString moveNorth; 84 | QString moveSouth; 85 | QString stopMoveEast; 86 | QString stopMoveWest; 87 | QString stopMoveNorth; 88 | QString stopMoveSouth; 89 | QString setCenterSpeed; 90 | QString setGuideSpeed; 91 | QString setFindSpeed; 92 | QString setGOTOSpeed; 93 | QString stopMotion; 94 | QString getCalendarFormat; 95 | QString getName; 96 | QString getDate; 97 | QString getTrackingRate; 98 | QString getLatitude; 99 | QString getLongitude; 100 | QString getUTCOffset; 101 | QString setUTCOffset; 102 | QString getLocalTime; 103 | QString setLocalTime; 104 | QString setLocalDate; 105 | QString setLongitude; 106 | QString setLatitude; 107 | }; 108 | struct LX200CommandStruct LX200Commands; 109 | signals: 110 | void RS232CommandReceived(void); 111 | void logRASent(void); 112 | void logDeclSent(void); 113 | void logCommandSent(void); 114 | void RS232slew(void); 115 | void RS232sync(void); 116 | void RS232stopMotion(void); 117 | void RS232stopMoveEast(void); 118 | void RS232stopMoveWest(void); 119 | void RS232stopMoveNorth(void); 120 | void RS232stopMoveSouth(void); 121 | void RS232moveEast(void); 122 | void RS232moveWest(void); 123 | void RS232moveNorth(void); 124 | void RS232moveSouth(void); 125 | void RS232centerSpeed(void); 126 | void RS232guideSpeed(void); 127 | void RS232findSpeed(void); 128 | void RS232gotoSpeed(void); 129 | void polarAlignmentSignal(void); 130 | void localizationSet(void); 131 | void clientRASent(QString*); 132 | void clientDeclSent(QString*); 133 | void clientCommandSent(QString*); 134 | }; 135 | 136 | #endif // LX200_COMMUNICATION_H 137 | -------------------------------------------------------------------------------- /C++-Source/main.cpp: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-19, wolfgang birkfellner, mark sproul 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | // Edit history: 16 | // Dec. 3., 2018 added command line options 17 | 18 | #include "mainwindow.h" 19 | #include 20 | #include 21 | #include "tsc_globaldata.h" 22 | 23 | int main(int argc, char *argv[]) { 24 | int ii; 25 | bool framelessWindow = true; 26 | QApplication a(argc, argv); 27 | MainWindow w; 28 | 29 | for (ii=1; ii < argc; ii++) { 30 | if (argv[ii][0] == '-') { 31 | switch (argv[ii][1]) { 32 | case 'w': framelessWindow = false; break; 33 | } 34 | } 35 | } 36 | if (framelessWindow == true) { 37 | w.setWindowFlags(Qt::Window | Qt::FramelessWindowHint); 38 | } 39 | w.show(); 40 | 41 | QFile f(":qdarkstyle/style.qss"); 42 | if (!f.exists()) { 43 | qDebug() << "Unable to set stylesheet, file not found\n"; 44 | } 45 | else 46 | { 47 | f.open(QFile::ReadOnly | QFile::Text); 48 | QTextStream ts(&f); 49 | qApp->setStyleSheet(ts.readAll()); 50 | } 51 | 52 | return a.exec(); 53 | } 54 | -------------------------------------------------------------------------------- /C++-Source/obsolete.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/C++-Source/obsolete.zip -------------------------------------------------------------------------------- /C++-Source/obsolete/backup_Client/ccd_client.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | // this class handles reading FITS files from an INDI server for autoguiding 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | using namespace cv; 31 | 32 | class ccd_client:public QObject, public INDI::BaseClient { 33 | Q_OBJECT 34 | public: 35 | ccd_client(bool); 36 | ~ccd_client(); 37 | void takeExposure(int); 38 | void sendGain(int); 39 | bool setINDIServer(QString, int); 40 | QString* getINDIServerMessage(void); 41 | void sayGoodbyeToINDIServer(void); 42 | bool getCCDParameters(void); 43 | void setStoreImageFlag(bool); 44 | void setCameraName(QString); 45 | void disconnectFromServer(void); 46 | bool probeForCCD(void); 47 | bool cameraGainAvailable(void); 48 | 49 | protected: 50 | virtual void newDevice(INDI::BaseDevice *dp); 51 | virtual void removeDevice(INDI::BaseDevice *dp) {} 52 | virtual void newProperty(INDI::Property *property); 53 | virtual void removeProperty(INDI::Property *property) {} 54 | virtual void newBLOB(IBLOB *bp); 55 | virtual void newSwitch(ISwitchVectorProperty *svp) {} 56 | virtual void newNumber(INumberVectorProperty *nvp) {} 57 | virtual void newMessage(INDI::BaseDevice *dp, int messageID); 58 | virtual void newText(ITextVectorProperty *tvp) {} 59 | virtual void newLight(ILightVectorProperty *lvp) {} 60 | virtual void serverConnected() {} 61 | virtual void serverDisconnected(int exit_code) {} 62 | 63 | private: 64 | QString *ccdINDIName; // name of the camera in INDI lingo 65 | INDI::BaseDevice *ccd; // the camera device 66 | double pixSizeX; // physical size of one pixel in x-direction 67 | double pixSizeY; // physical size of one pixel in y-direction 68 | double frameSizeX; // number of pixels in x-direction 69 | double frameSizeY; // number of pixles in y-direction 70 | double bitsPerPixel; // depth of the camera 71 | bool cameraHasGain; // some cameras can set gain, some cannot ... 72 | QImage* fitsqimage; // a qimage, generated form raw FITS data 73 | char *scaledfitsdata; // in case of 16 bit data, this one holds the scaled 8 bit image 74 | QPixmap* displayPMap; // a qpixmap, generated for GUI display form the qimage 75 | bool newCameraImageAvailable; // name says it all 76 | QVector *myVec; // a vector for grayscale conversion 77 | QString *serverMessage; // a string for holding data non-image data from the INDI server 78 | INumberVectorProperty *ccd_exposure = NULL; // an INDI data structure on exposure time 79 | INumberVectorProperty *ccd_gain = NULL; // an INDI data structure on camera gain 80 | long expcounter; // a counter for exposures 81 | bool storeCamImages; // a boolean for handling storage of images to the SD card 82 | short simulatorCounter; // a helper for debugging 83 | bool isAProbeImage; // a flag that causes storage rather than further processing of image data 84 | bool isMainCCD; 85 | void saveBLOB(IBLOB*); // saves a BLOB to a FITS image 86 | 87 | signals: 88 | void imageAvailable(QPixmap*); // emitted when an image is available 89 | void messageFromINDIAvailable(void); // emitted when a message form INDI is available 90 | }; 91 | -------------------------------------------------------------------------------- /C++-Source/obsolete/bt_serialcomm.cpp: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | // this class handles serial bluetooth communications for the BT-handbox 16 | 17 | #include "bt_serialcomm.h" 18 | #include 19 | 20 | //--------------------------------------------------- 21 | // constructor, starts up a standard serial port for the 22 | // MAC address of the handbox ... 23 | 24 | bt_serialcomm::bt_serialcomm(QString bt_MACaddr) { 25 | QString startupRFPort; 26 | this->portIsUp=false; 27 | 28 | startupRFPort.append("sudo rfcomm connect hci0 "); 29 | startupRFPort.append(bt_MACaddr); 30 | startupRFPort.append(" &"); 31 | system(startupRFPort.toLatin1()); 32 | rfcommport.setPortName("/dev/rfcomm0"); 33 | rfcommport.setBaudRate(QSerialPort::Baud9600); 34 | rfcommport.setDataBits(QSerialPort::Data8); 35 | rfcommport.setParity(QSerialPort::NoParity); 36 | rfcommport.setStopBits(QSerialPort::OneStop); 37 | rfcommport.setFlowControl(QSerialPort::NoFlowControl); 38 | this->incomingCommand = new QString(); 39 | } 40 | 41 | //--------------------------------------------------- 42 | // tries to re-open a serial port 43 | void bt_serialcomm::bt_serialcommTryRestart(QString bt_MACaddr) { 44 | QString startupRFPort; 45 | this->portIsUp=false; 46 | 47 | startupRFPort.append("sudo rfcomm connect hci0 "); 48 | startupRFPort.append(bt_MACaddr); 49 | startupRFPort.append(" &"); 50 | system(startupRFPort.toLatin1()); 51 | rfcommport.setPortName("/dev/rfcomm0"); 52 | rfcommport.setBaudRate(QSerialPort::Baud9600); 53 | rfcommport.setDataBits(QSerialPort::Data8); 54 | rfcommport.setParity(QSerialPort::NoParity); 55 | rfcommport.setStopBits(QSerialPort::OneStop); 56 | rfcommport.setFlowControl(QSerialPort::NoFlowControl); 57 | } 58 | 59 | //---------------------------------------------------- 60 | // desctructor; closes the serial port 61 | bt_serialcomm::~bt_serialcomm(void) { 62 | if (portIsUp == 1) { 63 | rfcommport.setBreakEnabled(true); 64 | rfcommport.clear(QSerialPort::AllDirections); 65 | rfcommport.close(); 66 | portIsUp = 0; 67 | } 68 | delete incomingCommand; 69 | } 70 | 71 | //--------------------------------------------------- 72 | // closes the serial port 73 | void bt_serialcomm::shutDownPort(void) { 74 | rfcommport.setBreakEnabled(true); 75 | portIsUp = 0; 76 | rfcommport.clear(QSerialPort::AllDirections); 77 | rfcommport.close(); 78 | } 79 | 80 | //--------------------------------------------------- 81 | // opens a serial port for BT-communicaition 82 | void bt_serialcomm::openPort(void) { 83 | portIsUp = 1; 84 | if (!rfcommport.open(QIODevice::ReadWrite)) { 85 | portIsUp = 0; 86 | } else { 87 | rfcommport.setBreakEnabled(false); 88 | portIsUp = 1; 89 | rfcommport.clear(QSerialPort::AllDirections); 90 | } 91 | } 92 | 93 | //--------------------------------------------------- 94 | // returns the state of the port 95 | bool bt_serialcomm::getPortState(void) { 96 | return this->portIsUp; 97 | } 98 | 99 | //--------------------------------------------------- 100 | // reads max 1064 byte from the serial port and emits a signal that data are available 101 | qint64 bt_serialcomm::getDataFromSerialPort(void) { 102 | char buf[1024]; 103 | qint64 lineLength=0; 104 | 105 | if (rfcommport.bytesAvailable() > 0) { 106 | if (rfcommport.canReadLine() == true) { 107 | lineLength = rfcommport.readLine(buf, sizeof(buf)); 108 | if (lineLength != -1) { 109 | this->incomingCommand->clear(); 110 | this->incomingCommand->append(buf); 111 | this->incomingCommand->chop(2); 112 | rfcommport.clear(QSerialPort::AllDirections); 113 | emit this->btDataReceived(); 114 | } 115 | } 116 | } 117 | return lineLength; 118 | } 119 | 120 | //--------------------------------------------------- 121 | // returns the received string 122 | QString* bt_serialcomm::getTSCcommand(void) { 123 | return this->incomingCommand; 124 | } 125 | 126 | -------------------------------------------------------------------------------- /C++-Source/obsolete/bt_serialcomm.h: -------------------------------------------------------------------------------- 1 | #ifndef BT_SERIALCOMM_H 2 | #define BT_SERIALCOMM_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | class bt_serialcomm :public QObject { 11 | Q_OBJECT 12 | public: 13 | bt_serialcomm(QString); 14 | void bt_serialcommTryRestart(QString); 15 | ~bt_serialcomm(void); 16 | void shutDownPort(void); 17 | void openPort(void); 18 | bool getPortState(void); 19 | qint64 getDataFromSerialPort(void); 20 | QString* getTSCcommand(void); 21 | 22 | private: 23 | QSerialPort rfcommport; 24 | QString *incomingCommand; 25 | bool portIsUp; 26 | 27 | signals: 28 | void btDataReceived(); 29 | }; 30 | #endif 31 | // BT_SERIALCOMM_H 32 | -------------------------------------------------------------------------------- /C++-Source/obsolete/tsc_bt_serialcomm.cpp: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | #include "tsc_bt_serialcomm.h" 16 | #include 17 | #include 18 | #include 19 | 20 | //--------------------------------------------------- 21 | tsc_bt_serialcomm::tsc_bt_serialcomm(QString bt_MACaddr) { 22 | QString startupRFPort; 23 | this->portIsUp=false; 24 | 25 | startupRFPort.append("sudo rfcomm connect hci0 "); 26 | startupRFPort.append(bt_MACaddr); 27 | startupRFPort.append(" &"); 28 | system(startupRFPort.toLatin1()); 29 | rfcommport.setPortName("/dev/rfcomm0"); 30 | rfcommport.setBaudRate(QSerialPort::Baud9600); 31 | rfcommport.setDataBits(QSerialPort::Data8); 32 | rfcommport.setParity(QSerialPort::NoParity); 33 | rfcommport.setStopBits(QSerialPort::OneStop); 34 | rfcommport.setFlowControl(QSerialPort::NoFlowControl); 35 | this->incomingCommand = new QString(); 36 | } 37 | 38 | //--------------------------------------------------- 39 | 40 | void tsc_bt_serialcomm::bt_serialcommTryRestart(QString bt_MACaddr) { 41 | QString startupRFPort; 42 | this->portIsUp=false; 43 | 44 | startupRFPort.append("sudo rfcomm release hci0 "); 45 | startupRFPort.append(bt_MACaddr); 46 | startupRFPort.append(" &"); 47 | system(startupRFPort.toLatin1()); 48 | usleep(2000); 49 | startupRFPort.clear(); 50 | startupRFPort.append("sudo rfcomm connect hci0 "); 51 | startupRFPort.append(bt_MACaddr); 52 | startupRFPort.append(" &"); 53 | system(startupRFPort.toLatin1()); 54 | rfcommport.setPortName("/dev/rfcomm0"); 55 | rfcommport.setBaudRate(QSerialPort::Baud9600); 56 | rfcommport.setDataBits(QSerialPort::Data8); 57 | rfcommport.setParity(QSerialPort::NoParity); 58 | rfcommport.setStopBits(QSerialPort::OneStop); 59 | rfcommport.setFlowControl(QSerialPort::NoFlowControl); 60 | } 61 | 62 | //---------------------------------------------------- 63 | tsc_bt_serialcomm::~tsc_bt_serialcomm(void) { 64 | if (portIsUp == 1) { 65 | rfcommport.setBreakEnabled(true); 66 | rfcommport.clear(QSerialPort::AllDirections); 67 | rfcommport.close(); 68 | portIsUp = 0; 69 | } 70 | delete incomingCommand; 71 | } 72 | 73 | //--------------------------------------------------- 74 | void tsc_bt_serialcomm::shutDownPort(void) { 75 | rfcommport.setBreakEnabled(true); 76 | rfcommport.clear(QSerialPort::AllDirections); 77 | rfcommport.close(); 78 | portIsUp = 0; 79 | } 80 | 81 | //--------------------------------------------------- 82 | void tsc_bt_serialcomm::openPort(void) { 83 | portIsUp = 1; 84 | if (!rfcommport.open(QIODevice::ReadWrite)) { 85 | portIsUp = 0; 86 | } else { 87 | rfcommport.setBreakEnabled(false); 88 | portIsUp = 1; 89 | rfcommport.clear(QSerialPort::AllDirections); 90 | } 91 | } 92 | 93 | //--------------------------------------------------- 94 | bool tsc_bt_serialcomm::getPortState(void) { 95 | return this->portIsUp; 96 | } 97 | 98 | //--------------------------------------------------- 99 | qint64 tsc_bt_serialcomm::getDataFromSerialPort(void) { 100 | char buf[1024]; 101 | qint64 lineLength=0; 102 | 103 | if (rfcommport.bytesAvailable() > 0) { 104 | if (rfcommport.canReadLine() == true) { 105 | lineLength = rfcommport.readLine(buf, sizeof(buf)); 106 | if (lineLength != -1) { 107 | this->incomingCommand->clear(); 108 | this->incomingCommand->append(buf); 109 | this->incomingCommand->chop(2); 110 | rfcommport.clear(QSerialPort::AllDirections); 111 | emit this->btDataReceived(); 112 | } 113 | } 114 | } 115 | return lineLength; 116 | } 117 | 118 | //--------------------------------------------------- 119 | QString* tsc_bt_serialcomm::getTSCcommand(void) { 120 | return this->incomingCommand; 121 | } 122 | 123 | -------------------------------------------------------------------------------- /C++-Source/obsolete/tsc_bt_serialcomm.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | 16 | #ifndef TSC_BT_SERIALCOMM_H 17 | #define TSC_BT_SERIALCOMM_H 18 | 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | class tsc_bt_serialcomm :public QObject { 26 | Q_OBJECT 27 | public: 28 | tsc_bt_serialcomm(QString); 29 | void bt_serialcommTryRestart(QString); 30 | ~tsc_bt_serialcomm(void); 31 | void shutDownPort(void); 32 | void openPort(void); 33 | bool getPortState(void); 34 | qint64 getDataFromSerialPort(void); 35 | QString* getTSCcommand(void); 36 | 37 | private: 38 | QSerialPort rfcommport; 39 | QString *incomingCommand; 40 | bool portIsUp; 41 | 42 | signals: 43 | void btDataReceived(); 44 | }; 45 | #endif 46 | // TSC_BT_SERIALCOMM_H 47 | -------------------------------------------------------------------------------- /C++-Source/ocv_guiding.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | 16 | 17 | #ifndef OCV_GUIDING_H 18 | #define OCV_GUIDING_H 19 | 20 | #include 21 | #include 22 | #include 23 | //#include 24 | #include 25 | #include 26 | 27 | using namespace cv; 28 | 29 | class ocv_guiding:public QObject { 30 | Q_OBJECT 31 | public: 32 | ocv_guiding(void); 33 | ~ocv_guiding(); 34 | QPoint* getGuideStarCentroid(void); 35 | void doGuideStarImgProcessing(int,bool, bool, float,int,float,bool, bool); 36 | bool isPixelAtSaturation(void); 37 | QPixmap* getGuideStarPreview(void); 38 | double getArcSecsPerPix(short); 39 | void setFocalLengthOfGuidescope(int); 40 | 41 | private: 42 | cv::Mat currentImageOCVMat; 43 | QImage* currentImageQImg; 44 | QImage* processedImage; 45 | QPixmap* prevPMap; 46 | QPoint* centroidOfGuideStar; 47 | QVector *myVec; 48 | void convertQImgToMat(void); 49 | void convertMatToQImg(void); 50 | void storeMatToFile(void); 51 | int maxX; 52 | int maxY; 53 | double gScopeFL; 54 | double arcsecPerPixX; 55 | double arcsecPerPixY; 56 | int maxGrayVal; 57 | 58 | signals: 59 | void guideImagePreviewAvailable(void); 60 | void determinedGuideStarCentroid(void); 61 | }; 62 | 63 | #endif // OCV_GUIDING_H 64 | -------------------------------------------------------------------------------- /C++-Source/qclientindi.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include "libindi/config.h" 13 | #include "indibase/baseclient.h" 14 | #include "indibase/basedevice.h" 15 | #include "indibase/indiproperty.h" 16 | 17 | /* INDI Common Library Routines */ 18 | #include "indicom.h" 19 | #include "qclientindi.h" 20 | 21 | using namespace std; 22 | #define MYCCD "Simple CCD" 23 | 24 | //-------------------------------------------------------- 25 | qclientindi::qclientindi() { 26 | ccd_simulator = NULL; 27 | } 28 | 29 | //-------------------------------------------------------- 30 | qclientindi::~qclientindi() { 31 | 32 | } 33 | 34 | //-------------------------------------------------------- 35 | void qclientindi::setTemperature() { 36 | 37 | INumberVectorProperty *ccd_temperature = NULL; 38 | ccd_temperature = ccd_simulator->getNumber("CCD_TEMPERATURE"); 39 | if (ccd_temperature == NULL) { 40 | IDLog("Error: unable to find CCD Simulator CCD_TEMPERATURE property...\n"); 41 | return; 42 | } 43 | ccd_temperature->np[0].value = -20; 44 | sendNewNumber(ccd_temperature); 45 | } 46 | 47 | //-------------------------------------------------------- 48 | void qclientindi::takeExposure() { 49 | 50 | INumberVectorProperty *ccd_exposure = NULL; 51 | ccd_exposure = ccd_simulator->getNumber("CCD_EXPOSURE"); 52 | if (ccd_exposure == NULL) { 53 | IDLog("Error: unable to find CCD Simulator CCD_EXPOSURE property...\n"); 54 | return; 55 | } 56 | 57 | // Take a 1 second exposure 58 | IDLog("Taking a 1 second exposure.\n"); 59 | ccd_exposure->np[0].value = 1; 60 | sendNewNumber(ccd_exposure); 61 | } 62 | 63 | //-------------------------------------------------------- 64 | void qclientindi::newDevice(INDI::BaseDevice *dp) { 65 | 66 | if (!strcmp(dp->getDeviceName(), MYCCD)) 67 | IDLog("Receiving %s Device...\n", dp->getDeviceName()); 68 | 69 | ccd_simulator = dp; 70 | } 71 | 72 | //-------------------------------------------------------- 73 | void qclientindi::newProperty(INDI::Property *property) { 74 | 75 | if (!strcmp(property->getDeviceName(), MYCCD) && !strcmp(property->getName(), "CONNECTION")) { 76 | connectDevice(MYCCD); 77 | return; 78 | } 79 | 80 | if (!strcmp(property->getDeviceName(), MYCCD) && !strcmp(property->getName(), "CCD_TEMPERATURE")) { 81 | if (ccd_simulator->isConnected()) { 82 | IDLog("CCD is connected. Setting temperature to -20 C.\n"); 83 | setTemperature(); 84 | } 85 | return; 86 | } 87 | } 88 | 89 | //-------------------------------------------------------- 90 | void qclientindi::newNumber(INumberVectorProperty *nvp) { 91 | // Let's check if we get any new values for CCD_TEMPERATURE 92 | if (!strcmp(nvp->name, "CCD_TEMPERATURE")) 93 | { 94 | IDLog("Receving new CCD Temperature: %g C\n", nvp->np[0].value); 95 | 96 | if (nvp->np[0].value == -20) { 97 | IDLog("CCD temperature reached desired value!\n"); 98 | takeExposure(); 99 | } 100 | } 101 | } 102 | 103 | //-------------------------------------------------------- 104 | void qclientindi::newMessage(INDI::BaseDevice *dp, int messageID) { 105 | 106 | if (strcmp(dp->getDeviceName(), MYCCD)) 107 | return; 108 | 109 | IDLog("Recveing message from Server:\n\n########################\n%s\n########################\n\n", dp->messageQueue(messageID).c_str()); 110 | } 111 | 112 | //-------------------------------------------------------- 113 | void qclientindi::newBLOB(IBLOB *bp) { 114 | // Save FITS file to disk 115 | ofstream myfile; 116 | myfile.open ("ccd_simulator.fits", ios::out | ios::binary); 117 | 118 | myfile.write(static_cast (bp->blob), bp->bloblen); 119 | 120 | myfile.close(); 121 | 122 | IDLog("Received image, saved as ccd_simulator.fits\n"); 123 | } 124 | 125 | //-------------------------------------------------------- 126 | 127 | 128 | -------------------------------------------------------------------------------- /C++-Source/qclientindi.h: -------------------------------------------------------------------------------- 1 | #ifndef QCLIENTINDI_H 2 | #define QCLIENTINDI_H 3 | 4 | /* THIS HEADER IS DERIVED FROM 5 | Tutorial Client 6 | Copyright (C) 2010 Jasem Mutlaq (mutlaqja@ikarustech.com) 7 | 8 | This library is free software; you can redistribute it and/or 9 | modify it under the terms of the GNU Lesser General Public 10 | License as published by the Free Software Foundation; either 11 | version 2.1 of the License, or (at your option) any later version. 12 | 13 | This library is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | Lesser General Public License for more details. 17 | 18 | You should have received a copy of the GNU Lesser General Public 19 | License along with this library; if not, write to the Free Software 20 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | 22 | */ 23 | 24 | /** THIS HEADER IS DERIVED FROM 25 | \file tutorial_client.h 26 | \brief Construct a basic INDI client that demonstrates INDI::Client capabilities. This client must be used with tutorial_three device "Simple CCD". 27 | \author Jasem Mutlaq 28 | 29 | \example tutorial_client.h 30 | Construct a basic INDI client that demonstrates INDI::Client capabilities. This client must be used with tutorial_three device "Simple CCD". 31 | To run the example, you must first run tutorial_three: 32 | \code indiserver tutorial_three \endcode 33 | Then in another terminal, run the client: 34 | \code tutorial_client \endcode 35 | The client will connect to the CCD driver and attempts to change the CCD temperature. 36 | */ 37 | 38 | #include "indidevapi.h" 39 | #include "indicom.h" 40 | #include "indibase/baseclient.h" 41 | 42 | class qclientindi : public INDI::BaseClient { 43 | public: 44 | 45 | qclientindi(); 46 | ~qclientindi(); 47 | 48 | void setTemperature(); 49 | void takeExposure(); 50 | 51 | protected: 52 | 53 | virtual void newDevice(INDI::BaseDevice *dp); 54 | virtual void removeDevice(INDI::BaseDevice *dp) {} 55 | virtual void newProperty(INDI::Property *property); 56 | virtual void removeProperty(INDI::Property *property) {} 57 | virtual void newBLOB(IBLOB *bp); 58 | virtual void newSwitch(ISwitchVectorProperty *svp) {} 59 | virtual void newNumber(INumberVectorProperty *nvp); 60 | virtual void newMessage(INDI::BaseDevice *dp, int messageID); 61 | virtual void newText(ITextVectorProperty *tvp) {} 62 | virtual void newLight(ILightVectorProperty *lvp) {} 63 | virtual void serverConnected() {} 64 | virtual void serverDisconnected(int exit_code) {} 65 | 66 | private: 67 | INDI::BaseDevice * ccd_simulator; 68 | 69 | }; 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /C++-Source/qdarkstyle.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/C++-Source/qdarkstyle.tar -------------------------------------------------------------------------------- /C++-Source/qdarkstyle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/C++-Source/qdarkstyle.zip -------------------------------------------------------------------------------- /C++-Source/qdarkstyle/rc.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/C++-Source/qdarkstyle/rc.tar -------------------------------------------------------------------------------- /C++-Source/spi_drive.cpp: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | #include "spi_drive.h" 16 | #include 17 | #include 18 | 19 | //-------------------------------------------------------------- 20 | 21 | SPI_Drive::SPI_Drive(short channel) { 22 | int fd = 0; 23 | 24 | this->SPIChannel = channel; 25 | fd = wiringPiSPISetup(this->SPIChannel, 500000); 26 | this->fileDesc = fd; 27 | this->parameter = new QString(); 28 | } 29 | 30 | //-------------------------------------------------------------- 31 | 32 | bool SPI_Drive::spidrReceiveCommand(QString cmd) { 33 | int len; 34 | char bytecmd[32]; 35 | 36 | this->parameter->clear(); 37 | this->parameter->append(cmd); 38 | strncpy(bytecmd, (const char*)(this->parameter->toLatin1()),30); 39 | len = strlen(bytecmd); 40 | bytecmd[len] = 0x00; 41 | len++; 42 | wiringPiSPIDataRW(this->SPIChannel, (unsigned char*)(bytecmd), len); 43 | // qDebug() << "SPI-Command: " << cmd.toLatin1() << "-" << "Reply: " <muprocReply << " on Channel: " << this->SPIChannel; 44 | if (cmd.at(0) == bytecmd[1]) { 45 | return false; 46 | } else { 47 | this->muprocReply=bytecmd[1]; 48 | return true; 49 | } 50 | } 51 | 52 | //-------------------------------------------------------------- 53 | 54 | int SPI_Drive::spidrGetFD(void) { 55 | return this->fileDesc; 56 | } 57 | 58 | //-------------------------------------------------------------- 59 | 60 | char SPI_Drive::getResponse(void) { 61 | 62 | return this->muprocReply; 63 | } 64 | -------------------------------------------------------------------------------- /C++-Source/spi_drive.h: -------------------------------------------------------------------------------- 1 | // this code is part of "TSC", a free control software for astronomical telescopes 2 | // Copyright (C) 2016-18, wolfgang birkfellner 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | // You should have received a copy of the GNU General Public License 12 | // along with this program. If not, see . 13 | 14 | //--------------------------------------------------- 15 | 16 | #ifndef SPI_DRIVE_H 17 | #define SPI_DRIVE_H 18 | #include 19 | #include 20 | 21 | class SPI_Drive { 22 | public: 23 | SPI_Drive(short); 24 | int spidrGetFD(void); 25 | bool spidrReceiveCommand(QString); 26 | char getResponse(void); 27 | 28 | private: 29 | int SPIChannel; //0 or 1, there is 2 channels on the Pi 30 | char muprocReply; // the microcontroller answers with A, D or R in dependence of the stepper driver used. 31 | // A is for the A4988, D is for DRV8825 and R is for the RAPS128 32 | QString *parameter; 33 | int fileDesc; // filedescriptor for opening a channel. -1 if failed ... 34 | }; 35 | 36 | #endif // SPI_DRIVE_H 37 | -------------------------------------------------------------------------------- /C++-Source/usb_communications.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | class usbCommunications { 5 | public: 6 | enum usbState {init, avail, devListAvail, open, kernelDrvr, claimed, writeErr, released, readErr}; 7 | usbCommunications(int); 8 | void closeUSBConnection(void); 9 | bool getUSBErrs(usbState); 10 | bool sendCommand(QString,bool); 11 | bool receiveReply(bool); 12 | QString getReply(bool); 13 | void deleteResponse(bool); 14 | 15 | private: 16 | libusb_device **deviceList; //pointer to pointer of device, used to retrieve a list of devices 17 | libusb_device_handle *deviceHandles[2]; // a device handle 18 | libusb_context *usbContext = NULL; //a libusb session 19 | ssize_t devCnt; //holding number of devices in list 20 | unsigned char *commandData[2]; // an array holding the command to be sent to the USB device 21 | int theVID; 22 | short indexForRA; 23 | short indexForDecl; 24 | bool initErr = false; 25 | bool usbConnAvailable = true; 26 | bool gotDeviceList = false; 27 | bool usbDeviceIsOpen = false; 28 | bool kernelDriverActive = false; 29 | bool interfaceClaimed = false; 30 | bool writeError = false; 31 | bool interfaceReleased = false; 32 | bool readError = false; 33 | QString* dataReceived[2]; 34 | QString* startupResponse; 35 | }; 36 | -------------------------------------------------------------------------------- /Catalogs/Abell.tsc: -------------------------------------------------------------------------------- 1 | 83,,,,,,,, 2 | 2000,,,,,,,, 3 | Cep,Abell 1,0,12,55,+,69,10,21 4 | Cas,Abell 2,0,45,36,+,57,57,45 5 | Cas,Abell 3,2,12,6,+,64,9,1 6 | Per,Abell 4,2,45,23,+,42,33,5 7 | Per,Abell 5,2,52,15,+,50,35,54 8 | Cas,Abell 6,2,58,41,+,64,30,6 9 | Lep,Abell 7,5,3,8,-,15,36,13 10 | Aur,Abell 8,5,6,38,+,39,8,11 11 | Aur,Abell 9,5,28,56,+,36,3,5 12 | Ori,Abell 10 ,5,31,45,+,6,56,9 13 | Ori,Abell 12,6,2,20,+,9,39,14 14 | Ori,Abell 13,6,4,47,+,3,56,36 15 | Ori,Abell 14,6,11,8,+,11,46,43 16 | CMa,Abell 15,6,27,2,-,25,22,50 17 | Lyn,Abell 16,6,43,55,+,61,47,25 18 | Mon,Abell 18,6,56,14,-,2,53,9 19 | Gem,Abell 19,6,59,56,+,14,36,34 20 | CMi,Abell 20,7,22,57,+,1,45,37 21 | Gem,Abell 21,7,29,2,+,13,15,13 22 | CMi,Abell 22,7,36,7,+,2,42,28 23 | Pup,Abell 23,7,43,18,-,34,45,12 24 | CMi,Abell 24,7,51,37,+,3,0,21 25 | Mon,Abell 25 ,8,6,46,-,2,52,35 26 | Pup,Abell 26,8,9,1,-,32,40,22 27 | Pyx,Abell 27,8,31,52,-,32,6,9 28 | UMa,Abell 28,8,41,35,+,58,13,48 29 | Pyx,Abell 29,8,40,18,-,20,54,36 30 | Cnc,Abell 30,8,46,54,+,17,52,33 31 | Cnc,Abell 31,8,54,13,+,8,53,59 32 | Hya,Abell 33,9,39,9,-,2,48,33 33 | Hya,Abell 34,9,45,35,-,13,10,16 34 | Hya,Abell 35,12,53,32,-,22,52,22 35 | Vir,Abell 36,13,40,41,-,19,52,57 36 | Vir,Abell 37,14,4,26,-,17,13,41 37 | Sco,Abell 38,16,23,18,-,31,44,58 38 | Her,Abell 39,16,27,33,+,27,54,34 39 | Oph,Abell 40,16,48,34,-,21,0,51 40 | Ser,Abell 41,17,29,2,-,15,12,59 41 | Oph,Abell 42,17,31,29,-,8,19,10 42 | Oph,Abell 43,17,53,32,+,10,37,24 43 | Sgr,Abell 44,18,30,11,-,16,45,28 44 | Sct,Abell 45,18,30,15,-,11,36,56 45 | Lyr,Abell 46,18,31,18,+,26,56,17 46 | Ser,Abell 47,18,35,22,-,0,13,50 47 | Aql,Abell 48,18,42,46,-,3,13,25 48 | Sct,Abell 49,18,53,28,-,6,28,33 49 | Dra,Abell 50,18,59,19,+,48,27,57 50 | Sgr,Abell 51,19,1,1,-,18,12,15 51 | Aql,Abell 52,19,4,32,+,17,57,7 52 | Aql,Abell 53,19,6,45,+,6,23,56 53 | Vul,Abell 54,19,8,39,+,22,58,58 54 | Aql,Abell 55,19,10,30,-,2,21,2 55 | Aql,Abell 56,19,13,6,+,2,52,48 56 | Vul,Abell 57,19,17,6,+,25,37,30 57 | Aql,Abell 58,19,18,20,+,1,47,0 58 | Sge,Abell 59,19,18,40,+,19,34,33 59 | Cyg,Abell 61,19,19,10,+,46,14,36 60 | Sgr,Abell 60,19,19,18,-,12,14,54 61 | Aql,Abell 62,19,33,18,+,10,37,1 62 | Sgr,Abell 63,19,42,10,+,17,5,15 63 | Aql,Abell 64,19,45,34,+,5,33,52 64 | Sgr,Abell 65,19,46,33,-,23,8,12 65 | Sgr,Abell 66,19,57,31,-,21,36,46 66 | Aql,Abell 67,19,58,27,+,3,2,52 67 | Vul,Abell 68,20,0,10,+,21,42,58 68 | Cyg,Abell 69,20,19,58,+,38,24,2 69 | Aql,Abell 70,20,31,33,-,7,5,17 70 | Cyg,Abell 71,20,32,23,+,47,21,4 71 | Del,Abell 72,20,50,2,+,13,33,28 72 | Cep,Abell 73,20,56,27,+,57,26,3 73 | Vul,Abell 74,21,16,52,+,24,8,51 74 | Cep,Abell 75,21,26,23,+,62,53,33 75 | Aqr,Abell 76,21,30,3,-,2,48,32 76 | Cep,Abell 77,21,32,10,+,55,52,43 77 | Cyg,Abell 78,21,35,29,+,31,41,45 78 | Lac,Abell 79,22,26,17,+,54,49,38 79 | Lac,Abell 80,22,34,45,+,52,26,6 80 | Cep,Abell 81,22,42,25,+,80,26,32 81 | Cas,Abell 82,23,45,47,+,57,3,59 82 | Cas,Abell 83,23,46,46,+,54,44,38 83 | Cas,Abell 84,23,47,44,+,51,23,56 84 | Cas,Abell 85,23,58,53,+,62,30,28 85 | Cep,Abell 86,0,1,31,+,70,42,29 86 | -------------------------------------------------------------------------------- /Catalogs/Caldwell.tsc: -------------------------------------------------------------------------------- 1 | 109,,,,,,,, 2 | 2000,,,,,,,, 3 | Cep,Caldwell 1-NGC 188,0,44,24,+,85,20,0 4 | Cep,Caldwell 2-NGC 40,0,13,0,+,72,32,0 5 | Dra,Caldwell 3-NGC 4236,12,16,42,+,69,28,0 6 | Cep,Caldwell 4-NGC 7023,21,1,48,+,68,12,0 7 | Cam,Caldwell 5-IC 342,3,46,48,+,68,6,0 8 | Dra,Caldwell 6-NGC 6543,17,58,36,+,66,38,0 9 | Cam,Caldwell 7-NGC 2403,7,36,54,+,65,36,0 10 | Cas,Caldwell 8-NGC 559,1,29,30,+,63,18,0 11 | Cep,Caldwell 9-Sh2-155,22,56,48,+,62,37,0 12 | Cas,Caldwell 10-NGC 663,1,46,0,+,61,15,0 13 | Cas,Caldwell 11-NGC 7635,23,20,42,+,61,12,0 14 | Cep,Caldwell 12-NGC 6946,20,34,48,+,60,9,0 15 | Cas,Caldwell 13-NGC 457,1,19,6,+,58,20,0 16 | Per,Caldwell 14-NGC 869/884,2,20,0,+,57,8,0 17 | Cyg,Caldwell 15-NGC 6826,19,44,48,+,50,31,0 18 | Lac,Caldwell 16-NGC 7243,22,15,18,+,49,53,0 19 | Cas,Caldwell 17-NGC 147,0,33,12,+,48,30,0 20 | Cas,Caldwell 18-NGC 185,0,39,0,+,48,20,0 21 | Cyg,Caldwell 19-IC 5146,21,53,30,+,47,16,0 22 | Cyg,Caldwell 20-NGC 7000,20,58,48,+,44,20,0 23 | CVn,Caldwell 21-NGC 4449,12,28,12,+,44,6,0 24 | And,Caldwell 22-NGC 7662,23,25,54,+,42,33,0 25 | And,Caldwell 23-NGC 891,2,22,36,+,42,21,0 26 | Per,Caldwell 24-NGC 1275,3,19,48,+,41,31,0 27 | Lyn,Caldwell 25-NGC 2419,7,38,6,+,38,53,0 28 | CVn,Caldwell 26-NGC 4244,12,17,30,+,37,49,0 29 | Cyg,Caldwell 27-NGC 6888,20,12,0,+,38,21,0 30 | And,Caldwell 28-NGC 752,1,57,48,+,37,41,0 31 | CVn,Caldwell 29-NGC 5005,13,10,54,+,37,3,0 32 | Peg,Caldwell 30-NGC 7331,22,37,6,+,34,25,0 33 | Aur,Caldwell 31-IC 405,5,16,12,+,34,16,0 34 | CVn,Caldwell 32-NGC 4631,12,42,6,+,32,32,0 35 | Cyg,Caldwell 33-NGC 6992/5,20,56,24,+,31,43,0 36 | Cyg,Caldwell 34-NGC 6960,20,45,42,+,30,43,0 37 | Com,Caldwell 35-NGC 4889,13,0,6,+,27,59,0 38 | Com,Caldwell 36-NGC 4559,12,36,0,+,27,58,0 39 | Vul,Caldwell 37-NGC 6885,20,12,0,+,26,29,0 40 | Com,Caldwell 38-NGC 4565,12,36,18,+,25,59,0 41 | Gem,Caldwell 39-NGC 2392,7,29,12,+,20,55,0 42 | Leo,Caldwell 40-NGC 3626,11,20,6,+,18,21,0 43 | Tau,Caldwell 41-none,4,27,0,+,16,0,0 44 | Del,Caldwell 42-NGC 7006,21,1,30,+,16,11,0 45 | Peg,Caldwell 43-NGC 7814,0,3,18,+,16,9,0 46 | Peg,Caldwell 44-NGC 7479,23,4,54,+,12,19,0 47 | Boo,Caldwell 45-NGC 5248,13,37,30,+,8,53,0 48 | Mon,Caldwell 46-NGC 2261,6,39,12,+,8,44,0 49 | Del,Caldwell 47-NGC 6934,20,34,12,+,7,24,0 50 | Can,Caldwell 48-NGC 2775,9,10,18,+,7,2,0 51 | Mon,Caldwell 49-NGC 2237-9,6,32,18,+,5,3,0 52 | Mon,Caldwell 50-NGC 2244,6,32,24,+,4,52,0 53 | Cet,Caldwell 51-IC 1613,1,4,48,+,2,7,0 54 | Vir,Caldwell 52-NGC 4697,12,48,36,-,5,48,0 55 | Sex,Caldwell 53-NGC 3115,10,5,12,-,7,43,0 56 | Mon,Caldwell 54-NGC 2506,8,0,12,-,10,47,0 57 | Aqr,Caldwell 55-NGC 7009,21,4,12,-,11,22,0 58 | Cet,Caldwell 56-NGC 246,0,47,0,-,11,53,0 59 | Sgr,Caldwell 57-NGC 6822,19,44,54,-,14,48,0 60 | CMa,Caldwell 58-NGC 2360,7,17,48,-,15,37,0 61 | Hya,Caldwell 59-NGC 3242,10,24,48,-,18,38,0 62 | Crv,Caldwell 60-NGC 4038,12,1,54,-,18,52,0 63 | Crv,Caldwell 61-NGC 4039,12,1,54,-,18,53,0 64 | Cet,Caldwell 62-NGC 247,0,47,6,-,20,46,0 65 | Aqr,Caldwell 63-NGC 7293,22,29,36,-,20,48,0 66 | CMa,Caldwell 64-NGC 2362,7,18,48,-,24,57,0 67 | Scl,Caldwell 65-NGC 253,0,47,36,-,25,17,0 68 | Hya,Caldwell 66-NGC 5694,14,39,36,-,26,32,0 69 | For,Caldwell 67-NGC 1097,2,46,18,-,30,17,0 70 | CrA,Caldwell 68-NGC 6729,19,1,54,-,36,57,0 71 | Sco,Caldwell 69-NGC 6302,17,13,42,-,37,6,0 72 | Scl,Caldwell 70-NGC 300,0,54,54,-,37,41,0 73 | Pup,Caldwell 71-NGC 2477,7,52,18,-,38,33,0 74 | Scl,Caldwell 72-NGC 55,0,14,54,-,39,11,0 75 | Col,Caldwell 73-NGC 1851,5,14,6,-,40,3,0 76 | Vel,Caldwell 74-NGC 3132,10,7,42,-,40,26,0 77 | Sco,Caldwell 75-NGC 6124,16,25,36,-,40,40,0 78 | Sco,Caldwell 76-NGC 6231,16,54,0,-,41,48,0 79 | Cen,Caldwell 77-NGC 5128,13,25,30,-,43,1,0 80 | CrA,Caldwell 78-NGC 6541,18,8,0,-,43,42,0 81 | Vel,Caldwell 79-NGC 3201,10,17,36,-,46,25,0 82 | Cen,Caldwell 80-NGC 5139,13,26,48,-,47,29,0 83 | Ara,Caldwell 81-NGC 6352,17,25,30,-,48,25,0 84 | Ara,Caldwell 82-NGC 6193,16,41,18,-,48,46,0 85 | Cen,Caldwell 83-NGC 4945,13,5,24,-,49,28,0 86 | Cen,Caldwell 84-NGC 5286,13,46,24,-,51,22,0 87 | Vel,Caldwell 85-IC 2391,8,40,12,-,53,4,0 88 | Ara,Caldwell 86-NGC 6397,17,40,42,-,53,40,0 89 | Hor,Caldwell 87-NGC 1261,3,12,18,-,55,13,0 90 | Cir,Caldwell 88-NGC 5823,15,5,42,-,55,36,0 91 | Nor,Caldwell 89-NGC 6087,16,18,54,-,57,54,0 92 | Car,Caldwell 90-NGC 2867,9,21,24,-,58,19,0 93 | Car,Caldwell 91-NGC 3532,11,6,24,-,58,40,0 94 | Car,Caldwell 92-NGC 3372,10,43,48,-,59,52,0 95 | Pav,Caldwell 93-NGC 6752,19,10,54,-,59,59,0 96 | Cru,Caldwell 94-NGC 4755,12,53,36,-,60,20,0 97 | TrA,Caldwell 95-NGC 6025,16,3,42,-,60,30,0 98 | Car,Caldwell 96-NGC 2516,7,58,18,-,60,52,0 99 | Cen,Caldwell 97-NGC 3766,11,36,6,-,61,37,0 100 | Cru,Caldwell 98-NGC 4609,12,42,18,-,62,58,0 101 | Cru,Caldwell 99,12,53,0,-,63,0,0 102 | Cen,Caldwell 100-IC 2944,11,36,36,-,63,2,0 103 | Pav,Caldwell 101-NGC 6744,19,9,48,-,63,51,0 104 | Car,Caldwell 102-IC 2602,10,43,12,-,64,24,0 105 | Dor,Caldwell 103-NGC 2070,5,38,42,-,69,6,0 106 | Tuc,Caldwell 104-NGC 362,1,3,12,-,70,51,0 107 | Mus,Caldwell 105-NGC 4833,12,59,36,-,70,53,0 108 | Tuc,Caldwell 106-NGC 104,0,24,6,-,72,5,0 109 | Aps,Caldwell 107-NGC 6101,16,25,48,-,72,12,0 110 | Mus,Caldwell 108-NGC 4372,12,25,48,-,72,40,0 111 | Cha,Caldwell 109-NGC 3195,10,9,30,-,80,52,0 112 | -------------------------------------------------------------------------------- /Catalogs/Messier.tsc: -------------------------------------------------------------------------------- 1 | 110,,,,,,,, 2 | 2000,,,,,,,, 3 | Taurus,Messier 1,5,34,32,+,22,0,52 4 | Aquarius,Messier 2,21,33,27,-,0,49,22 5 | Canes Venatici,Messier 3,13,42,11,+,28,22,34 6 | Scorpio,Messier 4,16,23,36,-,26,31,29 7 | Serpens Caput,Messier 5,15,18,34,+,2,5,0 8 | Scorpio,Messier 6,17,40,20,-,32,15,30 9 | Scorpio,Messier 7,17,53,50,-,34,47,36 10 | Sagittarius,Messier 8,18,3,42,-,24,22,48 11 | Ophiucus,Messier 9,17,19,12,-,18,30,57 12 | Ophiucus,Messier 10,16,57,9,-,4,5,56 13 | Scutum,Messier 11,18,51,5,-,6,16,12 14 | Ophiucus,Messier 12,16,47,15,-,1,56,50 15 | Hercules,Messier 13,16,41,42,+,36,27,39 16 | Ophiucus,Messier 14,17,37,36,-,3,14,43 17 | Pegasus,Messier 15,21,29,58,+,12,10,3 18 | Serpens Caput,Messier 16,18,18,45,-,13,47,54 19 | Sagittarius,Messier 17,18,20,47,-,16,10,18 20 | Sagittarius,Messier 18,18,19,58,-,17,6,6 21 | Ophiucus,Messier 19,17,2,38,-,26,16,3 22 | Sagittarius,Messier 20,18,3,26,-,22,59,27 23 | Sagittarius,Messier 21,18,4,13,-,22,30,0 24 | Sagittarius,Messier 22,18,36,24,-,23,54,10 25 | Sagittarius,Messier 23,17,56,56,-,19,0,42 26 | Sagittarius,Messier 24,18,18,48,-,18,33,0 27 | Sagittarius,Messier 25,18,31,45,-,19,7,12 28 | Scutum,Messier 26,18,45,15,-,9,23,6 29 | Vuplecula,Messier 27,19,59,36,+,22,43,18 30 | Sagittarius,Messier 28,18,24,33,-,24,52,10 31 | Cygnus,Messier 29,20,24,6,+,38,29,36 32 | Capricornus,Messier 30,21,40,22,-,23,10,43 33 | Andromeda,Messier 31,0,42,44,+,41,16,8 34 | Andromeda,Messier 32,0,42,42,+,40,51,57 35 | Triangulum,Messier 33,1,33,52,+,30,39,29 36 | Perseus,Messier 34,2,42,5,+,42,45,42 37 | Gemini,Messier 35,6,9,0,+,24,21,0 38 | Auriga,Messier 36,5,36,18,+,34,8,27 39 | Auriga,Messier 37,5,52,18,+,32,33,11 40 | Auriga,Messier 38,5,28,43,+,35,51,18 41 | Cygnus,Messier 39,21,31,52,+,48,25,30 42 | Ursa Major,Messier 40,12,22,13,+,58,4,59 43 | Canis Major,Messier 41,6,46,0,-,20,45,24 44 | Orion,Messier 42,5,35,17,-,5,23,25 45 | Orion,Messier 43,5,35,31,-,5,16,3 46 | Cancer,Messier 44,8,40,24,+,19,40,12 47 | Puppis,Messier 46,7,41,47,-,14,48,36 48 | Puppis,Messier 47,7,36,35,-,14,28,47 49 | Hyaden,Messier 48,8,13,43,-,5,45,2 50 | Virgo,Messier 49,12,29,47,+,8,0,0 51 | Monocerus,Messier 50,7,2,48,-,8,22,33 52 | Canes Venatici,Messier 51,13,29,53,+,47,11,44 53 | Cassiopeia,Messier 52,23,24,48,+,61,36,0 54 | Coma Berenices,Messier 53,13,12,55,+,18,10,11 55 | Sagittarius,Messier 54,18,55,3,-,30,28,40 56 | Sagittarius,Messier 55,19,39,59,-,30,57,42 57 | Lyra,Messier 56,19,16,36,+,30,11,7 58 | Lyra,Messier 57,18,53,35,+,33,1,47 59 | Virgo,Messier 58,12,37,44,+,11,49,6 60 | Virgo,Messier 59,12,42,2,+,11,38,50 61 | Virgo,Messier 60,12,43,40,+,11,33,11 62 | Virgo,Messier 61,12,21,55,+,4,28,22 63 | Ophiucus,Messier 62,17,1,13,-,30,6,42 64 | Canes Venatici,Messier 63,13,15,49,+,42,1,59 65 | Coma Berenices,Messier 64,12,56,44,+,21,40,59 66 | Leo,Messier 65,11,18,56,+,13,5,27 67 | Leo,Messier 66,11,20,15,+,12,59,24 68 | Cancer,Messier 67,8,51,18,+,11,49,0 69 | Hyaden,Messier 68,12,39,28,-,26,44,32 70 | Sagittarius,Messier 69,18,31,23,-,32,20,51 71 | Sagittarius,Messier 70,18,43,13,-,32,17,29 72 | Sagitta,Messier 71,19,53,46,+,18,46,44 73 | Aquarius,Messier 72,20,53,28,-,12,32,11 74 | Aquarius,Messier 73,20,58,56,-,12,38,0 75 | Pisces,Messier 74,1,36,42,+,15,47,0 76 | Sagittarius,Messier 75,20,6,5,-,21,55,15 77 | Perseus,Messier 76,1,42,18,+,51,34,17 78 | Perseus,Messier 76,1,42,22,+,51,34,50 79 | Cetus,Messier 77,2,42,41,-,0,0,46 80 | Orion,Messier 78,5,46,45,+,0,4,48 81 | Lepus,Messier 79,5,24,11,-,24,31,25 82 | Scorpio,Messier 80,16,17,3,-,22,58,28 83 | Ursa Major,Messier 81,9,55,34,+,69,4,2 84 | Ursa Major,Messier 82,9,55,54,+,69,40,59 85 | Hyaden,Messier 83,13,37,0,-,29,52,2 86 | Virgo,Messier 84,12,25,4,+,12,53,13 87 | Coma Berenices,Messier 85,12,25,24,+,18,11,27 88 | Virgo,Messier 86,12,26,12,+,12,56,47 89 | Virgo,Messier 87,12,30,49,+,12,23,26 90 | Coma Berenices,Messier 88,12,31,59,+,14,25,11 91 | Virgo,Messier 89,12,35,40,+,12,33,22 92 | Virgo,Messier 90,12,36,50,+,13,9,50 93 | Coma Berenices,Messier 91,12,35,26,+,14,29,47 94 | Hercules,Messier 92,17,17,7,+,43,8,13 95 | Puppis,Messier 93,7,44,30,-,23,51,24 96 | Canes Venatici,Messier 94,12,50,53,+,41,7,17 97 | Leo,Messier 95,10,43,58,+,11,42,12 98 | Leo,Messier 96,10,46,46,+,11,49,12 99 | Ursa Major,Messier 97,11,14,48,+,55,1,10 100 | Coma Berenices,Messier 98,12,13,48,+,14,53,58 101 | Coma Berenices,Messier 99,12,18,49,+,14,25,3 102 | Coma Berenices,Messier 100,12,22,55,+,15,49,22 103 | Ursa Major,Messier 101,14,3,12,+,54,20,58 104 | Draco,Messier 102,15,6,29,+,55,45,49 105 | Cassiopeia,Messier 103,1,33,23,+,60,39,30 106 | Virgo,Messier 104,12,39,59,-,11,37,21 107 | Leo,Messier 105,10,47,50,+,12,34,52 108 | Canes Venatici,Messier 106,12,18,58,+,47,18,25 109 | Ophiucus,Messier 107,16,32,32,-,13,3,11 110 | Ursa Major,Messier 108,11,11,29,+,55,40,22 111 | Ursa Major,Messier 109,11,57,35,+,53,22,25 112 | Andromeda,Messier 110,0,40,22,+,41,41,7 -------------------------------------------------------------------------------- /Catalogs/PreciseAlignmentStars.tsc: -------------------------------------------------------------------------------- 1 | 40,,,,,,,, 2 | 2000,,,,,,,, 3 | Eri,Achernar,1,37,43,-,57,14,12 4 | Cru,Acrux,12,26,36,-,63,5,57 5 | Cyg,Albireo,19,30,43,+,27,57,35 6 | Tau,Aldebaran,4,35,55,+,16,30,33 7 | Peg,Algenib,0,13,14,+,15,11,1 8 | Cen,Alpha Centauri,14,39,36,-,60,50,2 9 | Hya,Alphard,9,27,35,-,8,39,31 10 | CrB,Alphecca,15,34,41,+,26,42,53 11 | And,Alpheratz,0,8,23,+,29,5,25 12 | Aql,Altair,19,50,47,+,8,52,6 13 | Sco,Antares,16,29,24,-,26,25,55 14 | Boo,Arcturus,14,15,40,+,19,10,56 15 | Ori,Betelgeuse,5,55,10,+,7,24,25 16 | Car,Canopus,6,23,57,-,52,41,44 17 | Aur,Capella,5,16,41,+,45,59,52 18 | Cas,Caph,0,9,11,+,59,8,59 19 | Gem,Castor,7,34,36,+,31,53,18 20 | Cyg,Deneb,20,41,26,+,45,16,49 21 | Leo,Denebola,11,49,4,+,14,34,19 22 | Uma,Dubhe,11,3,44,+,61,45,3 23 | PsA,Fomalhaut,22,57,39,-,29,37,20 24 | Cen,Hadar,14,3,49,-,60,22,22 25 | Ari,Hamal,2,7,10,+,23,27,44 26 | Cru,Mimosa,12,47,43,-,59,41,19 27 | And,Mirach,1,9,44,+,35,37,14 28 | Per,Mirfak,3,24,19,+,49,51,40 29 | Uma,Mizar,13,23,56,+,54,55,31 30 | Cas,Navi,0,56,43,+,60,43,0 31 | Pav,Peacock,20,25,39,-,56,44,5 32 | Umi,Polaris,2,31,49,+,89,15,51 33 | Gem,Pollux,7,45,19,+,28,1,34 34 | Cmi,Procyon,7,39,18,+,5,13,29 35 | Oph,Rasalhague,17,34,56,+,12,33,36 36 | Leo,Regulus,10,8,22,+,11,58,2 37 | Ori,Rigel,5,14,32,-,8,12,6 38 | Peg,Scheat,23,3,46,+,28,5,58 39 | Cma,Sirius,6,45,9,-,16,42,58 40 | Vir,Spica,13,25,12,-,11,9,41 41 | Vel,Suhail,9,8,0,-,43,25,57 42 | Lyr,Vega,18,36,56,+,38,47,1 43 | -------------------------------------------------------------------------------- /Hardware/1_TSC_PiHAT_GPS/GerberFiles/TSC_PiHat_ILD_V1_5.2_contour.gm1: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,2.677170X2.755910*% 12 | %ADD11C,0.008000*% 13 | %ADD10C,0.008*% 14 | %LNCONTOUR*% 15 | G90* 16 | G70* 17 | G54D10* 18 | G54D11* 19 | X4Y2752D02* 20 | X2673Y2752D01* 21 | X2673Y4D01* 22 | X4Y4D01* 23 | X4Y2752D01* 24 | D02* 25 | G04 End of contour* 26 | M02* -------------------------------------------------------------------------------- /Hardware/1_TSC_PiHAT_GPS/GerberFiles/TSC_PiHat_ILD_V1_5.2_drill.txt: -------------------------------------------------------------------------------- 1 | ; NON-PLATED HOLES START AT T1 2 | ; THROUGH (PLATED) HOLES START AT T100 3 | M48 4 | INCH 5 | T1C0.039370 6 | T2C0.125984 7 | T100C0.090551 8 | T101C0.015748 9 | T102C0.038000 10 | T103C0.098425 11 | T104C0.043307 12 | T105C0.040000 13 | T106C0.042000 14 | T107C0.039370 15 | T108C0.035000 16 | T109C0.032000 17 | % 18 | T1 19 | X026410Y017078 20 | T2 21 | X001299Y003027 22 | X001210Y005228 23 | X024210Y002978 24 | X001210Y012228 25 | X001299Y022362 26 | T100 27 | X001460Y019728 28 | X001460Y014228 29 | T101 30 | X017214Y011217 31 | X007700Y016485 32 | X025013Y002281 33 | X007613Y012376 34 | X018959Y018229 35 | X006712Y006213 36 | X002110Y017976 37 | X016610Y002582 38 | X007206Y020962 39 | X003213Y019180 40 | X025707Y026083 41 | X022449Y007234 42 | X024720Y020732 43 | X025197Y026089 44 | X011716Y015234 45 | X007963Y025931 46 | X023700Y014970 47 | X012210Y024715 48 | X018696Y015234 49 | X002705Y018779 50 | X006712Y008221 51 | X006414Y014775 52 | X001016Y026372 53 | X012607Y012981 54 | X003804Y019074 55 | X023110Y009783 56 | X025708Y014970 57 | X009709Y012173 58 | X015206Y018229 59 | X006449Y016485 60 | X021205Y010883 61 | X015206Y023464 62 | X002103Y015285 63 | X021614Y005282 64 | X009214Y003975 65 | X023700Y023464 66 | X021725Y009472 67 | X001508Y024076 68 | X001016Y023978 69 | X013725Y015234 70 | X018465Y008715 71 | X011716Y014476 72 | X009214Y014476 73 | X007316Y005780 74 | X010716Y013777 75 | X018008Y025573 76 | X023016Y006385 77 | X017708Y015727 78 | X010081Y007607 79 | X021725Y015234 80 | X024457Y008715 81 | X013515Y006882 82 | X025811Y013975 83 | X008962Y007234 84 | X025214Y018493 85 | X021725Y016978 86 | X009214Y012227 87 | X008710Y003480 88 | X024227Y014213 89 | X011588Y007606 90 | X026107Y002282 91 | X010081Y004852 92 | X007316Y006780 93 | X022218Y018987 94 | X024228Y012961 95 | X007963Y006740 96 | X015206Y014970 97 | X024228Y011574 98 | X015469Y002723 99 | X007963Y003975 100 | X006508Y025173 101 | X026010Y013278 102 | X025209Y023582 103 | X006812Y024377 104 | X013408Y004080 105 | X014218Y017966 106 | X002103Y016776 107 | X024227Y015727 108 | X019947Y012962 109 | X007206Y016978 110 | X022976Y007991 111 | X023700Y024715 112 | X006712Y007234 113 | X023201Y002476 114 | X020704Y015234 115 | X007700Y015727 116 | X022218Y017966 117 | X003223Y020962 118 | X024217Y018475 119 | X003213Y019878 120 | X023206Y012468 121 | X013915Y025076 122 | X014218Y018987 123 | T102 124 | X005210Y021978 125 | X011210Y022978 126 | X009210Y021978 127 | X011210Y021978 128 | X003210Y022978 129 | X008210Y022978 130 | X013210Y021978 131 | X014210Y022978 132 | X005210Y022978 133 | X012210Y021978 134 | X022210Y021978 135 | X021210Y022978 136 | X007210Y021978 137 | X012210Y022978 138 | X021210Y021978 139 | X019210Y021978 140 | X016210Y021978 141 | X010210Y021978 142 | X019210Y022978 143 | X009210Y022978 144 | X010210Y022978 145 | X013210Y022978 146 | X017210Y022978 147 | X018210Y022978 148 | X014210Y021978 149 | X006210Y022978 150 | X008210Y021978 151 | X004210Y022978 152 | X016210Y022978 153 | X002060Y025428 154 | X006210Y021978 155 | X004210Y021978 156 | X017210Y021978 157 | X018210Y021978 158 | X003060Y025428 159 | X007210Y022978 160 | X020210Y021978 161 | X015210Y021978 162 | X020210Y022978 163 | X022210Y022978 164 | X003210Y021978 165 | X015210Y022978 166 | T103 167 | X001210Y005228 168 | X001210Y012228 169 | T104 170 | X006054Y025378 171 | X007432Y025378 172 | X008810Y025378 173 | X004677Y025378 174 | T105 175 | X010960Y007128 176 | X010710Y017428 177 | X010710Y014428 178 | X013960Y005628 179 | X017960Y005628 180 | X013960Y011628 181 | X010960Y011128 182 | X013205Y025478 183 | X015410Y010478 184 | X015960Y011628 185 | X010710Y016428 186 | X014583Y025478 187 | X016960Y005628 188 | X010710Y002978 189 | X021310Y002978 190 | X011960Y011628 191 | X012960Y005628 192 | X004832Y002978 193 | X010710Y019428 194 | X016960Y011628 195 | X013888Y002978 196 | X003454Y002978 197 | X011827Y025478 198 | X020960Y005628 199 | X022960Y005628 200 | X019960Y005628 201 | X012510Y002978 202 | X010710Y018428 203 | X009332Y002978 204 | X019960Y011628 205 | X010710Y015428 206 | X007954Y002978 207 | X016644Y002978 208 | X012960Y011628 209 | X021960Y011628 210 | X020960Y011628 211 | X022960Y011628 212 | X015960Y005628 213 | X018960Y005628 214 | X015960Y025478 215 | X021960Y005628 216 | X010960Y006128 217 | X014960Y005628 218 | X017960Y011628 219 | X016410Y010478 220 | X018960Y011628 221 | X010960Y009128 222 | X011960Y005628 223 | X015266Y002978 224 | X014960Y011628 225 | X010960Y008128 226 | X010960Y010128 227 | X018022Y002978 228 | X019932Y002978 229 | X006210Y002978 230 | T106 231 | X022310Y004478 232 | X025290Y004478 233 | T107 234 | X006210Y007228 235 | X006210Y005228 236 | X006210Y011228 237 | X006210Y009228 238 | X006210Y012228 239 | X006210Y008228 240 | X006210Y006228 241 | X006210Y010228 242 | T108 243 | X017210Y017478 244 | X016210Y014478 245 | X023210Y014978 246 | X015210Y019478 247 | X022460Y007978 248 | X014210Y019478 249 | X012460Y009478 250 | X017210Y014478 251 | X016460Y009478 252 | X023210Y019478 253 | X017710Y019478 254 | X019460Y019478 255 | X018460Y007978 256 | X022210Y019478 257 | X018710Y016728 258 | X016710Y019478 259 | X015210Y017478 260 | X018460Y009478 261 | X023210Y013978 262 | X018710Y015728 263 | X016210Y017478 264 | X022460Y009478 265 | X016460Y007978 266 | X012460Y007978 267 | X014210Y014478 268 | X014210Y017478 269 | X020460Y019478 270 | X015210Y014478 271 | T109 272 | X021710Y017478 273 | X019710Y014478 274 | X020710Y014478 275 | X019710Y017478 276 | X021710Y014478 277 | X020710Y017478 278 | T00 279 | M30 280 | -------------------------------------------------------------------------------- /Hardware/1_TSC_PiHAT_GPS/GerberFiles/TSC_PiHat_ILD_V1_5.3_contour.gm1: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,2.677170X2.755910*% 12 | %ADD11C,0.008000*% 13 | %ADD10C,0.008*% 14 | %LNCONTOUR*% 15 | G90* 16 | G70* 17 | G54D10* 18 | G54D11* 19 | X4Y2752D02* 20 | X2673Y2752D01* 21 | X2673Y4D01* 22 | X4Y4D01* 23 | X4Y2752D01* 24 | D02* 25 | G04 End of contour* 26 | M02* -------------------------------------------------------------------------------- /Hardware/1_TSC_PiHAT_GPS/GerberFiles/TSC_PiHat_ILD_V1_5.3_drill.txt: -------------------------------------------------------------------------------- 1 | ; NON-PLATED HOLES START AT T1 2 | ; THROUGH (PLATED) HOLES START AT T100 3 | M48 4 | INCH 5 | T1C0.125984 6 | T2C0.039370 7 | T100C0.040000 8 | T101C0.032000 9 | T102C0.039370 10 | T103C0.038000 11 | T104C0.043307 12 | T105C0.090551 13 | T106C0.098425 14 | T107C0.035000 15 | T108C0.042000 16 | T109C0.015748 17 | % 18 | T1 19 | X001210Y012228 20 | X024210Y002978 21 | X001299Y022362 22 | X001299Y003027 23 | X001210Y005228 24 | T2 25 | X026410Y017078 26 | T100 27 | X014583Y025478 28 | X010710Y017428 29 | X010710Y002978 30 | X016644Y002978 31 | X010960Y010128 32 | X011960Y005628 33 | X013960Y005628 34 | X015960Y005628 35 | X015266Y002978 36 | X012960Y005628 37 | X014960Y005628 38 | X016960Y005628 39 | X018960Y005628 40 | X015960Y025478 41 | X007954Y002978 42 | X010960Y007128 43 | X017960Y005628 44 | X019960Y005628 45 | X010710Y015428 46 | X015960Y011628 47 | X013960Y011628 48 | X011960Y011628 49 | X012510Y002978 50 | X006210Y002978 51 | X018960Y011628 52 | X016960Y011628 53 | X014960Y011628 54 | X012960Y011628 55 | X013888Y002978 56 | X019960Y011628 57 | X017960Y011628 58 | X021960Y005628 59 | X020960Y005628 60 | X022960Y005628 61 | X004832Y002978 62 | X010710Y018428 63 | X021960Y011628 64 | X010960Y011128 65 | X003454Y002978 66 | X022960Y011628 67 | X020960Y011628 68 | X010960Y008128 69 | X016410Y010478 70 | X010710Y016428 71 | X021310Y002978 72 | X013205Y025478 73 | X015410Y010478 74 | X019932Y002978 75 | X010960Y006128 76 | X010710Y014428 77 | X011827Y025478 78 | X010710Y019428 79 | X018022Y002978 80 | X009332Y002978 81 | X010960Y009128 82 | T101 83 | X020710Y017478 84 | X019710Y017478 85 | X021710Y017478 86 | X020710Y014478 87 | X019710Y014478 88 | X021710Y014478 89 | T102 90 | X006210Y010228 91 | X006210Y007228 92 | X006210Y005228 93 | X006210Y011228 94 | X006210Y008228 95 | X006210Y006228 96 | X006210Y012228 97 | X006210Y009228 98 | T103 99 | X011210Y022978 100 | X010210Y022978 101 | X012210Y022978 102 | X014210Y022978 103 | X016210Y022978 104 | X013210Y022978 105 | X015210Y022978 106 | X017210Y022978 107 | X019210Y022978 108 | X018210Y022978 109 | X020210Y022978 110 | X022210Y022978 111 | X021210Y022978 112 | X006210Y021978 113 | X004210Y021978 114 | X009210Y021978 115 | X007210Y021978 116 | X005210Y021978 117 | X003210Y021978 118 | X008210Y021978 119 | X002060Y025428 120 | X011210Y021978 121 | X003060Y025428 122 | X016210Y021978 123 | X014210Y021978 124 | X012210Y021978 125 | X010210Y021978 126 | X019210Y021978 127 | X017210Y021978 128 | X015210Y021978 129 | X013210Y021978 130 | X018210Y021978 131 | X004210Y022978 132 | X006210Y022978 133 | X003210Y022978 134 | X005210Y022978 135 | X007210Y022978 136 | X009210Y022978 137 | X008210Y022978 138 | X022210Y021978 139 | X020210Y021978 140 | X021210Y021978 141 | T104 142 | X006054Y025378 143 | X004677Y025378 144 | X008810Y025378 145 | X007432Y025378 146 | T105 147 | X001460Y019728 148 | X001460Y014228 149 | T106 150 | X001210Y012228 151 | X001210Y005228 152 | T107 153 | X023210Y013978 154 | X022460Y009478 155 | X016710Y019478 156 | X017710Y019478 157 | X018710Y015728 158 | X014210Y014478 159 | X016210Y014478 160 | X023210Y014978 161 | X015210Y014478 162 | X017210Y014478 163 | X014210Y019478 164 | X015210Y019478 165 | X019460Y019478 166 | X016460Y007978 167 | X012460Y007978 168 | X018460Y007978 169 | X018710Y016728 170 | X014210Y017478 171 | X016210Y017478 172 | X015210Y017478 173 | X017210Y017478 174 | X016460Y009478 175 | X012460Y009478 176 | X018460Y009478 177 | X022210Y019478 178 | X020460Y019478 179 | X023210Y019478 180 | X022460Y007978 181 | T108 182 | X025290Y004478 183 | X022310Y004478 184 | T109 185 | X003213Y019878 186 | X002110Y017976 187 | X016610Y002582 188 | X018465Y008715 189 | X024457Y008715 190 | X025214Y018493 191 | X022218Y017966 192 | X020704Y015234 193 | X026107Y002282 194 | X003804Y019074 195 | X003223Y020962 196 | X024227Y015727 197 | X021725Y015234 198 | X010081Y007607 199 | X025209Y023582 200 | X007316Y006780 201 | X002705Y018779 202 | X009214Y003975 203 | X023110Y009783 204 | X007700Y016485 205 | X025197Y026089 206 | X006812Y024377 207 | X023700Y014970 208 | X022218Y018987 209 | X007316Y005780 210 | X015469Y002723 211 | X022976Y007991 212 | X015206Y023464 213 | X018696Y015234 214 | X025013Y002281 215 | X021725Y009472 216 | X025708Y014970 217 | X019947Y012962 218 | X024227Y014213 219 | X006449Y016485 220 | X011199Y004440 221 | X023201Y002476 222 | X006508Y025173 223 | X018008Y025573 224 | X002103Y015285 225 | X014218Y017966 226 | X007613Y012376 227 | X026010Y013278 228 | X009709Y012173 229 | X018959Y018229 230 | X010081Y004852 231 | X024228Y012961 232 | X015206Y018229 233 | X013725Y015234 234 | X001016Y023978 235 | X023016Y006385 236 | X025811Y013975 237 | X023700Y024715 238 | X009703Y006168 239 | X007963Y006740 240 | X015206Y014970 241 | X017708Y015727 242 | X007206Y020962 243 | X017214Y011217 244 | X023206Y012468 245 | X006712Y008221 246 | X008710Y003480 247 | X014218Y018987 248 | X007963Y003975 249 | X010716Y013777 250 | X011716Y015234 251 | X013515Y006882 252 | X011716Y014476 253 | X024228Y011574 254 | X013915Y025076 255 | X021725Y016978 256 | X007206Y016978 257 | X011588Y007606 258 | X001016Y026372 259 | X007700Y015727 260 | X006712Y007234 261 | X021614Y005282 262 | X008962Y007234 263 | X009214Y014476 264 | X001508Y024076 265 | X002103Y016776 266 | X007963Y025931 267 | X025707Y026083 268 | X012607Y012981 269 | X009214Y012227 270 | X015206Y004962 271 | X024720Y020732 272 | X012210Y024715 273 | X003213Y019180 274 | X023700Y023464 275 | X024217Y018475 276 | X006414Y014775 277 | X021205Y010883 278 | X022449Y007234 279 | T00 280 | M30 281 | -------------------------------------------------------------------------------- /Hardware/1_TSC_PiHAT_GPS/TSC_PiHat_ILD_V1_5.3.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/1_TSC_PiHAT_GPS/TSC_PiHat_ILD_V1_5.3.fzz -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/AMIS30543_Teensy_2.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/2_AMIS_Drives/Teensy4/AMIS30543_Teensy_2.fzz -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/AMIS30543_Teensy_2_pcb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/2_AMIS_Drives/Teensy4/AMIS30543_Teensy_2_pcb.jpg -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/AMIS30543_Teensy_4.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/2_AMIS_Drives/Teensy4/AMIS30543_Teensy_4.fzz -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber/AMIS30543_Teensy_2_contour.gm1: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,3.543310X2.952760*% 12 | %ADD11C,0.008000*% 13 | %ADD10C,0.008*% 14 | %LNCONTOUR*% 15 | G90* 16 | G70* 17 | G54D10* 18 | G54D11* 19 | X4Y2949D02* 20 | X3539Y2949D01* 21 | X3539Y4D01* 22 | X4Y4D01* 23 | X4Y2949D01* 24 | D02* 25 | G04 End of contour* 26 | M02* -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber/AMIS30543_Teensy_2_drill.txt: -------------------------------------------------------------------------------- 1 | ; NON-PLATED HOLES START AT T1 2 | ; THROUGH (PLATED) HOLES START AT T100 3 | M48 4 | INCH 5 | T1C0.128000 6 | T2C0.137795 7 | T3C0.085827 8 | T4C0.053000 9 | T100C0.078740 10 | T101C0.059055 11 | T102C0.039370 12 | T103C0.040000 13 | T104C0.015748 14 | T105C0.042000 15 | T106C0.038000 16 | % 17 | T1 18 | X001539Y002949 19 | X001539Y006949 20 | T2 21 | X033839Y006208 22 | X033839Y025499 23 | X010636Y025503 24 | X010636Y006212 25 | T3 26 | X009651Y014086 27 | X009651Y004086 28 | X009639Y027398 29 | X009639Y017398 30 | T4 31 | X025873Y023598 32 | X031873Y017598 33 | X033983Y008148 34 | X030873Y023598 35 | X032983Y009148 36 | X027983Y008148 37 | X030983Y014148 38 | X021873Y017598 39 | X026872Y023598 40 | X033983Y014148 41 | X030983Y008148 42 | X020982Y012148 43 | X022873Y017598 44 | X028873Y023598 45 | X027873Y017598 46 | X020982Y010148 47 | X022873Y023598 48 | X026982Y014148 49 | X020982Y011148 50 | X032873Y017598 51 | X033873Y023598 52 | X029872Y017598 53 | X024872Y017598 54 | X020873Y017598 55 | X028983Y014148 56 | X020983Y009148 57 | X025873Y017598 58 | X020983Y008148 59 | X025983Y014148 60 | X020872Y019598 61 | X023873Y023598 62 | X023983Y014148 63 | X033873Y017598 64 | X027983Y014148 65 | X030983Y009148 66 | X032873Y018598 67 | X032873Y023598 68 | X031873Y023598 69 | X026982Y008148 70 | X023983Y008148 71 | X022983Y014148 72 | X031983Y014148 73 | X025983Y008148 74 | X028873Y017598 75 | X029982Y008148 76 | X029872Y023598 77 | X029982Y009148 78 | X032983Y008148 79 | X030873Y017598 80 | X031983Y008148 81 | X020983Y014148 82 | X021983Y008148 83 | X032983Y014148 84 | X024982Y014148 85 | X028983Y008148 86 | X020873Y018598 87 | X021983Y014148 88 | X020872Y021598 89 | X028872Y018598 90 | X020872Y020598 91 | X030873Y018598 92 | X022983Y008148 93 | X023873Y017598 94 | X020873Y022598 95 | X026872Y017598 96 | X021873Y023598 97 | X020873Y023598 98 | X029982Y014148 99 | X024982Y008148 100 | X029872Y018598 101 | X027873Y023598 102 | X024872Y023598 103 | X020983Y013148 104 | X028982Y009148 105 | T100 106 | X032539Y026999 107 | X028839Y026999 108 | T101 109 | X004839Y027699 110 | X004839Y016499 111 | X004839Y014499 112 | X021839Y026799 113 | X004839Y010499 114 | X004839Y023699 115 | X023217Y026799 116 | X004839Y025699 117 | X004839Y021699 118 | X004839Y012499 119 | T102 120 | X008339Y021899 121 | X008339Y023899 122 | X008339Y008499 123 | X008339Y024899 124 | X008339Y022899 125 | X008339Y009499 126 | X008339Y010499 127 | X008339Y011499 128 | T103 129 | X009739Y000999 130 | X012495Y000999 131 | X011117Y000999 132 | X004039Y003699 133 | X008239Y000999 134 | X005039Y006199 135 | X004039Y004699 136 | X006861Y000999 137 | X005039Y005199 138 | X025739Y026799 139 | X005039Y004199 140 | X027117Y026799 141 | X004039Y005699 142 | T104 143 | X024683Y003303 144 | X026443Y004541 145 | X018945Y014990 146 | X020933Y016801 147 | X022446Y014990 148 | X026242Y027899 149 | X025210Y024753 150 | X024747Y026111 151 | X022448Y015799 152 | X020198Y020543 153 | X032872Y024330 154 | X011033Y001904 155 | X018929Y018293 156 | X020937Y015400 157 | X016033Y012503 158 | X005034Y001602 159 | X032545Y028287 160 | X009797Y018879 161 | X003135Y005702 162 | X032630Y012700 163 | X005034Y000395 164 | X019038Y003092 165 | X018833Y012104 166 | X020685Y004541 167 | X019038Y006797 168 | X011729Y018879 169 | X020248Y002794 170 | X018833Y010894 171 | X024698Y016801 172 | X019242Y014599 173 | X019448Y003892 174 | X020043Y012104 175 | X020685Y002303 176 | T105 177 | X028863Y026998 178 | X032539Y026998 179 | T106 180 | X008339Y019899 181 | X008339Y006499 182 | X017239Y008499 183 | X008339Y005499 184 | X017239Y009499 185 | X017239Y021899 186 | X017239Y025899 187 | X017239Y020899 188 | X017239Y016899 189 | X017239Y017899 190 | X017239Y027899 191 | X016239Y003499 192 | X017239Y007499 193 | X017239Y004499 194 | X017239Y019899 195 | X016239Y016899 196 | X017239Y018899 197 | X017239Y023899 198 | X017239Y003499 199 | X008339Y018899 200 | X017239Y005499 201 | X017239Y012499 202 | X017239Y024899 203 | X017239Y011499 204 | X017239Y013499 205 | X017239Y022899 206 | X017239Y010499 207 | X017239Y014499 208 | X017239Y006499 209 | X017239Y026899 210 | T00 211 | M30 212 | -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber/AMIS30543_Teensy_2_maskBottom.gbs: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.089370*% 12 | %ADD11C,0.109055*% 13 | %ADD12C,0.049370*% 14 | %ADD13C,0.147795*% 15 | %ADD14C,0.063000*% 16 | %ADD15C,0.090000*% 17 | %ADD16C,0.128740*% 18 | %ADD17C,0.092000*% 19 | %ADD18C,0.088000*% 20 | %ADD19C,0.095827*% 21 | %ADD20C,0.084000*% 22 | %ADD21C,0.138000*% 23 | %ADD22R,0.109055X0.109055*% 24 | %ADD23R,0.062264X0.049500*% 25 | %ADD24R,0.090000X0.090000*% 26 | %ADD25R,0.092000X0.092000*% 27 | %LNMASK0*% 28 | G90* 29 | G70* 30 | G54D10* 31 | X834Y2490D03* 32 | X834Y2390D03* 33 | X834Y2290D03* 34 | X834Y2190D03* 35 | X834Y1150D03* 36 | X834Y1050D03* 37 | X834Y950D03* 38 | X834Y850D03* 39 | G54D11* 40 | X484Y1050D03* 41 | X484Y1250D03* 42 | X484Y1450D03* 43 | X484Y1650D03* 44 | X484Y2170D03* 45 | X484Y2370D03* 46 | X484Y2570D03* 47 | X484Y2770D03* 48 | G54D12* 49 | X2475Y2611D03* 50 | X3263Y1270D03* 51 | X1883Y1210D03* 52 | X1883Y1089D03* 53 | X1945Y389D03* 54 | X1904Y680D03* 55 | X2025Y279D03* 56 | X1904Y309D03* 57 | X2245Y1499D03* 58 | X1924Y1460D03* 59 | X2004Y1210D03* 60 | X1895Y1499D03* 61 | X2094Y1540D03* 62 | X3255Y2829D03* 63 | X1603Y1250D03* 64 | G54D13* 65 | X1064Y2550D03* 66 | X3384Y2550D03* 67 | X1064Y621D03* 68 | X3384Y621D03* 69 | G54D12* 70 | X2624Y2790D03* 71 | X1173Y1888D03* 72 | X980Y1888D03* 73 | X2521Y2475D03* 74 | X3287Y2433D03* 75 | X2470Y1680D03* 76 | X2093Y1680D03* 77 | X2245Y1580D03* 78 | X1893Y1829D03* 79 | X2020Y2054D03* 80 | X2644Y454D03* 81 | X2468Y330D03* 82 | X2069Y454D03* 83 | X2069Y230D03* 84 | G54D14* 85 | X2087Y1760D03* 86 | X2187Y1760D03* 87 | X2287Y1760D03* 88 | X2387Y1760D03* 89 | X2487Y1760D03* 90 | X2587Y1760D03* 91 | X2687Y1760D03* 92 | X2787Y1760D03* 93 | X2887Y1760D03* 94 | X2987Y1760D03* 95 | X3087Y1760D03* 96 | X3187Y1760D03* 97 | X3287Y1760D03* 98 | X3387Y1760D03* 99 | X3287Y1860D03* 100 | X2087Y2360D03* 101 | X2187Y2360D03* 102 | X2287Y2360D03* 103 | X2387Y2360D03* 104 | X2487Y2360D03* 105 | X2587Y2360D03* 106 | X2687Y2360D03* 107 | X2787Y2360D03* 108 | X2887Y2360D03* 109 | X2987Y2360D03* 110 | X3087Y2360D03* 111 | X3187Y2360D03* 112 | X3287Y2360D03* 113 | X3387Y2360D03* 114 | X2987Y1860D03* 115 | X3087Y1860D03* 116 | X2887Y1860D03* 117 | X2087Y2160D03* 118 | X2087Y2260D03* 119 | X2087Y2060D03* 120 | X2087Y1860D03* 121 | X2087Y1960D03* 122 | X2098Y815D03* 123 | X2198Y815D03* 124 | X2298Y815D03* 125 | X2398Y815D03* 126 | X2498Y815D03* 127 | X2598Y815D03* 128 | X2698Y815D03* 129 | X2798Y815D03* 130 | X2898Y815D03* 131 | X2998Y815D03* 132 | X3098Y815D03* 133 | X3198Y815D03* 134 | X3298Y815D03* 135 | X3398Y815D03* 136 | X3298Y915D03* 137 | X2098Y1415D03* 138 | X2198Y1415D03* 139 | X2298Y1415D03* 140 | X2398Y1415D03* 141 | X2498Y1415D03* 142 | X2598Y1415D03* 143 | X2698Y1415D03* 144 | X2798Y1415D03* 145 | X2898Y1415D03* 146 | X2998Y1415D03* 147 | X3098Y1415D03* 148 | X3198Y1415D03* 149 | X3298Y1415D03* 150 | X3398Y1415D03* 151 | X2998Y915D03* 152 | X3098Y915D03* 153 | X2898Y915D03* 154 | X2098Y1215D03* 155 | X2098Y1315D03* 156 | X2098Y1115D03* 157 | X2098Y915D03* 158 | X2098Y1015D03* 159 | G54D15* 160 | X2574Y2680D03* 161 | X2712Y2680D03* 162 | G54D16* 163 | X2884Y2700D03* 164 | X3254Y2700D03* 165 | G54D17* 166 | X3254Y2700D03* 167 | X2886Y2700D03* 168 | G54D18* 169 | X1724Y2790D03* 170 | X1724Y2690D03* 171 | X1724Y2590D03* 172 | X1724Y2490D03* 173 | X1724Y2390D03* 174 | X1724Y2290D03* 175 | X1724Y2190D03* 176 | X1724Y2090D03* 177 | X1724Y1990D03* 178 | X1724Y1890D03* 179 | X1724Y1790D03* 180 | X1724Y1450D03* 181 | X1724Y1350D03* 182 | X1724Y1250D03* 183 | X1724Y1150D03* 184 | X1724Y1050D03* 185 | X1724Y950D03* 186 | X1724Y850D03* 187 | X1724Y750D03* 188 | X1724Y650D03* 189 | X1724Y550D03* 190 | X1724Y450D03* 191 | X834Y1990D03* 192 | X834Y1890D03* 193 | X834Y650D03* 194 | X834Y550D03* 195 | X1724Y1690D03* 196 | X1624Y1690D03* 197 | X1724Y350D03* 198 | X1624Y350D03* 199 | G54D19* 200 | X965Y1409D03* 201 | X964Y2740D03* 202 | X965Y409D03* 203 | X964Y1740D03* 204 | G54D11* 205 | X2184Y2680D03* 206 | X2322Y2680D03* 207 | G54D20* 208 | X504Y620D03* 209 | X404Y570D03* 210 | X504Y520D03* 211 | X404Y470D03* 212 | X504Y420D03* 213 | X404Y370D03* 214 | G54D21* 215 | X154Y695D03* 216 | X154Y295D03* 217 | G54D15* 218 | X1250Y100D03* 219 | X1112Y100D03* 220 | X974Y100D03* 221 | X824Y100D03* 222 | X686Y100D03* 223 | G54D12* 224 | X503Y160D03* 225 | X503Y40D03* 226 | X314Y570D03* 227 | X1103Y190D03* 228 | G54D22* 229 | X484Y1050D03* 230 | X484Y2170D03* 231 | G54D23* 232 | X2688Y1960D03* 233 | X2688Y2060D03* 234 | X2788Y1960D03* 235 | X2788Y2060D03* 236 | X2588Y1960D03* 237 | X2488Y1960D03* 238 | X2388Y1960D03* 239 | X2288Y1960D03* 240 | X2188Y1960D03* 241 | X2188Y2060D03* 242 | X2288Y2060D03* 243 | X2388Y2060D03* 244 | X2488Y2060D03* 245 | X2588Y2060D03* 246 | X2699Y1015D03* 247 | X2699Y1115D03* 248 | X2799Y1015D03* 249 | X2799Y1115D03* 250 | X2599Y1015D03* 251 | X2499Y1015D03* 252 | X2399Y1015D03* 253 | X2299Y1015D03* 254 | X2199Y1015D03* 255 | X2199Y1115D03* 256 | X2299Y1115D03* 257 | X2399Y1115D03* 258 | X2499Y1115D03* 259 | X2599Y1115D03* 260 | G54D24* 261 | X2574Y2680D03* 262 | G54D25* 263 | X3255Y2700D03* 264 | G54D22* 265 | X2184Y2680D03* 266 | G54D24* 267 | X1250Y100D03* 268 | X824Y100D03* 269 | G04 End of Mask0* 270 | M02* -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber/AMIS30543_Teensy_2_maskTop.gts: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.089370*% 12 | %ADD11C,0.109055*% 13 | %ADD12C,0.049370*% 14 | %ADD13C,0.147795*% 15 | %ADD14C,0.063000*% 16 | %ADD15C,0.090000*% 17 | %ADD16C,0.128740*% 18 | %ADD17C,0.092000*% 19 | %ADD18C,0.088000*% 20 | %ADD19C,0.095827*% 21 | %ADD20C,0.084000*% 22 | %ADD21C,0.138000*% 23 | %ADD22R,0.109055X0.109055*% 24 | %ADD23R,0.090000X0.090000*% 25 | %ADD24R,0.092000X0.092000*% 26 | %LNMASK1*% 27 | G90* 28 | G70* 29 | G54D10* 30 | X834Y2490D03* 31 | X834Y2390D03* 32 | X834Y2290D03* 33 | X834Y2190D03* 34 | X834Y1150D03* 35 | X834Y1050D03* 36 | X834Y950D03* 37 | X834Y850D03* 38 | G54D11* 39 | X484Y1050D03* 40 | X484Y1250D03* 41 | X484Y1450D03* 42 | X484Y1650D03* 43 | X484Y2170D03* 44 | X484Y2370D03* 45 | X484Y2570D03* 46 | X484Y2770D03* 47 | G54D12* 48 | X2475Y2611D03* 49 | X3263Y1270D03* 50 | X1883Y1210D03* 51 | X1883Y1089D03* 52 | X1945Y389D03* 53 | X1904Y680D03* 54 | X2025Y279D03* 55 | X1904Y309D03* 56 | X2245Y1499D03* 57 | X1924Y1460D03* 58 | X2004Y1210D03* 59 | X1895Y1499D03* 60 | X2094Y1540D03* 61 | X3255Y2829D03* 62 | X1603Y1250D03* 63 | G54D13* 64 | X1064Y2550D03* 65 | X3384Y2550D03* 66 | X1064Y621D03* 67 | X3384Y621D03* 68 | G54D12* 69 | X2624Y2790D03* 70 | X1173Y1888D03* 71 | X980Y1888D03* 72 | X2521Y2475D03* 73 | X3287Y2433D03* 74 | X2470Y1680D03* 75 | X2093Y1680D03* 76 | X2245Y1580D03* 77 | X1893Y1829D03* 78 | X2020Y2054D03* 79 | X2644Y454D03* 80 | X2468Y330D03* 81 | X2069Y454D03* 82 | X2069Y230D03* 83 | G54D14* 84 | X2087Y1760D03* 85 | X2187Y1760D03* 86 | X2287Y1760D03* 87 | X2387Y1760D03* 88 | X2487Y1760D03* 89 | X2587Y1760D03* 90 | X2687Y1760D03* 91 | X2787Y1760D03* 92 | X2887Y1760D03* 93 | X2987Y1760D03* 94 | X3087Y1760D03* 95 | X3187Y1760D03* 96 | X3287Y1760D03* 97 | X3387Y1760D03* 98 | X3287Y1860D03* 99 | X2087Y2360D03* 100 | X2187Y2360D03* 101 | X2287Y2360D03* 102 | X2387Y2360D03* 103 | X2487Y2360D03* 104 | X2587Y2360D03* 105 | X2687Y2360D03* 106 | X2787Y2360D03* 107 | X2887Y2360D03* 108 | X2987Y2360D03* 109 | X3087Y2360D03* 110 | X3187Y2360D03* 111 | X3287Y2360D03* 112 | X3387Y2360D03* 113 | X2987Y1860D03* 114 | X3087Y1860D03* 115 | X2887Y1860D03* 116 | X2087Y2160D03* 117 | X2087Y2260D03* 118 | X2087Y2060D03* 119 | X2087Y1860D03* 120 | X2087Y1960D03* 121 | X2098Y815D03* 122 | X2198Y815D03* 123 | X2298Y815D03* 124 | X2398Y815D03* 125 | X2498Y815D03* 126 | X2598Y815D03* 127 | X2698Y815D03* 128 | X2798Y815D03* 129 | X2898Y815D03* 130 | X2998Y815D03* 131 | X3098Y815D03* 132 | X3198Y815D03* 133 | X3298Y815D03* 134 | X3398Y815D03* 135 | X3298Y915D03* 136 | X2098Y1415D03* 137 | X2198Y1415D03* 138 | X2298Y1415D03* 139 | X2398Y1415D03* 140 | X2498Y1415D03* 141 | X2598Y1415D03* 142 | X2698Y1415D03* 143 | X2798Y1415D03* 144 | X2898Y1415D03* 145 | X2998Y1415D03* 146 | X3098Y1415D03* 147 | X3198Y1415D03* 148 | X3298Y1415D03* 149 | X3398Y1415D03* 150 | X2998Y915D03* 151 | X3098Y915D03* 152 | X2898Y915D03* 153 | X2098Y1215D03* 154 | X2098Y1315D03* 155 | X2098Y1115D03* 156 | X2098Y915D03* 157 | X2098Y1015D03* 158 | G54D15* 159 | X2574Y2680D03* 160 | X2712Y2680D03* 161 | G54D16* 162 | X2884Y2700D03* 163 | X3254Y2700D03* 164 | G54D17* 165 | X3254Y2700D03* 166 | X2886Y2700D03* 167 | G54D18* 168 | X1724Y2790D03* 169 | X1724Y2690D03* 170 | X1724Y2590D03* 171 | X1724Y2490D03* 172 | X1724Y2390D03* 173 | X1724Y2290D03* 174 | X1724Y2190D03* 175 | X1724Y2090D03* 176 | X1724Y1990D03* 177 | X1724Y1890D03* 178 | X1724Y1790D03* 179 | X1724Y1450D03* 180 | X1724Y1350D03* 181 | X1724Y1250D03* 182 | X1724Y1150D03* 183 | X1724Y1050D03* 184 | X1724Y950D03* 185 | X1724Y850D03* 186 | X1724Y750D03* 187 | X1724Y650D03* 188 | X1724Y550D03* 189 | X1724Y450D03* 190 | X834Y1990D03* 191 | X834Y1890D03* 192 | X834Y650D03* 193 | X834Y550D03* 194 | X1724Y1690D03* 195 | X1624Y1690D03* 196 | X1724Y350D03* 197 | X1624Y350D03* 198 | G54D19* 199 | X965Y1409D03* 200 | X964Y2740D03* 201 | X965Y409D03* 202 | X964Y1740D03* 203 | G54D11* 204 | X2184Y2680D03* 205 | X2322Y2680D03* 206 | G54D20* 207 | X504Y620D03* 208 | X404Y570D03* 209 | X504Y520D03* 210 | X404Y470D03* 211 | X504Y420D03* 212 | X404Y370D03* 213 | G54D21* 214 | X154Y695D03* 215 | X154Y295D03* 216 | G54D20* 217 | X504Y620D03* 218 | X404Y570D03* 219 | X504Y520D03* 220 | X404Y470D03* 221 | X504Y420D03* 222 | X404Y370D03* 223 | G54D21* 224 | X154Y695D03* 225 | X154Y295D03* 226 | G54D15* 227 | X1250Y100D03* 228 | X1112Y100D03* 229 | X974Y100D03* 230 | X824Y100D03* 231 | X686Y100D03* 232 | G54D12* 233 | X503Y160D03* 234 | X503Y40D03* 235 | X314Y570D03* 236 | X1103Y190D03* 237 | G54D22* 238 | X484Y1050D03* 239 | X484Y2170D03* 240 | G54D23* 241 | X2574Y2680D03* 242 | G54D24* 243 | X3255Y2700D03* 244 | G54D22* 245 | X2184Y2680D03* 246 | G54D23* 247 | X1250Y100D03* 248 | X824Y100D03* 249 | G04 End of Mask1* 250 | M02* -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber/AMIS30543_Teensy_2_pnp.txt: -------------------------------------------------------------------------------- 1 | *Pick And Place List 2 | *Company= 3 | *Author= 4 | *eMail= 5 | * 6 | *Project=AMIS30543_Teensy_2 7 | *Date=12:55:17 8 | *CreatedBy=Fritzing 0.9.3b.04.19.5c895d327c44a3114e5fcc9d8260daf0cbb52806 9 | * 10 | * 11 | *Coordinates in mm, always center of component 12 | *Origin 0/0=Lower left corner of PCB 13 | *Rotation in degree (0-360, math. pos.) 14 | * 15 | *No;Value;Package;X;Y;Rotation;Side;Name 16 | 1;;;24.885;-47.9527;0;Bottom;Via2 17 | 2;;;62.7338;-42.6751;0;Bottom;Via7 18 | 3;;;27.0156;-64.779;0;Bottom;Hole15 19 | 4;;THT;21.1818;-15.238;0;Bottom;GND/VMOT 20 | 5;;;48.3574;-17.2667;0;Bottom;Via29 21 | 6;;;51.3038;-52.1804;0;Bottom;Via12 22 | 7;;THT;19.3048;-2.02996;90;Bottom;E/COM 23 | 8;;THT;42.5178;-42.924;90;Bottom;VD(Out)/IORef1 24 | 9;;;24.4844;-69.5933;0;Bottom;Hole3 25 | 10;;;70.0247;-52.3124;180;Bottom;Teensy 4 26 | 11;;;82.6644;-71.8513;0;Bottom;Via39 27 | 12;;;40.079;-53.0762;0;Bottom;TXT1 28 | 13;;;62.858;-66.3225;0;Bottom;Via23 29 | 14;;;40.0253;-60.843;0;Bottom;TXT1 30 | 15;;;85.952;-15.7683;0;Bottom;Hole12 31 | 16;;;28.0261;-4.8364;0;Bottom;Via44 32 | 17;;;57.0188;-40.1295;0;Bottom;Via10 33 | 18;;;24.5155;-10.3803;0;Bottom;Hole11 34 | 19;;;40.1298;-55.7488;0;Bottom;TXT1 35 | 20;;;48.1204;-38.0749;0;Bottom;Via36 36 | 21;;;48.8767;-37.0815;0;Bottom;Via34 37 | 22;;;52.54;-11.5347;0;Bottom;Via17 38 | 23;;;40.1592;-65.8214;0;Bottom;TXT1 39 | 24;;;24.4844;-44.1933;0;Bottom;Hole2 40 | 25;;;77.995;-68.5766;180;Bottom;D1 41 | 26;;;85.952;-64.7677;0;Bottom;Hole14 42 | 27;;;27.0156;-15.7796;0;Bottom;Hole13 43 | 28;;THT;21.1818;-49.274;0;Bottom;VMOT/GND1 44 | 29;;;39.9955;-58.1534;0;Bottom;TXT1 45 | 30;;;12.7879;-4.06998;0;Bottom;Via41 46 | 31;;THT;82.6498;-68.578;0;Bottom;- 47 | 32;;;38.4859;-47.9398;0;Bottom;TXT1 48 | 33;;;53.1806;-39.1163;0;Bottom;Via38 49 | 34;;;24.5155;-35.7803;0;Bottom;Hole10 50 | 35;;;48.3574;-7.85456;0;Bottom;Via31 51 | 36;;;64.0349;-62.8738;0;Bottom;Via4 52 | 37;;THT;28.3648;-2.02996;90;Bottom;N/S/W 53 | 38;;THT;43.7878;-24.128;0;Bottom;AMIS 30543 54 | 39;;;40.2297;-63.1487;0;Bottom;TXT1 55 | 40;;;67.1676;-11.5347;0;Bottom;Via15 56 | 41;;;51.4308;-7.0982;0;Bottom;Via30 57 | 42;;;57.0132;-38.0749;0;Bottom;Via32 58 | 43;;;47.8382;-27.6722;0;Bottom;Via26 59 | 44;;;7.96398;-14.4843;0;Bottom;Via43 60 | 45;;THT;21.1818;-59.434;0;Bottom;AA'BB' 61 | 46;;;48.0809;-46.4654;0;Bottom;Via11 62 | 47;;;53.1722;-42.6751;0;Bottom;Via9 63 | 48;;;70.3041;-28.3094;180;Bottom;Teensy 4 64 | 49;;;52.54;-5.85078;0;Bottom;Via18 65 | 50;;;29.7929;-47.9527;0;Bottom;Via1 66 | 51;;rj11-6;6.5133;-12.571;90;Bottom;ST4 67 | 52;;;49.3988;-9.88656;0;Bottom;Via28 68 | 53;;;12.7879;-1.00431;0;Bottom;Via42 69 | 54;;THT;73.2518;-68.578;0;Bottom;- 70 | 55;;THT;43.7878;-58.164;0;Bottom;AMIS 30544 71 | 56;;THT;11.2758;-62.609;180;Bottom;AA'BB' 72 | 57;;;40.7262;-31.7588;0;Bottom;Via40 73 | 58;;;50.9116;-30.7456;0;Bottom;Via35 74 | 59;;;83.4969;-61.7985;0;Bottom;Via5 75 | 60;;THT;42.5178;-8.88796;90;Bottom;VD(Out)/IORef 76 | 61;;THT;67.0006;-68.5775;-90;Bottom;Fuse 77 | 62;;THT;57.0946;-68.5775;-90;Bottom;GND/+ 78 | 63;;;62.6972;-8.39078;0;Bottom;Via16 79 | 64;;THT;11.2758;-34.161;180;Bottom;AA'BB' 80 | 65;;;82.8817;-32.2583;0;Bottom;Via24 81 | 66;;;39.908;-50.2935;0;Bottom;TXT1 82 | 67;;;66.6567;-70.8635;0;Bottom;Via22 83 | 68;;;39.8459;-45.4506;0;Bottom;TXT1 84 | 69;;THT;21.1818;-25.398;0;Bottom;AA'BB' 85 | 70;;;47.8382;-30.7456;0;Bottom;Via25 86 | -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber/AMIS30543_Teensy_2_silkBottom.gbo: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,3.543310X2.952760X3.527310X2.936760*% 12 | %ADD11C,0.008000*% 13 | %LNSILK0*% 14 | G90* 15 | G70* 16 | G54D11* 17 | X4Y2949D02* 18 | X3539Y2949D01* 19 | X3539Y4D01* 20 | X4Y4D01* 21 | X4Y2949D01* 22 | D02* 23 | G04 End of Silk0* 24 | M02* -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber4/AMIS30543_Teensy_4_contour.gm1: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,3.346460X2.755910*% 12 | %ADD11C,0.008000*% 13 | %ADD10C,0.008*% 14 | %LNCONTOUR*% 15 | G90* 16 | G70* 17 | G54D10* 18 | G54D11* 19 | X4Y2752D02* 20 | X3342Y2752D01* 21 | X3342Y4D01* 22 | X4Y4D01* 23 | X4Y2752D01* 24 | D02* 25 | G04 End of contour* 26 | M02* -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber4/AMIS30543_Teensy_4_drill.txt: -------------------------------------------------------------------------------- 1 | ; NON-PLATED HOLES START AT T1 2 | ; THROUGH (PLATED) HOLES START AT T100 3 | M48 4 | INCH 5 | T1C0.128000 6 | T2C0.125984 7 | T100C0.040000 8 | T101C0.015748 9 | T102C0.042000 10 | T103C0.059055 11 | T104C0.038000 12 | T105C0.039111 13 | T106C0.078740 14 | T107C0.039370 15 | T108C0.086614 16 | % 17 | T1 18 | X001079Y015135 19 | X001079Y019135 20 | T2 21 | X001299Y003026 22 | X001299Y022361 23 | X024210Y002978 24 | T100 25 | X015079Y001684 26 | X009579Y025884 27 | X003579Y016885 28 | X004579Y016385 29 | X004579Y018385 30 | X006601Y001384 31 | X008201Y025884 32 | X003579Y017885 33 | X007979Y001384 34 | X005057Y001384 35 | X004579Y017385 36 | X017835Y001684 37 | X003679Y001384 38 | X013702Y001684 39 | X003579Y015885 40 | X016457Y001684 41 | X009357Y001384 42 | T101 43 | X013289Y013595 44 | X019572Y026477 45 | X030579Y027184 46 | X007576Y010483 47 | X018176Y018688 48 | X014583Y010885 49 | X016373Y017882 50 | X017887Y015883 51 | X017785Y018084 52 | X019774Y016877 53 | X015079Y011284 54 | X018885Y002277 55 | X017580Y021078 56 | X016072Y010889 57 | X017975Y023883 58 | X018190Y005184 59 | X018980Y009198 60 | X017887Y012778 61 | X006570Y015988 62 | X006578Y018884 63 | X017975Y022290 64 | X009470Y021180 65 | X016185Y018486 66 | X003184Y004977 67 | X014279Y005384 68 | X017580Y016879 69 | X016185Y020882 70 | X003988Y002483 71 | X003370Y014891 72 | X007286Y002091 73 | X013392Y004972 74 | X014583Y010088 75 | X017185Y017288 76 | X006791Y025874 77 | X026782Y016097 78 | X029579Y014384 79 | X011177Y013675 80 | X016794Y024086 81 | X027579Y013984 82 | X017188Y022488 83 | X017975Y019486 84 | X017580Y019882 85 | X031181Y016097 86 | X029576Y025075 87 | X016382Y016683 88 | X017583Y018688 89 | X017079Y003484 90 | X014579Y012084 91 | T102 92 | X009479Y023484 93 | X009479Y019808 94 | T103 95 | X002957Y025884 96 | X001579Y025884 97 | T104 98 | X015479Y021884 99 | X015479Y024884 100 | X015479Y018884 101 | X015479Y016884 102 | X007579Y012784 103 | X015479Y020884 104 | X012579Y012784 105 | X015579Y012784 106 | X010579Y012784 107 | X006579Y012784 108 | X016579Y012784 109 | X013579Y012784 110 | X011579Y012784 111 | X014579Y003884 112 | X005579Y012784 113 | X015479Y025884 114 | X015479Y014884 115 | X008579Y012784 116 | X015479Y023884 117 | X014579Y012784 118 | X009579Y012784 119 | X014479Y014884 120 | X015479Y015884 121 | X015479Y019884 122 | X013579Y003884 123 | X015479Y017884 124 | X015479Y022884 125 | X006579Y016884 126 | X016579Y011784 127 | X006579Y017884 128 | T105 129 | X028579Y019885 130 | X018580Y017885 131 | X029579Y011885 132 | X030579Y020885 133 | X027579Y025885 134 | X023580Y019885 135 | X021579Y017885 136 | X022579Y019885 137 | X023580Y025885 138 | X026578Y020885 139 | X026578Y012885 140 | X019579Y025885 141 | X022579Y025885 142 | X023580Y017885 143 | X028579Y025885 144 | X021579Y019885 145 | X031579Y025885 146 | X018579Y023885 147 | X019579Y011885 148 | X018580Y012885 149 | X020579Y011885 150 | X027578Y020885 151 | X021579Y025885 152 | X027579Y019885 153 | X018579Y013885 154 | X020579Y019885 155 | X024579Y025885 156 | X029579Y025885 157 | X026579Y017885 158 | X025579Y025885 159 | X028579Y011885 160 | X018579Y015885 161 | X020579Y025885 162 | X018579Y022885 163 | X025579Y017885 164 | X019579Y017885 165 | X029579Y017885 166 | X030579Y011885 167 | X031579Y017885 168 | X023580Y011885 169 | X018579Y014885 170 | X027579Y011885 171 | X029579Y019885 172 | X025579Y019885 173 | X025579Y011885 174 | X021579Y011885 175 | X018580Y011885 176 | X030579Y019885 177 | X030579Y017885 178 | X022579Y011885 179 | X024579Y011885 180 | X018580Y016885 181 | X030579Y025885 182 | X030579Y012885 183 | X031579Y019885 184 | X028579Y012885 185 | X028579Y020885 186 | X022579Y017885 187 | X026579Y025885 188 | X020579Y017885 189 | X026579Y019885 190 | X019579Y019885 191 | X018579Y021885 192 | X026579Y011885 193 | X028579Y017885 194 | X027579Y017885 195 | X018580Y024885 196 | X018580Y019885 197 | X018580Y020885 198 | X024579Y019885 199 | X018580Y025885 200 | X027578Y012885 201 | X024579Y017885 202 | X031579Y011885 203 | T106 204 | X009479Y019784 205 | X009479Y023484 206 | T107 207 | X006579Y021884 208 | X006579Y019884 209 | X020579Y009184 210 | X020579Y002184 211 | X020579Y007184 212 | X020579Y001184 213 | X011579Y003884 214 | X020579Y006184 215 | X020579Y003184 216 | X006579Y022884 217 | X020579Y008184 218 | X006579Y020884 219 | X010579Y003884 220 | X009579Y003884 221 | X020579Y004184 222 | X008579Y003884 223 | X020579Y005184 224 | T108 225 | X032136Y009184 226 | X032136Y001184 227 | T00 228 | M30 229 | -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber4/AMIS30543_Teensy_4_maskBottom.gbs: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.049370*% 12 | %ADD11C,0.080000*% 13 | %ADD12C,0.128110*% 14 | %ADD13C,0.090000*% 15 | %ADD14C,0.167480*% 16 | %ADD15C,0.084000*% 17 | %ADD16C,0.138000*% 18 | %ADD17C,0.089370*% 19 | %ADD18C,0.076889*% 20 | %ADD19C,0.092000*% 21 | %ADD20C,0.088000*% 22 | %ADD21C,0.109055*% 23 | %ADD22C,0.135984*% 24 | %ADD23R,0.090000X0.090000*% 25 | %ADD24R,0.062264X0.049500*% 26 | %ADD25R,0.092000X0.092000*% 27 | %ADD26R,0.109055X0.109055*% 28 | %LNMASK0*% 29 | G90* 30 | G70* 31 | G54D10* 32 | X1889Y228D03* 33 | X1898Y920D03* 34 | X1819Y518D03* 35 | X1708Y348D03* 36 | G54D11* 37 | X2058Y118D03* 38 | X2058Y218D03* 39 | X2058Y318D03* 40 | X2058Y418D03* 41 | X2058Y518D03* 42 | X2058Y618D03* 43 | X2058Y718D03* 44 | X2058Y818D03* 45 | X2058Y918D03* 46 | G54D12* 47 | X3214Y918D03* 48 | X3214Y118D03* 49 | G54D13* 50 | X1784Y168D03* 51 | X1646Y168D03* 52 | X1508Y168D03* 53 | X1370Y168D03* 54 | G54D10* 55 | X1679Y2409D03* 56 | X3058Y2718D03* 57 | X1957Y2648D03* 58 | X1758Y2108D03* 59 | X1798Y2388D03* 60 | X1719Y2249D03* 61 | X1619Y2088D03* 62 | X1758Y1988D03* 63 | X1638Y1668D03* 64 | X1719Y1729D03* 65 | X1619Y1849D03* 66 | X2958Y2508D03* 67 | X1758Y1869D03* 68 | X1818Y1869D03* 69 | X2958Y1438D03* 70 | X758Y1048D03* 71 | X2758Y1398D03* 72 | X1458Y1208D03* 73 | X1458Y1089D03* 74 | X1458Y1009D03* 75 | X1789Y1278D03* 76 | X1789Y1588D03* 77 | X1607Y1089D03* 78 | X1508Y1128D03* 79 | X658Y1888D03* 80 | X1428Y538D03* 81 | X1339Y497D03* 82 | X657Y1599D03* 83 | X1329Y1360D03* 84 | X1758Y1688D03* 85 | X2678Y1610D03* 86 | X3118Y1610D03* 87 | X1977Y1688D03* 88 | X1118Y1368D03* 89 | G54D14* 90 | X948Y2348D03* 91 | X948Y1978D03* 92 | G54D10* 93 | X1798Y1949D03* 94 | X1798Y2229D03* 95 | X1637Y1788D03* 96 | X1779Y1808D03* 97 | X679Y2587D03* 98 | X947Y2118D03* 99 | G54D15* 100 | X458Y1839D03* 101 | X358Y1789D03* 102 | X458Y1739D03* 103 | X358Y1689D03* 104 | X458Y1639D03* 105 | X358Y1589D03* 106 | G54D16* 107 | X108Y1914D03* 108 | X108Y1514D03* 109 | G54D13* 110 | X506Y138D03* 111 | X368Y138D03* 112 | X936Y138D03* 113 | X798Y138D03* 114 | X660Y138D03* 115 | G54D17* 116 | X858Y388D03* 117 | X958Y388D03* 118 | X1058Y388D03* 119 | X1158Y388D03* 120 | X658Y2288D03* 121 | X658Y2188D03* 122 | X658Y2088D03* 123 | X658Y1988D03* 124 | G54D18* 125 | X1858Y1189D03* 126 | X1958Y1189D03* 127 | X2058Y1189D03* 128 | X2158Y1189D03* 129 | X2258Y1189D03* 130 | X2358Y1189D03* 131 | X2458Y1189D03* 132 | X2558Y1189D03* 133 | X2658Y1189D03* 134 | X2758Y1189D03* 135 | X2858Y1189D03* 136 | X2958Y1189D03* 137 | X3058Y1189D03* 138 | X3158Y1189D03* 139 | X3058Y1289D03* 140 | X1858Y1789D03* 141 | X1958Y1789D03* 142 | X2058Y1789D03* 143 | X2158Y1789D03* 144 | X2258Y1789D03* 145 | X2358Y1789D03* 146 | X2458Y1789D03* 147 | X2558Y1789D03* 148 | X2658Y1789D03* 149 | X2758Y1789D03* 150 | X2858Y1789D03* 151 | X2958Y1789D03* 152 | X3058Y1789D03* 153 | X3158Y1789D03* 154 | X2758Y1289D03* 155 | X2858Y1289D03* 156 | X2658Y1289D03* 157 | X1858Y1589D03* 158 | X1858Y1689D03* 159 | X1858Y1489D03* 160 | X1858Y1289D03* 161 | X1858Y1389D03* 162 | X1858Y1989D03* 163 | X1958Y1989D03* 164 | X2058Y1989D03* 165 | X2158Y1989D03* 166 | X2258Y1989D03* 167 | X2358Y1989D03* 168 | X2458Y1989D03* 169 | X2558Y1989D03* 170 | X2658Y1989D03* 171 | X2758Y1989D03* 172 | X2858Y1989D03* 173 | X2958Y1989D03* 174 | X3058Y1989D03* 175 | X3158Y1989D03* 176 | X3058Y2089D03* 177 | X1858Y2589D03* 178 | X1958Y2589D03* 179 | X2058Y2589D03* 180 | X2158Y2589D03* 181 | X2258Y2589D03* 182 | X2358Y2589D03* 183 | X2458Y2589D03* 184 | X2558Y2589D03* 185 | X2658Y2589D03* 186 | X2758Y2589D03* 187 | X2858Y2589D03* 188 | X2958Y2589D03* 189 | X3058Y2589D03* 190 | X3158Y2589D03* 191 | X2758Y2089D03* 192 | X2858Y2089D03* 193 | X2658Y2089D03* 194 | X1858Y2389D03* 195 | X1858Y2489D03* 196 | X1858Y2289D03* 197 | X1858Y2089D03* 198 | X1858Y2189D03* 199 | G54D13* 200 | X958Y2588D03* 201 | X820Y2588D03* 202 | X958Y2588D03* 203 | X820Y2588D03* 204 | G54D19* 205 | X948Y2348D03* 206 | X948Y1981D03* 207 | X948Y2348D03* 208 | X948Y1981D03* 209 | G54D20* 210 | X558Y1278D03* 211 | X658Y1278D03* 212 | X758Y1278D03* 213 | X858Y1278D03* 214 | X958Y1278D03* 215 | X1058Y1278D03* 216 | X1158Y1278D03* 217 | X1258Y1278D03* 218 | X1358Y1278D03* 219 | X1458Y1278D03* 220 | X1558Y1278D03* 221 | X1548Y2588D03* 222 | X1548Y2488D03* 223 | X1548Y2388D03* 224 | X1548Y2288D03* 225 | X1548Y2188D03* 226 | X1548Y2088D03* 227 | X1548Y1988D03* 228 | X1548Y1888D03* 229 | X1548Y1788D03* 230 | X1548Y1688D03* 231 | X1548Y1588D03* 232 | X1358Y388D03* 233 | X1458Y388D03* 234 | X658Y1788D03* 235 | X658Y1688D03* 236 | X1658Y1278D03* 237 | X1658Y1178D03* 238 | X1548Y1488D03* 239 | X1448Y1488D03* 240 | G54D21* 241 | X158Y2588D03* 242 | X296Y2588D03* 243 | G54D22* 244 | X2421Y298D03* 245 | X130Y303D03* 246 | X130Y2236D03* 247 | G54D10* 248 | X399Y248D03* 249 | X318Y498D03* 250 | X337Y1489D03* 251 | X729Y209D03* 252 | G54D23* 253 | X1784Y168D03* 254 | X506Y138D03* 255 | X936Y138D03* 256 | G54D24* 257 | X2459Y1389D03* 258 | X2459Y1488D03* 259 | X2558Y1389D03* 260 | X2558Y1488D03* 261 | X2359Y1389D03* 262 | X2259Y1389D03* 263 | X2159Y1389D03* 264 | X2059Y1389D03* 265 | X1959Y1389D03* 266 | X1959Y1488D03* 267 | X2059Y1488D03* 268 | X2159Y1488D03* 269 | X2259Y1488D03* 270 | X2359Y1488D03* 271 | X2459Y2189D03* 272 | X2459Y2288D03* 273 | X2558Y2189D03* 274 | X2558Y2288D03* 275 | X2359Y2189D03* 276 | X2259Y2189D03* 277 | X2159Y2189D03* 278 | X2059Y2189D03* 279 | X1959Y2189D03* 280 | X1959Y2288D03* 281 | X2059Y2288D03* 282 | X2159Y2288D03* 283 | X2259Y2288D03* 284 | X2359Y2288D03* 285 | G54D23* 286 | X958Y2588D03* 287 | X958Y2588D03* 288 | G54D25* 289 | X948Y2349D03* 290 | X948Y2349D03* 291 | G54D26* 292 | X158Y2588D03* 293 | G04 End of Mask0* 294 | M02* -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber4/AMIS30543_Teensy_4_maskTop.gts: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.049370*% 12 | %ADD11C,0.080000*% 13 | %ADD12C,0.128110*% 14 | %ADD13C,0.090000*% 15 | %ADD14C,0.167480*% 16 | %ADD15C,0.084000*% 17 | %ADD16C,0.138000*% 18 | %ADD17C,0.089370*% 19 | %ADD18C,0.076889*% 20 | %ADD19C,0.092000*% 21 | %ADD20C,0.088000*% 22 | %ADD21C,0.109055*% 23 | %ADD22C,0.135984*% 24 | %ADD23R,0.090000X0.090000*% 25 | %ADD24R,0.092000X0.092000*% 26 | %ADD25R,0.109055X0.109055*% 27 | %LNMASK1*% 28 | G90* 29 | G70* 30 | G54D10* 31 | X1889Y228D03* 32 | X1898Y920D03* 33 | X1819Y518D03* 34 | X1708Y348D03* 35 | G54D11* 36 | X2058Y118D03* 37 | X2058Y218D03* 38 | X2058Y318D03* 39 | X2058Y418D03* 40 | X2058Y518D03* 41 | X2058Y618D03* 42 | X2058Y718D03* 43 | X2058Y818D03* 44 | X2058Y918D03* 45 | G54D12* 46 | X3214Y918D03* 47 | X3214Y118D03* 48 | G54D13* 49 | X1784Y168D03* 50 | X1646Y168D03* 51 | X1508Y168D03* 52 | X1370Y168D03* 53 | G54D10* 54 | X1679Y2409D03* 55 | X3058Y2718D03* 56 | X1957Y2648D03* 57 | X1758Y2108D03* 58 | X1798Y2388D03* 59 | X1719Y2249D03* 60 | X1619Y2088D03* 61 | X1758Y1988D03* 62 | X1638Y1668D03* 63 | X1719Y1729D03* 64 | X1619Y1849D03* 65 | X2958Y2508D03* 66 | X1758Y1869D03* 67 | X1818Y1869D03* 68 | X2958Y1438D03* 69 | X758Y1048D03* 70 | X2758Y1398D03* 71 | X1458Y1208D03* 72 | X1458Y1089D03* 73 | X1458Y1009D03* 74 | X1789Y1278D03* 75 | X1789Y1588D03* 76 | X1607Y1089D03* 77 | X1508Y1128D03* 78 | X658Y1888D03* 79 | X1428Y538D03* 80 | X1339Y497D03* 81 | X657Y1599D03* 82 | X1329Y1360D03* 83 | X1758Y1688D03* 84 | X2678Y1610D03* 85 | X3118Y1610D03* 86 | X1977Y1688D03* 87 | X1118Y1368D03* 88 | G54D14* 89 | X948Y2348D03* 90 | X948Y1978D03* 91 | G54D10* 92 | X1798Y1949D03* 93 | X1798Y2229D03* 94 | X1637Y1788D03* 95 | X1779Y1808D03* 96 | X679Y2587D03* 97 | X947Y2118D03* 98 | G54D15* 99 | X458Y1839D03* 100 | X358Y1789D03* 101 | X458Y1739D03* 102 | X358Y1689D03* 103 | X458Y1639D03* 104 | X358Y1589D03* 105 | G54D16* 106 | X108Y1914D03* 107 | X108Y1514D03* 108 | G54D15* 109 | X458Y1839D03* 110 | X358Y1789D03* 111 | X458Y1739D03* 112 | X358Y1689D03* 113 | X458Y1639D03* 114 | X358Y1589D03* 115 | G54D16* 116 | X108Y1914D03* 117 | X108Y1514D03* 118 | G54D13* 119 | X506Y138D03* 120 | X368Y138D03* 121 | X936Y138D03* 122 | X798Y138D03* 123 | X660Y138D03* 124 | G54D17* 125 | X858Y388D03* 126 | X958Y388D03* 127 | X1058Y388D03* 128 | X1158Y388D03* 129 | X658Y2288D03* 130 | X658Y2188D03* 131 | X658Y2088D03* 132 | X658Y1988D03* 133 | G54D18* 134 | X1858Y1189D03* 135 | X1958Y1189D03* 136 | X2058Y1189D03* 137 | X2158Y1189D03* 138 | X2258Y1189D03* 139 | X2358Y1189D03* 140 | X2458Y1189D03* 141 | X2558Y1189D03* 142 | X2658Y1189D03* 143 | X2758Y1189D03* 144 | X2858Y1189D03* 145 | X2958Y1189D03* 146 | X3058Y1189D03* 147 | X3158Y1189D03* 148 | X3058Y1289D03* 149 | X1858Y1789D03* 150 | X1958Y1789D03* 151 | X2058Y1789D03* 152 | X2158Y1789D03* 153 | X2258Y1789D03* 154 | X2358Y1789D03* 155 | X2458Y1789D03* 156 | X2558Y1789D03* 157 | X2658Y1789D03* 158 | X2758Y1789D03* 159 | X2858Y1789D03* 160 | X2958Y1789D03* 161 | X3058Y1789D03* 162 | X3158Y1789D03* 163 | X2758Y1289D03* 164 | X2858Y1289D03* 165 | X2658Y1289D03* 166 | X1858Y1589D03* 167 | X1858Y1689D03* 168 | X1858Y1489D03* 169 | X1858Y1289D03* 170 | X1858Y1389D03* 171 | X1858Y1989D03* 172 | X1958Y1989D03* 173 | X2058Y1989D03* 174 | X2158Y1989D03* 175 | X2258Y1989D03* 176 | X2358Y1989D03* 177 | X2458Y1989D03* 178 | X2558Y1989D03* 179 | X2658Y1989D03* 180 | X2758Y1989D03* 181 | X2858Y1989D03* 182 | X2958Y1989D03* 183 | X3058Y1989D03* 184 | X3158Y1989D03* 185 | X3058Y2089D03* 186 | X1858Y2589D03* 187 | X1958Y2589D03* 188 | X2058Y2589D03* 189 | X2158Y2589D03* 190 | X2258Y2589D03* 191 | X2358Y2589D03* 192 | X2458Y2589D03* 193 | X2558Y2589D03* 194 | X2658Y2589D03* 195 | X2758Y2589D03* 196 | X2858Y2589D03* 197 | X2958Y2589D03* 198 | X3058Y2589D03* 199 | X3158Y2589D03* 200 | X2758Y2089D03* 201 | X2858Y2089D03* 202 | X2658Y2089D03* 203 | X1858Y2389D03* 204 | X1858Y2489D03* 205 | X1858Y2289D03* 206 | X1858Y2089D03* 207 | X1858Y2189D03* 208 | G54D13* 209 | X958Y2588D03* 210 | X820Y2588D03* 211 | X958Y2588D03* 212 | X820Y2588D03* 213 | G54D19* 214 | X948Y2348D03* 215 | X948Y1981D03* 216 | X948Y2348D03* 217 | X948Y1981D03* 218 | G54D20* 219 | X558Y1278D03* 220 | X658Y1278D03* 221 | X758Y1278D03* 222 | X858Y1278D03* 223 | X958Y1278D03* 224 | X1058Y1278D03* 225 | X1158Y1278D03* 226 | X1258Y1278D03* 227 | X1358Y1278D03* 228 | X1458Y1278D03* 229 | X1558Y1278D03* 230 | X1548Y2588D03* 231 | X1548Y2488D03* 232 | X1548Y2388D03* 233 | X1548Y2288D03* 234 | X1548Y2188D03* 235 | X1548Y2088D03* 236 | X1548Y1988D03* 237 | X1548Y1888D03* 238 | X1548Y1788D03* 239 | X1548Y1688D03* 240 | X1548Y1588D03* 241 | X1358Y388D03* 242 | X1458Y388D03* 243 | X658Y1788D03* 244 | X658Y1688D03* 245 | X1658Y1278D03* 246 | X1658Y1178D03* 247 | X1548Y1488D03* 248 | X1448Y1488D03* 249 | G54D21* 250 | X158Y2588D03* 251 | X296Y2588D03* 252 | G54D22* 253 | X2421Y298D03* 254 | X130Y303D03* 255 | X130Y2236D03* 256 | G54D10* 257 | X399Y248D03* 258 | X318Y498D03* 259 | X337Y1489D03* 260 | X729Y209D03* 261 | G54D23* 262 | X1784Y168D03* 263 | X506Y138D03* 264 | X936Y138D03* 265 | X958Y2588D03* 266 | X958Y2588D03* 267 | G54D24* 268 | X948Y2349D03* 269 | X948Y2349D03* 270 | G54D25* 271 | X158Y2588D03* 272 | G04 End of Mask1* 273 | M02* -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/Gerber4/AMIS30543_Teensy_4_pnp.txt: -------------------------------------------------------------------------------- 1 | *Pick And Place List 2 | *Company= 3 | *Author= 4 | *eMail= 5 | * 6 | *Project=AMIS30543_Teensy_4 7 | *Date=21:40:39 8 | *CreatedBy=Fritzing 0.9.10b.2022-07-01.CD-2134-0-40d23c29 9 | * 10 | * 11 | *Coordinates in mm, always center of component 12 | *Origin 0/0=Lower left corner of PCB 13 | *Rotation in degree (0-360, math. pos.) 14 | * 15 | *No;Value;Package;X;Y;Rotation;Side;Name 16 | 1;;;3.29955;-56.7978;0;Bottom;Hole17 17 | 2;;;38.3028;-28.6624;0;Bottom;Via29 18 | 3;;;17.2499;-65.721;0;Bottom;Via48 19 | 4;;;45.6575;-60.6636;0;Bottom;Via6 20 | 5;;THT;22.7099;-66.2545;90;Bottom;Fuse 21 | 6;;;43.3828;-8.85044;0;Bottom;Via53 22 | 7;;;77.6728;-69.0484;0;Bottom;Via2 23 | 8;;;44.6545;-53.5403;0;Bottom;Via5 24 | 9;;;49.7136;-67.2535;0;Bottom;Via3 25 | 10;;;34.0156;-12.6294;0;Bottom;Via32 26 | 11;;;75.1246;-63.6919;0;Bottom;Via14 27 | 12;;THT;35.7629;-9.86691;-90;Bottom;VMOT/GND1 28 | 13;;;67.2032;-13.168;90;Bottom;GPS Friend 29 | 14;;;68.0265;-40.8883;0;Bottom;Via36 30 | 15;;;64.2001;-37.8002;180;Bottom;Teensy 4 31 | 16;;;16.69;-40.6117;0;Bottom;Via33 32 | 17;;;28.39;-34.7359;0;Bottom;Via41 33 | 18;;;37.0424;-27.6493;0;Bottom;Via24 34 | 19;;THT;42.1129;-31.2029;0;Bottom;VD(Out)/IORef1 35 | 20;;;25.5802;-15.1674;0;Bottom;TXT2 36 | 21;;THT;16.7129;-54.3169;0;Bottom;AA'BB' 37 | 22;;;42.6589;-61.1801;0;Bottom;Via1 38 | 23;;;43.6515;-43.9137;0;Bottom;Via11 39 | 24;;THT;11.2239;-3.00891;90;Bottom;COM/W 40 | 25;;;41.6122;-42.3756;0;Bottom;Via10 41 | 26;;;45.4351;-32.4583;0;Bottom;Via26 42 | 27;;;44.6624;-47.4697;0;Bottom;Via15 43 | 28;;THT;24.0789;-59.6509;0;Bottom;. 44 | 29;;rj11-6;5.34642;-43.5233;90;Bottom;ST4 45 | 30;;THT;16.7129;-44.1569;0;Bottom;GND/VMOT 46 | 31;;;50.2276;-42.8695;0;Bottom;Via40 47 | 32;;;24.0788;-54.9958;-90;Bottom;D1 48 | 33;;;10.1304;-6.30801;0;Bottom;Via54 49 | 34;;;48.2111;-23.3651;0;Bottom;Via51 50 | 35;;;47.9701;-5.78551;0;Bottom;Via50 51 | 36;;;41.1109;-53.0408;0;Bottom;Via8 52 | 37;;;19.2452;-26.6276;0;Bottom;Via21 53 | 38;;;75.1328;-36.5364;0;Bottom;Via18 54 | 39;;;37.0424;-25.6257;0;Bottom;Via25 55 | 40;;;79.1996;-40.8883;0;Bottom;Via37 56 | 41;;;16.7086;-47.9664;0;Bottom;Via30 57 | 42;;;43.6577;-57.1217;0;Bottom;Via7 58 | 43;;;45.4351;-40.3436;0;Bottom;Via27 59 | 44;;;8.0887;-12.6426;0;Bottom;Via55 60 | 45;;THT;24.0789;-50.2529;0;Bottom;. 61 | 46;;;8.55987;-37.8241;0;Bottom;Via56 62 | 47;;THT;38.0489;-37.8069;90;Bottom;VD(Out)/IORef 63 | 48;;;44.6548;-42.8752;0;Bottom;Via35 64 | 49;;;3.29955;-7.68835;0;Bottom;Hole16 65 | 50;;;45.1746;-45.9344;0;Bottom;Via45 66 | 51;;;46.1669;-47.4697;0;Bottom;Via16 67 | 52;;;45.6575;-49.4961;0;Bottom;Via42 68 | 53;;;64.2001;-58.1202;180;Bottom;Teensy 4 69 | 54;;;61.4957;-7.56417;0;Bottom;Hole15 70 | 55;;;37.0328;-30.6944;0;Bottom;Via23 71 | 56;;;36.2708;-13.6764;0;Bottom;Via31 72 | 57;;;18.5068;-5.31331;0;Bottom;Via57 73 | 58;;;41.5896;-45.4208;0;Bottom;Via44 74 | 59;;;40.8239;-27.6606;0;Bottom;Via28 75 | 60;;;24.054;-53.7972;0;Bottom;Via49 76 | 61;;THT;20.3959;-3.00891;90;Bottom;S/N/E 77 | 62;;THT;5.63598;-66.2545;-90;Bottom;GND/+ 78 | 63;;;45.6575;-56.6166;0;Bottom;Via43 79 | 64;;;46.2042;-13.1684;0;Bottom;Via52 80 | 65;;;33.7542;-34.5327;0;Bottom;Via34 81 | 66;;THT;39.3189;-53.0469;0;Bottom;AMIS 30543 82 | 67;;;70.0528;-35.5204;0;Bottom;Via22 83 | 68;;;41.1109;-46.9561;0;Bottom;Via12 84 | 69;;THT;40.18;-3.77004;90;Bottom;GPS Rx/Tx/GND/Vin 85 | 70;;THT;26.8729;-32.4729;-90;Bottom;AMIS 30544 86 | 71;;THT;25.6029;-9.86691;-90;Bottom;AA'BB' 87 | 72;;;44.6545;-50.5008;0;Bottom;Via9 88 | -------------------------------------------------------------------------------- /Hardware/2_AMIS_Drives/Teensy4/StepperCommunicationsProtocol.txt: -------------------------------------------------------------------------------- 1 | Communications protocol for the Stepper Drivers of TSC 2 | W. Birkfellner, Aug. 2021, V. 0.1 3 | 4 | The stepperboards communicate via USB between the host computer and 5 | the Teensy 4.0 running the steppers with the AccelStepper library. 6 | so far the commands are transmitted as characters, following the convention: 7 | xyzzzzzz... 8 | where x is a character denoting the action to be taken, y is a number between 9 | 0 and 1, and zzzzzz... is a string of bytes that is converted to a long integer. 10 | 11 | An example: 12 | "a1200" sets the acceleration (denoted by 'a') of the second drive ('1' instead 13 | of '0') to 200 microsteps per second. 14 | 15 | Commands that apply to all drives (such as the request for the drive state) are given without additional bytes 16 | 17 | In general, parameters have to be set, then the drive is enabled, and then ist should start. 18 | Once a motion is finished, the drive is being automatically disabled. 19 | 20 | Command set: 21 | 0x06 or ... responds with an identifier for the drive addressed. Replies are either "TSC_DE" or "TSC_RA". No further parameters are given. 22 | a ... sets acceleration in msteps/(s*s) 23 | c ... sets current 24 | e ... enables the drive; it is automatically activated when an "start drive" command (= 'o') is sent 25 | f ... reports drive conditions. Possible parameters are 26 | 0 = is drive moving 27 | 1 = error on AMIS board reported 28 | 2 = error on SPI settings 29 | 5 = steps carried out so far 30 | 6 = microstepping ratio 31 | 7 = maximum speed in msteps/s 32 | 8 = acceleration in msteps/(s*s) 33 | 9 = maximum current per coil in milliAmpere 34 | 10 = number of steps set 35 | m ... sets microstepping mode for a given drive: 1, 2, 4, 8, 16, 32, 64 and 128 are permitted 36 | o ... engages the drive to carry out a defined number of microsteps 37 | r ... resets the AMIS via its CLR pin 38 | s ... sets the number of steps to be carried out 39 | v ... sets maximum speed in msteps/s 40 | x ... stops drive 41 | z ... sets position of stepper to zero 42 | 43 | -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/3_TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox.fzz -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Drilling_Template.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/3_TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Drilling_Template.pdf -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Faceplate.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/3_TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Faceplate.pdf -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/Gerber/TCP_Handbox_contour.gm1: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,2.755910X2.755910*% 12 | %ADD11C,0.008000*% 13 | %ADD10C,0.008*% 14 | %LNCONTOUR*% 15 | G90* 16 | G70* 17 | G54D10* 18 | G54D11* 19 | X4Y2752D02* 20 | X2752Y2752D01* 21 | X2752Y4D01* 22 | X4Y4D01* 23 | X4Y2752D01* 24 | D02* 25 | G04 End of contour* 26 | M02* -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/Gerber/TCP_Handbox_drill.txt: -------------------------------------------------------------------------------- 1 | ; NON-PLATED HOLES START AT T1 2 | ; THROUGH (PLATED) HOLES START AT T100 3 | M48 4 | INCH 5 | T1C0.129921 6 | T100C0.047244 7 | T101C0.015748 8 | T102C0.035000 9 | T103C0.042000 10 | T104C0.038000 11 | T105C0.040000 12 | % 13 | T1 14 | X012733Y023045 15 | X002497Y023045 16 | X012733Y009659 17 | X026316Y000998 18 | X012733Y000998 19 | X002497Y009659 20 | X002497Y000998 21 | T100 22 | X010568Y008085 23 | X000922Y013596 24 | X005844Y015565 25 | X000922Y015565 26 | X005647Y021077 27 | X015293Y013596 28 | X010371Y013596 29 | X015293Y015565 30 | X005647Y019108 31 | X010568Y021077 32 | X010371Y015565 33 | X005647Y010053 34 | X010568Y019108 35 | X005647Y008085 36 | X010568Y010053 37 | X005844Y013596 38 | T101 39 | X009589Y010456 40 | X024940Y022646 41 | X003481Y004153 42 | X016265Y011421 43 | X016271Y019892 44 | X006429Y003944 45 | X008017Y010050 46 | X015881Y004938 47 | X022375Y006510 48 | X015889Y019303 49 | X016265Y017923 50 | X019421Y005127 51 | X022375Y004938 52 | X015099Y020285 53 | X007022Y005130 54 | X004458Y016348 55 | X012533Y020490 56 | X016670Y010643 57 | X009587Y016558 58 | X001702Y004153 59 | X005051Y008079 60 | X024940Y020099 61 | X015889Y024625 62 | X024154Y007494 63 | X021594Y007108 64 | X013914Y004537 65 | X005051Y005130 66 | X003673Y008079 67 | X015889Y020484 68 | X021594Y019511 69 | X024940Y023439 70 | X026306Y007111 71 | X008601Y022455 72 | X015096Y024417 73 | X008209Y019105 74 | X025536Y017528 75 | X024733Y005910 76 | X016670Y007486 77 | X006429Y019105 78 | X021594Y020691 79 | X022188Y018514 80 | X006429Y010050 81 | X009978Y022455 82 | X025724Y021665 83 | X013920Y024419 84 | X011348Y019886 85 | X010381Y004349 86 | X013721Y020872 87 | X016670Y022646 88 | X008209Y016558 89 | T102 90 | X024298Y004833 91 | X023298Y004833 92 | X007222Y016171 93 | X017798Y004833 94 | X004466Y005132 95 | X009548Y005083 96 | X011552Y008297 97 | X011946Y019108 98 | X020048Y004833 99 | X011946Y021683 100 | X014798Y005083 101 | X007222Y015171 102 | X004466Y004132 103 | X009548Y004083 104 | X016798Y004833 105 | X011552Y007297 106 | X011946Y018108 107 | X011946Y020683 108 | X021048Y004833 109 | X014798Y004083 110 | T103 111 | X022182Y011431 112 | X025162Y011431 113 | T104 114 | X017496Y023639 115 | X017496Y012644 116 | X019820Y001360 117 | X017496Y017644 118 | X026496Y022644 119 | X026496Y025639 120 | X026496Y014644 121 | X017496Y010644 122 | X026496Y019644 123 | X022970Y003360 124 | X016670Y003360 125 | X017496Y015644 126 | X026496Y020644 127 | X026496Y023639 128 | X026496Y012644 129 | X017496Y021644 130 | X026496Y017644 131 | X022970Y001360 132 | X016670Y001360 133 | X017496Y024639 134 | X017496Y013644 135 | X019820Y002360 136 | X017496Y018644 137 | X026492Y010646 138 | X026496Y015644 139 | X017496Y011644 140 | X017496Y016644 141 | X026496Y021644 142 | X026496Y024639 143 | X026496Y013644 144 | X017496Y022644 145 | X026496Y018644 146 | X022970Y002360 147 | X016670Y002360 148 | X017496Y025639 149 | X017496Y014644 150 | X019820Y003360 151 | X017496Y019644 152 | X017496Y020644 153 | X026492Y011646 154 | X026496Y016644 155 | T105 156 | X011920Y025833 157 | X011518Y005833 158 | X013298Y025833 159 | X009164Y025833 160 | X011518Y003273 161 | X008166Y005841 162 | X010542Y025833 163 | X003048Y005833 164 | X006386Y005841 165 | X008166Y003281 166 | X001268Y005833 167 | X003048Y003273 168 | X006386Y003281 169 | X001268Y003273 170 | X026316Y003754 171 | X013298Y005833 172 | X013298Y003273 173 | X026316Y005132 174 | T00 175 | M30 176 | -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/Gerber/TCP_Handbox_maskBottom.gbs: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.090000*% 12 | %ADD11C,0.088000*% 13 | %ADD12C,0.049370*% 14 | %ADD13C,0.092000*% 15 | %ADD14C,0.085000*% 16 | %ADD15C,0.095000*% 17 | %ADD16C,0.084000*% 18 | %ADD17C,0.139921*% 19 | %ADD18R,0.090000X0.090000*% 20 | %ADD19R,0.088000X0.088000*% 21 | %ADD20R,0.092000X0.092000*% 22 | %LNMASK0*% 23 | G90* 24 | G70* 25 | G54D10* 26 | X2632Y513D03* 27 | X2632Y375D03* 28 | G54D11* 29 | X2649Y1065D03* 30 | X1750Y1064D03* 31 | X2649Y1165D03* 32 | X1750Y1164D03* 33 | X2650Y1264D03* 34 | X1750Y1264D03* 35 | X2650Y1364D03* 36 | X1750Y1364D03* 37 | X2650Y1464D03* 38 | X1750Y1464D03* 39 | X2650Y1564D03* 40 | X1750Y1564D03* 41 | X2650Y1664D03* 42 | X1750Y1664D03* 43 | X2650Y1764D03* 44 | X1750Y1764D03* 45 | X2650Y1864D03* 46 | X1750Y1864D03* 47 | X2650Y1964D03* 48 | X1750Y1964D03* 49 | X2650Y2064D03* 50 | X1750Y2064D03* 51 | X2650Y2164D03* 52 | X1750Y2164D03* 53 | X2650Y2264D03* 54 | X1750Y2264D03* 55 | X2650Y2364D03* 56 | X2650Y2464D03* 57 | X2650Y2564D03* 58 | X1750Y2364D03* 59 | X1750Y2464D03* 60 | X1750Y2564D03* 61 | X1667Y336D03* 62 | X1667Y236D03* 63 | X1667Y136D03* 64 | X1982Y336D03* 65 | X1982Y236D03* 66 | X1982Y136D03* 67 | X2297Y336D03* 68 | X2297Y236D03* 69 | X2297Y136D03* 70 | G54D12* 71 | X860Y2246D03* 72 | X998Y2246D03* 73 | X1135Y1989D03* 74 | X1627Y1989D03* 75 | X1510Y2029D03* 76 | X1253Y2049D03* 77 | X1392Y2442D03* 78 | X1510Y2442D03* 79 | X1372Y2087D03* 80 | X2572Y2167D03* 81 | X1589Y2463D03* 82 | X1589Y2048D03* 83 | X1589Y1930D03* 84 | X446Y1635D03* 85 | X367Y808D03* 86 | X505Y808D03* 87 | X348Y415D03* 88 | X170Y415D03* 89 | X821Y1911D03* 90 | X643Y1911D03* 91 | X821Y1656D03* 92 | X959Y1656D03* 93 | X643Y1005D03* 94 | X802Y1005D03* 95 | X643Y394D03* 96 | X505Y513D03* 97 | X702Y513D03* 98 | X1667Y2265D03* 99 | X1391Y454D03* 100 | X2494Y2010D03* 101 | X2494Y2265D03* 102 | X1667Y1064D03* 103 | X1667Y749D03* 104 | X2238Y651D03* 105 | X2238Y494D03* 106 | X1588Y494D03* 107 | X2554Y1753D03* 108 | X2415Y749D03* 109 | X1942Y513D03* 110 | X2159Y711D03* 111 | X2159Y2069D03* 112 | X2159Y1951D03* 113 | X2494Y2344D03* 114 | X2219Y1851D03* 115 | X2473Y591D03* 116 | G54D13* 117 | X2218Y1143D03* 118 | X2516Y1143D03* 119 | X2218Y1143D03* 120 | X2516Y1143D03* 121 | G54D12* 122 | X2631Y711D03* 123 | X1627Y1792D03* 124 | X1627Y1142D03* 125 | X959Y1046D03* 126 | X1038Y435D03* 127 | G54D10* 128 | X916Y2583D03* 129 | X1054Y2583D03* 130 | X1192Y2583D03* 131 | X1330Y2583D03* 132 | G54D14* 133 | X2105Y483D03* 134 | X2005Y483D03* 135 | X1195Y2068D03* 136 | X1195Y2168D03* 137 | X1195Y1911D03* 138 | X1195Y1811D03* 139 | X1155Y730D03* 140 | X1155Y830D03* 141 | X722Y1517D03* 142 | X722Y1617D03* 143 | X1480Y508D03* 144 | X1480Y408D03* 145 | X955Y508D03* 146 | X955Y408D03* 147 | X447Y513D03* 148 | X447Y413D03* 149 | X1780Y483D03* 150 | X1680Y483D03* 151 | X2430Y483D03* 152 | X2330Y483D03* 153 | G54D15* 154 | X1057Y1005D03* 155 | X1057Y809D03* 156 | X565Y809D03* 157 | X565Y1005D03* 158 | X1057Y1005D03* 159 | X1057Y809D03* 160 | X565Y809D03* 161 | X565Y1005D03* 162 | X1057Y1005D03* 163 | X1057Y809D03* 164 | X565Y809D03* 165 | X565Y1005D03* 166 | X1529Y1557D03* 167 | X1529Y1360D03* 168 | X1037Y1360D03* 169 | X1037Y1557D03* 170 | X1529Y1557D03* 171 | X1529Y1360D03* 172 | X1037Y1360D03* 173 | X1037Y1557D03* 174 | X1529Y1557D03* 175 | X1529Y1360D03* 176 | X1037Y1360D03* 177 | X1037Y1557D03* 178 | X584Y1557D03* 179 | X584Y1360D03* 180 | X92Y1360D03* 181 | X92Y1557D03* 182 | X584Y1557D03* 183 | X584Y1360D03* 184 | X92Y1360D03* 185 | X92Y1557D03* 186 | X584Y1557D03* 187 | X584Y1360D03* 188 | X92Y1360D03* 189 | X92Y1557D03* 190 | X1057Y2108D03* 191 | X1057Y1911D03* 192 | X565Y1911D03* 193 | X565Y2108D03* 194 | X1057Y2108D03* 195 | X1057Y1911D03* 196 | X565Y1911D03* 197 | X565Y2108D03* 198 | X1057Y2108D03* 199 | X1057Y1911D03* 200 | X565Y1911D03* 201 | X565Y2108D03* 202 | G54D16* 203 | X305Y327D03* 204 | X305Y583D03* 205 | X127Y327D03* 206 | X127Y583D03* 207 | X305Y327D03* 208 | X305Y583D03* 209 | X127Y327D03* 210 | X127Y583D03* 211 | X305Y327D03* 212 | X305Y583D03* 213 | X127Y327D03* 214 | X127Y583D03* 215 | X817Y328D03* 216 | X817Y584D03* 217 | X639Y328D03* 218 | X639Y584D03* 219 | X817Y328D03* 220 | X817Y584D03* 221 | X639Y328D03* 222 | X639Y584D03* 223 | X817Y328D03* 224 | X817Y584D03* 225 | X639Y328D03* 226 | X639Y584D03* 227 | X1330Y327D03* 228 | X1330Y583D03* 229 | X1152Y327D03* 230 | X1152Y583D03* 231 | X1330Y327D03* 232 | X1330Y583D03* 233 | X1152Y327D03* 234 | X1152Y583D03* 235 | X1330Y327D03* 236 | X1330Y583D03* 237 | X1152Y327D03* 238 | X1152Y583D03* 239 | G54D17* 240 | X2632Y100D03* 241 | X1273Y100D03* 242 | X250Y100D03* 243 | X1273Y966D03* 244 | X250Y966D03* 245 | X1273Y2305D03* 246 | X250Y2305D03* 247 | G54D18* 248 | X2632Y513D03* 249 | G54D19* 250 | X2649Y1065D03* 251 | G54D20* 252 | X2217Y1143D03* 253 | X2217Y1143D03* 254 | G54D18* 255 | X916Y2583D03* 256 | G04 End of Mask0* 257 | M02* -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/Gerber/TCP_Handbox_maskTop.gts: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.090000*% 12 | %ADD11C,0.088000*% 13 | %ADD12C,0.049370*% 14 | %ADD13C,0.092000*% 15 | %ADD14C,0.085000*% 16 | %ADD15C,0.095000*% 17 | %ADD16C,0.084000*% 18 | %ADD17C,0.139921*% 19 | %ADD18R,0.090000X0.090000*% 20 | %ADD19R,0.088000X0.088000*% 21 | %ADD20R,0.092000X0.092000*% 22 | %LNMASK1*% 23 | G90* 24 | G70* 25 | G54D10* 26 | X2632Y513D03* 27 | X2632Y375D03* 28 | G54D11* 29 | X2649Y1065D03* 30 | X1750Y1064D03* 31 | X2649Y1165D03* 32 | X1750Y1164D03* 33 | X2650Y1264D03* 34 | X1750Y1264D03* 35 | X2650Y1364D03* 36 | X1750Y1364D03* 37 | X2650Y1464D03* 38 | X1750Y1464D03* 39 | X2650Y1564D03* 40 | X1750Y1564D03* 41 | X2650Y1664D03* 42 | X1750Y1664D03* 43 | X2650Y1764D03* 44 | X1750Y1764D03* 45 | X2650Y1864D03* 46 | X1750Y1864D03* 47 | X2650Y1964D03* 48 | X1750Y1964D03* 49 | X2650Y2064D03* 50 | X1750Y2064D03* 51 | X2650Y2164D03* 52 | X1750Y2164D03* 53 | X2650Y2264D03* 54 | X1750Y2264D03* 55 | X2650Y2364D03* 56 | X2650Y2464D03* 57 | X2650Y2564D03* 58 | X1750Y2364D03* 59 | X1750Y2464D03* 60 | X1750Y2564D03* 61 | X1667Y336D03* 62 | X1667Y236D03* 63 | X1667Y136D03* 64 | X1982Y336D03* 65 | X1982Y236D03* 66 | X1982Y136D03* 67 | X2297Y336D03* 68 | X2297Y236D03* 69 | X2297Y136D03* 70 | G54D12* 71 | X860Y2246D03* 72 | X998Y2246D03* 73 | X1135Y1989D03* 74 | X1627Y1989D03* 75 | X1510Y2029D03* 76 | X1253Y2049D03* 77 | X1392Y2442D03* 78 | X1510Y2442D03* 79 | X1372Y2087D03* 80 | X2572Y2167D03* 81 | X1589Y2463D03* 82 | X1589Y2048D03* 83 | X1589Y1930D03* 84 | X446Y1635D03* 85 | X367Y808D03* 86 | X505Y808D03* 87 | X348Y415D03* 88 | X170Y415D03* 89 | X821Y1911D03* 90 | X643Y1911D03* 91 | X821Y1656D03* 92 | X959Y1656D03* 93 | X643Y1005D03* 94 | X802Y1005D03* 95 | X643Y394D03* 96 | X505Y513D03* 97 | X702Y513D03* 98 | X1667Y2265D03* 99 | X1391Y454D03* 100 | X2494Y2010D03* 101 | X2494Y2265D03* 102 | X1667Y1064D03* 103 | X1667Y749D03* 104 | X2238Y651D03* 105 | X2238Y494D03* 106 | X1588Y494D03* 107 | X2554Y1753D03* 108 | X2415Y749D03* 109 | X1942Y513D03* 110 | X2159Y711D03* 111 | X2159Y2069D03* 112 | X2159Y1951D03* 113 | X2494Y2344D03* 114 | X2219Y1851D03* 115 | X2473Y591D03* 116 | G54D13* 117 | X2218Y1143D03* 118 | X2516Y1143D03* 119 | X2218Y1143D03* 120 | X2516Y1143D03* 121 | G54D12* 122 | X2631Y711D03* 123 | X1627Y1792D03* 124 | X1627Y1142D03* 125 | X959Y1046D03* 126 | X1038Y435D03* 127 | G54D10* 128 | X916Y2583D03* 129 | X1054Y2583D03* 130 | X1192Y2583D03* 131 | X1330Y2583D03* 132 | G54D14* 133 | X2105Y483D03* 134 | X2005Y483D03* 135 | X1195Y2068D03* 136 | X1195Y2168D03* 137 | X1195Y1911D03* 138 | X1195Y1811D03* 139 | X1155Y730D03* 140 | X1155Y830D03* 141 | X722Y1517D03* 142 | X722Y1617D03* 143 | X1480Y508D03* 144 | X1480Y408D03* 145 | X955Y508D03* 146 | X955Y408D03* 147 | X447Y513D03* 148 | X447Y413D03* 149 | X1780Y483D03* 150 | X1680Y483D03* 151 | X2430Y483D03* 152 | X2330Y483D03* 153 | G54D15* 154 | X1057Y1005D03* 155 | X1057Y809D03* 156 | X565Y809D03* 157 | X565Y1005D03* 158 | X1057Y1005D03* 159 | X1057Y809D03* 160 | X565Y809D03* 161 | X565Y1005D03* 162 | X1057Y1005D03* 163 | X1057Y809D03* 164 | X565Y809D03* 165 | X565Y1005D03* 166 | X1529Y1557D03* 167 | X1529Y1360D03* 168 | X1037Y1360D03* 169 | X1037Y1557D03* 170 | X1529Y1557D03* 171 | X1529Y1360D03* 172 | X1037Y1360D03* 173 | X1037Y1557D03* 174 | X1529Y1557D03* 175 | X1529Y1360D03* 176 | X1037Y1360D03* 177 | X1037Y1557D03* 178 | X584Y1557D03* 179 | X584Y1360D03* 180 | X92Y1360D03* 181 | X92Y1557D03* 182 | X584Y1557D03* 183 | X584Y1360D03* 184 | X92Y1360D03* 185 | X92Y1557D03* 186 | X584Y1557D03* 187 | X584Y1360D03* 188 | X92Y1360D03* 189 | X92Y1557D03* 190 | X1057Y2108D03* 191 | X1057Y1911D03* 192 | X565Y1911D03* 193 | X565Y2108D03* 194 | X1057Y2108D03* 195 | X1057Y1911D03* 196 | X565Y1911D03* 197 | X565Y2108D03* 198 | X1057Y2108D03* 199 | X1057Y1911D03* 200 | X565Y1911D03* 201 | X565Y2108D03* 202 | G54D16* 203 | X305Y327D03* 204 | X305Y583D03* 205 | X127Y327D03* 206 | X127Y583D03* 207 | X305Y327D03* 208 | X305Y583D03* 209 | X127Y327D03* 210 | X127Y583D03* 211 | X305Y327D03* 212 | X305Y583D03* 213 | X127Y327D03* 214 | X127Y583D03* 215 | X817Y328D03* 216 | X817Y584D03* 217 | X639Y328D03* 218 | X639Y584D03* 219 | X817Y328D03* 220 | X817Y584D03* 221 | X639Y328D03* 222 | X639Y584D03* 223 | X817Y328D03* 224 | X817Y584D03* 225 | X639Y328D03* 226 | X639Y584D03* 227 | X1330Y327D03* 228 | X1330Y583D03* 229 | X1152Y327D03* 230 | X1152Y583D03* 231 | X1330Y327D03* 232 | X1330Y583D03* 233 | X1152Y327D03* 234 | X1152Y583D03* 235 | X1330Y327D03* 236 | X1330Y583D03* 237 | X1152Y327D03* 238 | X1152Y583D03* 239 | G54D17* 240 | X2632Y100D03* 241 | X1273Y100D03* 242 | X250Y100D03* 243 | X1273Y966D03* 244 | X250Y966D03* 245 | X1273Y2305D03* 246 | X250Y2305D03* 247 | G54D18* 248 | X2632Y513D03* 249 | G54D19* 250 | X2649Y1065D03* 251 | G54D20* 252 | X2217Y1143D03* 253 | X2217Y1143D03* 254 | G54D18* 255 | X916Y2583D03* 256 | G04 End of Mask1* 257 | M02* -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/Gerber/TCP_Handbox_pnp.txt: -------------------------------------------------------------------------------- 1 | *Pick And Place List 2 | *Company= 3 | *Author= 4 | *eMail= 5 | * 6 | *Project=TCP_Handbox 7 | *Date=23:53:16 8 | *CreatedBy=Fritzing 0.9.3b.04.19.5c895d327c44a3114e5fcc9d8260daf0cbb52806 9 | * 10 | * 11 | *Coordinates in mm, always center of component 12 | *Origin 0/0=Lower left corner of PCB 13 | *Rotation in degree (0-360, math. pos.) 14 | * 15 | *No;Value;Package;X;Y;Rotation;Side;Name 16 | 1;;;54.8498;-52.5567;0;Bottom;Via42 17 | 2;;;61.3525;-19.0359;0;Bottom;Via38 18 | 3;;;40.3591;-52.031;0;Bottom;Via12 19 | 4;;;12.8312;-20.5215;0;Bottom;Via16 20 | 5;;;41.3148;-29.0097;0;Bottom;Via49 21 | 6;10k;THT;18.3439;-39.4885;-90;Bottom;R4 22 | 7;;;41.3303;-50.5256;0;Bottom;Via4 23 | 8;10k;THT;30.344;-53.4885;-90;Bottom;R1 24 | 9;10k;THT;44.2565;-12.276;180;Bottom;R10 25 | 10;;;26.368;-11.0482;0;Bottom;Via51 26 | 11;;;63.3478;-57.5228;0;Bottom;Via31 27 | 12;;tactile-pth;18.4834;-11.5871;90;Bottom;F/5 28 | 13;;tactile-pth;5.48335;-11.5648;90;Bottom;F/20 29 | 14;;;24.3583;-26.5603;0;Bottom;Via50 30 | 15;10k;THT;60.7665;-12.276;180;Bottom;R8 31 | 16;;;42.3435;-19.015;0;Bottom;Via33 32 | 17;;;38.3528;-51.5258;0;Bottom;Via5 33 | 18;;;24.3526;-42.0576;0;Bottom;Via22 34 | 19;;;65.34;-55.0304;0;Bottom;Via10 35 | 20;10k;THT;29.3438;-19.4885;-90;Bottom;R3 36 | 21;;THT;67.3518;-11.4131;0;Bottom;BAT +/GND 37 | 22;10k;THT;52.5115;-12.276;180;Bottom;R9 38 | 23;;;66.844;-2.53614;0;Bottom;Hole9 39 | 24;;;38.3438;-62.0208;0;Bottom;Via8 40 | 25;;;20.3643;-25.529;0;Bottom;Via24 41 | 26;;;42.3435;-27.0355;0;Bottom;Via32 42 | 27;;;16.3319;-10.0195;0;Bottom;Via25 43 | 28;;;20.8517;-42.0576;0;Bottom;Via21 44 | 29;;;54.8498;-18.0563;0;Bottom;Via41 45 | 30;;;17.8384;-13.0328;0;Bottom;Via27 46 | 31;;;10.071;-65.5019;0;Bottom;TXT2 47 | 32;10k;THT;24.254;-11.9585;90;Bottom;R6 48 | 33;;;35.3582;-62.0258;0;Bottom;Via7 49 | 34;;tactile-pth-12mm;8.59394;-37.036;0;Bottom;W 50 | 35;;;63.3478;-51.0531;0;Bottom;Via30 51 | 36;;;11.3245;-41.5259;0;Bottom;Via14 52 | 37;;;32.344;-2.53614;0;Bottom;Hole8 53 | 38;;;62.8232;-15.0134;0;Bottom;Via46 54 | 39;;THT;28.4021;-66.124;-90;Bottom;3.3V/GND/SCL/SDA 55 | 40;;;32.344;-24.5359;0;Bottom;Hole6 56 | 41;;;12.8312;-13.0328;0;Bottom;Via26 57 | 42;;;56.8325;-16.5354;0;Bottom;Via34 58 | 43;;;55.8719;-53.7599;180;Bottom;WEMOS Lolin D32 Pro 59 | 44;;;4.32312;-10.5512;0;Bottom;Via18 60 | 45;;;16.3319;-48.5273;0;Bottom;Via20 61 | 46;;tactile-pth-12mm;20.594;-51.036;0;Bottom;N 62 | 47;;;14.5136;-67.8311;0;Bottom;TXT1 63 | 48;;;49.3307;-13.0252;0;Bottom;Via39 64 | 49;;;42.3435;-57.5228;0;Bottom;Via28 65 | 50;;tactile-pth;31.5184;-11.5648;90;Bottom;Full 66 | 51;;;31.8355;-52.0451;0;Bottom;Via6 67 | 52;;;6.34395;-58.536;0;Bottom;Hole3 68 | 53;;;25.3458;-57.0378;0;Bottom;Via2 69 | 54;;;35.3421;-11.526;0;Bottom;Via29 70 | 55;;;9.33045;-20.5215;0;Bottom;Via15 71 | 56;10k;THT;11.344;-12.0836;90;Bottom;R5 72 | 57;;tactile-pth-12mm;20.594;-23.0361;0;Bottom;S 73 | 58;;;64.8631;-44.5227;0;Bottom;Via37 74 | 59;;;21.8476;-57.0378;0;Bottom;Via1 75 | 60;10k;THT;30.344;-47.5835;90;Bottom;R2 76 | 61;;THT;42.3438;-5.99604;0;Bottom;S1 77 | 62;;;32.344;-58.536;0;Bottom;Hole4 78 | 63;;tactile-pth-12mm;32.5941;-37.036;0;Bottom;E 79 | 64;;;41.3148;-45.5264;0;Bottom;Via48 80 | 65;;;20.8517;-48.5273;0;Bottom;Via19 81 | 66;;;40.3383;-12.5443;0;Bottom;Via36 82 | 67;;;56.3575;-47.0264;0;Bottom;Via45 83 | 68;;;16.3319;-25.529;0;Bottom;Via23 84 | 69;;;34.8533;-53.0171;0;Bottom;Via9 85 | 70;;THT;50.344;-5.99604;0;Bottom;S2 86 | 71;;;66.8183;-18.0623;0;Bottom;Via47 87 | 72;;THT;58.3439;-5.99604;0;Bottom;S3 88 | 73;;;28.8253;-50.5126;0;Bottom;Via3 89 | 74;;300 mil [THT];60.1286;-29.0361;180;Bottom;D1 90 | 75;;;54.8498;-49.5587;0;Bottom;Via43 91 | 76;;;6.34395;-24.5359;0;Bottom;Hole5 92 | 77;;;28.8097;-67.0856;0;Bottom;TXT3 93 | 78;;;6.34395;-2.53614;0;Bottom;Hole7 94 | 79;;;56.8325;-12.5443;0;Bottom;Via35 95 | 80;;;40.3591;-62.5493;0;Bottom;Via11 96 | 81;10k;THT;37.589;-11.9585;90;Bottom;R7 97 | 82;;;63.349;-59.5373;0;Bottom;Via44 98 | 83;;;40.3591;-49.0316;0;Bottom;Via13 99 | 84;;;8.84302;-10.5512;0;Bottom;Via17 100 | -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox.fzz -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox_pcb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox_pcb.jpg -------------------------------------------------------------------------------- /Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox_schem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/3_TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox_schem.jpg -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/Focusstepper_Test/Focusstepper_Test.ino: -------------------------------------------------------------------------------- 1 | #include 2 | AccelStepper raStepper(AccelStepper::DRIVER,3,2); // pin 3 connected to STEP, pin 2 connected to DIR 3 | AccelStepper deStepper(AccelStepper::DRIVER,5,4); // pin 5 connected to STEP, pin 4 connected to DIR 4 | 5 | struct kinematicParametersStruct { 6 | long steps; 7 | long maxSpeed; 8 | long acceleration; 9 | }; 10 | 11 | struct kinematicParametersStruct raDriveParams; 12 | struct kinematicParametersStruct deDriveParams; 13 | 14 | //-------------------------------------------------------- 15 | 16 | void setup() { 17 | pinMode(8,OUTPUT); // connected to M0 18 | pinMode(7,OUTPUT); // connected to M1 19 | pinMode(6,OUTPUT); // connected to M2 of the drv 8825 - sets microstepping for both drives 20 | pinMode(A0, OUTPUT); 21 | pinMode(A1,OUTPUT); 22 | digitalWrite(A0, LOW); 23 | digitalWrite(A1, LOW); 24 | digitalWrite(8,HIGH); 25 | digitalWrite(7,LOW); 26 | digitalWrite(6,LOW); // LLL=full, HLL=half,LHL=1/4,HHL=1/8,LLH=1/16,HLH=LHH=HHH=1/32 for the DRV8825 27 | 28 | raDriveParams.steps = 3000; 29 | raDriveParams.maxSpeed = 300; 30 | raDriveParams.acceleration = 300; 31 | deDriveParams.steps = 3000; 32 | deDriveParams.maxSpeed = 300; 33 | deDriveParams.acceleration = 300; 34 | 35 | raStepper.setMaxSpeed(raDriveParams.maxSpeed); 36 | raStepper.setAcceleration(raDriveParams.acceleration); 37 | raStepper.moveTo(raDriveParams.steps); 38 | deStepper.setMaxSpeed(deDriveParams.maxSpeed); 39 | deStepper.setAcceleration(deDriveParams.acceleration); 40 | deStepper.moveTo(deDriveParams.steps); 41 | } 42 | 43 | //--------------------------------------------------------- 44 | 45 | void loop() { 46 | raStepper.run(); 47 | deStepper.run(); 48 | if (raStepper.isRunning() == false) { 49 | raDriveParams.steps *= -1; 50 | raStepper.moveTo(raDriveParams.steps); 51 | } 52 | if (deStepper.isRunning() == false) { 53 | deDriveParams.steps *= -1; 54 | deStepper.moveTo(deDriveParams.steps); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/Gerber/MotorBoard_contour.gm1: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,2.140090X2.747570*% 12 | %ADD11C,0.008000*% 13 | %ADD10C,0.008*% 14 | %LNCONTOUR*% 15 | G90* 16 | G70* 17 | G54D10* 18 | G54D11* 19 | X4Y2744D02* 20 | X2136Y2744D01* 21 | X2136Y4D01* 22 | X4Y4D01* 23 | X4Y2744D01* 24 | D02* 25 | G04 End of contour* 26 | M02* -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/Gerber/MotorBoard_drill.txt: -------------------------------------------------------------------------------- 1 | ; NON-PLATED HOLES START AT T1 2 | ; THROUGH (PLATED) HOLES START AT T100 3 | M48 4 | INCH 5 | T100C0.015748 6 | T101C0.038000 7 | T102C0.040000 8 | T103C0.035000 9 | T104C0.042000 10 | T105C0.129921 11 | % 12 | T100 13 | X013161Y014225 14 | X008661Y023975 15 | X006161Y021225 16 | X006661Y012725 17 | X020661Y006475 18 | X007550Y013725 19 | X009411Y021475 20 | X002411Y021475 21 | X000411Y022725 22 | X011161Y018725 23 | X020661Y011225 24 | X003161Y010725 25 | X003161Y007725 26 | X007661Y022475 27 | X013911Y002975 28 | X000911Y024475 29 | X002911Y023975 30 | X019661Y009725 31 | X014661Y009975 32 | X001661Y012975 33 | X020161Y008225 34 | X004926Y018993 35 | X001161Y010975 36 | X004911Y020975 37 | X017661Y007475 38 | X005911Y021975 39 | X005661Y012975 40 | X020161Y005836 41 | X008911Y013725 42 | X008911Y014975 43 | X019161Y008975 44 | X012661Y004975 45 | X016661Y011225 46 | X001661Y023475 47 | X015161Y022975 48 | X005409Y017979 49 | X002411Y019975 50 | X018161Y003975 51 | X018161Y024475 52 | X003661Y021475 53 | X010161Y001725 54 | X013661Y010475 55 | X015661Y009975 56 | X019161Y008225 57 | X007661Y016475 58 | X011161Y019475 59 | X009411Y019975 60 | X017550Y004475 61 | X006661Y022975 62 | X001161Y012225 63 | X018661Y007975 64 | X019661Y013225 65 | X014411Y015975 66 | X018161Y014225 67 | X005411Y020475 68 | X019661Y004975 69 | X012411Y015475 70 | X017661Y008975 71 | X009161Y004975 72 | X017661Y023475 73 | X019661Y006975 74 | X002911Y018975 75 | X018661Y013725 76 | X003911Y014086 77 | X016161Y012725 78 | X014661Y020975 79 | X003661Y004336 80 | T101 81 | X006673Y019968 82 | X010161Y018975 83 | X001661Y020975 84 | X015161Y014975 85 | X015161Y015975 86 | X010161Y017975 87 | X015161Y018975 88 | X010161Y020975 89 | X001661Y019975 90 | X010161Y021975 91 | X010161Y019975 92 | X006673Y021968 93 | X015161Y020975 94 | X001661Y015975 95 | X006673Y014968 96 | X015161Y016975 97 | X010161Y014975 98 | X001661Y017975 99 | X006673Y018968 100 | X001661Y018975 101 | X001661Y021975 102 | X006673Y017968 103 | X015161Y019975 104 | X006673Y016968 105 | X001661Y016975 106 | X015161Y021975 107 | X010161Y015975 108 | X015161Y017975 109 | X001661Y014975 110 | X010161Y016975 111 | X006673Y015968 112 | X006673Y020968 113 | T102 114 | X009661Y011975 115 | X003133Y000925 116 | X004661Y009475 117 | X004661Y011475 118 | X016661Y005975 119 | X006661Y005975 120 | X008039Y025725 121 | X013661Y011975 122 | X008661Y011975 123 | X009661Y005975 124 | X013911Y000975 125 | X004661Y007475 126 | X015039Y025725 127 | X006661Y025725 128 | X007661Y005975 129 | X003905Y025725 130 | X004661Y008475 131 | X011661Y005975 132 | X014661Y011975 133 | X015661Y005975 134 | X015661Y011975 135 | X012533Y000975 136 | X010661Y011975 137 | X006233Y000925 138 | X014661Y005975 139 | X012283Y025725 140 | X004511Y000925 141 | X007661Y011975 142 | X011661Y011975 143 | X015289Y000975 144 | X005661Y005975 145 | X010661Y005975 146 | X010111Y010825 147 | X005661Y011975 148 | X005283Y025725 149 | X006661Y011975 150 | X004661Y006475 151 | X011155Y000975 152 | X013661Y005975 153 | X012661Y011975 154 | X010905Y025725 155 | X007611Y000925 156 | X009111Y010825 157 | X013661Y025725 158 | X016661Y011975 159 | X008661Y005975 160 | X004661Y010475 161 | X012661Y005975 162 | T103 163 | X002163Y009466 164 | X001163Y009466 165 | T104 166 | X009161Y003955 167 | X002179Y004753 168 | X002179Y007509 169 | X009161Y000975 170 | T105 171 | X001036Y026350 172 | X020289Y026406 173 | X020289Y003178 174 | X000998Y003178 175 | T00 176 | M30 177 | -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/Gerber/MotorBoard_maskBottom.gbs: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.049370*% 12 | %ADD11C,0.094500*% 13 | %ADD12C,0.090000*% 14 | %ADD13C,0.092000*% 15 | %ADD14C,0.163543*% 16 | %ADD15C,0.085000*% 17 | %ADD16C,0.084000*% 18 | %ADD17C,0.088000*% 19 | %ADD18R,0.092000X0.092000*% 20 | %ADD19R,0.090000X0.090000*% 21 | %ADD20R,0.085000X0.085000*% 22 | %LNMASK0*% 23 | G90* 24 | G70* 25 | G54D10* 26 | X541Y2048D03* 27 | X541Y1798D03* 28 | X491Y2098D03* 29 | X493Y1899D03* 30 | X1516Y2298D03* 31 | X666Y2298D03* 32 | X166Y2348D03* 33 | X591Y2198D03* 34 | X41Y2273D03* 35 | X616Y2123D03* 36 | X116Y1098D03* 37 | X116Y1223D03* 38 | X366Y2148D03* 39 | X766Y2248D03* 40 | X1466Y2098D03* 41 | X291Y2398D03* 42 | X866Y2398D03* 43 | X1316Y1423D03* 44 | X1766Y2348D03* 45 | X1816Y1423D03* 46 | X1241Y1548D03* 47 | X1441Y1598D03* 48 | X1116Y1948D03* 49 | X1866Y1373D03* 50 | X1766Y748D03* 51 | X1116Y1873D03* 52 | X666Y1273D03* 53 | X1616Y1273D03* 54 | X941Y2148D03* 55 | X941Y1998D03* 56 | X241Y2148D03* 57 | X241Y1998D03* 58 | X291Y1898D03* 59 | X766Y1648D03* 60 | X566Y1298D03* 61 | X916Y498D03* 62 | X1916Y898D03* 63 | X1766Y898D03* 64 | X91Y2448D03* 65 | X1816Y2448D03* 66 | X1966Y1323D03* 67 | X1966Y973D03* 68 | X1666Y1123D03* 69 | X2066Y1123D03* 70 | X1366Y1048D03* 71 | X2016Y823D03* 72 | X1466Y998D03* 73 | X1566Y998D03* 74 | X1391Y298D03* 75 | X1916Y823D03* 76 | X1866Y798D03* 77 | X166Y1298D03* 78 | X1966Y698D03* 79 | X1966Y498D03* 80 | X1016Y173D03* 81 | X1266Y498D03* 82 | X316Y1073D03* 83 | X316Y773D03* 84 | X891Y1498D03* 85 | X391Y1409D03* 86 | X366Y434D03* 87 | X1755Y448D03* 88 | X2066Y648D03* 89 | X1816Y398D03* 90 | X2016Y584D03* 91 | X755Y1373D03* 92 | X891Y1373D03* 93 | G54D11* 94 | X218Y751D03* 95 | X218Y475D03* 96 | G54D12* 97 | X1116Y98D03* 98 | X1253Y98D03* 99 | X1391Y98D03* 100 | X1529Y98D03* 101 | X391Y2573D03* 102 | X528Y2573D03* 103 | X666Y2573D03* 104 | X804Y2573D03* 105 | X1091Y2573D03* 106 | X1228Y2573D03* 107 | X1366Y2573D03* 108 | X1504Y2573D03* 109 | G54D13* 110 | X916Y396D03* 111 | X916Y98D03* 112 | G54D12* 113 | X623Y93D03* 114 | X761Y93D03* 115 | X313Y93D03* 116 | X451Y93D03* 117 | G54D14* 118 | X100Y318D03* 119 | X2029Y318D03* 120 | X2029Y2641D03* 121 | X104Y2635D03* 122 | G54D15* 123 | X116Y947D03* 124 | X216Y947D03* 125 | G54D16* 126 | X466Y1148D03* 127 | X466Y1048D03* 128 | X466Y948D03* 129 | X466Y848D03* 130 | X466Y748D03* 131 | X466Y648D03* 132 | X566Y1198D03* 133 | X666Y1198D03* 134 | X766Y1198D03* 135 | X866Y1198D03* 136 | X966Y1198D03* 137 | X911Y1083D03* 138 | X1011Y1083D03* 139 | X1066Y1198D03* 140 | X1166Y1198D03* 141 | X1266Y1198D03* 142 | X1366Y1198D03* 143 | X1466Y1198D03* 144 | X1566Y1198D03* 145 | X1666Y1198D03* 146 | X1666Y598D03* 147 | X1566Y598D03* 148 | X1466Y598D03* 149 | X1366Y598D03* 150 | X1266Y598D03* 151 | X1166Y598D03* 152 | X1066Y598D03* 153 | X966Y598D03* 154 | X866Y598D03* 155 | X766Y598D03* 156 | X666Y598D03* 157 | X566Y598D03* 158 | G54D17* 159 | X667Y2197D03* 160 | X667Y2097D03* 161 | X667Y1997D03* 162 | X667Y1897D03* 163 | X667Y1797D03* 164 | X667Y1697D03* 165 | X667Y1597D03* 166 | X667Y1497D03* 167 | X166Y2198D03* 168 | X166Y2098D03* 169 | X166Y1998D03* 170 | X166Y1898D03* 171 | X166Y1798D03* 172 | X166Y1698D03* 173 | X166Y1598D03* 174 | X166Y1498D03* 175 | X1016Y2198D03* 176 | X1016Y2098D03* 177 | X1016Y1998D03* 178 | X1016Y1898D03* 179 | X1016Y1798D03* 180 | X1016Y1698D03* 181 | X1016Y1598D03* 182 | X1016Y1498D03* 183 | X1516Y2198D03* 184 | X1516Y2098D03* 185 | X1516Y1998D03* 186 | X1516Y1898D03* 187 | X1516Y1798D03* 188 | X1516Y1698D03* 189 | X1516Y1598D03* 190 | X1516Y1498D03* 191 | G54D18* 192 | X218Y751D03* 193 | G54D19* 194 | X1116Y98D03* 195 | X391Y2573D03* 196 | X1091Y2573D03* 197 | G54D18* 198 | X916Y397D03* 199 | G54D19* 200 | X623Y93D03* 201 | X313Y93D03* 202 | G54D20* 203 | X116Y947D03* 204 | G04 End of Mask0* 205 | M02* -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/Gerber/MotorBoard_maskTop.gts: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.049370*% 12 | %ADD11C,0.094500*% 13 | %ADD12C,0.090000*% 14 | %ADD13C,0.092000*% 15 | %ADD14C,0.163543*% 16 | %ADD15C,0.085000*% 17 | %ADD16C,0.084000*% 18 | %ADD17C,0.088000*% 19 | %ADD18R,0.092000X0.092000*% 20 | %ADD19R,0.090000X0.090000*% 21 | %ADD20R,0.085000X0.085000*% 22 | %LNMASK1*% 23 | G90* 24 | G70* 25 | G54D10* 26 | X541Y2048D03* 27 | X541Y1798D03* 28 | X491Y2098D03* 29 | X493Y1899D03* 30 | X1516Y2298D03* 31 | X666Y2298D03* 32 | X166Y2348D03* 33 | X591Y2198D03* 34 | X41Y2273D03* 35 | X616Y2123D03* 36 | X116Y1098D03* 37 | X116Y1223D03* 38 | X366Y2148D03* 39 | X766Y2248D03* 40 | X1466Y2098D03* 41 | X291Y2398D03* 42 | X866Y2398D03* 43 | X1316Y1423D03* 44 | X1766Y2348D03* 45 | X1816Y1423D03* 46 | X1241Y1548D03* 47 | X1441Y1598D03* 48 | X1116Y1948D03* 49 | X1866Y1373D03* 50 | X1766Y748D03* 51 | X1116Y1873D03* 52 | X666Y1273D03* 53 | X1616Y1273D03* 54 | X941Y2148D03* 55 | X941Y1998D03* 56 | X241Y2148D03* 57 | X241Y1998D03* 58 | X291Y1898D03* 59 | X766Y1648D03* 60 | X566Y1298D03* 61 | X916Y498D03* 62 | X1916Y898D03* 63 | X1766Y898D03* 64 | X91Y2448D03* 65 | X1816Y2448D03* 66 | X1966Y1323D03* 67 | X1966Y973D03* 68 | X1666Y1123D03* 69 | X2066Y1123D03* 70 | X1366Y1048D03* 71 | X2016Y823D03* 72 | X1466Y998D03* 73 | X1566Y998D03* 74 | X1391Y298D03* 75 | X1916Y823D03* 76 | X1866Y798D03* 77 | X166Y1298D03* 78 | X1966Y698D03* 79 | X1966Y498D03* 80 | X1016Y173D03* 81 | X1266Y498D03* 82 | X316Y1073D03* 83 | X316Y773D03* 84 | X891Y1498D03* 85 | X391Y1409D03* 86 | X366Y434D03* 87 | X1755Y448D03* 88 | X2066Y648D03* 89 | X1816Y398D03* 90 | X2016Y584D03* 91 | X755Y1373D03* 92 | X891Y1373D03* 93 | G54D11* 94 | X218Y751D03* 95 | X218Y475D03* 96 | G54D12* 97 | X1116Y98D03* 98 | X1253Y98D03* 99 | X1391Y98D03* 100 | X1529Y98D03* 101 | X391Y2573D03* 102 | X528Y2573D03* 103 | X666Y2573D03* 104 | X804Y2573D03* 105 | X1091Y2573D03* 106 | X1228Y2573D03* 107 | X1366Y2573D03* 108 | X1504Y2573D03* 109 | G54D13* 110 | X916Y396D03* 111 | X916Y98D03* 112 | G54D12* 113 | X623Y93D03* 114 | X761Y93D03* 115 | X313Y93D03* 116 | X451Y93D03* 117 | G54D14* 118 | X100Y318D03* 119 | X2029Y318D03* 120 | X2029Y2641D03* 121 | X104Y2635D03* 122 | G54D15* 123 | X116Y947D03* 124 | X216Y947D03* 125 | G54D16* 126 | X466Y1148D03* 127 | X466Y1048D03* 128 | X466Y948D03* 129 | X466Y848D03* 130 | X466Y748D03* 131 | X466Y648D03* 132 | X566Y1198D03* 133 | X666Y1198D03* 134 | X766Y1198D03* 135 | X866Y1198D03* 136 | X966Y1198D03* 137 | X911Y1083D03* 138 | X1011Y1083D03* 139 | X1066Y1198D03* 140 | X1166Y1198D03* 141 | X1266Y1198D03* 142 | X1366Y1198D03* 143 | X1466Y1198D03* 144 | X1566Y1198D03* 145 | X1666Y1198D03* 146 | X1666Y598D03* 147 | X1566Y598D03* 148 | X1466Y598D03* 149 | X1366Y598D03* 150 | X1266Y598D03* 151 | X1166Y598D03* 152 | X1066Y598D03* 153 | X966Y598D03* 154 | X866Y598D03* 155 | X766Y598D03* 156 | X666Y598D03* 157 | X566Y598D03* 158 | G54D17* 159 | X667Y2197D03* 160 | X667Y2097D03* 161 | X667Y1997D03* 162 | X667Y1897D03* 163 | X667Y1797D03* 164 | X667Y1697D03* 165 | X667Y1597D03* 166 | X667Y1497D03* 167 | X166Y2198D03* 168 | X166Y2098D03* 169 | X166Y1998D03* 170 | X166Y1898D03* 171 | X166Y1798D03* 172 | X166Y1698D03* 173 | X166Y1598D03* 174 | X166Y1498D03* 175 | X1016Y2198D03* 176 | X1016Y2098D03* 177 | X1016Y1998D03* 178 | X1016Y1898D03* 179 | X1016Y1798D03* 180 | X1016Y1698D03* 181 | X1016Y1598D03* 182 | X1016Y1498D03* 183 | X1516Y2198D03* 184 | X1516Y2098D03* 185 | X1516Y1998D03* 186 | X1516Y1898D03* 187 | X1516Y1798D03* 188 | X1516Y1698D03* 189 | X1516Y1598D03* 190 | X1516Y1498D03* 191 | G54D18* 192 | X218Y751D03* 193 | G54D19* 194 | X1116Y98D03* 195 | X391Y2573D03* 196 | X1091Y2573D03* 197 | G54D18* 198 | X916Y397D03* 199 | G54D19* 200 | X623Y93D03* 201 | X313Y93D03* 202 | G54D20* 203 | X116Y947D03* 204 | G04 End of Mask1* 205 | M02* -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/Gerber/MotorBoard_pnp.txt: -------------------------------------------------------------------------------- 1 | *Pick And Place List 2 | *Company= 3 | *Author= 4 | *eMail= 5 | * 6 | *Project=MotorBoard 7 | *Date=13:08:43 8 | *CreatedBy=Fritzing 0.9.3b.04.19.5c895d327c44a3114e5fcc9d8260daf0cbb52806 9 | * 10 | * 11 | *Coordinates in mm, always center of component 12 | *Origin 0/0=Lower left corner of PCB 13 | *Rotation in degree (0-360, math. pos.) 14 | * 15 | *No;Value;Package;X;Y;Rotation;Side;Name 16 | 1;;;7.39582;-60.8985;0;Bottom;Via19 17 | 2;;;52.4807;-16.4486;0;Bottom;Via71 18 | 3;;;45.9584;-65.5036;0;Bottom;TXT2 19 | 4;;THT;9.58283;-2.85951;-90;Bottom;GND/12V 20 | 5;;;51.2107;-20.8936;0;Bottom;Via50 21 | 6;;;32.1607;-12.6386;0;Bottom;Via64 22 | 7;;;12.5126;-48.2445;0;Bottom;Via4 23 | 8;;;22.6357;-34.8635;0;Bottom;Via75 24 | 9;;;48.6707;-20.8936;0;Bottom;Via56 25 | 10;;;27.0808;-22.7985;-90;Bottom;Arduino Mini Pro 26 | 11;;;2.95082;-31.0536;0;Bottom;Via13 27 | 12;;;14.3807;-32.9586;0;Bottom;Via39 28 | 13;;;9.93582;-35.7807;0;Bottom;Via68 29 | 14;;;28.3507;-49.4685;0;Bottom;Via27 30 | 15;;THT;17.4568;-2.85951;-90;Bottom;GND/5V 31 | 16;;;42.3207;-28.5136;0;Bottom;Via47 32 | 17;;;16.9207;-58.3585;0;Bottom;Via6 33 | 18;;;46.1307;-62.1685;0;Bottom;Via44 34 | 19;;THT;4.22083;-46.9285;0;Bottom;EN 35 | 20;;;9.30082;-11.0158;0;Bottom;Via69 36 | 21;;THT;32.8238;-65.8515;-90;Bottom;DR B: AA'BB' 37 | 22;;;49.9407;-12.6386;0;Bottom;Via61 38 | 23;;;16.9207;-32.3236;0;Bottom;Via31 39 | 24;;;19.4607;-57.0885;0;Bottom;Via15 40 | 25;;;2.63332;-66.931;0;Bottom;Hole2 41 | 26;;;49.9407;-24.7036;0;Bottom;Via46 42 | 27;;;13.7397;-45.6677;0;Bottom;Via2 43 | 28;;;8.03082;-19.6236;0;Bottom;Via66 44 | 29;;THT;38.5108;-46.9285;0;Bottom;Drive B 45 | 30;;;19.4607;-41.8485;0;Bottom;Via38 46 | 31;;THT;25.8108;-46.9285;0;Bottom;EN 47 | 32;;;5.53582;-17.0528;90;Bottom;D2 48 | 33;;;2.95082;-27.8786;0;Bottom;Via12 49 | 34;;THT;33.4588;-2.98648;-90;Bottom;SPI 50 | 35;;;46.1307;-36.1335;0;Bottom;Via24 51 | 36;;;47.4007;-34.8635;0;Bottom;Via28 52 | 37;;;28.3507;-47.5635;0;Bottom;Via30 53 | 38;;;15.0157;-55.8185;0;Bottom;Via9 54 | 39;;;51.2107;-14.8258;0;Bottom;Via73 55 | 40;;;2.31582;-62.1685;0;Bottom;Via43 56 | 41;;;51.5358;-8.07351;0;Bottom;Hole3 57 | 42;;;46.1307;-10.0986;0;Bottom;Via72 58 | 43;;;44.8607;-22.7986;0;Bottom;Via42 59 | 44;;;8.03082;-27.2436;0;Bottom;Via65 60 | 45;;;47.3698;-49.9384;-90;Bottom;TXT5 61 | 46;;;44.5785;-11.3686;0;Bottom;Via70 62 | 47;;;23.2707;-12.6386;0;Bottom;Via40 63 | 48;;;4.22082;-32.9586;0;Bottom;Via59 64 | 49;;;47.4007;-20.2586;0;Bottom;Via57 65 | 50;;;6.12582;-50.7385;0;Bottom;Via36 66 | 51;;;44.8607;-18.9886;0;Bottom;Via29 67 | 52;;THT;15.0438;-65.8515;-90;Bottom;DR A: AA'BB' 68 | 53;;;38.5107;-58.3585;0;Bottom;Via5 69 | 54;;THT;16.9496;-46.9107;0;Bottom;Drive A 70 | 55;;;44.62;-49.1489;-90;Bottom;TXT4 71 | 56;;;9.30082;-54.5485;0;Bottom;Via14 72 | 57;;;35.3357;-7.55861;0;Bottom;Via55 73 | 58;;;12.4758;-53.2785;0;Bottom;Via3 74 | 59;;;52.4807;-28.5136;0;Bottom;Via48 75 | 60;;;33.4307;-36.1335;0;Bottom;Via21 76 | 61;0.1mF;100 mil [THT, electrolytic];4.2265;-24.0437;0;Bottom;C1 77 | 62;;;23.9057;-54.5485;0;Bottom;Via33 78 | 63;;;41.0507;-32.3236;0;Bottom;Via32 79 | 64;;;37.2407;-53.2785;0;Bottom;Via18 80 | 65;;;48.6707;-22.7986;0;Bottom;Via41 81 | 66;;;37.2407;-25.3386;0;Bottom;Via51 82 | 67;;;7.39582;-48.1985;0;Bottom;Via37 83 | 68;;;15.6507;-53.9135;0;Bottom;Via11 84 | 69;;;39.7807;-25.3386;0;Bottom;Via52 85 | 70;;;13.7458;-52.0085;0;Bottom;Via1 86 | 71;;;44.8607;-59.6285;0;Bottom;Via23 87 | 72;;;49.9407;-33.5936;0;Bottom;Via45 88 | 73;;;6.12582;-54.5485;0;Bottom;Via35 89 | 74;;;35.3755;-6.81038;0;Bottom;TXT1 90 | 75;;;22.0007;-60.8985;0;Bottom;Via20 91 | 76;;;1.04582;-57.7235;0;Bottom;Via10 92 | 77;;;4.22082;-59.6285;0;Bottom;Via8 93 | 78;;;23.9057;-50.7385;0;Bottom;Via34 94 | 79;;;34.7007;-26.6086;0;Bottom;Via49 95 | 80;;;22.6357;-38.0385;0;Bottom;Via67 96 | 81;;;31.5257;-39.3085;0;Bottom;Via25 97 | 82;;;25.8107;-4.38361;0;Bottom;Via63 98 | 83;;;19.1785;-34.8635;0;Bottom;Via74 99 | 84;;;51.5358;-67.0735;0;Bottom;Hole5 100 | 85;;;36.6057;-40.5785;0;Bottom;Via26 101 | 86;;;49.9407;-17.7186;0;Bottom;Via60 102 | 87;;300 mil [THT];23.2708;-6.26311;90;Bottom;D1 103 | 88;;;2.53583;-8.07351;0;Bottom;Hole4 104 | 89;;;42.1804;-49.1414;-90;Bottom;TXT3 105 | -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/Gerber/MotorBoard_silkBottom.gbo: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,2.140090X2.747570X2.124090X2.731570*% 12 | %ADD11C,0.008000*% 13 | %LNSILK0*% 14 | G90* 15 | G70* 16 | G54D11* 17 | X4Y2744D02* 18 | X2136Y2744D01* 19 | X2136Y4D01* 20 | X4Y4D01* 21 | X4Y2744D01* 22 | D02* 23 | G04 End of Silk0* 24 | M02* -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/MotorBoard.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/4_FocusMotors/MotorBoard.fzz -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/MotorBoard_pcb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/4_FocusMotors/MotorBoard_pcb.jpg -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/MotorBoard_schem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/4_FocusMotors/MotorBoard_schem.jpg -------------------------------------------------------------------------------- /Hardware/4_FocusMotors/TheTSCStepperProtocol: -------------------------------------------------------------------------------- 1 | Communications protocol for the Focusmotorboards 2 | W. Birkfellner, Nov. 2017, V. 0.1 3 | 4 | The stepperboards for TSC communicate via SPI or USB betwwen the Raspberry and 5 | the microcontrollers running the steppers with the AccelStepper library. 6 | so far the commands are transmitted as characters, following the convention: 7 | xyzzzzzz... 8 | where x is a character denoting the action to be taken, y is a number between 9 | 0 and 4, where therse are literals, and zzzzzz... is a string of bytes that 10 | is converted to a long integer. 11 | 12 | An example: 13 | "a1200" sets the acceleration (denoted by 'a') of the second drive ('1' instead 14 | of '0') to 200 microsteps per second. 15 | 16 | Commands that apply to all drives (such as the number of microsteps, 17 | which can only be set for both drivers) are issued 18 | without the second byte. 19 | 20 | In general, parameters have to be set, then the drive is enabled, and then it should start. 21 | Once a motion is finished, the drive is being automatically disabled. 22 | 23 | Command set: 24 | To enable or disable drives: 25 | 'exy' ... where x is the number of the drive ('0' or '1' for the focus-driver board) 26 | and y is a boolean - 1 means enable the drive (that is, power the coils up), and 27 | 0 means "disable". 28 | 29 | Setting the acceleration: 30 | axyyyyy ... where x is the number of the drive and yyyy is a long integer for the 31 | acceleration in microsteps/^2. 32 | 33 | Setting microsteps: 34 | Microsteps can only be set for groups of two drives, the command is 35 | m xxx ... xxx is either 001, 002, 004, 008, 016, 032, 064 or 128. This is the 36 | nominator of the ratio of microstepping. For instance "m 008" sets both drivers 37 | to 1/8 microstepping. 38 | 39 | Setting final velocity: 40 | vxyyyy ... where x is the drive as usual and yyyy is a long integer for microsteps/s, 41 | which is the end velocity. 42 | 43 | Setting the number of steps: 44 | sxyyy ... again, x is the driver and yyy is the number of microsteps 45 | 46 | Checking whether a board is connected: 47 | t ... this command responds with 'D', '0', '1' or 'B'. 'D' is short for the 48 | DRV 8825 and both drives are inactive. If both are running, one gets a 'B', otherwise 49 | the numeral for the active drive is sent. If 'D' is returned when 't' was sent, 50 | a board is connected. 51 | 52 | Stop a drive: 53 | xy ... y is the address of the drive. 54 | 55 | Start a drive: 56 | oy ... y is the drive. Steps, acceleration, microstepping and velocity have to 57 | be defined, and the drives have to be enabled. 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Hardware/AMIS_Drives/Teensy3_5/AMIS30543_Teensy_1_3.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/AMIS_Drives/Teensy3_5/AMIS30543_Teensy_1_3.fzz -------------------------------------------------------------------------------- /Hardware/AMIS_Drives/Teensy4/AMIS30543_Teensy_4.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/AMIS_Drives/Teensy4/AMIS30543_Teensy_4.fzz -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/ConnectorBreakout.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/ConnectorBreakout/ConnectorBreakout.fzz -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/ConnectorBreakout_pcb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/ConnectorBreakout/ConnectorBreakout_pcb.jpg -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_contour.gm1: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,2.559060X2.165350*% 12 | %ADD11C,0.008000*% 13 | %ADD10C,0.008*% 14 | %LNCONTOUR*% 15 | G90* 16 | G70* 17 | G54D10* 18 | G54D11* 19 | X4Y2161D02* 20 | X2555Y2161D01* 21 | X2555Y4D01* 22 | X4Y4D01* 23 | X4Y2161D01* 24 | D02* 25 | G04 End of contour* 26 | M02* -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_copperBottom.gbl: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.078000*% 12 | %ADD11C,0.079370*% 13 | %ADD12C,0.080000*% 14 | %ADD13C,0.039370*% 15 | %ADD14R,0.080000X0.080000*% 16 | %ADD15C,0.024000*% 17 | %LNCOPPER0*% 18 | G90* 19 | G70* 20 | G54D10* 21 | X647Y559D03* 22 | X547Y559D03* 23 | X447Y559D03* 24 | X648Y1658D03* 25 | X548Y1658D03* 26 | X448Y1658D03* 27 | G54D11* 28 | X2047Y559D03* 29 | X1947Y559D03* 30 | X2048Y1658D03* 31 | X1948Y1658D03* 32 | G54D10* 33 | X2097Y659D03* 34 | X1997Y659D03* 35 | X2098Y1758D03* 36 | X1998Y1758D03* 37 | X1397Y559D03* 38 | X1297Y559D03* 39 | X1398Y1658D03* 40 | X1298Y1658D03* 41 | X1447Y659D03* 42 | X1347Y659D03* 43 | X1448Y1758D03* 44 | X1348Y1758D03* 45 | X697Y459D03* 46 | X597Y459D03* 47 | X497Y459D03* 48 | X698Y1558D03* 49 | X598Y1558D03* 50 | X498Y1558D03* 51 | G54D12* 52 | X2197Y309D03* 53 | X2060Y309D03* 54 | X1922Y309D03* 55 | X1784Y309D03* 56 | X2198Y1408D03* 57 | X2061Y1408D03* 58 | X1923Y1408D03* 59 | X1785Y1408D03* 60 | X1547Y309D03* 61 | X1410Y309D03* 62 | X1272Y309D03* 63 | X1134Y309D03* 64 | X1548Y1408D03* 65 | X1411Y1408D03* 66 | X1273Y1408D03* 67 | X1135Y1408D03* 68 | X897Y209D03* 69 | X760Y209D03* 70 | X622Y209D03* 71 | X484Y209D03* 72 | X346Y209D03* 73 | X208Y209D03* 74 | X898Y1308D03* 75 | X760Y1308D03* 76 | X623Y1308D03* 77 | X485Y1308D03* 78 | X347Y1308D03* 79 | X209Y1308D03* 80 | G54D13* 81 | X447Y360D03* 82 | X448Y1458D03* 83 | X147Y360D03* 84 | X148Y1458D03* 85 | X798Y360D03* 86 | X799Y1458D03* 87 | X798Y560D03* 88 | X799Y1658D03* 89 | X1846Y660D03* 90 | X1847Y1758D03* 91 | X1846Y408D03* 92 | X1847Y1506D03* 93 | X1198Y408D03* 94 | X1199Y1506D03* 95 | X1198Y660D03* 96 | X1199Y1758D03* 97 | G54D14* 98 | X2197Y309D03* 99 | X2198Y1408D03* 100 | X1547Y309D03* 101 | X1548Y1408D03* 102 | X897Y209D03* 103 | X898Y1308D03* 104 | G54D15* 105 | X247Y560D02* 106 | X428Y559D01* 107 | D02* 108 | X248Y1658D02* 109 | X429Y1658D01* 110 | D02* 111 | X211Y229D02* 112 | X247Y560D01* 113 | D02* 114 | X211Y1328D02* 115 | X248Y1658D01* 116 | D02* 117 | X347Y460D02* 118 | X478Y459D01* 119 | D02* 120 | X348Y1558D02* 121 | X479Y1558D01* 122 | D02* 123 | X346Y229D02* 124 | X347Y460D01* 125 | D02* 126 | X347Y1328D02* 127 | X348Y1558D01* 128 | D02* 129 | X147Y368D02* 130 | X147Y660D01* 131 | D02* 132 | X148Y1466D02* 133 | X148Y1758D01* 134 | D02* 135 | X147Y660D02* 136 | X547Y660D01* 137 | D02* 138 | X148Y1758D02* 139 | X548Y1758D01* 140 | D02* 141 | X547Y660D02* 142 | X547Y578D01* 143 | D02* 144 | X548Y1758D02* 145 | X548Y1677D01* 146 | D02* 147 | X479Y229D02* 148 | X449Y352D01* 149 | D02* 150 | X480Y1327D02* 151 | X450Y1451D01* 152 | D02* 153 | X599Y308D02* 154 | X598Y440D01* 155 | D02* 156 | X599Y1406D02* 157 | X598Y1539D01* 158 | D02* 159 | X617Y229D02* 160 | X599Y308D01* 161 | D02* 162 | X618Y1327D02* 163 | X599Y1406D01* 164 | D02* 165 | X898Y460D02* 166 | X716Y459D01* 167 | D02* 168 | X899Y1558D02* 169 | X717Y1558D01* 170 | D02* 171 | X897Y229D02* 172 | X898Y460D01* 173 | D02* 174 | X898Y1328D02* 175 | X899Y1558D01* 176 | D02* 177 | X791Y560D02* 178 | X666Y559D01* 179 | D02* 180 | X791Y1658D02* 181 | X667Y1658D01* 182 | D02* 183 | X798Y308D02* 184 | X798Y352D01* 185 | D02* 186 | X799Y1406D02* 187 | X799Y1450D01* 188 | D02* 189 | X767Y228D02* 190 | X798Y308D01* 191 | D02* 192 | X768Y1327D02* 193 | X799Y1406D01* 194 | D02* 195 | X1798Y508D02* 196 | X1785Y329D01* 197 | D02* 198 | X1799Y1606D02* 199 | X1786Y1428D01* 200 | D02* 201 | X1929Y553D02* 202 | X1798Y508D01* 203 | D02* 204 | X1930Y1652D02* 205 | X1799Y1606D01* 206 | D02* 207 | X1851Y402D02* 208 | X1910Y325D01* 209 | D02* 210 | X1852Y1500D02* 211 | X1911Y1424D01* 212 | D02* 213 | X1978Y659D02* 214 | X1854Y660D01* 215 | D02* 216 | X1979Y1758D02* 217 | X1855Y1758D01* 218 | D02* 219 | X2046Y408D02* 220 | X2057Y329D01* 221 | D02* 222 | X2047Y1506D02* 223 | X2058Y1428D01* 224 | D02* 225 | X2047Y540D02* 226 | X2046Y408D01* 227 | D02* 228 | X2048Y1638D02* 229 | X2047Y1506D01* 230 | D02* 231 | X2198Y551D02* 232 | X2197Y329D01* 233 | D02* 234 | X2198Y608D02* 235 | X2198Y551D01* 236 | D02* 237 | X2199Y1706D02* 238 | X2198Y1428D01* 239 | D02* 240 | X2114Y651D02* 241 | X2198Y608D01* 242 | D02* 243 | X2115Y1749D02* 244 | X2199Y1706D01* 245 | D02* 246 | X1546Y608D02* 247 | X1547Y329D01* 248 | D02* 249 | X1547Y1706D02* 250 | X1548Y1428D01* 251 | D02* 252 | X1464Y651D02* 253 | X1546Y608D01* 254 | D02* 255 | X1465Y1749D02* 256 | X1547Y1706D01* 257 | D02* 258 | X1398Y408D02* 259 | X1407Y329D01* 260 | D02* 261 | X1399Y1506D02* 262 | X1408Y1428D01* 263 | D02* 264 | X1397Y540D02* 265 | X1398Y408D01* 266 | D02* 267 | X1398Y1639D02* 268 | X1399Y1506D01* 269 | D02* 270 | X1146Y508D02* 271 | X1135Y329D01* 272 | D02* 273 | X1147Y1606D02* 274 | X1136Y1428D01* 275 | D02* 276 | X1279Y553D02* 277 | X1146Y508D01* 278 | D02* 279 | X1280Y1652D02* 280 | X1147Y1606D01* 281 | D02* 282 | X1203Y402D02* 283 | X1260Y325D01* 284 | D02* 285 | X1204Y1500D02* 286 | X1261Y1424D01* 287 | D02* 288 | X1328Y659D02* 289 | X1206Y660D01* 290 | D02* 291 | X1329Y1758D02* 292 | X1207Y1758D01* 293 | G04 End of Copper0* 294 | M02* -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_copperTop.gtl: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.078000*% 12 | %ADD11C,0.079370*% 13 | %ADD12C,0.080000*% 14 | %ADD13C,0.039370*% 15 | %ADD14R,0.080000X0.080000*% 16 | %ADD15C,0.024000*% 17 | %LNCOPPER1*% 18 | G90* 19 | G70* 20 | G54D10* 21 | X647Y559D03* 22 | X547Y559D03* 23 | X447Y559D03* 24 | X648Y1658D03* 25 | X548Y1658D03* 26 | X448Y1658D03* 27 | G54D11* 28 | X2047Y559D03* 29 | X1947Y559D03* 30 | X2048Y1658D03* 31 | X1948Y1658D03* 32 | G54D10* 33 | X2097Y659D03* 34 | X1997Y659D03* 35 | X2098Y1758D03* 36 | X1998Y1758D03* 37 | X1397Y559D03* 38 | X1297Y559D03* 39 | X1398Y1658D03* 40 | X1298Y1658D03* 41 | X1447Y659D03* 42 | X1347Y659D03* 43 | X1448Y1758D03* 44 | X1348Y1758D03* 45 | X697Y459D03* 46 | X597Y459D03* 47 | X497Y459D03* 48 | X698Y1558D03* 49 | X598Y1558D03* 50 | X498Y1558D03* 51 | G54D12* 52 | X2197Y309D03* 53 | X2060Y309D03* 54 | X1922Y309D03* 55 | X1784Y309D03* 56 | X2198Y1408D03* 57 | X2061Y1408D03* 58 | X1923Y1408D03* 59 | X1785Y1408D03* 60 | X1547Y309D03* 61 | X1410Y309D03* 62 | X1272Y309D03* 63 | X1134Y309D03* 64 | X1548Y1408D03* 65 | X1411Y1408D03* 66 | X1273Y1408D03* 67 | X1135Y1408D03* 68 | X897Y209D03* 69 | X760Y209D03* 70 | X622Y209D03* 71 | X484Y209D03* 72 | X346Y209D03* 73 | X208Y209D03* 74 | X898Y1308D03* 75 | X760Y1308D03* 76 | X623Y1308D03* 77 | X485Y1308D03* 78 | X347Y1308D03* 79 | X209Y1308D03* 80 | G54D13* 81 | X447Y360D03* 82 | X448Y1458D03* 83 | X147Y360D03* 84 | X148Y1458D03* 85 | X798Y360D03* 86 | X799Y1458D03* 87 | X798Y560D03* 88 | X799Y1658D03* 89 | X1846Y660D03* 90 | X1847Y1758D03* 91 | X1846Y408D03* 92 | X1847Y1506D03* 93 | X1198Y408D03* 94 | X1199Y1506D03* 95 | X1198Y660D03* 96 | X1199Y1758D03* 97 | G54D14* 98 | X2197Y309D03* 99 | X2198Y1408D03* 100 | X1547Y309D03* 101 | X1548Y1408D03* 102 | X897Y209D03* 103 | X898Y1308D03* 104 | G54D15* 105 | X439Y360D02* 106 | X155Y360D01* 107 | D02* 108 | X440Y1458D02* 109 | X156Y1458D01* 110 | D02* 111 | X798Y368D02* 112 | X798Y552D01* 113 | D02* 114 | X799Y1466D02* 115 | X799Y1650D01* 116 | D02* 117 | X1846Y652D02* 118 | X1846Y416D01* 119 | D02* 120 | X1847Y1750D02* 121 | X1847Y1514D01* 122 | D02* 123 | X1198Y652D02* 124 | X1198Y416D01* 125 | D02* 126 | X1199Y1750D02* 127 | X1199Y1514D01* 128 | G04 End of Copper1* 129 | M02* -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_drill.txt: -------------------------------------------------------------------------------- 1 | ; NON-PLATED HOLES START AT T1 2 | ; THROUGH (PLATED) HOLES START AT T100 3 | M48 4 | INCH 5 | T1C0.039370 6 | T2C0.118110 7 | T100C0.038000 8 | T101C0.039370 9 | T102C0.015748 10 | T103C0.040000 11 | % 12 | T1 13 | X000482Y010579 14 | X011982Y010579 15 | X016982Y010579 16 | X004982Y010579 17 | X008982Y010579 18 | X005482Y010579 19 | X009482Y010579 20 | X024482Y010579 21 | X010982Y010579 22 | X012482Y010579 23 | X003982Y010579 24 | X009982Y010579 25 | X022482Y010579 26 | X006982Y010579 27 | X000982Y010579 28 | X015482Y010579 29 | X019482Y010579 30 | X017982Y010579 31 | X022982Y010579 32 | X021482Y010579 33 | X014482Y010579 34 | X008482Y010579 35 | X016482Y010579 36 | X021982Y010579 37 | X018982Y010579 38 | X017482Y010579 39 | X001482Y010579 40 | X012982Y010579 41 | X013482Y010579 42 | X020982Y010579 43 | X023482Y010579 44 | X007982Y010579 45 | X011482Y010579 46 | X002482Y010579 47 | X004482Y010579 48 | X024982Y010579 49 | X006482Y010579 50 | X007482Y010579 51 | X002982Y010579 52 | X018482Y010579 53 | X003482Y010579 54 | X019982Y010579 55 | X013982Y010579 56 | X020482Y010579 57 | X010482Y010579 58 | X023982Y010579 59 | X001982Y010579 60 | X015982Y010579 61 | X005982Y010579 62 | X014982Y010579 63 | T2 64 | X024482Y020579 65 | X018482Y020079 66 | X014973Y009094 67 | X003482Y019079 68 | X007973Y008094 69 | X000973Y009594 70 | X014982Y020079 71 | X000982Y020579 72 | X018473Y009094 73 | X011982Y020079 74 | X003473Y008094 75 | X007982Y019079 76 | X024473Y009594 77 | X021482Y020079 78 | X021473Y009094 79 | X011973Y009094 80 | T100 81 | X006973Y004594 82 | X005482Y016579 83 | X013482Y017579 84 | X012973Y005594 85 | X005982Y015579 86 | X004973Y004594 87 | X005473Y005594 88 | X014473Y006594 89 | X004482Y016579 90 | X004982Y015579 91 | X006982Y015579 92 | X006482Y016579 93 | X006473Y005594 94 | X014482Y017579 95 | X013473Y006594 96 | X013973Y005594 97 | X020982Y017579 98 | X020973Y006594 99 | X004473Y005594 100 | X013982Y016579 101 | X012982Y016579 102 | X005973Y004594 103 | X019973Y006594 104 | X019982Y017579 105 | T101 106 | X019482Y016579 107 | X020482Y016579 108 | X019473Y005594 109 | X020473Y005594 110 | T102 111 | X004476Y014583 112 | X011991Y017581 113 | X001469Y003598 114 | X018470Y015064 115 | X007993Y014583 116 | X007993Y016582 117 | X007984Y005597 118 | X011991Y015064 119 | X011982Y004079 120 | X018461Y006596 121 | X011982Y006596 122 | X007984Y003598 123 | X018461Y004079 124 | X004467Y003598 125 | X001478Y014583 126 | X018470Y017581 127 | T103 128 | X002093Y013079 129 | X003461Y002094 130 | X015482Y014079 131 | X006226Y013079 132 | X021982Y014079 133 | X004848Y013079 134 | X012727Y014079 135 | X011349Y014079 136 | X017849Y014079 137 | X019227Y014079 138 | X007604Y013079 139 | X014105Y014079 140 | X007595Y002094 141 | X014095Y003094 142 | X019217Y003094 143 | X012717Y003094 144 | X003471Y013079 145 | X015473Y003094 146 | X020595Y003094 147 | X008982Y013079 148 | X011339Y003094 149 | X020605Y014079 150 | X004839Y002094 151 | X006217Y002094 152 | X021973Y003094 153 | X002083Y002094 154 | X017839Y003094 155 | X008973Y002094 156 | T00 157 | M30 158 | -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_maskBottom.gbs: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.049370*% 12 | %ADD11C,0.088000*% 13 | %ADD12C,0.089370*% 14 | %ADD13C,0.090000*% 15 | %ADD14C,0.128110*% 16 | %ADD15R,0.090000X0.090000*% 17 | %LNMASK0*% 18 | G90* 19 | G70* 20 | G54D10* 21 | X148Y1058D03* 22 | X98Y1058D03* 23 | X48Y1058D03* 24 | X398Y1058D03* 25 | X198Y1058D03* 26 | X248Y1058D03* 27 | X348Y1058D03* 28 | X298Y1058D03* 29 | X448Y1058D03* 30 | X698Y1058D03* 31 | X498Y1058D03* 32 | X548Y1058D03* 33 | X648Y1058D03* 34 | X598Y1058D03* 35 | X748Y1058D03* 36 | X998Y1058D03* 37 | X798Y1058D03* 38 | X848Y1058D03* 39 | X948Y1058D03* 40 | X898Y1058D03* 41 | X1048Y1058D03* 42 | X1298Y1058D03* 43 | X1098Y1058D03* 44 | X1148Y1058D03* 45 | X1248Y1058D03* 46 | X1198Y1058D03* 47 | X1348Y1058D03* 48 | X1598Y1058D03* 49 | X1398Y1058D03* 50 | X1448Y1058D03* 51 | X1548Y1058D03* 52 | X1498Y1058D03* 53 | X1648Y1058D03* 54 | X1898Y1058D03* 55 | X1698Y1058D03* 56 | X1748Y1058D03* 57 | X1848Y1058D03* 58 | X1798Y1058D03* 59 | X1948Y1058D03* 60 | X2198Y1058D03* 61 | X1998Y1058D03* 62 | X2048Y1058D03* 63 | X2148Y1058D03* 64 | X2098Y1058D03* 65 | X2248Y1058D03* 66 | X2348Y1058D03* 67 | X2298Y1058D03* 68 | X2398Y1058D03* 69 | X2448Y1058D03* 70 | X2498Y1058D03* 71 | G54D11* 72 | X647Y559D03* 73 | X547Y559D03* 74 | X447Y559D03* 75 | X648Y1658D03* 76 | X548Y1658D03* 77 | X448Y1658D03* 78 | G54D12* 79 | X2047Y559D03* 80 | X1947Y559D03* 81 | X2048Y1658D03* 82 | X1948Y1658D03* 83 | G54D11* 84 | X2097Y659D03* 85 | X1997Y659D03* 86 | X2098Y1758D03* 87 | X1998Y1758D03* 88 | X1397Y559D03* 89 | X1297Y559D03* 90 | X1398Y1658D03* 91 | X1298Y1658D03* 92 | X1447Y659D03* 93 | X1347Y659D03* 94 | X1448Y1758D03* 95 | X1348Y1758D03* 96 | X697Y459D03* 97 | X597Y459D03* 98 | X497Y459D03* 99 | X698Y1558D03* 100 | X598Y1558D03* 101 | X498Y1558D03* 102 | G54D13* 103 | X2197Y309D03* 104 | X2060Y309D03* 105 | X1922Y309D03* 106 | X1784Y309D03* 107 | X2198Y1408D03* 108 | X2061Y1408D03* 109 | X1923Y1408D03* 110 | X1785Y1408D03* 111 | X1547Y309D03* 112 | X1410Y309D03* 113 | X1272Y309D03* 114 | X1134Y309D03* 115 | X1548Y1408D03* 116 | X1411Y1408D03* 117 | X1273Y1408D03* 118 | X1135Y1408D03* 119 | X897Y209D03* 120 | X760Y209D03* 121 | X622Y209D03* 122 | X484Y209D03* 123 | X346Y209D03* 124 | X208Y209D03* 125 | X898Y1308D03* 126 | X760Y1308D03* 127 | X623Y1308D03* 128 | X485Y1308D03* 129 | X347Y1308D03* 130 | X209Y1308D03* 131 | G54D14* 132 | X347Y809D03* 133 | X348Y1908D03* 134 | X797Y809D03* 135 | X798Y1908D03* 136 | X1197Y909D03* 137 | X1198Y2008D03* 138 | X1497Y909D03* 139 | X1498Y2008D03* 140 | X1847Y909D03* 141 | X1848Y2008D03* 142 | X2147Y909D03* 143 | X2148Y2008D03* 144 | X97Y959D03* 145 | X98Y2058D03* 146 | X2447Y959D03* 147 | X2448Y2058D03* 148 | G54D10* 149 | X447Y360D03* 150 | X448Y1458D03* 151 | X147Y360D03* 152 | X148Y1458D03* 153 | X798Y360D03* 154 | X799Y1458D03* 155 | X798Y560D03* 156 | X799Y1658D03* 157 | X1846Y660D03* 158 | X1847Y1758D03* 159 | X1846Y408D03* 160 | X1847Y1506D03* 161 | X1198Y408D03* 162 | X1199Y1506D03* 163 | X1198Y660D03* 164 | X1199Y1758D03* 165 | G54D15* 166 | X2197Y309D03* 167 | X2198Y1408D03* 168 | X1547Y309D03* 169 | X1548Y1408D03* 170 | X897Y209D03* 171 | X898Y1308D03* 172 | G04 End of Mask0* 173 | M02* -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_maskTop.gts: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10C,0.049370*% 12 | %ADD11C,0.088000*% 13 | %ADD12C,0.089370*% 14 | %ADD13C,0.090000*% 15 | %ADD14C,0.128110*% 16 | %ADD15R,0.090000X0.090000*% 17 | %LNMASK1*% 18 | G90* 19 | G70* 20 | G54D10* 21 | X148Y1058D03* 22 | X98Y1058D03* 23 | X48Y1058D03* 24 | X398Y1058D03* 25 | X198Y1058D03* 26 | X248Y1058D03* 27 | X348Y1058D03* 28 | X298Y1058D03* 29 | X448Y1058D03* 30 | X698Y1058D03* 31 | X498Y1058D03* 32 | X548Y1058D03* 33 | X648Y1058D03* 34 | X598Y1058D03* 35 | X748Y1058D03* 36 | X998Y1058D03* 37 | X798Y1058D03* 38 | X848Y1058D03* 39 | X948Y1058D03* 40 | X898Y1058D03* 41 | X1048Y1058D03* 42 | X1298Y1058D03* 43 | X1098Y1058D03* 44 | X1148Y1058D03* 45 | X1248Y1058D03* 46 | X1198Y1058D03* 47 | X1348Y1058D03* 48 | X1598Y1058D03* 49 | X1398Y1058D03* 50 | X1448Y1058D03* 51 | X1548Y1058D03* 52 | X1498Y1058D03* 53 | X1648Y1058D03* 54 | X1898Y1058D03* 55 | X1698Y1058D03* 56 | X1748Y1058D03* 57 | X1848Y1058D03* 58 | X1798Y1058D03* 59 | X1948Y1058D03* 60 | X2198Y1058D03* 61 | X1998Y1058D03* 62 | X2048Y1058D03* 63 | X2148Y1058D03* 64 | X2098Y1058D03* 65 | X2248Y1058D03* 66 | X2348Y1058D03* 67 | X2298Y1058D03* 68 | X2398Y1058D03* 69 | X2448Y1058D03* 70 | X2498Y1058D03* 71 | G54D11* 72 | X647Y559D03* 73 | X547Y559D03* 74 | X447Y559D03* 75 | X648Y1658D03* 76 | X548Y1658D03* 77 | X448Y1658D03* 78 | G54D12* 79 | X2047Y559D03* 80 | X1947Y559D03* 81 | X2048Y1658D03* 82 | X1948Y1658D03* 83 | G54D11* 84 | X2097Y659D03* 85 | X1997Y659D03* 86 | X2098Y1758D03* 87 | X1998Y1758D03* 88 | X1397Y559D03* 89 | X1297Y559D03* 90 | X1398Y1658D03* 91 | X1298Y1658D03* 92 | X1447Y659D03* 93 | X1347Y659D03* 94 | X1448Y1758D03* 95 | X1348Y1758D03* 96 | X697Y459D03* 97 | X597Y459D03* 98 | X497Y459D03* 99 | X698Y1558D03* 100 | X598Y1558D03* 101 | X498Y1558D03* 102 | G54D13* 103 | X2197Y309D03* 104 | X2060Y309D03* 105 | X1922Y309D03* 106 | X1784Y309D03* 107 | X2198Y1408D03* 108 | X2061Y1408D03* 109 | X1923Y1408D03* 110 | X1785Y1408D03* 111 | X1547Y309D03* 112 | X1410Y309D03* 113 | X1272Y309D03* 114 | X1134Y309D03* 115 | X1548Y1408D03* 116 | X1411Y1408D03* 117 | X1273Y1408D03* 118 | X1135Y1408D03* 119 | X897Y209D03* 120 | X760Y209D03* 121 | X622Y209D03* 122 | X484Y209D03* 123 | X346Y209D03* 124 | X208Y209D03* 125 | X898Y1308D03* 126 | X760Y1308D03* 127 | X623Y1308D03* 128 | X485Y1308D03* 129 | X347Y1308D03* 130 | X209Y1308D03* 131 | G54D14* 132 | X347Y809D03* 133 | X348Y1908D03* 134 | X797Y809D03* 135 | X798Y1908D03* 136 | X1197Y909D03* 137 | X1198Y2008D03* 138 | X1497Y909D03* 139 | X1498Y2008D03* 140 | X1847Y909D03* 141 | X1848Y2008D03* 142 | X2147Y909D03* 143 | X2148Y2008D03* 144 | X97Y959D03* 145 | X98Y2058D03* 146 | X2447Y959D03* 147 | X2448Y2058D03* 148 | G54D10* 149 | X447Y360D03* 150 | X448Y1458D03* 151 | X147Y360D03* 152 | X148Y1458D03* 153 | X798Y360D03* 154 | X799Y1458D03* 155 | X798Y560D03* 156 | X799Y1658D03* 157 | X1846Y660D03* 158 | X1847Y1758D03* 159 | X1846Y408D03* 160 | X1847Y1506D03* 161 | X1198Y408D03* 162 | X1199Y1506D03* 163 | X1198Y660D03* 164 | X1199Y1758D03* 165 | G54D15* 166 | X2197Y309D03* 167 | X2198Y1408D03* 168 | X1547Y309D03* 169 | X1548Y1408D03* 170 | X897Y209D03* 171 | X898Y1308D03* 172 | G04 End of Mask1* 173 | M02* -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_pnp.txt: -------------------------------------------------------------------------------- 1 | *Pick And Place List 2 | *Company= 3 | *Author= 4 | *eMail= 5 | * 6 | *Project=ConnectorBreakout 7 | *Date=19:27:29 8 | *CreatedBy=Fritzing 0.9.9b.2021-09-22.CD-348-0-f0af53a9 9 | * 10 | * 11 | *Coordinates in mm, always center of component 12 | *Origin 0/0=Lower left corner of PCB 13 | *Rotation in degree (0-360, math. pos.) 14 | * 15 | *No;Value;Package;X;Y;Rotation;Side;Name 16 | 1;;;25.3563;-26.8719;0;Bottom;Hole52 17 | 2;;;11.3863;-26.8719;0;Bottom;Hole59 18 | 3;;;43.1363;-26.8719;0;Bottom;Hole33 19 | 4;;;32.9763;-26.8719;0;Bottom;Hole46 20 | 5;;;8.84633;-26.8719;0;Bottom;Hole61 21 | 6;;;54.5433;-23.1002;0;Bottom;Hole14 22 | 7;;;24.0863;-26.8719;0;Bottom;Hole49 23 | 8;;THT;34.1804;-7.35216;90;Bottom;AA' BB'2 24 | 9;;;20.3043;-42.1188;0;Bottom;Via8 25 | 10;;;57.1063;-26.8719;0;Bottom;Hole23 26 | 11;;;7.57641;-26.8719;0;Bottom;Hole60 27 | 12;;;6.30641;-26.8719;0;Bottom;Hole62 28 | 13;;;1.2265;-26.8719;0;Bottom;Hole83 29 | 14;;;36.7863;-26.8719;0;Bottom;Hole38 30 | 15;;THT;13.9033;-14.2102;90;Bottom; 31 | 16;;;38.0563;-26.8719;0;Bottom;Hole36 32 | 17;;;20.2811;-14.2171;0;Bottom;Via16 33 | 18;;;34.2463;-26.8719;0;Bottom;Hole41 34 | 19;;;54.5663;-26.8719;0;Bottom;Hole25 35 | 20;;;3.75476;-37.0411;0;Bottom;Via6 36 | 21;;;11.3714;-37.0411;0;Bottom;Via5 37 | 22;;THT;34.2464;-42.1118;90;Bottom; 38 | 23;;THT;34.2035;-35.2538;90;Bottom;AA' BB' 39 | 24;;;20.2811;-9.13932;0;Bottom;Via15 40 | 25;;;2.47336;-24.3702;0;Bottom;Hole15 41 | 26;;;8.82328;-20.5602;0;Bottom;Hole9 42 | 27;;THT;50.7333;-14.2102;90;Bottom; 43 | 28;;;11.3482;-9.13932;0;Bottom;Via13 44 | 29;;THT;52.0033;-16.7502;90;Bottom; 45 | 30;;;38.0333;-23.1002;0;Bottom;Hole12 46 | 31;;;58.3763;-26.8719;0;Bottom;Hole21 47 | 32;;;43.1779;-47.5283;0;Bottom;TXT2 48 | 33;;;48.2163;-26.8719;0;Bottom;Hole34 49 | 34;;;30.4364;-51.0018;0;Bottom;Hole4 50 | 35;;;30.4363;-26.8719;0;Bottom;Hole42 51 | 36;;;3.76641;-26.8719;0;Bottom;Hole86 52 | 37;;;30.4595;-38.2636;0;Bottom;Via11 53 | 38;;;63.4563;-26.8719;0;Bottom;Hole18 54 | 39;;THT;35.4933;-16.7502;90;Bottom; 55 | 40;;THT;15.1964;-39.5718;90;Bottom; 56 | 41;;;12.6563;-26.8719;0;Bottom;Hole57 57 | 42;;;55.8363;-26.8719;0;Bottom;Hole28 58 | 43;;;62.1863;-26.8719;0;Bottom;Hole19 59 | 44;;;5.03641;-26.8719;0;Bottom;Hole63 60 | 45;;;22.8163;-26.8719;0;Bottom;Hole48 61 | 46;;;49.4863;-26.8719;0;Bottom;Hole29 62 | 47;;;53.2963;-26.8719;0;Bottom;Hole24 63 | 48;;THT;14.1703;-4.81199;90;Bottom;1 64 | 49;;;2.49642;-52.2718;0;Bottom;Hole8 65 | 50;;;40.5963;-26.8719;0;Bottom;Hole40 66 | 51;;THT;34.2233;-14.2102;90;Bottom; 67 | 52;;;46.9463;-26.8719;0;Bottom;Hole31 68 | 53;;THT;15.1733;-11.6702;90;Bottom; 69 | 54;;THT;13.9264;-42.1118;90;Bottom; 70 | 55;;;17.7363;-26.8719;0;Bottom;Hole58 71 | 56;;;10.1163;-26.8719;0;Bottom;Hole64 72 | 57;;;15.1963;-26.8719;0;Bottom;Hole54 73 | 58;;;52.0263;-26.8719;0;Bottom;Hole26 74 | 59;;;46.9464;-51.0018;0;Bottom;Hole2 75 | 60;;;30.4363;-10.3619;0;Bottom;Via19 76 | 61;;;41.8663;-26.8719;0;Bottom;Hole35 77 | 62;;THT;14.1934;-32.7138;90;Bottom;1 78 | 63;;;54.5664;-51.0018;0;Bottom;Hole1 79 | 64;;;50.7563;-26.8719;0;Bottom;Hole27 80 | 65;;;39.3263;-26.8719;0;Bottom;Hole37 81 | 66;;;20.2763;-26.8719;0;Bottom;Hole51 82 | 67;;THT;35.5164;-44.6518;90;Bottom; 83 | 68;;THT;50.6904;-7.35216;90;Bottom;AA' BB'1 84 | 69;;;44.4063;-26.8719;0;Bottom;Hole32 85 | 70;;;35.5163;-26.8719;0;Bottom;Hole39 86 | 71;;;20.2764;-48.4618;0;Bottom;Hole5 87 | 72;;;2.49641;-26.8719;0;Bottom;Hole85 88 | 73;;;14.3707;-45.145;0;Bottom;TXT1 89 | 74;;;62.1864;-52.2718;0;Bottom;Hole7 90 | 75;;;21.5463;-26.8719;0;Bottom;Hole50 91 | 76;;;38.0564;-51.0018;0;Bottom;Hole3 92 | 77;;;31.7063;-26.8719;0;Bottom;Hole43 93 | 78;;;45.6763;-26.8719;0;Bottom;Hole30 94 | 79;;;62.1633;-24.3702;0;Bottom;Hole16 95 | 80;;;20.3043;-37.0411;0;Bottom;Via7 96 | 81;;;30.4133;-23.1002;0;Bottom;Hole11 97 | 82;;THT;50.7135;-35.2538;90;Bottom;AA' BB' 98 | 83;;;20.2533;-20.5602;0;Bottom;Hole10 99 | 84;;;59.6463;-26.8719;0;Bottom;Hole22 100 | 85;;;46.915;-44.6576;0;Bottom;Via9 101 | 86;;;30.4363;-16.7559;0;Bottom;Via20 102 | 87;;;3.7317;-9.13932;0;Bottom;Via14 103 | 88;;THT;50.7564;-42.1118;90;Bottom; 104 | 89;;;8.84642;-48.4618;0;Bottom;Hole6 105 | 90;;;27.8963;-26.8719;0;Bottom;Hole45 106 | 91;;;26.6263;-26.8719;0;Bottom;Hole47 107 | 92;;;29.1663;-26.8719;0;Bottom;Hole44 108 | 93;;;46.9233;-23.1002;0;Bottom;Hole13 109 | 94;;THT;52.0264;-44.6518;90;Bottom; 110 | 95;;;30.4595;-44.6576;0;Bottom;Via12 111 | 96;;;46.915;-38.2636;0;Bottom;Via10 112 | 97;;;46.8919;-16.7559;0;Bottom;Via17 113 | 98;;;60.9163;-26.8719;0;Bottom;Hole20 114 | 99;;;19.0063;-26.8719;0;Bottom;Hole53 115 | 100;;;13.9263;-26.8719;0;Bottom;Hole56 116 | 101;;;16.4663;-26.8719;0;Bottom;Hole55 117 | 102;;;46.8919;-10.3619;0;Bottom;Via18 118 | -------------------------------------------------------------------------------- /Hardware/ConnectorBreakout/Gerber/ConnectorBreakout_silkBottom.gbo: -------------------------------------------------------------------------------- 1 | G04 MADE WITH FRITZING* 2 | G04 WWW.FRITZING.ORG* 3 | G04 DOUBLE SIDED* 4 | G04 HOLES PLATED* 5 | G04 CONTOUR ON CENTER OF CONTOUR VECTOR* 6 | %ASAXBY*% 7 | %FSLAX23Y23*% 8 | %MOIN*% 9 | %OFA0B0*% 10 | %SFA1.0B1.0*% 11 | %ADD10R,2.559060X2.165350X2.543060X2.149350*% 12 | %ADD11C,0.008000*% 13 | %LNSILK0*% 14 | G90* 15 | G70* 16 | G54D11* 17 | X4Y2161D02* 18 | X2555Y2161D01* 19 | X2555Y4D01* 20 | X4Y4D01* 21 | X4Y2161D01* 22 | D02* 23 | G04 End of Silk0* 24 | M02* -------------------------------------------------------------------------------- /Hardware/Docs/LX200CommandSet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/Docs/LX200CommandSet.pdf -------------------------------------------------------------------------------- /Hardware/Docs/Taki_matrix_method_rev_e.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/Docs/Taki_matrix_method_rev_e.pdf -------------------------------------------------------------------------------- /Hardware/FocusMotors/Focusstepper_Test/Focusstepper_Test.ino: -------------------------------------------------------------------------------- 1 | #include 2 | AccelStepper raStepper(AccelStepper::DRIVER,3,2); // pin 3 connected to STEP, pin 2 connected to DIR 3 | AccelStepper deStepper(AccelStepper::DRIVER,5,4); // pin 5 connected to STEP, pin 4 connected to DIR 4 | 5 | struct kinematicParametersStruct { 6 | long steps; 7 | long maxSpeed; 8 | long acceleration; 9 | }; 10 | 11 | struct kinematicParametersStruct raDriveParams; 12 | struct kinematicParametersStruct deDriveParams; 13 | 14 | //-------------------------------------------------------- 15 | 16 | void setup() { 17 | pinMode(8,OUTPUT); // connected to M0 18 | pinMode(7,OUTPUT); // connected to M1 19 | pinMode(6,OUTPUT); // connected to M2 of the drv 8825 - sets microstepping for both drives 20 | pinMode(A0, OUTPUT); 21 | pinMode(A1,OUTPUT); 22 | digitalWrite(A0, LOW); 23 | digitalWrite(A1, LOW); 24 | digitalWrite(8,HIGH); 25 | digitalWrite(7,LOW); 26 | digitalWrite(6,LOW); // LLL=full, HLL=half,LHL=1/4,HHL=1/8,LLH=1/16,HLH=LHH=HHH=1/32 for the DRV8825 27 | 28 | raDriveParams.steps = 3000; 29 | raDriveParams.maxSpeed = 300; 30 | raDriveParams.acceleration = 300; 31 | deDriveParams.steps = 3000; 32 | deDriveParams.maxSpeed = 300; 33 | deDriveParams.acceleration = 300; 34 | 35 | raStepper.setMaxSpeed(raDriveParams.maxSpeed); 36 | raStepper.setAcceleration(raDriveParams.acceleration); 37 | raStepper.moveTo(raDriveParams.steps); 38 | deStepper.setMaxSpeed(deDriveParams.maxSpeed); 39 | deStepper.setAcceleration(deDriveParams.acceleration); 40 | deStepper.moveTo(deDriveParams.steps); 41 | } 42 | 43 | //--------------------------------------------------------- 44 | 45 | void loop() { 46 | raStepper.run(); 47 | deStepper.run(); 48 | if (raStepper.isRunning() == false) { 49 | raDriveParams.steps *= -1; 50 | raStepper.moveTo(raDriveParams.steps); 51 | } 52 | if (deStepper.isRunning() == false) { 53 | deDriveParams.steps *= -1; 54 | deStepper.moveTo(deDriveParams.steps); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Hardware/FocusMotors/MotorBoard.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/FocusMotors/MotorBoard.fzz -------------------------------------------------------------------------------- /Hardware/FocusMotors/TheTSCStepperProtocol: -------------------------------------------------------------------------------- 1 | Communications protocol for the Focusmotorboards 2 | W. Birkfellner, Nov. 2017, V. 0.1 3 | 4 | The stepperboards for TSC communicate via SPI or USB betwwen the Raspberry and 5 | the microcontrollers running the steppers with the AccelStepper library. 6 | so far the commands are transmitted as characters, following the convention: 7 | xyzzzzzz... 8 | where x is a character denoting the action to be taken, y is a number between 9 | 0 and 4, where therse are literals, and zzzzzz... is a string of bytes that 10 | is converted to a long integer. 11 | 12 | An example: 13 | "a1200" sets the acceleration (denoted by 'a') of the second drive ('1' instead 14 | of '0') to 200 microsteps per second. 15 | 16 | Commands that apply to all drives (such as the number of microsteps, 17 | which can only be set for both drivers) are issued 18 | without the second byte. 19 | 20 | In general, parameters have to be set, then the drive is enabled, and then it should start. 21 | Once a motion is finished, the drive is being automatically disabled. 22 | 23 | Command set: 24 | To enable or disable drives: 25 | 'exy' ... where x is the number of the drive ('0' or '1' for the focus-driver board) 26 | and y is a boolean - 1 means enable the drive (that is, power the coils up), and 27 | 0 means "disable". 28 | 29 | Setting the acceleration: 30 | axyyyyy ... where x is the number of the drive and yyyy is a long integer for the 31 | acceleration in microsteps/^2. 32 | 33 | Setting microsteps: 34 | Microsteps can only be set for groups of two drives, the command is 35 | m xxx ... xxx is either 001, 002, 004, 008, 016, 032, 064 or 128. This is the 36 | nominator of the ratio of microstepping. For instance "m 008" sets both drivers 37 | to 1/8 microstepping. 38 | 39 | Setting final velocity: 40 | vxyyyy ... where x is the drive as usual and yyyy is a long integer for microsteps/s, 41 | which is the end velocity. 42 | 43 | Setting the number of steps: 44 | sxyyy ... again, x is the driver and yyy is the number of microsteps 45 | 46 | Checking whether a board is connected: 47 | t ... this command responds with 'D', '0', '1' or 'B'. 'D' is short for the 48 | DRV 8825 and both drives are inactive. If both are running, one gets a 'B', otherwise 49 | the numeral for the active drive is sent. If 'D' is returned when 't' was sent, 50 | a board is connected. 51 | 52 | Stop a drive: 53 | xy ... y is the address of the drive. 54 | 55 | Start a drive: 56 | oy ... y is the drive. Steps, acceleration, microstepping and velocity have to 57 | be defined, and the drives have to be enabled. 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Hardware/TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox.fzz -------------------------------------------------------------------------------- /Hardware/TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Drilling_Template.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Drilling_Template.pdf -------------------------------------------------------------------------------- /Hardware/TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Faceplate.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/TCP_Handbox/TCP_Handbox_AdafruitFeather/TCP_Handbox_Faceplate.pdf -------------------------------------------------------------------------------- /Hardware/TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/TCP_Handbox/TCP_Handbox_LOLIND32Pro/TCP_Handbox.fzz -------------------------------------------------------------------------------- /Hardware/TSC_PartsList.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/TSC_PartsList.ods -------------------------------------------------------------------------------- /Hardware/TSC_PartsList.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/TSC_PartsList.xls -------------------------------------------------------------------------------- /Hardware/obsolete/BluetoothHandbox/HandboxV1_2.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/obsolete/BluetoothHandbox/HandboxV1_2.fzz -------------------------------------------------------------------------------- /Hardware/obsolete/BluetoothHandbox/sketch_handbox_TSC/sketch_handbox_TSC.ino: -------------------------------------------------------------------------------- 1 | // arduino sketch for the wireless handbox of TSC. W. Birkfellner 2017 2 | #include 3 | int nSwitch = LOW; // move north button 4 | int eSwitch = LOW; 5 | int sSwitch = LOW; 6 | int wSwitch = LOW; 7 | int ffull = LOW; 8 | int f5th = LOW; 9 | int f20th = LOW; 10 | int speedSwitch; 11 | int fSelect; 12 | int fFwd; 13 | int switchStateChanged = 0; 14 | SoftwareSerial tscHB(7,8); //RX, TX 15 | 16 | void setup() { 17 | // put your setup code here, to run once: 18 | pinMode(4,INPUT); // north 19 | pinMode(5,INPUT); // east 20 | pinMode(3,INPUT); // south 21 | pinMode(2,INPUT); // west 22 | pinMode(A0, INPUT); // full focuser step 23 | pinMode(7, INPUT); // 1/5 focuser step 24 | pinMode(6, INPUT); // 1/20 focuser step 25 | pinMode(A3,INPUT); // speed selection switch 26 | pinMode(A2, INPUT); // select focuser drive 27 | pinMode(A1, INPUT); // select focuser direction 28 | if (digitalRead(A3) == LOW) { 29 | speedSwitch=LOW; 30 | } else { 31 | speedSwitch=HIGH; 32 | } 33 | if (digitalRead(A2) == LOW) { 34 | fSelect=LOW; 35 | } else { 36 | fSelect=HIGH; 37 | } 38 | if (digitalRead(A1) == LOW) { 39 | fFwd=LOW; 40 | } else { 41 | fFwd=HIGH; 42 | } 43 | 44 | Serial.begin(9600); 45 | while (!Serial) {} 46 | tscHB.begin(9600); 47 | // while (!tscHB) {} 48 | } 49 | 50 | void loop() { 51 | if (digitalRead(4) != nSwitch) { 52 | nSwitch = digitalRead(4); 53 | switchStateChanged=1; 54 | } 55 | if (digitalRead(5) != eSwitch) { 56 | eSwitch = digitalRead(5); 57 | switchStateChanged=1; 58 | } 59 | if (digitalRead(3) != sSwitch) { 60 | sSwitch = digitalRead(3); 61 | switchStateChanged=1; 62 | } 63 | if (digitalRead(2) != wSwitch) { 64 | wSwitch = digitalRead(2); 65 | switchStateChanged=1; 66 | } 67 | if (digitalRead(A3) != speedSwitch) { 68 | speedSwitch = digitalRead(A3); 69 | switchStateChanged=1; 70 | } 71 | if (digitalRead(A2) != fSelect) { 72 | fSelect = digitalRead(A2); 73 | switchStateChanged=1; 74 | } 75 | if (digitalRead(A1) != fFwd) { 76 | fFwd = digitalRead(A1); 77 | switchStateChanged=1; 78 | } 79 | if (digitalRead(A0) != ffull) { 80 | ffull = digitalRead(A0); 81 | switchStateChanged=1; 82 | } 83 | if (digitalRead(7) != f5th) { 84 | f5th = digitalRead(7); 85 | switchStateChanged=1; 86 | } 87 | if (digitalRead(6) != f20th) { 88 | f20th = digitalRead(6); 89 | switchStateChanged=1; 90 | } 91 | 92 | if (switchStateChanged == 1) { 93 | Serial.print(nSwitch); 94 | Serial.print(eSwitch); 95 | Serial.print(sSwitch); 96 | Serial.print(wSwitch); 97 | Serial.print(speedSwitch); 98 | Serial.print(fSelect); 99 | Serial.print(fFwd); 100 | Serial.print(ffull); 101 | Serial.print(f5th); 102 | Serial.println(f20th); 103 | tscHB.print(nSwitch); 104 | tscHB.print(eSwitch); 105 | tscHB.print(sSwitch); 106 | tscHB.print(wSwitch); 107 | tscHB.print(speedSwitch); 108 | tscHB.print(fSelect); 109 | tscHB.print(fFwd); 110 | tscHB.print(ffull); 111 | tscHB.print(f5th); 112 | tscHB.println(f20th); 113 | } 114 | delay(50); 115 | switchStateChanged=0; 116 | } 117 | -------------------------------------------------------------------------------- /Hardware/obsolete/TSC_PiHat_ILD_V1_5.1.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/obsolete/TSC_PiHat_ILD_V1_5.1.fzz -------------------------------------------------------------------------------- /Hardware/obsolete/Teensy3_5/AMIS30543_Teensy_1_3.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/obsolete/Teensy3_5/AMIS30543_Teensy_1_3.fzz -------------------------------------------------------------------------------- /Hardware/obsolete/USB_TSC_TeensySlave/Bigger4DriveBoardV1.1.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Hardware/obsolete/USB_TSC_TeensySlave/Bigger4DriveBoardV1.1.fzz -------------------------------------------------------------------------------- /Hardware/obsolete/USB_TSC_TeensySlave/DRVTeensyTest.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | AccelStepper deStepper(AccelStepper::DRIVER,A4,A5); 4 | AccelStepper raStepper(AccelStepper::DRIVER,A7,A8); 5 | AccelStepper aux1Stepper(AccelStepper::DRIVER,A18,A19); 6 | AccelStepper aux2Stepper(AccelStepper::DRIVER,A13,A12); 7 | 8 | 9 | void setup() { 10 | Serial.begin(115200); 11 | 12 | pinMode(A0,OUTPUT);// enable de 13 | digitalWrite(A0,HIGH); 14 | pinMode(A6,OUTPUT);// enable ra 15 | digitalWrite(A0,HIGH); 16 | pinMode(A14,OUTPUT);// enable aux1 17 | digitalWrite(A14,HIGH); 18 | pinMode(A20,OUTPUT); //enable aux2 19 | digitalWrite(A20,HIGH); 20 | 21 | pinMode(A1,OUTPUT); // connected to M0 22 | pinMode(A2,OUTPUT); // connected to M1 23 | pinMode(A3, OUTPUT);// connected to M2 of the drv 8825 - sets microstepping for both main drives 24 | digitalWrite(A1,HIGH); 25 | digitalWrite(A2,HIGH); 26 | digitalWrite(A3,LOW); // LLL=full, HLL=half,LHL=1/4,HHL=1/8,LLH=1/16,HLH=LHH=HHH=1/32 for the DRV8825 27 | 28 | pinMode(A15,OUTPUT); // connected to M0 29 | pinMode(A16,OUTPUT); // connected to M1 30 | pinMode(A17, OUTPUT);// connected to M2 of the drv 8825 - sets microstepping for both aux drives 31 | digitalWrite(A15,HIGH); 32 | digitalWrite(A16,HIGH); 33 | digitalWrite(A17,LOW); // LLL=full, HLL=half,LHL=1/4,HHL=1/8,LLH=1/16,HLH=LHH=HHH=1/32 for the DRV8825 34 | 35 | deStepper.setMaxSpeed(2000); 36 | deStepper.setAcceleration(3000); 37 | deStepper.setCurrentPosition(0); 38 | digitalWrite(A0,LOW); 39 | deStepper.moveTo(50000); 40 | 41 | raStepper.setMaxSpeed(2000); 42 | raStepper.setAcceleration(3000); 43 | raStepper.setCurrentPosition(0); 44 | digitalWrite(A6,LOW); 45 | raStepper.moveTo(50000); 46 | 47 | aux1Stepper.setMaxSpeed(2000); 48 | aux1Stepper.setAcceleration(2000); 49 | aux1Stepper.setCurrentPosition(0); 50 | digitalWrite(A14,LOW); 51 | aux1Stepper.moveTo(50000); 52 | 53 | aux2Stepper.setMaxSpeed(2000); 54 | aux2Stepper.setAcceleration(2000); 55 | aux2Stepper.setCurrentPosition(0); 56 | digitalWrite(A20,LOW); 57 | aux2Stepper.moveTo(50000); 58 | } 59 | 60 | void loop() { 61 | deStepper.run(); 62 | raStepper.run(); 63 | aux1Stepper.run(); 64 | aux2Stepper.run(); 65 | if (aux2Stepper.isRunning() == false) { 66 | digitalWrite(A20,HIGH); 67 | } 68 | if (aux1Stepper.isRunning() == false) { 69 | digitalWrite(A14,HIGH); 70 | Serial.println("A14 is HIGH"); 71 | } 72 | if (deStepper.isRunning() == false) { 73 | digitalWrite(A0,HIGH); 74 | } 75 | if (raStepper.isRunning() == false) { 76 | digitalWrite(A6,HIGH); 77 | } 78 | 79 | } 80 | -------------------------------------------------------------------------------- /Hardware/obsolete/USB_TSC_TeensySlave/TheTSCStepperProtocolForTheQuadDriverBoard: -------------------------------------------------------------------------------- 1 | Communications protocol for the Quad-Driver motorboard 2 | W. Birkfellner, Dec. 2017, V. 0.1 3 | 4 | The Quad-stepperboards communicate via USB between the host computer and 5 | the Teensy 3.6 running the steppers with the AccelStepper library. 6 | so far the commands are transmitted as characters, following the convention: 7 | xyzzzzzz... 8 | where x is a character denoting the action to be taken, y is a number between 9 | 0 and 4, where therse are literals, and zzzzzz... is a string of bytes that 10 | is converted to a long integer. 11 | 12 | An example: 13 | "a1200" sets the acceleration (denoted by 'a') of the second drive ('1' instead 14 | of '0') to 200 microsteps per second. 15 | 16 | Commands that apply to all drives (such as the request for the drive state) are given without additional bytes 17 | 18 | In general, parameters have to be set, then the drive is enabled, and then ist should start. 19 | Once a motion is finished, the drive is being automatically disabled. 20 | 21 | Command set: 22 | To enable or disable drives: 23 | 'exy' ... where x is the number of the drive ('0' or '1' for the focus-driver board) 24 | and y is a boolean - 1 means enable the drive (that is, power the coils up), and 25 | 0 means "disable". 26 | 27 | Setting the acceleration: 28 | axyyyyy ... where x is the number of the drive and yyyy is a long integer for the 29 | acceleration in microsteps/^2. 30 | 31 | Setting microsteps: 32 | Microsteps can only be set for groups of two drives, the command is 33 | mxyyy ... x is 0 or 1, in dependence of the drive group (main drives are 0, aux drives are 1) 34 | xxx is either 001, 002, 004, 008, 016, 032, 064 or 128. This is the 35 | nominator of the ratio of microstepping. For instance "m0008" sets both drivers for the main drives 36 | to 1/8 microstepping. 37 | 38 | Setting final velocity: 39 | vxyyyy ... where x is the drive as usual and yyyy is a long integer for microsteps/s, 40 | which is the end velocity. 41 | 42 | Setting the number of steps: 43 | sxyyy ... again, x is the driver and yyy is the number of microsteps 44 | 45 | Checking whether a board is connected: 46 | t ... this command responds with a string xxxx where the position indicates the drive addressed and x is either 47 | 0 or 1 in dependce of the drive state. 1 means that the drive is running. 48 | 49 | Stop a drive: 50 | xy ... y is the address of the drive. 51 | 52 | Start a drive: 53 | oy ... y is the drive. Steps, acceleration, microstepping and velocity have to 54 | be defined, and the drives have to be enabled. 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Manual_Imagedata/creator-compilers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Manual_Imagedata/creator-compilers.png -------------------------------------------------------------------------------- /Manual_Imagedata/creator-kits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/Manual_Imagedata/creator-kits.png -------------------------------------------------------------------------------- /QuickstarterDocs/QuickstartCompile.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/QuickstarterDocs/QuickstartCompile.odt -------------------------------------------------------------------------------- /QuickstarterDocs/QuickstartCompile.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/QuickstarterDocs/QuickstartCompile.pdf -------------------------------------------------------------------------------- /QuickstarterDocs/TSC_DEMO_README.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/QuickstarterDocs/TSC_DEMO_README.odt -------------------------------------------------------------------------------- /QuickstarterDocs/TSC_DEMO_README.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/QuickstarterDocs/TSC_DEMO_README.pdf -------------------------------------------------------------------------------- /QuickstarterDocs/TSC_Quickstart.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/QuickstarterDocs/TSC_Quickstart.odt -------------------------------------------------------------------------------- /QuickstarterDocs/TSC_Quickstart.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/QuickstarterDocs/TSC_Quickstart.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TwoStepperControl 2 | 3 | ## Introduction 4 | TSC (TwinStepperControl) is a software project by Wolfgang Birkfellner and Steffen Elste to realize an open integrated control system for large and heavy astronomical telescopes. The basic idea is to use a Raspberry Pi to control a telescope and to provide basic autoguiding functionality without additional external computers. As Raspian is not an RTOS, it cannot control stepper drivers directly like a microcontroller; therefore, extra hardware is necessary which receives basic parameters (number of steps, velocity, acceleration) from the software. We are currently using AMIS 30543 bipolar driver boards with 3A maximum current per coil and a maximum voltage of 30 V. 5 | 6 | ## Features 7 | TSC basically provides the following functionality 8 | - Telescope tracking and GOTO using internal catalogs for german equatorial and fork mounts in the higher range - up to NEMA 34 9 | steppers are used 10 | - Telescope control via LX200 - both USB/Ethernet and WLAN are supported. In the absence of a WLAN-access point, TSC opens a WLAN network of its own to connect to tablets, cell phones and other computers. Namely, control via SkySafari aon iOS and Android is provided. 11 | - Remote control via VNC (Virtual Network Clients). 12 | - DSLR control including dithering. 13 | - Support for two additional focuser motors. 14 | - Free customization of drives and gears with microstepping ratios between 1/128 and 1/4. 15 | - Image acquisition and autoguiding from guiding cameras via INDI. 16 | - Integrated plate solving via local instalation of Astrometry.net 17 | - Autoguiding integrated on the controller. 18 | - ST4 is also supported 19 | 20 | ## Documentation 21 | Because we - not intentionally - messed this up a bit in the past we're setting up a dedicated repository/site for documentation: 22 | [TwoStepperControl Documentation](https://tscatm.wordpress.com/) 23 | Please also take a closer look at the manual, which covers all aspects of usage and assembly. However, with the switch to the AMIS drivers, things are in motion 24 | 25 | The [Wiki](https://github.com/selste/TwoStepperControl/wiki) in this repository will henceforth only deal with information regarding compilation (and the setup required) and related stuff. 26 | -------------------------------------------------------------------------------- /TSCUserGuide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/selste/TwoStepperControl/063bb86010c20d847d1c8d66e6a41ec7882ce5b7/TSCUserGuide.pdf --------------------------------------------------------------------------------