Jump to content

Banner.jpg.b83b14cd4142fe10848741bb2a14c66b.jpg

DIY remote filter wheel


JAS

Recommended Posts

  • Replies 82
  • Created
  • Last Reply

It certainly is :) Lovely job :)

With my wheel (spaced for the ED80 focal reducer) I think I shall have room for the Arduino and stepper driver inside the case.

Link to comment
Share on other sites

Thank you James / Gina, it certainly came out better than I ever thought it would.

I also intended to house the electrics within the filter wheel Gina, but I decided the addition of the OAG would be more beneficial.

I am using a HEQ5 pro with 8" newt and guide scope ATM, so any weight saving will be a good thing!!!

Jason.

Link to comment
Share on other sites

I put the circuit board together yesterday, tested it on the bench and it all worked first time.

I then marked out the wheel and drilled it to take the boards, but after fitting it did not work!!!! The wheel rotated but would not stop. 3 hours later I found a tiny flake of brass from the strip board had bridged between the switch so it could not switch off.

All working now:D

I have now striped it all down and started cleaning it up ready to paint.

Jason.

Sent from my Nexus 10 using Tapatalk 2

post-11618-137193348945_thumb.jpg

Link to comment
Share on other sites

Thank you for the compliments :grin: .

I have now painted it and put it all back together, I also decided to add a red LED to show when the power is on, I may also make it flash when the wheel is rotating. I haven't decided yet.

The paint looks ok, but it did flake a bit around a couple of the bolt heads when I tightened them up. I thought the enamel paint I used would be nice and tough, maybe I should have left it to dry a bit longer?

I have also picked up a locking multi pin connector, I am going to wire the USB and 12v through the same socket to keep things tidy and secure.

DSC_0232_zps01e85607.jpg

DSC_0234_zps336cb400.jpg

Now on to the last bit of soldering, and then to tweak the sketch.

Jason.

Link to comment
Share on other sites

Jason, wonderful and very professional looking end result on this - though not surprised given the time and effort put in to the build. How are you doing for all up weight, with all the electronics on board? And how are you doing with the mechanical switch/sensor - is this a zero position on wheel so you can count steps to each filter from here, or does it activate as each filter is centered?

Link to comment
Share on other sites

Jason, wonderful and very professional looking end result on this - though not surprised given the time and effort put in to the build. How are you doing for all up weight, with all the electronics on board? And how are you doing with the mechanical switch/sensor - is this a zero position on wheel so you can count steps to each filter from here, or does it activate as each filter is centered?

Thanks Jake,

I just put it on the kitchen scales and it came to 1lb 8oz, I think that is 0.68Kg? Not sure how that weighs up against commercial wheels?

The switch is a zero position, and there is a step count to each position. On the bench it looks very accurate, but I have left the magnets in the wheel, so if any problems arise I can add a reference for each individual filter at a later date.

I will post my sketch once it is complete.

It looks very nice. Shame it's not all aluminium. Then you could have anodised it black :D

James

That's not a bad idea James, I know the middle wont exactly match, but I can live with that! I could even paint the middle part a contrasting colour.

Jason.

Link to comment
Share on other sites

I just put it on the kitchen scales and it came to 1lb 8oz, I think that is 0.68Kg? Not sure how that weighs up against commercial wheels?

The switch is a zero position, and there is a step count to each position. On the bench it looks very accurate, but I have left the magnets in the wheel, so if any problems arise I can add a reference for each individual filter at a later date.

I will post my sketch once it is complete.

Jason, the weight doesn't seem unreasonable as my 5 position manual comes in only 280gms lighter (filters loaded), I think I be hard pressed to beat 680gms even with the majority of the electronics in a separate box and it certainly won't look half as pretty.

I'm thinking I might go back to the LED position sensor, but place this at the bottom of the wheel (opposite the live filter) and baffle as necessary. I'm pretty sure that counting steps from a single zero/position will be sufficiently accurate with the wheel advancing in one direction only and I can reset the count every time the fw revolves. On startup/initialisation I shall advance the wheel until the zero position is found and start counting, but may add a button or software call to reset this if it looks like it will drift too much.

It would be great to have a look at the sketch if you're minded to publish - are you working on standardised ascom calls? I have started playing with mine for the 28BYJ-48 & ULN2003, but so far only as a thought exercise - I still haven't decided on best drive option (friction/swing arm or toothed belt), though hopefully I can move this forward next week.

