Posts

Heat pump install 1 - Vaillant Arotherm Plus

 Why a heat pump? Our house is on a communal LPG system, with significantly higher prices than mains gas and some historical issues with the supplier that made the future prices even more uncertain. The existing (non-condensing) boiler was about 11 years old and slowly dyeing on us.  The choice was not a simple one.  A heat pump would be a 'lot' more expensive, but should be cheaper to run.  Gas would be much easier, but it seemed silly to put in a new boiler which would last 10-15 years when we are supposed to be moving away from gas rapidly. Price comparison Quote for a Worcester Bosch Greenstar 30i lpg including install: £2,600 Quote for an aroTHERM plus 12kW and heat pump install: £15,000 The heat pump itself was only £5,300 the major additional costs include: A new water tank (£1,000) New radiators due to the lower temperature flow (£2,000) New piping kits for the system (£1,000) Electrical works (£800) Installation (£3,000) Other benefits The government incentive scheme o

Evohome problems on Danfoss RAS-C2 valves

Image
New radiators, new problems We have a Honeywell Evohome system, which is excellent for controlling the temperature in a house, especially when you want to save energy and avoid heating rooms until they are needed. Our current house was just converted from LPG to a heat pump, and this required several new radiators.  I'd specifically asked for Evohome compatible valves, and the installer brought some decent quality  Danfoss RAS-C2 valves. I'm told Danfoss valves are one of the most common in the industry, and Evohome controllers come with a specific adaptor for them. Danfoss style valves Valve stroke issues - HR91 The problem was that the radiators never turn on, they are stone cold, despite the valve motor turning. With a bit of investigation I found that the HR91 controllers I was using never open fully to the end stop.  They always stop well before it.  This is apparently a deliberate choice to save battery by winding the motor for a shorter time. The trouble is that the cont

Microchip Telnet Server fixes

I've been implementing a Telnet server on our products using the Microchip TCP/IP stack on a PIC18F87J50. Following are some useful notes! - The TCP/IP stack does not like being interrupted, especially by the USB stack if you have both of them compiled in together. I suggest you get your telnet working fully first before putting USB in place... I found issues with Stack overflows, processor lockup and lost Telnet data when using both at the same time! - If Telnet works but the socked does not disconnect properly when closed by the remote client, check you have initialised the Tick(TCP/IP timing) functions and have it correctly called in the interrupt routines! - Microchip have not bothered to implement Telnet properly. On connection a Telnet connection sends a bunch of options back and forwards to work out what each side can do. The Microchip example ignores these so you get 'junk' data on connection. HyperTerminal on windows sends 6 bytes of settings which the Microchip

Using Plink.exe from C# (accessing a linux PC)

T here seems to be a lot of questions on the web from people trying to access a linux from C#, most of them having problems using 'Plink'. This comes with 'Putty' and allows you to run remote commands on a linux machine. For this example, you have to use Putty to create and store a session using a public key. This makes automated login safer and more secure. The following code runs the 'ls' command on the remote session, called "quarch". Note the redirect of both standard in and standard out! System.Diagnostics. ProcessStartInfo ProcStart; System.Diagnostics.Process Proc; string Result; System.IO.StreamReader Output; ProcStart = new System.Diagnostics. ProcessStartInfo(@"c:\program files\putty\plink.exe"); ProcStart.Arguments = "-load quarch ls"; ProcStart. RedirectStandardOutput = true; ProcStart. RedirectStandardInput = true; ProcStart.

Accessing SD cards via SPI bus

There are various examples of accessing standard SD cards via the SPI bus (Microchip has one in their example code) but getting to the basics of how to implement your own is tricky! Here is a simple how-to, I've tried to show WHY you have to do certain things to make it clear what is happening.... - I'm assuming you have the SD card correctly connected onto the SPI bus and the chip select line (I'll call it CARD_CS) also setup correctly. [SPI BASICS] The SPI bus clock only runs while data is being clocked in/out. Data moves in both directions at the same time so if you clock 'out' byte 0xB3 you're 'in' buffer will change to whatever is on the input bus. If the device you are talking to did not send anything back at that time, the value will be 0x00. The SD card keeps things simple by (normally) not sending anything back until you have finished sending it a commend. This avoids the need to handle 'in' and 'out' comms at the same time... As

Testing on Windows 7 64 bit

If you are trying to get your current .NET code running on a 64 bit system (in my case windows 7 x64) there is a problem loading DLLs If your app needs to load a 32-bit DLL, using LoadLibrary then you'll often find that it fails and the returned pointer is always NULL! This happens if the project target is 'x64' or 'all'. You need to set the build options to build for x32 chips only. That will allow the 32 bit DLLs to be picked up again.

JTAG Progromming on a PIC

Programming an FPGA is a simple job if you have a JTAG interface and programmer to hand. When a product is out in the field though, it's nice to have a more 'customer friendly' method of update.... We're using Lattice XP chips. Lattice supplies the source code for an embedded programmer with their IspVM programming solution. This used ' SlimVME ' files that are compressed for a smaller footprint. Instead of using .JED files, you get 2 VME files, one 'DATA' file containing the fuse settings and a ' ALGO ' file that has the programming algorithm. You can create them either in binary form or as HEX files with .c extensions that ley you compile them directly into code (each file contains a single big initialised array) In the lattice example, you compile a version of these files in with their programming code. Obviously this leads to a large code footprint ~200K for my code....not so good on a PIC! My solution is to use the binary export option