the HULK II

Back to VSCP Modules

Current Harware Version: 0.0.1
Current Firmware version: 0.0.3 

Download

Firmware

First generation - The HULK I

The HULK was a project built many years ago to control a wood burning furnace. The project came about because the control card for the system was broken when I bought the used system. Originally this was a tank for wood-chips (not sure this is the right English word) which I used for wood pellets. A motor driver screw that fill up a burning chamber in front of the furnace with fuel.

thehulk.jpg

The original HULK did not have any light mechanism and the fire must be kept lit all the time so the functionality of this system was to keep a full fire in the burning chamber when the preset furnace temperature has not been reached and a slow burning fire when the preset temperature was reached. Quite an easy task.

The system is used to warm up our house (wish is both the home of my family and the office for my wifes and my business on the ground floor).

brattberg.jpg

This original system had some problems from a security perspective. The main problem was that the fuel transport mechanism and the burning chamber was on the same level and therefore there was a risk for a fire in the transport mechanism itself which in worst case could reach the fuel storage tank. To prevent this a security mechanism was mounted on the screw that filled it with water when it reached above a certain temperature.

the HULK II

I bought the mechanics for the HULK II from a good friend of mine. This was a combination of things he built him selves and a commercial system. The system also had a lightning mechanism wish is a good plus. The first two years I had this system I used the embedded control card that came with the system. This worked good most of the time but there was some pickups in the system that made it fill fuel in an uncontrolled way and sometimes start and stop the fuel fill motor also in an uncontrolled way.

hulk2.jpg

As seen in the drawing above the fuel transport mechanism does not live on the same level as the burning mechanism also the fuel storage is smaller. I now have to fill fuel very day but I will solve this later by adding a second screw from my 30 m3 main fuel storage.

hulk2_chamber.jpg

The schematics picture above show the burning chamber. The transport mechanism screw that fill fuel. The fan that provide primary and secondary air for the fire. The heater that light the fire when needed. The fire detector that detect a fire. This is just a LDR that have have a main sensitivity in the IR region of the spectra. Its the same thing that is found in most oil burners.

The control scenarios are very simple really

To light the fire and start up the system.

  1. Power Fan and heater
  2. Fill fuel.
  3. Wait until fire is detected and turn of heater if so starting full screw.

While the furnace temperature set point is not reached the fuel screw and the fan is running. When the set point is reached the fan is run for some time to burn out fuel in the burning chamber and lastly the screw is run for a short time to prevent any backfire in the screw. The system is then put to rest until its time to start up again.

Water heater

Some years ago a lightning strike took out the water heater in my house. The control mechanism was fried and looked more like a piece of toast then a circuit board. I then built a Microchip PIC16F84 based board to control this unit.

The unit got four 3kW electrical elements. There should be a delay between switch on of elements and in the original design there where two stages. First 6kW was switched on and after two hours another 6kW was switched on.

