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.



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:



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. ;-)



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 9

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.



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.



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.

Share this post

Link to post
Share on other sites
Posted (edited)

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
Posted (edited)

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.

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.


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.


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

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.


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 🙂



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

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 Craig Shaw
      I have searched SGL for a tutorial incase this has been covered so forgive me if it has. I've also searched the web in general and couldn't find a full tutorial to do this, so i have collated a couple of tutorials that make it work.

      I have managed to get SkySafari to work with a £32 ish Raspberry Pi3 and the cable that came with my scope with a usb to serial converter - the same things you need for connecting to a PC. It allows me to control the scope using the SkySafari Plus app on my tablet or phone AND it creates a wifi hotspot on the Raspberry Pi so it doesnt have to be on a network to work. This also turns the pi into a natty mini wireless router which is handy if you travel since it gives you a private wireless network when plugged into hotel wired internet 😁

      It takes about 30 mins to do the tinkering, make sure you use the latest LITE version of raspbian.
      You need:
      Raspberry Pi 3 Portable power to it (preferably) Raspbian Lite Image file Appropriate cables to connect your Telescope to it via USB Computer connected to network Network cable to connect Raspberry Pi for initial setup A GoTo / Push To etc telescope mount compatible with SkySafari Plus / Pro A nice case for the Raspberry Pi
      You need to know a little about accessing the Raspberry Pi by SSH.
      For windows, use Win32 Disk Imager to burn the latest Raspbian LITE image to a micro sd card. Open the card on the pc (called boot) and make a blank file on it called 'ssh' - no file extension. This enables ssh access automatically.
      Stick it in your Pi and plug it into your network router and a power source.
      Find its ip address - i log into my router by typing its ip address into a web browser and look at connected devices, there are other methods though.

      I use a program called Putty to ssh.

      There are many tutorials on how to do the above and it isnt as hard as it first seems.

      I used 2 tutorials to do this and i will link to them directly as the original authors explain it better than me. The first one is muuuch longer than the second which is just 3 steps so bare with it.
      When the first tutorial suggests a reboot after the upgrade, DO IT! Then ssh back into the Pi and continue.

      Don't bother rebooting after tutorial 1 either.
      Tutorial 1 - Turn Raspberry Pi into a portable wifi hotspot

      See 'CONNECTING' after doing step 2 in the next tutorial to actually connect to the scope as what you have just done changes it a bit.

      Tutorial 2 - Make it talk to SkySafari App and the 'Scope

      You can now unplug the pi from your router. Plug your USB to serial adapter into the pi, your telescope cable into that and connect it to your scope as you would do with a pc (mine is into the AutoStar hand box) and use it as a stand alone adapter just like the £200 SkyFi adapter!

      To connect SkySafari to the pi you simply connect your tablet or phone to the pi's network like you would any other wifi network, i called mine Scope, connect using the security key / password you made up in tutorial 1. Open SkySafari and follow step 3 in the second tutorial but with IP address - the port is still 4000 (unless you changed it)

      If you are at home and your cable is long enough to reach your router you can plug the pi into that and use your home internet too - which you cant do with the SkyFi adapter!
      I am going to shorten my serial cable to make it a neater package, i can always solder new plus to make an extension if i ever need one.

      I am also working on finding out how to make it share usb internet so a 4g dongle can be plugged into it when out and about since when you connect to the pi's wifi in the field you will not have internet on the device connected to it.
      Also the Pi could possibly be used for imaging or tracking, someone on here will probably know more on this.
    • By Bamo
      Hello reader,
      Appreciate your time to read that topic.
      Have you ever tried 3D printing tech to create/design any of your astro components that may substitute expensive ones?. I'm curious to know your thoughts about it.
    • By bottletopburly
      So  my birthday just past so money to splash on astro stuff , i will have my 1000D modded by juan at cheapastrophotography and also have ordered an autofocuser from deepsky dad https://deepskydad.com/autofocuser i know they can be done DIY but this is a neat package  and costs about the same as a SW autofocuser and a hitechastro focusmaster and i`m no electronic wizard and pavel seems to have a good product and works with ascom and confirmed it works with APT i will update in a few weeks time when hopefully i will have received and tried out . 
    • By coatesg
      It's about time that I got together a thread describing my rebuild of my old Orion Optics SPX350. I'd bought this a *long* time ago with a mind to doing it up to use for AP, but then house move, life, etc meant it sat around doing not a lot for a long time. When I came to use it, I got some good results, esp on planetary work, but also found that under the weight of the heavier SBIG CCD, the thin tube didn't hold collimation particularly well. Here it was:

      So, eventually, I decided to have a rebuild. I plumped for a truss tube over a remount inside a carbon tube. Not sure whether carbon tube would have been cheaper now though to be honest! 
      As the scope is mounted on an EQ mount (my Losmandy Titan), it needed to have a central brace, and so I shamelessly borrowed many ideas from Rolf Olsen's excellent scopes (see: https://www.rolfolsenastrophotography.com). 
      It started with the three rings - these were routed out of 21mm Baltic Birch Ply (sourced free from a mate who works in wood sales...). Internal diameter is 390mm.  

      Onto these were mounted a new Orion 9 point primary cell (to replace the naff original 3-point cell) - shown here without any connecting hardware!):

      and with a bit of 1.5" aluminium tube, some drilling and making of small recesses using a spade bit, a secondary cage was constructed -- again without the final countersunk parts and connecting hardware:

      To be continued!!

Important Information

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