From 5efaf15ae941cc6bbadc576658729bacad904f05 Mon Sep 17 00:00:00 2001
From: Thomas Carpenter <strange_orange_fish@hotmail.com>
Date: Mon, 12 Nov 2012 21:00:18 +0000
Subject: [PATCH] Added support for mounts with different gear ratio on each
 axis. For those with the same gear ratio on each mount, this update doesn't
 affect you.

---
 AstroEQ5/AstroEQ5.ino                         |  18 ++++++++++++++---
 .../Initialisation Variable Calculator.xlsx   | Bin 15012 -> 16658 bytes
 .../arduino/variants/AstroEQ/pins_arduino.h   |   3 +--
 AstroEQ5/commands.cpp                         |  19 +++++++++++++++++-
 AstroEQ5/commands.h                           |   1 +
 AstroEQ5/synta.cpp                            |   9 +++++++++
 AstroEQ5/synta.h                              |   1 +
 7 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/AstroEQ5/AstroEQ5.ino b/AstroEQ5/AstroEQ5.ino
index 8426cd5..b52c4a8 100644
--- a/AstroEQ5/AstroEQ5.ino
+++ b/AstroEQ5/AstroEQ5.ino
@@ -100,9 +100,21 @@
 //to make it smaller than that limit. In my case I have chosen 10 as it nicely scales the
 //a and s values. Hence below, I have set scalar to 10.
 
+
+
+
+
 //This is the initialistation code. If using the excel file, replace this line with what it gives.
 //                    aVal    bVal      sVal  scalar
+
+//Example for same ratio per axis
 Synta synta(1281, 13271040, 95493, 16, 92160, 3);
+//Example for different ratio per axis (see excel file).
+//Synta synta(1281, 9024000, 9011200, 64933, 64841, 62667, 62578, 16, 1);
+
+
+
+
 
 //Define the two axes (swap the 0 and 1 if R.A. and Dec. motors are reversed)
 #define RA 0
