
Dew Controller
kuellenberg/Dew-Controller
Dew heater controller for telescope dew heater straps

Dew heater controller for telescope dew heater straps
Dew Sensor is an open-source printed circuit board by kuellenberg, from the kuellenberg/Dew-Controller repository on GitHub. It is a 2-layer board of 29 × 29 mm with 19 parts on 18 nets, routed with 163 tracks and 10 vias.
It is built around the MAX3232ID. Its parts include 9 capacitors, 4 ICs, 2 resistors and 2 connectors. It belongs with the sensors and measurement boards and the PIC boards of this library.
Microcontroller based project to control dew heater straps used on a telescope.

The dew controller continuously calculates the required heating power for each connected dew heater strap based upon lens diameter and current temperature and humidity conditions. By carefully controlling the heating power negative seeing effects caused by undesired air movements are reduced to a minimum. The underlying algorithm compensates for the rate of heat flow from the telescope lens to the cold sky, assuming that the telescope is equipped with a dew shield and only the circular area of the lens is exposed to the sky. An adjustable 'fudge factor' copes with all other deficiencies, like lack of thermal insulation from the heater straps. The theory gives very simular results to the rule of thumb given by [1].
The dew controller is build around a PIC16F15356 microcontroller with 16k words of flash memory and 2kB of RAM. It is configured to run at a clock frequency of 4.0 MHz, generated by its internal oscillator. With hindsight, regarding flash memory size and the string constants required by the menu system, the part wasn't the optimal choice. Without compiler optimizations the code doesn't fit on the device. For the next revision of the hardware a pin compatible PIC18F should be considered.
Since the controller has to be capable of measuring the current on each heater channel, the circuit comprises a TI INA180 high side current sense amplifier. To reduce cost and complexity, only a single amplifier is used and firmware measures the current of each channel sequentially. As for overcurrent and short circuit protection, an integrated solution is used. The Vishay SiP32419 is a load switch with programmable current limit up to 3.5A and eliminates the need for a conventional fuse (for which you'll never bring any spares, when you operate the device on a field trip).
The input voltage is measured with a simple voltage divider, buffered by 1/2 LM358. The other half of the Opamp is used for buffering the auxiliary NTC temperature sensor input.
It turned out that the switch mode regulator used on the OLED display module injects a lot of conducted noise back into the supply rails, which seriously impacts the performance of the microcontroller's ADC. The easiest way to block the noise from getting into the microcontroller was using a dedicated linear regulator for the display module. The regulator can be turned off via a MOSFET to save power during standby operation.
The device's menu system is entirely operated by a single rotary encoder with integrated push button. Although the quadrature signals are rudimentary low pass filtered, further debouncing is required in software.
High side P-channel MOSFETs are used to operate the four heater channels.
The external temperature and humidity sensor is connected via an RS-232 interface, providing flexibility when testing different types of sensors. Although technically, the RS-232 level shifter isn't necessary if short cables are used, it gives good ESD protection and some extra noise immunity.
The housing is designed with Schaeffer AG Frontplatten Designer
The sensor circuit is very simple. It uses the PIC16F325 with 8k words flash memory and 1kB RAM. Unlike the controller circuit, it is powered by a 3.3V regulator. The Si7006 temperature and humidity sensor via connected I2C. RS-232 level shifting is done by a MAX3232. The PCB is designed to fit into a Hammond 1551 case with custom lid.

Firmware development is done in MPLAB X with XC8 compiler.
t.b.c.
[1]: G. D. Roth, Handbuch für Sternfreunde. Band 1: Technik und Theorie. ISBN 978-3-662-35367-7
| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 100nF | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3, C4, C5, C6, C7, C8, C9 |
| 2 | 10k | Resistor_SMD:R_0805_2012Metric | R1, R2 |
| 2 | MountingHole | MountingHole:MountingHole_2.5mm | H1, H2 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Horizontal | J1 |
| 1 | Conn_01x05 | Connector_PinHeader_1.27mm:PinHeader_1x05_P1.27mm_Horizontal | J2 |
| 1 | MAX3232 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U2 |
| 1 | MCP1703A-3302_SOT23 | Package_TO_SOT_SMD:SOT-23 | U1 |
| 1 | PIC16(L)F15323_14DIP_SOIC_TSSOP | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U3 |
| 1 | Si7006 | ak:SI7006-A20 | U4 |
It measures 29 × 29 mm and has 2 copper layers, 1.6 mm thick.
19 parts, built around the MAX3232ID. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the kuellenberg/Dew-Controller repository on GitHub, at the commit this page was made from: the board is Hardware/Dew-Sensor/Dew-Sensor.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask kuellenberg before reusing the design.

kuellenberg/Dew-Controller
Dew heater controller for telescope dew heater straps


doudar/SmartSpin2k
Transform your spin bike into a Smart Trainer!


zephray/ELTerm
ANSI/VT100-compatible serial terminal built with Raspberry Pi Pico and EL640.480-AM/AG screen


Tjeerdie/SPECTRE
Speeduino compatible engine control unit (ECU) based around black STM32F407VET6 board.

scrapcomputing/ThrottleBlaster
A Turbo circuit with a MHz display that can slow down the CPU speed

cole8888/SRNE-Solar-Charge-Controller-Monitor
Read data from SRNE solar charge controllers.
