30122015 NEW ASCOM DRIVERS. These replicate the settings in the ASCOM profiler. This will be used from now on. User can edit the parameters more easily. FIRST - Write down all your settings for the driver, stepmode, temp offset, coil power etc. SECOND - uninstall the ASCOM driver. THIRD - Run the installer .exe program. FOURTH - Use the ASCOM TESTER APP and connect to the ASCOM driver and set all your settings on the Setup Dialog form for the driver. Then connect to the driver/
After this all the focuser settings are saved in the ASCOM profile and can be viewed/edited using the ASCOM Profiler.
TESTED WITH ASCOM62/WIN7x64/WIN10x64
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
2-Jan-2016 It was noted that some of the schematics used the obsolete Nano v23 chips rather than the more common v3 chips. This wouls only be an issue if you were connecting by pin rather than by signal wire. I have updated all the schematics to reflect the newer Nano v3 chips and removed the pin numbers were I could.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello Robert,
Thanks for your effort in these Arduino projects. I'm both implementing your focuser and dew controller and I also have started developing a DIY motorized filter wheel by myself. So I was wondering whether is possible to use just one Arduino Uno (now Genuino) in order to manage focuser, dew and filterwheel. I saw the ASCOM hub (local server) can be used as a driver that wraps different devices. Due to the fact I'm a programmer I think I don't have any problem in manage concurrency and multithreading. What do you think about the feasibility of this idea? In case I would ask you some tips ... let me know! :)
Best Regards and happy New Year!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Depends whether each part (focuser, filter wheel) you want to drive via ascom?
If not, then you could contriol it easily by assign :Fx commands to the focuser, :Dx commands to dew controller and :W# commands to the filter wheel. You could generically connect and then query the controller about what devices are available.
If you want to drive the filter wheel and focuser via ascom over the same serial port then it needs to be local server.
OR: you could use the softserial to implement more comports on the arduino, then you have two comports and one for the focuser and one for the filterwheel (there is no ascom for the dew controller). Then you could make the filter wheel and focuser as seperate ascom drivers. Or just use a MEGA.
Having enough code space and memory space on the arduino will be a problem. I would probably add an external EEPROM I2C chip to save current state as well as set it up for all text strings etc to save on RAM space on the controller.
You will probably run into response time issues with the Arduino Uno running all three devices at the same time. No matter how you implement the code, this is either right at the limit for an Arduino or even beyond it. Sometimes an Arduino has response issues just handling one of these, let alone all three at the same time. Its probably better using a state driven machine approach to the code.
You will appreciate that other client software often use a poll approach to drivers, so running app software you will find these software sending commands and expecting responses like evey second... This is a real headache and really unneccesary on the application software side - after speaking with Steve re FocusMax, the latest issue now has a feature where you can change the interval request time, previous versions not so and they will query the focuser every second. (requesting a temperature reading). Using a sensor like DTHxx you probably have best scenario case of 1.5-2.0s delay time in doing a temperature conversion (where eveything else is blocked) so it cannot keep up with these requests.. You will need to decide how to handle all those types of issues as it will have an effect on other things.
Obviously the focuser is a priority one device, the filter wheel a priority two device and the dew controller a priority three device, based on how a delay response might affect their operation. It would not matter if you did change the power to the dew strap in the event of a temperature change within say 10s as there will not be a huge change in 10s. But a 10s delay in the focuser (such as HALT) could become a major issue.
Food for thought
Cheers
Robert
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello Robert,
you're right, I think just one Arduino means more problems. At the moment I have difficulties to find original Arduino nano and the compatible board from China are not so reliable: the one used for the focuser does not accepts the firmware anymore and the previuos installed seems has been deleted. This appened after I did some tests with windows client. What a pity because everything was going right but this is the second time an Arduino nano from China loses the firmware (it also appened in the dew controller but I was lucky and recover it after many attemps).
Thanks for your effort.
Cheers,
Giovanni.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Giovanni
Sometimes the bootloader gets corrupted with the clones. I think it happened to me once or twice. The Arduino stops being able to be uploaded andor loses the firmware
Hi Robert,
did it happen while you were using it on field? It would be horrible but, as far as I can see, if I use original one with FTDI chip there are complications...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Giovanni
I have a permanent setup so that makes things for me a little easier. I think, as you said, the clones do not tolerate excess voltage very well, which is why the zener diode is there now on VIN. I have not had any issues since then. I have a box full of them having built and tested all the different types, so I have plenty of spares in the unlikely event of a failure :-)
I have had two failures, one caused by my own stupidity and the other I applied about 14V to (did not have a zener to protect VIN
Cheers
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Robert,
sorry if I come back on this discussion but I realized the fault of bootloader happened in a definitive board with zener correctly connected so I think it could happen again. I'm focusing how to use an original Arduino avoiding the FTDI problem and I found this: https://ketturi.kapsi.fi/2014/04/how-to-fix-moody-arduino-nano/
Do you think this could solve the problem when external supply is connected?
Thanks and sorry for if I bother ...
Cheers,
Giovanni.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the link Giovanni, interesting reading.
The nano recommended for this product is the CH340G variation, because it uses a different chip to implement the USB interface. There are a number of other problems with the FTDI chip with not powering rxd/txd lines if connected to external power .
With the zener protecting VIN, as well as the latest firmware, I have yet to experience any issues with the CH340 clones. I have used them in all the other projects too.
If you are going to try a FTDI variation, would be interested to hear how it works out.
Cheers
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
26 Jan 2016. New PDF, New Arduino v217 firmware, new ASCOM drivers, New Windows Applications.
The LCD display on the controller now consists of two screens, the 2nd screen shows the temperature probe and maxsteps. The amount of time that each LCD screen is displayed for is user configurable and remembered between sessions. The time duration can be accessed from the ASCOM setupdialog form or from the Windows applications settings menu.
All non LCD versions have also been updated.
Support for previous versions will cease.
Details re the new features are explained in the PDF
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
03022016 New ASCOM v220 drivers, these support changing temperature display between Celsius and Fahrenheit - state is remembered between sessions, driver sends correct mode to controller on Connect.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
17-Feb-2016 New Arduino Controller Firmware v218.
New Windows App v2146.
New Windows MinApp v213.
New ASCOM drivers v222
New PDF
Implementation of getting temperature updates on the LCD (if fitted). There are two new things, a checkbox which must be enabled if you want the temperature auto updated on the LCD. The time between updates of the temperature value on the LCD is controlled by a new textbox entry and accepts values from 5s to 15s.
Doing a temperature conversion with the DHTxx sensor can take up to 2s, which would have an impact on the response of the controller.
If the focuser is moving the request to update the temperature value by the controller is ignored until the focuser stops moving.
If the focuser is not moving, then the controller checks if the delay time has expired, and if so, will do a temperature update.
The two settings are remembered by the Windows applications and ASCOM drivers and are sent to the controller when connecting.
More info in the PDF.
Cheers
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Robert,
Many thanks for updates !!
May I ask a question : can I use Focuservxxx_DRV8825_HW203_F Arduino code with Andre Mesquita's PCB layout, while you suggest to use Focuservxxx_DRV8825_HW203_MT, since the main difference between this two versions being MT does not implement the use of press button. However, buttons are present on Andre's PCB. Is there another reason ?
Best regards
Franck
Hi Frank
Andre's PCB board has D5 to M0, D6 to M1 and D7 to M2.
The correct firmware to use with Andre's board is
Focuserv218_DRV8825_M
Focuserv218_DRV8825_F
The HW203 board has different pins for M0, M1 and M2, hence, for the HW203 boards you need to use
Focuserv218_DRV882_HW203_xxxxx
If you used firmware xxxx_HW203_xxx on Andre's board microstepping does not work as it should.
For a good implementation Andre's board is great. If you wanted future proofing by being able to add bits later on, I would recommend for people building a PCB to use the DRV8825_HW203_F_IR_BT_REV2 PCB-layout board. That way then can implement what they want (ie a minimal board and use the HW203_M firmware) and later add a temperature probe (use firmware HW203_MT) or add an LCD and switches (use HW203_F).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
v219 firmware - please update. This works with the latest version of the Windows App and the latest version of the ASCOM driver. Some inportant bug fixes as well as implementation of stepsize (user configurable - please read pdf documentation - do not enable unless you have calculated this value for your scope)
Barring the detection of some major bug this is probably the last release for a while, so please take the opportunity to update to all the latest versions.
The next significant release will be the Wifi enabled controller, which will have its own Windows application and ASCOM driver. It is still under development.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
30122015 ASCOM APP TESTER - Major bug fix
30122015 NEW ASCOM DRIVERS. These replicate the settings in the ASCOM profiler. This will be used from now on. User can edit the parameters more easily. FIRST - Write down all your settings for the driver, stepmode, temp offset, coil power etc. SECOND - uninstall the ASCOM driver. THIRD - Run the installer .exe program. FOURTH - Use the ASCOM TESTER APP and connect to the ASCOM driver and set all your settings on the Setup Dialog form for the driver. Then connect to the driver/
After this all the focuser settings are saved in the ASCOM profile and can be viewed/edited using the ASCOM Profiler.
TESTED WITH ASCOM62/WIN7x64/WIN10x64
2-Jan-2016 It was noted that some of the schematics used the obsolete Nano v23 chips rather than the more common v3 chips. This wouls only be an issue if you were connecting by pin rather than by signal wire. I have updated all the schematics to reflect the newer Nano v3 chips and removed the pin numbers were I could.
04-Jan-2016 NEW ASCOM DRIVERS - fixes intermittent bug in setup form
08-Jan-2016 Small fixes to schematic and Layout of ULN2003_FULL (thanks Paul)
Hello Robert,
Thanks for your effort in these Arduino projects. I'm both implementing your focuser and dew controller and I also have started developing a DIY motorized filter wheel by myself. So I was wondering whether is possible to use just one Arduino Uno (now Genuino) in order to manage focuser, dew and filterwheel. I saw the ASCOM hub (local server) can be used as a driver that wraps different devices. Due to the fact I'm a programmer I think I don't have any problem in manage concurrency and multithreading. What do you think about the feasibility of this idea? In case I would ask you some tips ... let me know! :)
Best Regards and happy New Year!
Depends whether each part (focuser, filter wheel) you want to drive via ascom?
If not, then you could contriol it easily by assign :Fx commands to the focuser, :Dx commands to dew controller and :W# commands to the filter wheel. You could generically connect and then query the controller about what devices are available.
If you want to drive the filter wheel and focuser via ascom over the same serial port then it needs to be local server.
OR: you could use the softserial to implement more comports on the arduino, then you have two comports and one for the focuser and one for the filterwheel (there is no ascom for the dew controller). Then you could make the filter wheel and focuser as seperate ascom drivers. Or just use a MEGA.
Having enough code space and memory space on the arduino will be a problem. I would probably add an external EEPROM I2C chip to save current state as well as set it up for all text strings etc to save on RAM space on the controller.
You will probably run into response time issues with the Arduino Uno running all three devices at the same time. No matter how you implement the code, this is either right at the limit for an Arduino or even beyond it. Sometimes an Arduino has response issues just handling one of these, let alone all three at the same time. Its probably better using a state driven machine approach to the code.
You will appreciate that other client software often use a poll approach to drivers, so running app software you will find these software sending commands and expecting responses like evey second... This is a real headache and really unneccesary on the application software side - after speaking with Steve re FocusMax, the latest issue now has a feature where you can change the interval request time, previous versions not so and they will query the focuser every second. (requesting a temperature reading). Using a sensor like DTHxx you probably have best scenario case of 1.5-2.0s delay time in doing a temperature conversion (where eveything else is blocked) so it cannot keep up with these requests.. You will need to decide how to handle all those types of issues as it will have an effect on other things.
Obviously the focuser is a priority one device, the filter wheel a priority two device and the dew controller a priority three device, based on how a delay response might affect their operation. It would not matter if you did change the power to the dew strap in the event of a temperature change within say 10s as there will not be a huge change in 10s. But a 10s delay in the focuser (such as HALT) could become a major issue.
Food for thought
Cheers
Robert
Robert
Hello Robert,
you're right, I think just one Arduino means more problems. At the moment I have difficulties to find original Arduino nano and the compatible board from China are not so reliable: the one used for the focuser does not accepts the firmware anymore and the previuos installed seems has been deleted. This appened after I did some tests with windows client. What a pity because everything was going right but this is the second time an Arduino nano from China loses the firmware (it also appened in the dew controller but I was lucky and recover it after many attemps).
Thanks for your effort.
Cheers,
Giovanni.
Hi Giovanni
Sometimes the bootloader gets corrupted with the clones. I think it happened to me once or twice. The Arduino stops being able to be uploaded andor loses the firmware
This has helped me
http://www.instructables.com/id/How-To-Burn-a-Bootloader-to-Clone-Arduino-Nano-30/?ALLSTEPS
Hi Robert,
did it happen while you were using it on field? It would be horrible but, as far as I can see, if I use original one with FTDI chip there are complications...
Hi Giovanni
I have a permanent setup so that makes things for me a little easier. I think, as you said, the clones do not tolerate excess voltage very well, which is why the zener diode is there now on VIN. I have not had any issues since then. I have a box full of them having built and tested all the different types, so I have plenty of spares in the unlikely event of a failure :-)
I have had two failures, one caused by my own stupidity and the other I applied about 14V to (did not have a zener to protect VIN
Cheers
Robert
Hi Robert,
thanks for this feedback!
Cheers,
Giovanni.
Hi Robert,
sorry if I come back on this discussion but I realized the fault of bootloader happened in a definitive board with zener correctly connected so I think it could happen again. I'm focusing how to use an original Arduino avoiding the FTDI problem and I found this: https://ketturi.kapsi.fi/2014/04/how-to-fix-moody-arduino-nano/
Do you think this could solve the problem when external supply is connected?
Thanks and sorry for if I bother ...
Cheers,
Giovanni.
Thanks for the link Giovanni, interesting reading.
The nano recommended for this product is the CH340G variation, because it uses a different chip to implement the USB interface. There are a number of other problems with the FTDI chip with not powering rxd/txd lines if connected to external power .
With the zener protecting VIN, as well as the latest firmware, I have yet to experience any issues with the CH340 clones. I have used them in all the other projects too.
If you are going to try a FTDI variation, would be interested to hear how it works out.
Cheers
Robert
26 Jan 2016. New PDF, New Arduino v217 firmware, new ASCOM drivers, New Windows Applications.
The LCD display on the controller now consists of two screens, the 2nd screen shows the temperature probe and maxsteps. The amount of time that each LCD screen is displayed for is user configurable and remembered between sessions. The time duration can be accessed from the ASCOM setupdialog form or from the Windows applications settings menu.
All non LCD versions have also been updated.
Support for previous versions will cease.
Details re the new features are explained in the PDF
03022016 New ASCOM v220 drivers, these support changing temperature display between Celsius and Fahrenheit - state is remembered between sessions, driver sends correct mode to controller on Connect.
17-Feb-2016 New Arduino Controller Firmware v218.
New Windows App v2146.
New Windows MinApp v213.
New ASCOM drivers v222
New PDF
Implementation of getting temperature updates on the LCD (if fitted). There are two new things, a checkbox which must be enabled if you want the temperature auto updated on the LCD. The time between updates of the temperature value on the LCD is controlled by a new textbox entry and accepts values from 5s to 15s.
Doing a temperature conversion with the DHTxx sensor can take up to 2s, which would have an impact on the response of the controller.
If the focuser is moving the request to update the temperature value by the controller is ignored until the focuser stops moving.
If the focuser is not moving, then the controller checks if the delay time has expired, and if so, will do a temperature update.
The two settings are remembered by the Windows applications and ASCOM drivers and are sent to the controller when connecting.
More info in the PDF.
Cheers
Robert
Hi Robert,
Many thanks for updates !!
May I ask a question : can I use Focuservxxx_DRV8825_HW203_F Arduino code with Andre Mesquita's PCB layout, while you suggest to use Focuservxxx_DRV8825_HW203_MT, since the main difference between this two versions being MT does not implement the use of press button. However, buttons are present on Andre's PCB. Is there another reason ?
Best regards
Franck
Picture of the PCB attached.
That is one fine looking PCB Franck, you must be pleased with the way ot turned out.
Robert
Hi Robert,
Yes indeed :-), you and Andre have done a great job !
Last edit: Franck M 2016-02-17
Hi Frank
Andre's PCB board has D5 to M0, D6 to M1 and D7 to M2.
The correct firmware to use with Andre's board is
Focuserv218_DRV8825_M
Focuserv218_DRV8825_F
The HW203 board has different pins for M0, M1 and M2, hence, for the HW203 boards you need to use
Focuserv218_DRV882_HW203_xxxxx
If you used firmware xxxx_HW203_xxx on Andre's board microstepping does not work as it should.
For a good implementation Andre's board is great. If you wanted future proofing by being able to add bits later on, I would recommend for people building a PCB to use the DRV8825_HW203_F_IR_BT_REV2 PCB-layout board. That way then can implement what they want (ie a minimal board and use the HW203_M firmware) and later add a temperature probe (use firmware HW203_MT) or add an LCD and switches (use HW203_F).
Hi Robert,
Thanks for advice, Focuserv218_DRV8825_F is working great with the board.
Regards
Franck
Focuserv218_DRV8825_M_BT.ino had some issues as some new code was added but it did not write to bluetooth adapter - that code is now fixed
v219 firmware - please update. This works with the latest version of the Windows App and the latest version of the ASCOM driver. Some inportant bug fixes as well as implementation of stepsize (user configurable - please read pdf documentation - do not enable unless you have calculated this value for your scope)
Barring the detection of some major bug this is probably the last release for a while, so please take the opportunity to update to all the latest versions.
The next significant release will be the Wifi enabled controller, which will have its own Windows application and ASCOM driver. It is still under development.
New Windows Apps, new ASCOM drivers to support v219 Arduino firmware
Please update