

Dew Controller
Dew heater controller for telescope dew heater straps
- Size
- 100 × 50 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 92
- Nets
- 82
- Pads
- 302
- Tracks, vias
- 541, 116
- Pours
- 34
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 2 Aug 2019
- Updated
- 18 Feb 2020
Overview
Dew Controller is an open-source printed circuit board by kuellenberg, from the kuellenberg/Dew-Controller repository on GitHub. It is a 2-layer board of 100 × 50 mm with 92 parts on 82 nets, routed with 541 tracks and 116 vias.
It is built around the MAX232N, SIP32419EVB and LM358, with the SI2369DS, BSS138 and SMAJ12A among its other parts. Its parts include 26 capacitors, 26 resistors, 11 transistors, 9 diodes and 8 ICs. It belongs with the sensors and measurement boards and the PIC boards of this library.
Main components
7MAX232N
PDIP-160℃~+70℃ 120Kbps 2 2 4.5V~5.5V Transceiver PDIP-16 RS232 ICs ROHSTexas InstrumentsRS232 ICsSIP32419EVB
-ModulesVishay IntertechnologyLM358
SOP-8-18V~18V 0℃~+70℃ 1.2MHz 10nA 2 24mA 3V~36V 500uA 50nA 5mV 80dB Built-in compensation SOP-8 Operational Amplifier ROHSMSKSEMIOperational AmplifierSI2369DS
SOT-23-55℃~+150℃ 1 P-Channel 1.295nF 11.4nC@10V 130pF 150pF 2.5V 2.5W 30V 40mΩ@4.5V 7.6A P-Channel SOT-23 MOSFETs ROHSVishay IntertechnologyMOSFETsBSS138
SOT-23-55℃~+150℃ 1 N-channel 1.1Ω@10V、1.2Ω@4.5V 1.2V 1.7nC@10V 17.5pF 340mA 350mW 50V 6.5pF N-Channel SOT-23 MOSFETs ROHShongjiachengMOSFETsSMAJ12A
DO-214AC(SMA)-55℃~+150℃ 12V 13.3V 19.9V 20.1A 400W 5uA TVS Unidirectional DO-214AC(SMA) ESD and Surge Protection (TVS/ESD) ROHSGOODWORKESD And Surge Protection (TVS/ESD)BAT54S
SOT-231 Pair Series Connection 1V@100mA 200mA 2uA@25V 30V 600mA SOT-23 Schottky Diodes ROHSMDDSchottky Diodes
README
README.mdDew Controller
Microcontroller based project to control dew heater straps used on a telescope.
Specification
- Operating voltage: 12V dc
- Power consumption (idle): t.b.d.
- 4 independently controlled heater channels
- RCA jacks
- Electronic overcurrent and short circuit protection
- Total output current: 3.5 A max.
- 12 x 2 OLED display
- External temperature and humidity sensor connected via RS232 interface
- Uses Silicon Labs Si7006 precision sensor
- +/-1°C max.
- +/-5% RH max.
- Uses Silicon Labs Si7006 precision sensor
- Auxiliary NTC temperature sensor input for testing and calibration
- User-friendly menu with rotary encoder input

