I'm looking at purchasing a Daikin FDYQ180M (Our Product Range | Daikin) inverter aircon for home and I want to be able to connect it to my PC. I figured a good way would be using my existing Arduino as a gateway between them.
The aircon isn't the usual off/on type system as it has different zones, fan speeds and throttles down, so that rules out just using a relay to control the unit.
After looking around a bit there appears to be numerous other systems (Which I'd rather not buy if I can get away with it) that use an F1F2 connector? and an addressing and control scheme. Has anyone successfully integrated an Arduino with a similar device? If so I'd love to hear how, or if anyone has any other suggestions that won't cost me an arm and a leg
I can't see anywhere on their site that mentions any form of open serial protocol or some such.
You could buy their controller and put an LA on the wires, but then you might as well just use the controller eh?
Have you Googled for "Daikin control protocol" or something like that?
Do these other systems disclose their protocol? If so it can probably be mimiced.
Rob
Here's a document that describes the protocol
http://www.robgray.com/temp/BACnetEncoding.pdf
No mention of the physical format though but's it's full duplex so my guesss would be Async serial.
Rob
Having a look at this link (http://www.daikin.com/global_ac/products/network_solution/opennetwork/index.html) it says it supports BACnet and LonWorks which are apparently the 2 leading open network communication types? I'm not too sure where to go from here though as I can't find much on the protocol(s)...
I found a website www.coolautomation.com which had hardware interfaces for Daikins, so I sent them an E-mail. Aside from being a whopping $700 USD I found little else out from them by E-mailing (I didn't expect them to be too open about how it works though as it would cost them business):
First of all I'm very glad you have found an interest in our product.
What you need is CooLink D. The device will be connected to the same
terminals as the local remote controller (P1/P2) and can be operated by PC.
However, you will have to write your own PC software, or use Windowa Hyper
terminal to send ASCII commands to the unit.
When I asked further about the Daikin protocol I got this response:
It uses unique interface hardware, designed for Daikin.
Its not just a general type interface with microchip that can be programmed.
Also the protocol can not be published.
You can get some info about Lonworks from here
http://www.echelon.com/products/lonworks_platform.htm
But I wouldn't expect enough detail to build your own. I'm pretty sure it's a synchronous protocol.
Unless someone pipes up who's been here before I'd say you're out of luck unless you want to get serious with a logic analyser, but then you'll need a device to reverse engineer.
Rob
I've done even more prodding around and found out that the LonWorks and BACnet are additional interface cards, and that the unit by default uses DIII-Net / D3-Net to communicate with up to 64 units.
I wonder then, if either a) I can somehow integrate the arduino into the expansion port or whatever the cards connect to, or b) find some information on the DIII-Net protocol and integrate the arduino there.
Well hopefully someone here will of done a similar thing and can provide me with info, otherwise I don't know what I can do as I'm not gonna spend $700ish on a interface card!
I'm sure that with enough will, skill and equipment the controller would be hackable and/or you can rev engineer the protocol. But with no documentation you would need a controller, and if you have one you may as well just use it
So as you say, unless someone has already figured this out your in deep doo doo.
Rob
It's not that I don't want to use the controller (When I get the system) but I want to be able to control it remotely and from a central point with all other automation.
How would I begin to reverse engineer the protocol when I get the controller? Do I need specific hardware? Can I use the arduino?
How would I begin to reverse engineer the protocol when I get the controller?
One way or another you're going to need some gear, probably a logic analyser (LA) and/or an oscilloscope (CRO). Not as scary as it sounds because these days you can get them really cheap as a USB device for your computer.
For example
http://www.poscope.com/products.php?cid=1
If you're into embedded electronics this will be a usefull tool in future anyway.
You need to know two things, the voltage level on the comms lines, and of course the protocol.
I'd start by opening the controller box. Look for a chip mounted next to the connector where the wire is plugged in. If you're dead lucky it will be a MAX232 or MAX485 or some easily recognizable chip. If so then you know the voltage level of the physical connection.
If not then that's where the CRO comes in, just put a probe on the line and read the voltage. The only reason I say to get the voltage is that I'm used to using an LA that can only handle 5v on the inputs. Truth is if you get a CRO with storage facility (which these days they probably all have) you don't need the LA because that's really the same thing.
Use the CRO to identify the data line(s), having done so connect probes to them and start pressing buttons. Note the patterns that go out and what is returned.
There'll be a frame of some kind going out and an acknowledge coming back, very quickly I suspect you'll start seeing a pattern.
Once you've got it documented you can duplicate it with the Arduino.
Caveat: It's possible that it's some weird-arsed Manchester-encoded encrypted synchrounous protocol based on HDLC with an X.25 twist. In which case it may be too difficult to figure out, but I think that's unlikely.
Rob
Would a CRO as cheap as http://cgi.ebay.com.au/2-Channel-PC-Computer-Digital-Storage-USB-Oscilloscope-/400172785535?pt=AU_B_I_Electrical_Test_Equipment&hash=item5d2c281f7f do the job so long as the signal voltage <=5v? or are these really cheap ones not worth the box they come in?
these really cheap ones not worth the box they come in?
Pretty much, for this type of work anyway.
That one has a sampling freqeuncy of 4kHz when using 2 channels, that's not even good enough for audio, there's a chance you'll be dealing woth 10kHz or a lot more as the frequency of the data so normally I'd say go for 10x that as a sampling rate. But to be useful I reckon 1MHz is the minimum. If you intend to get into I2C or SPI comms later and want to look at some timing then a 10-20MHz sampling rate would be good.
I use the Saleae Logic
And have to say it's about the best $180 I ever spent. But it won't like +-12v on the inputs which you may have if the controller talks RS-232.
So maybe the best thing to do is wait until you get the controller and determine the voltage levels of the signals, then decide on the best test equipment to get. It also matters what (if anything) you plan to do in the future. If you're into audio then a CRO is a better choice, but for playing with uCs a logic analyser is better.
Rob
If you're willing to stump up the $700 then the coolink D would be by far the simplest. The arduino can easily pass the serial commands to it (maybe with some level converting).
If I was willing to spend the $700 I wouldn't be here asking if the arduino might be able to take it's place as I would integrate it directly into the home automation PC from the Coolink