Jump to content

Stargazers Lounge Uses Cookies

Like most websites, SGL uses cookies in order to deliver a secure, personalised service, to provide social media functions and to analyse our traffic. Continued use of SGL indicates your acceptance of our cookie policy.

jbrazio

Arduheater - Intelligent heat controller

Recommended Posts

For the past couple of months I've been working on a project which I named Arduheater.

Arduheater is a full open source intelligent heat strip controller for astronomy usage.

Source code is available at: https://github.com/jbrazio/arduheater

The main design goals were:

Remotely controllable

This was a very important part of the design, most heat controllers, specially the DIY ones, rely on the PWM signal for each channel being manually adjusted by means of a potentiometer. This either requires the user to be near the device tweeking it or to set it to a temperature that may be higher than the one really needed thus completely trashing efficiency. Arduheater uses a serial connection so you can use any USB-Serial-TTL dongle to adjust it's settings either you're 2 or 2000 meters away.

Efficient energy usage

Manual adjusted heater will either require the user to be tweeking it or they will wast more energy than necessary due to the general tendency to use a higher that required setpoint, this is valid for any PWM or bang-bang style controllers. Arduheater uses a temperature sensor (DHT22) to measure basic environmental properties such as temperature and humidity, knowing them both makes the calculation of the dew point[1] possible. Arduheater also has a temperature sensor (NTC) for each heating strip, allowing the micro-controller to have a rough estimation of the temperature the equipment is at; it will be a rough estimation because we are really interested on the lenses surface temperature but we are actually measuring the heat strip temperature, to mitigate this, Arduheater allows the user to set specific offsets per heating strip.

Arduheater uses a PID controller[2] to efficiently manage the energy so only the required amount of energy to maintain a temperature setpoint is delivered to the heating strip. This is possible due the usage of a PWM signal while driving the outputs; the delta between the environmental dew point (plus offset, i.e. setpoint) and the heating strip temperature will make the micro-controller output a PID-calculated PWM signal until this delta reaches zero. In practical terms if a 12V heating strip full on consumes 12W of power (1A) it may be possible for it to use only 1W or even less to keep the equipment above dewpoint and the power usage will be automatically updated during the night as conditions vary, so the system will be always using the least amount of power to keep the dew away.

Builder friendly

Using off-the-shelf components such as the Arduino Nano and easily available parts Arduheater is aimed to be build by anyone with a soldering iron and some patience, no degree in electronics required.

Allow up to four independent heat outputs

Each of the four outputs have independent controls such as offset, min and max output power and of course the three main properties of the PID controller (Kp, Ki and Kd).

 

Here are some shots of the bench prototype using a power resistor as the heating element and it's serial configuration interface:

01.JPG.414a90c02fc9d14db92505e141435f77.JPG 02.thumb.JPG.323dc7ea71938a0a3154040871a0a4e4.JPG 03.thumb.JPG.447c14058958c62d39a0c070f07e8f00.JPG 04.thumb.JPG.37a742dc8579bc4b504793f7ea4f03e9.JPG

 

The "field" prototype on it's box:

05.thumb.JPG.3de0c05975e96f88ad27800a6c8886cf.JPG

 

The heating strips (more build info will be provided further ahead):

06.thumb.JPG.48060ca02e20d14677742a560859758d.JPG 07.thumb.JPG.d4ed9335506d546a5af52ff7dad6c235.JPG

 

And of course all of this would not be possible without the usage of the force. ;-)

09.thumb.JPG.f9e15836a952c7c1f485376fcdb38034.JPG

 

I hope someone may find this project useful.

I'll keep this thread updated as soon as I'm able to release the source code, schematics and build instructions.

 

[1] Dew point is that dreadful threshold at which water condensation starts to happen on the lenses/equipment.

[2] A proportional–integral–derivative controller (PID controller) is a control loop feedback mechanism (controller) commonly used in industrial control systems.

Edited by jbrazio
  • Like 10

Share this post


Link to post
Share on other sites

Subbed and watching this with great interest.

Do not haave any form of heaters on my set up at present, only use rather large dew shields, so this may be a great addition

  • Like 1

Share this post


Link to post
Share on other sites

Oh, what a great thread.  Why are there only three posts?

Beautifully written up and beautifully illustrated.  I have an Arduino setup with Guiding, Focus and Exposure control, which I will document (soon) following the standards set out in this post. 

In fact I have bought the Humidity Detector/Thermometer for Arduino and not yet used it.  This thread has inspired me just to get on and do it.