Theory of operation
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].
Hardware
Controller Unit
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.
Case design
The housing is designed with Schaeffer AG Frontplatten Designer
Sensor Box
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
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
Parts
92| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 10k | Resistor_SMD:R_0603_1608Metric | R7, R17, R18, R19, R20, R21, R22, R25 |
| 8 | 10uF | Capacitor_SMD:C_1206_3216Metric | C1, C5, C16, C17, C20, C21, C23, C24 |
| 6 | 10nF | Capacitor_SMD:C_0603_1608Metric | C6, C9, C10, C12, C22, C26 |
| 6 | SI2369DS | Package_TO_SOT_SMD:SOT-23 | Q1, Q4, Q5, Q8, Q9, Q11 |
| 5 | 100R | Resistor_SMD:R_0805_2012Metric | R9, R10, R13, R14, R23 |
| 5 | 100nF | Capacitor_SMD:C_0603_1608Metric | C11, C13, C14, C15, C19 |
| 5 | 10k | Resistor_SMD:R_0805_2012Metric | R11, R12, R15, R16, R24 |
| 5 | 1uF | Capacitor_SMD:C_0805_2012Metric | C2, C3, C4, C7, C8 |
| 5 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q2, Q3, Q6, Q7, Q10 |
| 4 | SMAJ12A | Diode_SMD:D_SMA | D6, D7, D8, D9 |
| 2 | 4R7 | Resistor_SMD:R_0603_1608Metric | R1, R3 |
| 2 | 5V6 | Diode_SMD:D_SOD-523 | D4, D5 |
| 2 | MCP1703A-5002_SOT89 | Package_TO_SOT_SMD:SOT-89-3 | U1, U7 |
| 1 | 0R05 | ak:R_Shunt_Ohmite_LVK12 | R2 |
| 1 | 100k | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 100nF | Capacitor_SMD:C_0805_2012Metric | C25 |
| 1 | 150k | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | 15V | Diode_SMD:D_SMB | D1 |
| 1 | 15V, 3W | Diode_SMD:D_SMB | D2 |
| 1 | 1uF | Capacitor_SMD:C_0603_1608Metric | C18 |
| 1 | 2k8 | Resistor_SMD:R_0603_1608Metric | R4 |
| 1 | 3A | ak:Fuse_2920_7451Metric | F1 |
| 1 | 470R | Resistor_SMD:R_0603_1608Metric | R26 |
| 1 | 47k | Resistor_SMD:R_0603_1608Metric | R6 |
| 1 | 50mA | ak:Fuse_0603_1608Metric | F2 |
| 1 | BAT54S | Package_TO_SOT_SMD:SOT-23 | D3 |
| 1 | CH1 | ak:PJRAN1X1U | J6 |
| 1 | CH2 | ak:PJRAN1X1U | J7 |
| 1 | CH3 | ak:PJRAN1X1U | J8 |
| 1 | CH4 | ak:PJRAN1X1U | J9 |
| 1 | ICSP | ak:MicroMatch-Female-6P | J5 |
| 1 | INA180-A2 | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | LM358 | Package_SO:VSSOP-8_3.0x3.0mm_P0.65mm | U5 |
| 1 | Lemonhead | ak:lemonhead | G1 |
| 1 | MAX232 | ak:SOIC-16W_5.3x10.2mm_P1.27mm | U2 |
| 1 | OLED-012N002A | ak:OLED012N002A | U8 |
| 1 | PIC16(L)F15354_28DIP_SOIC_SSOP | Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm | U6 |
| 1 | POWER | Connector_JST:JST_XH_B02B-XH-A_1x02_P2.50mm_Vertical | J1 |
| 1 | RS232 | Connector_JST:JST_XH_B04B-XH-A_1x04_P2.50mm_Vertical | J2 |
| 1 | Rotary_Encoder_Switch | ak:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW1 |
| 1 | SIP32419 | ak:DFN-10-1EP_3x3mm_P0.5mm_EP1.4x2.3mm | U3 |
| 1 | Temp | ak:MJ-2509N | J3 |
Questions
How big is the Dew Controller PCB?
It measures 100 × 50 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Dew Controller use?
92 parts, built around the MAX232N, SIP32419EVB, LM358 and SI2369DS. 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.
Where can I download the Dew Controller KiCad files?
From the kuellenberg/Dew-Controller repository on GitHub, at the commit this page was made from: the board is Hardware/Dew-Controller/Dew-Controller.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Dew Controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask kuellenberg before reusing the design.
More from kuellenberg/Dew-Controller
2- 2 layers29 × 29 mm

- 2 layers15 × 20 mm

Similar boards
- 4 layers68 × 50 mm

PicoChainZero
jasonalexander-ja/PicoChain
Power and I2C daisy chained over ethernet patch cables.
41 parts1MIT - 2 layers200 × 100 mm

- 2 layers210.1 × 69.6 mm

- 4 layers102.4 × 83.1 mm

- 2 layers102.1 × 82.7 mm

PLC Electiva
JosueHerrera05/Josue_Herrera_Electiva_2026_C2
Repositorio Electíva Diseño Mecatrónico 2026-C2
198 partsMIT - 2 layers135 × 92 mm

Curve tracer
leedanie2/curve-tracer
Programmable semiconductor curve tracer: STM32 firmware, two-layer KiCad PCB, SPICE Monte Carlo analysis, and a host-side SPICE-parameter extraction pipeline. Hardware in bring-up.
88 parts - 4 layers102.4 × 83.1 mm

PLC4UNI GC1
paulmartinezcuenta/PLC4UNI
Development of programmable logic controller, product for mechatronic design.
179 partsMIT - 4 layers101 × 47 mm