The temperature in the heater is sensed with a Smartec temp sensor (see http://www.vscp.org/vscp/modules/kelvin_smart2/index.html ) and there is a mechanical over temperature protection to prevent the system from boiling in case of control system failure. This has been needed a couple of times when the sensor has been burned buy other nearby lightning strikes.

The heater is used both as a backup during the winter in case the main system fails and during the summer for hot water production.

The system got a RS-232 control interface that allows me to control certain functionality of the system.

  1. Preset water temperature can be set.
  2. Can be enabled/disabled.
  3. Current hot water temp can be read.
  4. and more…

With this functionality the hot water temperature could be lowered during periods and raised just before the need for a lot of hot water occurred.

I decided to add control for this system also into the HULK II. This was because of two reasons. The original control software was written in assembler and the PIC16F84 was now obsolete.

For those interested in this original control software (!!!) it is available in the VSCP CVS under /can/src/eda/hardware/mumin/picnode/esc1

New Control System

So the new system should control the new HULK II hardware and the water heater. Another important consideration was that I wanted to use VSCP to control the system externally as this is what I use for the rest of the functionality of my house. I use CAN and Ethernet for this but decided to use can for this system.

When I was thinking of the design Circuit Cellar ran a design contest for the LPC21xx series of ARM based controllers from Phillips. I entered this contest and got a Keil MCB2130 board. This board have a LPC2138 on board and thus plenty of I/O, Flash, A/D's etc for my project. I have never before worked with the ARM core and also saw this as a great way to get to now that arcitechture.

The main design goals was something like the following:

  • I wanted lots of LED's that showed status for different parts of the system to help to search for errors when there is some problem.
  • I wanted an LCD with buttons that showed status and also let me configure setpoints etc.
  • It should control two 380V 3-phase trasport motors.
  • It should control one 240V Fan.
  • It should control one 240V Heater.
  • It should have an A/D input for a fire detector and a fire detector reference.
  • It should be able to directly control a 12V alarm.
  • It should be able to report furnace water temperature, return water temperature, temperature on the transport mechanism closest to the burning chamber.
  • It should report hot water temperature.
  • It should be able to control the four 3kW heating elements of the water heater in two stages.

Electronics

The Keil MNC2130 board is documented here http://www.keil.com/mcb2130/ It is a great board but was missing CAN so I used the Lawicel CAN232 for the CAN link. http://www.can232.com/ The second serial port is used for the CAN232 adapter and the first is used for status and debug information.

hulk-driverstage.jpg

Above is the driver for the LED's and relays to control the two 380V three phase motor (Motor A, Motor B), the relay for the 240V FAN, the relay for the 240V Heater and the relays for the two water heater stages.

hulk-alarmdriver.jpg

This is the alarm driver. Note that R5 may not be needed for some alarms as they has enough internal resistance.

hulk-control1.jpg

This drawing show the control connections for the furnace control

hulk-control2.jpg

and this show the control connections for the water heater.

hulk-heater.jpg

The above schema is the control electronics for the water heater.

hulk-firedetect.jpg

The above is the fire detector input stage. Some input protection is also added but not shown.

hulk-onewire.jpg

Dallas 1-wire interface is used to read less important temperatures.

hulk-eeprom.jpg

Also needed an eeprom for persitant storage both for VSCP data and for device parameters.

Added to this is a switched power suppluy for +5V DC and +12V DC, button and LED interfacing. Mounted in the box it all looks like this

Mounted control unit

thehulk2.jpg

This picture show the clectronics mounted on the chassis

thehulk1.jpg

Another chassis picture

hulk-driverstage2.jpg

The driver stage

hulk-alarmdriver2.jpg

The alarm driver

hulk-eeprom2.jpg

EEPROM and 1-Wire electronics

thehulk13.jpg

and mounted in the box

thehulk10.jpg

The front

thehulk11.jpg

This is another picture of the front on an active system. The LCD display show the water temp of the furnace (no temp sensor connected here). The system is active and therefor the fan an transport A+B is running feeding fuel to the burning chamber.

The Forward, Down, Up, Enter buttons can be used to move around in the menu system and look at different live data, enable disable the system or certain functionality and configurate setpoints and other parameters. The force transport allow me to manually fill fule in the burn chamber. A feture that is very useful when the transport mechanism has been run empty and the preset fule fill time before start is to short.

hulk-relaybox.jpg

This is the realybox

hulk-burnchamber.jpg

Fire in the burning chamber

hulk-unit1.jpg

The HULK II

hulk-unit2.jpg

The HULK II

hulk-unit3.jpg

The HULK II

hulk-unit4.jpg

The HULK II

hulk-esc1.jpg

The old water heater control unit

hulk-waterheater.jpg

The water heater elements with the accumulator tank.

VSCP

VSCP Registers

Register Name Description
0 (0x00) Zone The zone for the Hulk Module.
1 (0x01) States 0. bit 0 - Furnace transport Motor A.
bit 1 - Furnace transport Motor B.
bit 2 - Furnace fan.
bit 3 - Furnace heat Element.
bit 4 -
bit 5 -
bit 6 -
bit 7 – Furnace Enabled.
2 (0z02) States 1. bit 0 - Water heater element A state
bit 1 - Water heater element B state
bit 2 -
bit 3 -
bit 4 -
bit 5 - Alarm.
bit 6 - Alarm enabled.
bit 7 – Water heater enabled.
3 (0x03) Fire Detector MSB. This is the A/D value from the fire detector. 0-1023.
4 (0x04) Fire Detector LSB.
5 (0x05) Temp Furnace MSB. This is the temperature in the furnace in degrees Celsius. Reserved for future functionality
6 (0x06) Temp Furnace LSB.
7 (0x07) Reserved
8 (0x08) Reserved
9 (0x09) Reserved
10 (0x0A) Reserved
11 (0x0B) Preset furnace water temperature. This is the temperature the furnace should try to get the outgoing water temperature to reach. 0-255 degrees Celsius.
12 (0x0C) Preset electrical water heater temperature. This is the temperature the temperature the electrical water heater should try to get the electrical heater core water temperature to reach. 0-255 degrees Celsius.
13 (0x0D) Current electrical water heater temperature. This is the current temperature for the core water temperature of the electrical heater. 0-255 degrees Celsius.
14 (0x0E) Temp Smoke gases MSB. Future functionality
15 (0x0F) Temp Smoke gases LSB. Smoke gas temperature can be used for air mix (primary/secondary). This value should be written from an external sensor through the decision matrix.
16 (0x10) CO measurement MSB. Future functionality
17 (0x11) CO measurement LSB. This is the A/D value form a CO measurement sensor.
18 (0x12) Electrical Heater Control. Bit 0 – Enable element 1
Bit 1 – Enable element 2
Bit 2 –
Bit 3 -
Bit 4 –
Bit 5 -
Bit 6 -
Bit 7 -
19 (0x13) Time before element 2 is activated. MSB.
20 (0x14) Time before element 2 is activated. LSB. Element 2 will be activated this amount of seconds after element 1 has been activated. 0 is off.
21 (0x15) Minutes to run fan after target temperature reached. The fan will continue to run for this time to burn out fuel in the burning chamber after the preset temperature has been reached.
22 (0x16) Seconds to run transport motor B before rest. The transport Motor B will continue to run for this time to empty the transport mechanism on fuel after the preset temperature has been reached and the fan has turned off.
23 (0x17) Seconds to run motor A + B to fill fuel. The transport Motor A + B will run for this time to fill fuel in the burning chamber during startup.
24 (0x18) Furnace restart attempts. Max number of retries that should be done to fire up the furnace. 0 is no retries. Alarm if unable to fire up the furnace.
25 (0x19) Temperature hysteresis electrical water heater. The temperature in the electrical heater has to go down with this amount for the heater to be turned on again.
26 (0x1A) Temperature hysteresis furnace. The temperature in the furnace has to go down with this amount for the heater to be turned on again.
27 (0x1B) Fire Detector hysteresis MSB.
28 (0x1C) Fire Detector hysteresis LSB. The fire detector has to be this amount below the preset value to detect no fire.
29 (0x1D) Temp electrical water heater outgoing water. Temperature on outgoing water from water heater. 0-255 degrees Celsius.
30 (0x1E) Furnace start timeout This is the time in minutes a furnace fire attempt should be carried out before a retry should be performed.

VSCP Events

Temperature furnace water out

Send event every minute.
CLASS.MEASUREMENT TYPE=6, Temperature
Format: Integer Format (one byte).
Data coding: 0x60 Index = 0

Temperature furnace water return

Send event every minute.
CLASS.MEASUREMENT TYPE=6, Temperature
Format: Integer Format (one byte).
Data coding: 0x61 Index = 1

Temperature transport B

Send event every minute.
CLASS.MEASUREMENT TYPE=6, Temperature
Format: Integer Format (one byte).
Data coding: 0x60 Index = 2

Temperature Water Heater Core

Send event every minute.
CLASS.MEASUREMENT TYPE=6, Temperature
Format: Integer Format (one byte).
Data coding: 0x60 Index = 3

Temperature Hot Water

Send event every minute.
CLASS.MEASUREMENT TYPE=6, Temperature
Format: Integer Format (one byte).
Data coding: 0x60 Index = 4

Fire Detector

Send event every minute.
CLASS.MEASUREMENT TYPE=50, Relative Level
Format: Integer Format (two byte).
Data coding: 0x60 Index = 0

Over Temperature

On/off

CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=0

Transport motor A

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=1

Transport motor B

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=2

Fan

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=3

Heater

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=4

Electrical Water heater element A

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=5

Electrical Water heater element B

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=6

Alarm

CLASS.ALARM TYPE=2, Alarm occurred.
Zone=Configurated
SubZone=7

Furnace

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=8

Water Heater

On/off.
CLASS.INFORMATION TYPE=3/4, ON/OFF
Zone=Configurated
SubZone=9

Control

The following events can be sent to the module to control certain functionality.

Alarm on/off

Send
CLASS.CONTROL TYPE=5/6, TurnOn/TurnOff
Zone=Configurated
SubZone=7

Furnace on/off

Send
CLASS.CONTROL TYPE=5/6, TurnOn/TurnOff
Zone=Configurated
SubZone=8

Water heater on/off

Send
CLASS.CONTROL TYPE=5/6, TurnOn/TurnOff
Zone=Configurated
SubZone=9

Port pin usage

Port 0

Pin Description
P0.00 TX2 – Debug and diagnostics
P0.01 RX2 – Debug and diagnostics
P0.02 I2C SCL for 24LC512 EEPROM
P0.03 I2C SDA for 24LC512 EEPROM
P0.04 DB4 LCD Display.
P0.05 DB5 LCD Display.
P0.06 DB6 LCD Display.
P0.07 DB7 LCD Display.
P0.08 Serial TX1 - ISP and Lawicel CAN232..
P0.09 Serial RX1 - ISP and Lawicel CAN232..
P0.10 RS LCD Display.
P0.11 Reserved
P0.12 R/W for LCD Display.
P0.13 E for LCD Display.
P0.14 Enable ISP. / Button – State 0.
P0.15 Electrical water heater core temperature sensor.
P0.16 Over temp sensor.
P0.17 Furnace Core temperature.
P0.18 Button - Display page forward.
P0.19 Button - Up.
P0.20 Button - Down.
P0.21 Button - Button - Enter.
P0.22 Button - Force transport motors on.
P0.23 Reserved for CAN LPC 212x.
P0.24 Reserved for CAN LPC 212x.
P0.25 AOUT - Sound - CANRX0 on LPC 212x.
P0.26 CAN TX0 on LPC 212x.
P0.27 ANALOG INPUT - Stove Fire Detector.
P0.28 ANALOG INPUT - POT (Fire detect level).
P0.29 Reserved.
P0.30 Reserved.
P0.31 Reserved.

Port 1

p1.16 LED 16 + Transport Motor A relay.
p1.17 LED 17 + Transport Motor B relay.
p1.18 LED 18 + Fan relay.
p1.19 LED 19 + Heater element relay.
p1.20 LED 20
p1.21 LED 21 + Alarm.
p1.22 LED 22 + Electric water heater element A
p1.23 LED 23 + Electric water heater element B
p1.24 Reserved for JTAG i/f
p1.25 Reserved for JTAG i/f
p1.26 Reserved for JTAG i/f
p1.27 Reserved for JTAG i/f
p1.28 Reserved for JTAG i/f
p1.29 Reserved for JTAG i/f
p1.30 Reserved for JTAG i/f
p1.31 Reserved for JTAG i/f

Connectors

Main Connector

Pos Pin Colour Description
1 P0.15 White/Blue Smarttemp – Water heater core
2 P0.16 Blue/White Over temperature sensor
3 P1.27 Brown/Black Fire Sensor
4
5 P1.23 Heat Element B
6 P1.22 Heat Element A
7 P1.19 Furnace Heater
8 P1.18 Furnace Fan
9 P1.17 Transport Motor B
10 P1.16 Transport Motor A
11 P1.21 Alarm +
12 P0.17 Smarttemp - Furnace Core Temperature

Furnace Connector

Pin Colour Description
1 Black Transport motor A.
2 Brown Transport Motor B.
3 Red Furnace Fan.
4 Orange Furnace Heater.
5 Yellow Over temp Sensor.
6 Green Fire Detector.
7 Blue GND.
8 Purple Temperature Transport B.
9
10
11
12
13
14
15
16
17
18
19
20 Grey +5V DC
21
22 White +3.3V DC
23
24
25

Display Connector

Pin Cable Colour Description
1 GND
2 +5V
3
4 Black/Blue RS, P0.10
5 Blue/Black R/W, P0.12
6 Grey/Black E, P0.13
7 NC
8 NC
9 NC
10 NC
11 White/Orange DB4, P0.04
12 Red/Black DB5, P0.05
13 Black/Green DB6, P0.06
14 Green/Black DB7, P0.07
15
16

Lid Connector wires

Port Cable color Description
P0.11 Orange/white Status LED.
P0.14 Black/Red State 0 – Internal.
P0.15 White/Blue Smart temp Sensor, Heater Core temperature.
P0.16 Blue/White Over temp Sensor.
P0.20 Black/Brown Button Down.
P0.21 Orange/Blue Button Enter.
P0.22 Black/Yellow Button Force Transport ON.
P0.18 White/Black Button Forward.
P0.19 Black/White Button Up.
P1.27 Brown/Black Fire Sensor.
P1.23 Blue/White Element B – Main Connector 5.
P1.22 White/Blue Element A – Main Connector 6.
P1.19 Green/Black Furnace Heater – Main Connector 7.
P1.18 Black/Green Furnace Fan – Main Connector 8.
P1.17 Black/Blue Transport Motor B – Main Connector 9.
P1.16 Blue/Black Transport Motor A – Main Connector 10.

History

  • 2006-06-28 - 1-Wire removed. P0.17 is now Furnace core temp and a SmartTemp sensor is used.
the_hulk_ii_-_the_hulk_ii.txt · Last modified: 2010/08/19 01:55 (external edit)
Public Domain
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0