JBrazio thanks very much.

Abraços,

Steve.

Share this post


Link to post
Share on other sites

Thank you Steve.

I believe some part is my fault, I haven't finished the schematic so people do not know how to build it (yet).

  • Like 1

Share this post


Link to post
Share on other sites

Finally it's here !

I've updated the project page with the BOM, schematic and prototype board layout.

Visit the project's github page for the latest version of the files.

schematic-power_schem.jpg

schematic-power_bb.jpg

Share this post


Link to post
Share on other sites

I've been busy refactoring the current code base, this should come out in the next week or so.
In the meanwhile I've 3D printed and field tested the second version of the box, electronics and heating strips.
 
f83YohtMvEwShjB1nmZIz80TIVSjRJ105_YHHgawUrqJgqHAw_0E5EuWs9LW6izE7Epq3Ex6WjAqmUA4Xz83-KVWb3JQqCY4ICzUvPyfCXSCjzfPlf3kzcZmGvz7Gw5LRfTz_FPx_pga-QEmh4eMkH4yOBwjLu6EAD1X8OvG68ASosylhpiMR4-nCFiHWlsA5-AfqGNPpzrqgV4g6zBYkvTTjiT2uF0nirv32Tz9dft6LGBUuHvivONdlbXMEelQqzmZdHI6e3xN4rlxy1OBIjW- 

Share this post


Link to post
Share on other sites

Hi @acarrier, the problem is that the ASCOM standard (AFAIK) does not foreseen a standalone heating controller as a device type. I'm currently developing a cross-platform standalone application which will allow you to control all the parameters of the device.

Edited by jbrazio

Share this post


Link to post
Share on other sites

You can use the ascom switch device which takes an output value that's not just 0 or 1.

 Ie any pwm or temp value.

 

Share this post


Link to post
Share on other sites

Just give it a rest Api over json and call that from ascom or indi.?

Share this post


Link to post
Share on other sites

Let me give you an update on this project, I know last post has been long ago but it has come a long way since.
 
All code was refactored from scratch and is now much more stable, the new development branch was not yet merged into master because there a couple of features still missing but everyone is encouraged to update the firmware to the latest release.
 
We now have a nice GUI, as of today Windows only. The source code can be downloaded from the dedicated Github repository, pre-built binaries will be available upon the first tagged release. Until then you may compile it from source using the Visual Studio Express C#.
 
The GUI shows you one big graph with the environmental data such as temperature, humidity and dew point.
Each output has its own dedicated graph showing heatstrip temperature and setpoint.
 
2CYKUIwl.jpg

The power transistors are gone, we are now rocking FETS which makes the overall thermal footprint lower and higher energy efficiency. As you can also see I've ordered commercial grade PCB which makes the build process a breeze. On the picture is missing the Arduino Nano but it is still a key component on the system.

PdVWGpDl.jpg

A nice 3D printed box prototype is also under development, the following pictures are from the latest iteration.
As of today there aren't yet stl files available but stay tuned, I just want to field-trip validate some small adjustments I've made before releasing them.

kvHiB33l.jpg6zzsLY7l.jpgpvnMRU6l.jpg

As usual I'm open to any (good or bad) feedback.
Cheers.

Edited by jbrazio

Share this post


Link to post
Share on other sites

Comments :-

1. You could have used Wifi and perhaps UDP to send/recv signals from the Nano (in picture) or used one of the many stand alone ESP modules - no need for Serial Dongle and no wires ? other than power.

2. Instead of VS C# you could have chosen something like Python which runs on Linux,Windows etc

3. As you say the DHT22 in the strip is picking up on the strips Temp/Humidity but making this a separate module using again a small ESP wifi module to transmit data might allow the collection of data nearer to the lens(mine is in the dew shield) - using the sleep mode in MCU enables min power usage ( 5v 1.0a lasts up to 2 weeks)

4. For more simplicity putting a stepper(or stepper POT) on a LED controller, to turn the knob,  gives faster and simpler build time - But I do prefer and like your board version and I will be watching to see if you sell the finished board.

5. The set up could also be used (especially if you adopt a more modular set up - e.g. separate DHT22 ) on existing dew heaters as most use 12v sources and can , i think, be driven by PWM signals.

Brilliant keep it up especially if you can produce the electronic:thumbsup:

Share this post


Link to post
Share on other sites

Hi @stash_old, thanks for the feedback.