Cheers for a great thread and plenty of inspiration.

Link to comment
Share on other sites

Thank Jake, I have mine rotating to the home position (filter 1) on startup, it then moves to the desired filter from there. I did not find it necessary to reset the home position again during use. I rotated it to 40 random positions and only found a 0.2mm error in position (measured best I could with verniers). At worst case I would not expect to use more than 3 or 4 filters in one outing.

I am adding a home function to the sketch so I can call it from the serial monitor just in case.

I am selecting the filters via the Arduino serial monitor at the moment. I have no idea how to implement ascom control but I do intend to look into it. I am considering looking into writing a windows app for it first tho, again I have no idea how to do it!

I think a opto switch would work well, keeping it at the opposite end would be enough I would think.

Jason.

Sent from my Nexus 10 using Tapatalk 2

Link to comment
Share on other sites

I like the security of a fixed tooth drive. There is no chance of any slippage losing the position.

It looks like Gina has come up with a nice solution if you are not able to have the wheel machined.

Jason.

Sent from my Nexus 10 using Tapatalk 2

Link to comment
Share on other sites

I have now made another case and I intend to have it anodised black. the paint finish is not up to scratch and if flaking around the bolt heads.

I have cleaned up the sketch and added an LED to it.

Feel free to comment.

Jason.

int HOME_PIN = 0; // Interrupt 0 is on DIGITAL PIN 2!

int STEP_PIN = 5; //easydrver step pin.

int LED_PIN = 4; //LED pin.

volatile int SWITCH = LOW;// The input state toggle.

volatile int STATE = 1;// starts loop in state 1.

int CURRENT_POSITION = 0;

int NEW_POSITION = 0;

int VAL = 0;

int counter=0;

//Function triggered by home position switch (interrupt).

//The state can not progress past state 5 until this function is called.

void stateChange()

{

SWITCH =! SWITCH;

STATE = 6;

}

//Stepper motor function.

//rotate a specific number of microsteps (8 microsteps per step)

//speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger

void rotate(int steps, float speed)

{

steps = abs(steps);

float usDelay = (1/speed) * 70;

for(int i=0; i < steps; i++){

digitalWrite(STEP_PIN, HIGH);

digitalWrite(LED_PIN, HIGH);

delayMicroseconds(usDelay);

digitalWrite(STEP_PIN, LOW);

digitalWrite(LED_PIN, LOW);

delayMicroseconds(usDelay);

}

}

//Function to process incoming command from the serial monitor.

void processIncomingByte (int c)

{

if (c == 0)

{

STATE = 8;

}

else

{

NEW_POSITION =(CURRENT_POSITION - c);

VAL = c;

STATE = 9;

}

}

void setup()

{

Serial.begin(9600);

pinMode(STEP_PIN, OUTPUT);

pinMode(LED_PIN, OUTPUT);

}

void loop()

//state 1 to 4 rotates the stepper 4 times before attatching the interupt, this is just in case the wheel is already in the home position.

//the stepper will continue to rotate until the interrupt triggers when the home position is reached.

//the state will only progress past 5 once the interrupt has triggered.

//LED lights on startup, and stays lit until the first position is called, then it only lights while the wheel is turning.