@@ -400,9 +412,9 @@ void calculateRate(byte motor){
   remainder = (unsigned long)floatRemainder; 
   
   //Now truncate to an unsigned int with a sensible max value (the int is to avoid register issues with the 16 bit timer)
-  if(rate > 64997L){
-    rate = 64997L;
-  } else if (rate < 36L) {
+  if(rate > 64997UL){
+    rate = 64997UL;
+  } else if (rate < 36UL) {
     rate = 36L;
   }
   for (int i = 0; i < distributionWidth[motor]; i++){
diff --git a/AstroEQ5/Open me first/Initialisation Variable Calculator.xlsx b/AstroEQ5/Open me first/Initialisation Variable Calculator.xlsx
index 60373fa6e27dbd9489321f9c035fb173aaf3002c..9f38db7413040d2670511055998e106d233b631a 100644
GIT binary patch
delta 6990
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

delta 5357
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
XHK;i1y^10}S_1W3g%fBa{ZIH`jOge<

diff --git a/AstroEQ5/Open me first/hardware/arduino/variants/AstroEQ/pins_arduino.h b/AstroEQ5/Open me first/hardware/arduino/variants/AstroEQ/pins_arduino.h
index 66587c1..a8994b2 100644
--- a/AstroEQ5/Open me first/hardware/arduino/variants/AstroEQ/pins_arduino.h	
+++ b/AstroEQ5/Open me first/hardware/arduino/variants/AstroEQ/pins_arduino.h	
@@ -56,8 +56,7 @@ const static uint8_t LED_BUILTIN = 13;
 #ifdef ARDUINO_MAIN
 
 // On the Arduino board, digital pins are also used
-// for the analog output (software PWM).  Analog input
-// pins are a separate set.
+// for the analog output (software PWM).
 
 // ATMEL ATMEGA162 / ARDUINO
 //
diff --git a/AstroEQ5/commands.cpp b/AstroEQ5/commands.cpp
index 607cc8c..9a582d3 100644
--- a/AstroEQ5/commands.cpp
+++ b/AstroEQ5/commands.cpp
@@ -23,7 +23,24 @@
 #endif
 
 #include "commands.h"
-
+void Commands::init(unsigned long eVal,unsigned long aVal1,unsigned long aVal2,unsigned long bVal1,unsigned long bVal2,unsigned long sVal1,unsigned long sVal2,byte gVal){
+  for(byte i = 0;i < 2;i++){
+    _flag[i] = 0x100;
+    _jVal[i] = 0x800000; //Current position, 0x800000 is the centre
+    _IVal[i] = 0; //Recieved Speed
+    _GVal[i] = 0; //Mode recieved from :G command
+    _HVal[i] = 0; //Value recieved from :H command
+    _eVal[i] = eVal; //version number
+    _gVal[i] = gVal; //High speed scalar
+  }
+  _aVal[0] = aVal1; //steps/axis
+  _aVal[1] = aVal2; //steps/axis
+  _bVal[0] = bVal1; //sidereal rate
+  _bVal[1] = bVal2; //sidereal rate
+  _sVal[0] = sVal1; //steps/worm rotation
+  _sVal[1] = sVal2; //steps/worm rotation
+}
+      
 void Commands::init(unsigned long eVal,unsigned long aVal,unsigned long bVal,byte gVal,unsigned long sVal){ 
   for(byte i = 0;i < 2;i++){
     _flag[i] = 0x100;
diff --git a/AstroEQ5/commands.h b/AstroEQ5/commands.h
index bd78e96..8dc127f 100644
--- a/AstroEQ5/commands.h
+++ b/AstroEQ5/commands.h
@@ -24,6 +24,7 @@
   
   class Commands{
     public:
+      void init(unsigned long eVal,unsigned long aVal1,unsigned long aVal2,unsigned long bVal1,unsigned long bVal2,unsigned long sVal1,unsigned long sVal2,byte gVal);
       void init(unsigned long eVal,unsigned long aVal,unsigned long bVal,byte gVal,unsigned long sVal);
       
       //Command definitions
diff --git a/AstroEQ5/synta.cpp b/AstroEQ5/synta.cpp
index e5b19d7..95c3d3b 100644
--- a/AstroEQ5/synta.cpp
+++ b/AstroEQ5/synta.cpp
@@ -10,6 +10,15 @@ Synta::Synta(unsigned long eVal,unsigned long aVal,unsigned long bVal,byte gVal,
   cmd.init(eVal, aVal, bVal, gVal, sVal);
 }
 
+Synta::Synta(unsigned long eVal,unsigned long aVal1,unsigned long aVal2,unsigned long bVal1,unsigned long bVal2,unsigned long sVal1,unsigned long sVal2,byte gVal,byte scalar){
+  validPacket = 0;
+  _axis = 0;
+  commandIndex = 0;
+  clearBuffer(commandString,sizeof(commandString));
+  _scalar = scalar;
+  cmd.init(eVal, aVal1, aVal2, bVal1, bVal2, sVal1, sVal2, gVal);
+}
+
 const char Synta::startInChar = ':';
 const char Synta::startOutChar = '=';
 const char Synta::errorChar = '!';
diff --git a/AstroEQ5/synta.h b/AstroEQ5/synta.h
index a698025..8d12d90 100644
--- a/AstroEQ5/synta.h
+++ b/AstroEQ5/synta.h
@@ -12,6 +12,7 @@
   class Synta{
     public:
       Synta(unsigned long eVal,unsigned long aVal,unsigned long bVal,byte gVal,unsigned long sVal,byte scalar);
+      Synta(unsigned long eVal,unsigned long aVal1,unsigned long aVal2,unsigned long bVal1,unsigned long bVal2,unsigned long sVal1,unsigned long sVal2,byte gVal,byte scalar);
       Commands cmd;
       void assembleResponse(char* dataPacket, char commandOrError, unsigned long responseData);
       char recieveCommand(char* dataPacket, char character);
-- 
GitLab