If you look closely to the PCB, on the top right corner (which I've highlighted in red below) you'll see the footprint of an ESP01 and it's glue-logic circuitry. There are two main reasons why I'm focusing first on wired connection, 1) Field usage - People may prefer the simplicity of not carry around wireless routers or save theirs phones battery 2) Standards compliance - Every piece of equipment currently used by amateur astronomers relies in old school serial connection, people may gravitate towards it specially in mission-critical situation such as remote observatories.

uvSJAzHm.jpg

Some slight confusion about how temperatures are being measured. The environmental probe is a DHT22, this device is located on the main box, then each heatstrip has its own thermistors for temperature measurement. I really like your idea of cutting cables down to a bare minimum, but on the heatstrips I don't think it will work because we always have to feed in the 12V power to the heating element.


Adapting existing heating elements is indeed a good idea which didn't occur to me before , maybe even having a different box type using RCA connectors instead of the GX12 ones so people have minimal effort to adapt their setup to a better controller. Something to go into my TODO list for sure. ?
 

32 minutes ago, stash_old said:

For more simplicity putting a stepper(or stepper POT) on a LED controller, to turn the knob,  gives faster and simpler build time

Could you please rephrase your suggestion ? I'm not understanding exactly what you meant.

Share this post


Link to post
Share on other sites
7 hours ago, jbrazio said:

Could you please rephrase your suggestion ? I'm not understanding exactly what you meant.

Ok - Led controller (PWM controlled by POT)  https://www.ebay.co.uk/itm/DC-12V-8A-Adjustable-Dimmer-Switch-Control-PWM-Controller-Single-Color-LED-Strip-/292476813364?_trksid=p2349526.m4383.l4275.c10 take off the knob and replace with direct connected small stepper using flexi coupler https://www.ebay.co.uk/itm/Flexible-shaft-coupling-joint-Stepper-Motor-Coupler-Connector-VARIOUS-SIZES/262814471837?hash=item3d30f6969d:m:m_rgCSj1UoLQ4-CN4oOLdIg . You can drive the stepper with existing focusing Arduino/Windows hardware/software AKA Robert Brown excellent Focuser Pro this provides the stepper limits (min and max). The unit has 12v input/output (8amp) drives most heater bands - this is how I stared but then wrote my own Python interface using UDP including MQTT to catch temp/humidity data from any number of DHT22 devices .  

You can of course , if using Roberts Software, use his Ascom focuser interface to drive the heater stepper above (it works I tried it) as both are just positional stepper devices. I have tried this successfully via APT and BYEOS but then it does inhibit a remote Ascom focuser connection.

You don't need wireless routers as ESP devices can be both client and/or server(AP mode) or if you are brave Mesh mode.

8 hours ago, jbrazio said:

don't think it will work because we always have to feed in the 12V power to the heating element

Yes that's the last hurdle which isn't really feasible(simply) - so I was just referring to the comms/data lines

 

8 hours ago, jbrazio said:

Every piece of equipment currently used by amateur astronomers relies in old school serial connection

 

True (not every peice!)  but then read the problems people are having with ,for example, Windows 10 drivers supporting some of these devices(e.g. Prolific). Even so you can still use these devices wirelessly using "virtual com ports"  ?  Plus Sky Watcher ,for example, are now moving away from "serial/tty" mount connections with inbuilt  Wifi in mounts or there Wifi Adapter - both of these provide the "Router/AP/Server mode" . As you can see from the pictures below I used Serial to control my Dew heater but monitored the DHT22 via UDP (not just my scope/obsys ? )

 

As I say love the board as this would enable a number of dew heaters to be controlled (Scope,Guide etc) in a small box and really,IMHO, the "shop" ones are over priced .

As I say keep up the good work ?

dewheater01.png

dewheater02.png

Share this post


Link to post
Share on other sites

Hello and congratulations,

your project looks much and much better.

I will be waiting for the PCB files and the rest so it one can solder/build the complete project with his own hands.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

I'm working on something quite similar :)

Only one output at the moment, I'm also using a bme280 instead of the DHT22, and an OLED display with buttons as UI insted of Serial.

 