{

static unsigned long ts; // To store the current time for delays.

switch (STATE)

{

case 1:

digitalWrite(STEP_PIN, HIGH);

digitalWrite(LED_PIN, HIGH);

ts = micros();

STATE = 2;

break;

case 2:

if(micros() > ts + 75)

{

STATE = 3;

}

break;

case 3:

digitalWrite(STEP_PIN, LOW);

ts = micros();

STATE = 4;

break;

case 4:

if(micros() > ts + 75)

{

STATE = 5;

}

break;

case 5:

if (counter >=5)

{

attachInterrupt(HOME_PIN, stateChange, RISING);

counter = counter + 1;

STATE = 1;

}

else

{

STATE = 1;

counter = counter + 1;

}

break;

//Add any number of steps here to bring filter 1 to its position after the switch has triggered.

case 6:

//rotate(10, .7);

STATE = 7;

break;

case 7:

Serial.println("Home Position");

CURRENT_POSITION = 1;

STATE = 8;

break;

case 8:

detachInterrupt (0);

while (Serial.available ()==0);

processIncomingByte (Serial.read ()-'0');

break;

case 9:

if ((NEW_POSITION == -1)||(NEW_POSITION == 8))

{

rotate (2487, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 10;

;

break;

}

case 10:

if ((NEW_POSITION == -2)||(NEW_POSITION == 7))

{

rotate (4974, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 11;

break;

}

case 11:

if ((NEW_POSITION == -3)||(NEW_POSITION == 6))

{

rotate (7461, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 12;

break;

}

case 12:

if ((NEW_POSITION == -4)||(NEW_POSITION == 5))

{

rotate (9948, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 13;

break;

}

case 13:

if ((NEW_POSITION == -5)||(NEW_POSITION == 4))

{

rotate (12435, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 14;

break;

}

case 14:

if ((NEW_POSITION == -6)||(NEW_POSITION == 3))

{

rotate (14922, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 15;

break;

}

case 15:

if ((NEW_POSITION == -7)||(NEW_POSITION == 2))

{

rotate (17409, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 16;

break;

}

case 16:

if ((NEW_POSITION == -8)||(NEW_POSITION == 1))

{

rotate (19896, .7);

Serial.print("Position ");

Serial.println(VAL);

CURRENT_POSITION = (VAL);

STATE = 8;

break;

}

else

{

STATE = 17;

}

case 17:

if (NEW_POSITION == 0)

{

Serial.println("INVALID");

STATE = 8;

break;

}

}

}

Link to comment
Share on other sites

Thank you for posting your sketch - I'll go through it later :) I haven't gone into the sketch for mine yet but have a pretty good idea what it will be. A lot of it will be very similar to the focussing sketch. Sometime I shall probably make it ASCOM compatible and arrange to control it from the Artemis Sequencer but first off it will be little more than a manaul wheel but controlled from the warm room much like the focuser.

Link to comment
Share on other sites

No problem Gina,

I would be very interested in the ASCOM control if/when you have it working. I am hoping to order my 460ex by the end of the week, so I would eventually like to be able to control it via Artemis.

I intend to have a go myself, but I don't think I will get too far!

Jason.

Link to comment
Share on other sites

I have now ordered my Atik 460ex :grin:

So hopefully things will be up and running soon. Just need to get some more money up together for the filters!

I am looking forward to seeing what this camera can do. Being my first CCD, it is going to take a while to get used to it.

Jason.

Link to comment
Share on other sites

Only just come across this thread - What a superb project its' great having access to the equipment and tools needed ...

I have a small shop setup in the garage - which hasn't had a car in for 20+years...

ML7 (spare up the attic - that was fun job winching it up through the hole...

Centec 2A with Vertical; and Horizontal heads,

12 speed Drill press etc...

I have plenty of contacts in the laser cutting , CNC punching and bending dept and CNC Milling & turning so as long as I can draw it up I can usually get parts done at mates rates...

Peter...

Link to comment
Share on other sites

  • 2 weeks later...

I got into work this morning and my parts were waiting for me from the Anodisers :grin:

A couple of hours FedEx arrived with a little present :grin:

As you can see I changed my mind on the black anodising once I saw the red.

Time to get on and finish my project and put this lot to work.

Jason.

DSC_0236_zps80ed76b0.jpg

Link to comment
Share on other sites

I thought you chose black to avoid any possible stray light reflection on the inside. The red looks nice though :)

I did Gina, but I changed my mind when I saw the red while I was at the plaiters.

I have sprayed mat black on the inside to avoid reflections.

I have also araldited the threaded rings into the filter wheel. Once it has all dried overnight I will mat black them as well.

Jason.

DSC_0239_zps60df8ede.jpg

Link to comment
Share on other sites

Very nice with the anodised finishes. Its probably a good idea to matt black internal surfaces that are near to the light path as

I understand any colour anodised surfaces are quite reflective in the infrared and where some cameras are also sensitive.

Dave.

Link to comment
Share on other sites

Very nice with the anodised finishes. Its probably a good idea to matt black internal surfaces that are near to the light path as

I understand any colour anodised surfaces are quite reflective in the infrared and where some cameras are also sensitive.

Dave.

Thanks Dave, I was not aware of that. I think I will matt an area around each filter aswell, to be on the safe side.

Jason.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. By using this site, you agree to our Terms of Use.