How did you fine tune/calibrate the sensors (NTC in particular)? I'm getting values I'm not really sure I could consider reliable... :(

 

Share this post


Link to post
Share on other sites

There is no "factory" tune for the temp probes (either the DHT or the NTC) instead I allow the user on the GUI to define offsets for them, so if you find that a particular sensor is out by 1ºC you just set it's offset and you're good to go.

What is currently missing on the system is EEPROM support so all the parameters are kept.

Share this post


Link to post
Share on other sites

I'm looking at this as something of a beginner to see whether I will give it a go, so apologies if I'm asking something obvious...

Is there a particular spec of NTC that is suitable for this? (would a 'NTC Thermistor 10k MF52-103' be suitable)?  Also, I know the NTCs are mounted with the dewstrip, but is this to take the temperature of the heated strip, or the ambient temperature around the dewstrip?

Thanks

Edited by adyj1

Share this post


Link to post
Share on other sites
2 hours ago, jbrazio said:

There is no "factory" tune for the temp probes (either the DHT or the NTC) instead I allow the user on the GUI to define offsets for them, so if you find that a particular sensor is out by 1ºC you just set it's offset and you're good to go.

What is currently missing on the system is EEPROM support so all the parameters are kept.

The NTC shouldn't, but they should provide you the beta value which is used for calculating the temperature.

I don't know about both DHT or my BME, but the libraries I'm using give out temperatures, not raw values, that's what I was referring to.

4 minutes ago, adyj1 said:

I'm looking at this as something of a beginner to see whether I will give it a go, so apologies if I'm asking something obvious...

Is there a particular spec of NTC that is suitable for this? (would a 'NTC Thermistor 10k MF52-103' be suitable)?  Also, I know the NTCs are mounted with the dewstrip, but is this to take the temperature of the heated strip, or the ambient temperature around the dewstrip?

Thanks

The 10k NTC should be good. Just try to find the beta value from the specs, otherwise calibration might be messy!

  • Thanks 1

Share this post


Link to post
Share on other sites

You're right, I was not thinking about the specs of the sensor but rather some "calibration value".. which in fact are the same thing. ?

The values I use by default are pretty generic ones for the 10k NTC. The NTC resistance (THERMISTOR_NOMINAL_VAL) is 10000 Ohms (10k) at 25.0 ºC ambient temperature (THERMISTOR_NOMINAL_TEMP).

#define THERMISTOR_NOMINAL_TEMP      25.0F
#define THERMISTOR_BCOEFFICIENT    3950.0F
#define THERMISTOR_NOMINAL_VAL    10000.0F

I'm not familiar with the BME but the DHT sensor sends out a 40 bits stream of data with encodes directly the temperature and humidity values [plus a checksum], you just have to convert them into floats, there is no "tuning parameter(s)". But usually the error on these sensors are rather linear for a deterministic temperature range, if you need increased accuracy you may build a lookup table of offsets vs temp range. I believe for the application we are using it here one overall offset is more than sufficient.

@adyj1 The NTC you provided is more than suitable. If you have a look at the datasheet you'll find the B coefficient value of 3470 or 3380 depending on the part number.

http://www.eaa.net.au/PDF/Hitech/MF52type.pdf

  • Thanks 1

Share this post


Link to post
Share on other sites
On 04/09/2018 at 16:20, adyj1 said:

I'm looking at this as something of a beginner to see whether I will give it a go, so apologies if I'm asking something obvious...

Is there a particular spec of NTC that is suitable for this? (would a 'NTC Thermistor 10k MF52-103' be suitable)?  Also, I know the NTCs are mounted with the dewstrip, but is this to take the temperature of the heated strip, or the ambient temperature around the dewstrip?

Thanks

I've got the BOM on order, and have been playing with an Arduino in preparation for making a start on this, so there may be an increase in the number of questions on this thread...

@jbraziocan I just ask again about the location of the NTC on the dewstrip - is it to take the temperature at the strip (i.e. the hottest bit under any thermal insulation) or does it need to be more exposed to the temperatures around the strip to give an idea of how warm the air is getting?

Thanks

Ady

Share this post


Link to post
Share on other sites
7 minutes ago, adyj1 said:

I've got the BOM on order, and have been playing with an Arduino in preparation for making a start on this, so there may be an increase in the number of questions on this thread...

@jbraziocan I just ask again about the location of the NTC on the dewstrip - is it to take the temperature at the strip (i.e. the hottest bit under any thermal insulation) or does it need to be more exposed to the temperatures around the strip to give an idea of how warm the air is getting?

Thanks

Ady

Typical - *after* I post this I find the Cloudy Nights thread where this is discussed in more detail... I think I know what to do now ?

https://www.cloudynights.com/topic/586600-arduheater-open-source-intelligent-heat-strip-controller-dew-buster/

Thanks

Ady

Share this post


Link to post
Share on other sites

No worries, I tend sometimes to take a while to respond because I receive no notifications from this forum (?), I'm also available @jbrazio.

I never really shown my custom take on dew strips.. so here it go, the BOM for it is:

  1. 3D printed template
  2. Kanthal Resistance Wire 24AWG
  3. Kapton tape
  4. GX12-4 male & female connectors
  5. Wire & heat shrink tubing

a4eYGJh.jpg

ap3i6uU.jpg

6FlaTaa.jpg

  • Like 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Dippy
      Baader optical wonder solution is practically Isopropyl alcohol. Instead of £12 for a 70mL of it, buy a 1000 mL of Isopropyl alcohol for £22 (before pandemic it was only £5). They have also smaller bottles which will be cheaper of course. The Baader solution and Isopropyl alcohol don’t remove the toughest of fungi on optics, only a few of the less deep set ones can be treated with them. I have used both for cleaning eyepieces and on certain stage of cleaning several 8 to 12 inch mirrors. They both worked identical. When applied through an optical cleaning fabric, they remove ( dissolve) fatty oils and fingerprints on optical surfaces. I had cleaned a 12 inch mirror once which for some unknown reason had ice cream stain on it (cleaning followed standard operation procedure for cleaning coated aluminised mirrors).
    • By kaslonpro
      I am excited to join this big star gazing community! I realize I am abusing of your kindness, so that you in advance for any help you can give.
      I have an old telescope, what appears to be a Meade ETX 90 from the early 2000s. I cleaned it pretty well after many Youtube videos and online research. I found full blown spider webs and dead spiders!
      I have encountered a few of issues as I'm putting it back together and I wonder if anyone might be able to help.
      1. I took off the screws of the back of my OTA (I know I shouldn't have!) and now I'm not sure how to put them back on (see attachments). When I try it seems to push the primary mirror instead of fastening to anything. 
      2. My secondary mirror flip is broken, the plastic piece part fell off. Is it possible to fix? The mirror itself is also very dirty (see attachments) and I don't think it can be cleaned further. Any tips on how to replace it and where to buy the parts? Or is it possible to not use the 90 eye piece viewport and instead use the front one so I don't need to fix the flip or the mirror?
      4. My secondary baffle is sliding off. I've read that this is a problem w/older models. I tried pushing it to the right place and it requires some force, but after 1 minute it slides back to its original place. What should I do? Does this matter?
      5. The plastic attachment to hold the smaller lens (finderscope?) wobbles no matter how tightly I screw it on. I don't know if it has anything to do with the front plastic part being a little broken.
      Thank you for your help in advance, and I am still learning terminology so be easy on me
       
       






    • By astrosathya
      Hi Everyone,
      I am thinking of re-starting mirror grinding at home. I used to grind by hand and in this method, when we use the 1/3rd off-centre strokes for hogging out the sagitta, the upper glass becomes concave and would be polished into a mirror. 
      However, this time I'd like to build a Mirror-O-Matic or something similar and do not understand that if the tool is on top, how will the bottom glass become concave? 
      Or am I mistaken?
      Please advice.
       
    • By astrosathya
      Friends, I am back with a tutorial video on how to modify your Sky Watcher HEQ5-PRO mount or its American twin, the Orion Sirius EQ-G into a belt driven mount.
      The benefits of converting to a belt drive is that you don't have to worry about Backlash. The procedure took me about an hour to complete.
      Link is below
      https://youtu.be/PjDZiXaN5KM
    • By feverdreamer1
      Hi,
      As a newbie in AP I recently discovered that astro imaging isn't as simple as I imagined, it's not just "pointing and shooting".
      The main point is that I need a tracker that will follow the sky's movement. But after seeing the prices at which decent trackers are sold I decided to see if I could build one myself from spare parts at my workshop. Turns out that I can, using two planks of wood a hinge, an arduino, a stepper motor, etc. So I decided to get to it, I have built the connection between both planks of wood with the hinge, but have now discovered a problem. After some investigation, I realized it's quite commonly named the "Tangent Problem" (the rod forms a 90º angle with the bottom plank). So the solutions offered vary from curved rods to involute pieces of plastic and tilting the rod.
      I also saw another solution that was adjusting the speed at which the rod moves, and since I'm going to be using an arduino-driven stepper motor, I decided that this was the way to go. The problem is that I don't know in what ratio the speed has to increase over time to compensate the "Tangent problem".
      That's why I decided to pose my question here as I'm sure someone must have done it already.
      Sorry for my bad english, it isn't my first langnuage.
      Thanks in advance and clear skies,
      S
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.