For people who want to build this yourself, I've added the links to the code, wbus.h and diagram of how to wire up a L9637D converter in the description of the video.
Hi, interesting work. I’m looking for a variation, and some advice. I would like to run the Webasto V as a water heater on my boat, controlling it with a thermostat on the hot water tank, and if possible timed, for am and pm. Your thoughts would be appreciated. This is new territory the last programming I did was dbase3!
@mickr1969 I am using an Arduino UNO. I changed the code from Serial1 to Serial and removed the old Serial commands due to the missing second UART of the UNO. My TT C/Z does not respond. The Controller loops in "Init..." or "timeout". The Uno cannot run at 18430kHz, but the generated Baud rate seems to be 2400. Is the code compatible to the TT C/Z?
Собрал данную железку, работает. Мега не умеет работать от 12 вольт (точнее она отработала у меня минут 10 а потом пошел дым), используйте внешние DC-DC. Устройство имеет всего две кнопки, включить и выключить, нажатие на остальные кнопки приводит к срыву синхронизации дисплея, или перезагрузке. Если подогрев имеет ошибку 99h то на экране вы увидите, мощность 255 и сопротивление 0, нажатие на кнопки не принесёт результата. This is good job. Arduino mega not can work with 12volts (and after 10 minutes, line regulator make smoke) need use external DC-DC. This device simple controll, use two button, start and stop. Other button not control process, pushing to other button call reboot or lost synchronisation lcd display. If you device have error 99h you can see on display wats=255 and resistance=0. Pushing to button not be work.
Looks very similar to the stuff that I did. I ported the whole libwbus to arduino and used discrete components for interfacing the wbus. Dumb idea, I should've just gotten that L9637D or similar. Making libwbus work with the duemilanove was a bit tedious. Using a mega is much easier, I would not recommend the cheaper versions for the faint hearted.Anyways, Good job, keep it up!
+tr4fficam Can you share the schematic for the RS-232 to Wbus? I've built myself one while I wait for the proper IC, which works fine on the thermotop C models, but haven't got any help getting it to work on the TTV.
+Susana Godinho I had the same problem. I built one two from a schematic on the internet (K-Line schematic) using a couple of transistors etc. It worked fine with the C but not with the V which is why I decided to use the L9637D or similar.
Strange. So did the L9637D solved the problem for you? The VAG COM adapter I have also uses the discrete aproach and that too doesn't work with the TTV so wondering if there are different versions?
Yes, all I used is the L9637D soldered onto an adapter that breaks out the pins to a DIP8 format. then soldered on wires. Connected up TX / RX to the pins on the arduino. So theres actually not really much of a schematic to share...
+Susana Godinho I was able to make it work with a similar discrete circuit as is shown in the libwbus documentation. Just the voltage of my arduino gpio is different (5V vs 3.3V) so I had to adjust the component values a bit. Making it work with the duemilanove which has the usb hooked to the serial pins is even more difficult but even that can be made to work without modifying the duemilanove. Just more work. I would always opt for the integrated circuit though, those are always more reliable than anything I can tinker. I have never been able to make the k-line on the vcds cable work with a webasto. No matter what drivers I tried. You can buy a cheap VAG compatible k-line diagnostic cable from ebay for something like 6-7$ and that will work, makes no sense to waste time fighting with the vcds cable. I have used the thermotest sw with such and it is fine.
I have a Thermo Top V here, that was originally controlled by the CAN Bus in an Volkswagen Passat. I ordered a Chip, that will controll IT via W-Bus. Now i try to get contact to the internal control chip via an ODB/USB Adapter and the Webasto Thermo Test. The heater ist conected to the battery, the yello cable to the W- Bus pin... But no life sign... You have any clue? Is the W-Bus maybe deactivated? Is it possible to make contact via CAN?
Need to ask you something else... Is there a control to force the unit to operate at low load (3KW)? Mine starts, ramps up to the desired temperature, overshoots and by the time it realizes its too hot, switches off. It then restarts at full power again (5KW).
Please help Sending: 0xF4 0x03 0x21 0x32 0xE4 Recv: Recv: 2 Received: 0x4F 0x04 0x7F 0x21 0x33 0x33 Request was rejected do you know where the problem is? Thank you for any advice
Hi Just came accros this as i'm installing a new webasto unit. It's replacing an old unit where there was no vbus or what so ever. For the old unit i had build a arduino gsm remote with temp and status on when the different thing like cabin fan turns on. required a lot of wires. With this it seems like a single wire can do the trick and also offer a bit more on the status part. When you say vbus line, where did you tab in to it? at the yellow wire near the fuses? or at the connector for the clock? Why i ask is that some units only have a 3 wire plug at the clock and those are said to not have a vbus... but thanks for sharing code... makes it easy to port over the parts i need... not sure if i want to do a lcd... maybe a small one and just s single button...
Bo Herrmannsen Hi, Pin 2 on the 8 pin connector is the WBus line that I connect the arduino with. You need to use a converter chip to convert the serial TX / RX from the arduino to the correct signal (Same as K-LINE). I used a L9637D chip, because it was the cheapest converter chip I could find on ebay. But there are several other chips that do exactly the same thing.
mickr1969 thanks for the info... i will check if that yellow connector at the fuses is not the same wire... would be 100 times more easy to wire it up with that one
mickr1969 looking at the wire diagram for the thermotop C i have 2 connectors.. a 2 pin one and a 6 pin one... pin 2 on the 6 pin one is diagnosis and that goes to the yellow wire/connector near the fuses.... so it seems like an easy connection... now i just need to figure the code...
mickr1969 studied your code and figured out how to remove LCD support as the remote i'm basing my build on does not have any. (store.open-electronics.org/index.php?_route_=TiDiGino) but do i not quite understand when the 2 status voids are used... get_status2() and get_status().... are they both used when the heater is off? or is get_status2() only used when the heater is on?
mickr1969 can you help me figure why my code does not compile? code is here: pastebin.com/L8cKNbts error is: _6_8_2015_pde.cpp: In function 'void send_Serial_byte(byte)': _6_8_2015_pde:186: error: 'class SoftwareSerial' has no member named 'write' _6_8_2015_pde.cpp: In function 'byte read_Serial_byte()': _6_8_2015_pde:193: error: 'class SoftwareSerial' has no member named 'available' _6_8_2015_pde.cpp: In function 'void msg_send(byte)': _6_8_2015_pde:215: error: 'class SoftwareSerial' has no member named 'flush' _6_8_2015_pde:218: error: 'class SoftwareSerial' has no member named 'available' _6_8_2015_pde.cpp: In function 'void SendBreak(byte)': _6_8_2015_pde:345: error: 'class SoftwareSerial' has no member named 'end' _6_8_2015_pde:351: error: 'SERIAL_8E1' was not declared in this scope _6_8_2015_pde.cpp: In function 'void loop()': _6_8_2015_pde:498: error: expected primary-expression before '?' token _6_8_2015_pde:498: error: expected primary-expression before ')' token _6_8_2015_pde:498: error: expected `:' before ')' token _6_8_2015_pde:498: error: expected primary-expression before ')' token _6_8_2015_pde:527: error: expected primary-expression before '?' token _6_8_2015_pde:527: error: expected primary-expression before ')' token _6_8_2015_pde:527: error: expected `:' before ')' token _6_8_2015_pde:527: error: expected primary-expression before ')' token _6_8_2015_pde:556: error: expected primary-expression before '?' token _6_8_2015_pde:556: error: expected primary-expression before ')' token _6_8_2015_pde:556: error: expected `:' before ')' token _6_8_2015_pde:556: error: expected primary-expression before ')' token i have to use software serial as the only serial port left on the chip is not connected to anything
You need a micro controller to send in the correct signals, and keep-alive signals. You could use pretty much any arduino, and alter my code to suit. You would also need a chip to convert the 5v signal from the micro controller such as the L9637D which I used.
I'm not sure. I do know that the internal software on the older thermotop's are different on the BMW's to the one's fitted in other cars. The older thermotops can just be activated by a simple 12v wire, except the BMW version which does not support it. I'm not sure if there are any differences between the BWM evo, and other evo's. W-Bus is same as K-Line as far as I'm aware.
Hello. Thank you for sharing. The link to the wiring picture is down unfortunately. Did you do anything with the canbus pins? I'm not sure what the function of them is. In two days I am going to build mine (waiting for the fuel pump) And would be grateful if you could share this information. Thanks Matt
I've finally got the L9637D with a converter to bread board. How do you see which leg is 1? I have turned it boothways and each time it heats up and start to smoke. I've tried to use a USB2serial converter just with the thermotest software just to check the Hardware.
Should be a little dot on the chip which indicates pin 1. Have you got it wired up correctly? www.labkit.ru/userfiles/file/projects/car_shm/car_board_comp/01.GIF vcc is 5v from your arduino going to pin 3, vbat is the 12v to pin 7, and you need gnd's from both the arduino and your 12v system connected together going to pin 5 on the chip.
Thanks for you reply, I cant see the dot, so i have tried the 2 possible orientations :-) I've also connected an Arduino Mega instead of the USB2Serial converter. When I connect the 12V supply everything is good, but as soon as the Arduino 5V is connect it gets very hot. I am on the 6th L9637 now :-) @@BuyitFixit
@@force136136 Pin 1 should be at the bottom left (near the ST logo), when the L9637D number is at the top of the chip. With the number across the top the pins should be 8 (top left),7,6,5 across the top, 1,2,3,4 along the bottom in that order.
@@BuyitFixit Thx a lot for the confirmation of that. I did that, but after 5 seconds... smoke :-) I have ordered some new ones from another place. Until now I have used the mentioned schematic for testing with webasto thermotest. github.com/stuartpittaway/WebastoWBUSInterface/blob/master/Webasto%20WBus%20Arduino%20Serial%20Interface%20mk7_schem.png I did try it with your Arduino project, but as people reply it wont work with this heater. Until know I have just controlled the heater with a relay the 1533 webasto timer and with an Arduino and a gsm module. With your project i could make it much more customizable, depending on temperature etc. and i risk Learning a lot of stuff! :-)
Hi mickr. I have one question, "sketch" in this film, is the same on link in below comments? I have problem, my arduino say me only: "TIMEOUT!!!" and won't connect with my TT-V.
Wiring look's ok. For this project i used serial TTL -> K-line/W-bus converter, build by transistors a resistors in prototype PCB. If i connect it to TT-V by serial/k-line + FTDI usb\serial, and use thermo test, i have fully functionaly diagnostic by WTT. But when i connect it by serial/k-line direct to arduino, i take "TIME OUT!!" I see only one problem:) I try convert your scetch to run on Arduino UNO (atmega328). I change only in program serial ports, serial1 rename to serial0 and use it to w-bus, serial0 realized by softwareserial. And now.. debug on softwareserial works good-on arduino serial monitor, all data works same as hardwareserial. but on serial-wbus i have problem.
hello mickr1969, i´ve one question. I used the same source code like u. In general communication is working (i can recieve status information) When i send "turn On" i get "request was rejected" see: Sending: 0xF4 0x03 0x21 0x0A 0xDC Received: 0x4F 0x04 0x7F 0x21 0x33 0x26 Request was rejected or Sending: 0x24 0x03 0x21 0x0A 0x0C Received: 0x42 0x04 0x7F 0x21 0x33 0x2B Request was rejected Do you have any idea to solve this problem? Thanks in advance Best regards Marco
Not sure on that one, but it could possibly be something like the fuel pump not connected properly to the heater, or a faulty fan / glow plug perhaps? as it seems the heater was not ready to accept the command. Have you tried with the webasto diagnostic software to double check the heater is working correctly?
@@BuyitFixit Hey, thanks for the answer. It is a VW T6 with a engine heater but i flash it with the webasto firmware. Before flash it dosnt work with webasto test software but after it work great.
@@timoh.3984 Just looking back through what the code was actually doing, as it's been quite a few years... From what you first posted it looks like the command WBUS_CMD_QUERY 0x50 with QUERY_SENSORS 0x05 was being sent which is asking the heater for things like temperature / glow plug resistance etc. The command failed with a reply of 0x7F 0x50 0x11. the 0x7F should have been 0x80 if the command was accepted. I'm not sure on the meaning of the other values.
Thanks for you reply, I cant see the dot, so i have tried the 2 possible orientations :-) I've also connected an Arduino Mega instead of the USB2Serial converter. When I connect the 12V supply everything is good, but as soon as the Arduino 5V is connect it gets very hot. I am on the 6th L9637 now :-)
Download it from the link in the description, click "download" and then rename to wbus.h or copy and paste into a text editor, and save as wbus.h Copy the file into the same folder as the sketch. Hope that helps.
I've been to Newcastle & Durham about 10 years ago. In your source code i see wbus.h being mentioned - how can i find it? I'm looking for W-Bus or KL line framework in order to understand how it works & how to program controller for my Evo 4
+mickr1969 Thanks, the code seems to operate OK, but haven't got a burner to test at the moment. I noticed there is a mention for a 18.43Mhz system frequency, rather than the 16Mhz standard. Was this a typo from when you ported the code or is it needed for baud rate compatibility? Lastly, can you confirm the pump you've used? I can see its a model V, just looking at which OEM/part number. There are a few variations, might as well go for something like you have for peace of mind. Once again, many thanks for sharing this.
Hi, this code is only for the thermotop V only. I don't have other burners to test compatibility. The only other burner I've used is the C or Z burner and does not require any code to work, just 12v to pin1 of the unit to make it "go". (note BMW models have different firmware and do not work with the pin1 method). The 18.43mhz must be an artifact from the original code. I'm just using a standard arduino mega2560 with no modification.
That reminds me of another question. I know the thernotop V uses an external fuel pump to Meter and pump fuel. Does the C/Z burner also need this or is it integrated on the unit already? Thanks
+Susana Godinho yes they both use external pumps. Some cars have everything on a nice metal plate with pump exhaust etc all mounted. I think its a citreon c8 or Peugeot 508 but I'm not near my pc to check at the moment.
mickr1969 i thought mine would have that too since its based on the mega but the 2 pins on the chip with the serial port is not connected to anything :-D
Bo Herrmannsen I'm using serial 0 for debug messages, and serial 1 for the communication to the webasto. The output from serial 1 then goes into the obd k-line converter chip, to give the correct signals needed for the webasto.
mickr1969 i use serial for debug, but serial 1 and 2 are tied to a GSM module the only one free is serial 3 which is not connected to anything and my skills are not up for soldering wires to the chip pins
+mickr1969 problems solved... i tried to solder on wires on the board i had and i failed. lucky me the gsm module was in socket and i had a mega in the junk box just have to wire up the whole thing :-D
i wany to send you a picture with the lcd display .I want you to send the corect program for arduino .Please send the program in my yahoo mail vasile.tisalita@yahoo.com.Thank you.Please send your mail to talk more detail.I think i m wrong wreiting the two codes and it does not show me well.
Dimitri Minich wbus.h pastebin.com/8e8JQdX0 I dont have a circuit diagram, but the output from the aurdino is on serial 1 (pins 18 and 19 on the mega2560 I'm using). I used a L9637D (ebay item 171541780075) to interface with the heater, but there are several other similar chips that will do the job. Hope that helps! Mick
Mark Trent Most of the info I used came from www.disco3.co.uk/wiki/Fuel_Burning_Heater There was also some code for a pic microcontroller which I used as the basis for my arduio code.
Finally got a sketch hacked together that uses a GSM module instead Now building the hardware... opted to use the L9637D, in the sketch you only use one TX line... no RX needed ??? you posted this link a year ago: www.labkit.ru/userfiles/file/projects/car_shm/car_board_comp/01.GIF and that one uses both RX and TX for those that is interested my code is: pastebin.com/d8vpG8U3 still need to make the schematic complete in eagle
TX is defined in the code for the SendBreak(byte duration) command so it matches the pin being used for the serial port. The actual TX / RX communication just uses the standard serial library, so no need to define the RX pin.
@mickr1969, could you advise. I've connected everything according to pins in your scheme, with the L9637D chip. Rx/Tx pins are 10/11 accordingly. 1) I join Bo Hermanssen's question: as i understood the code, the "tx_line" which 0 variable is for serial output, but i don't need to connect anything to pin0, right? 2) When i connect device to K-line, it initializes but displays "TIMEOUT!!". 3) Serial monitor output shows some weird symbols, still hasn't managed to arrange output in plain english symbols. Please advise. Here's my album with how i connected everything: goo.gl/photos/9z3EDez2JYj9W1Eo8
Hi, In my code I had #define tx_line 18 //pin for TX This var needs to be set to the SAME pin on your adruino that you are using for the serial TX. I was using a mega2560 and pin 18 on that is TX. I defined it as a var so you can change it if people were using something other than a mega2560. The tx_line is used as a serial break command, which tells the webasto to get ready for a command. If you don't send this, then you will probably just get the "TIMEOUT!". Hope that helps!
Thanks for quick reply! I have UNO, it has pin 0 for RX and 1 for TX. I suppose i have to make tx_line = 1. What about Rx? Anyway gonna see that, as video tells, the code somehow receives responses from webasto. Re-downloaded your code, tells error about Serial1 being not defined in scope take.ms/JzlPB. Re-checking. I'm more Ruby On Rails coder, rather than C :)
Milosz, i had no success. But i resumed my attempts now, so how about make a Telegram Chat or whatever - to complete this together? My email is almas.abulkhairov [at] gmail
i got an adapter to comunikate my laptop and the thermo top V. now i have the ptoblem that i need to have a start code , holding and shutt off code . but i need it in hex codes dose anyone can help me?
Hey everyone. I just got my arduino parts to make this work. Author's code compiles, need hint on wiring (i'm not strong in electronics, more about software). Using russian-made GSM modem device to control my Evo 4 for now, but want to make an app to control webasto with arduino. In your video - where does the purple wires pair go? It's hidden behind battery and i can't see which wire eventually should go into yellow wbus connection? What i mean is the yellow cable in the center of the following picture: take.ms/2XNfe
The purple are the TX and RX lines (pins 18 and 19 on my arduino) that go to a L9637D chip which is a serial to K-Line converter chip. www.labkit.ru/userfiles/file/projects/car_shm/car_board_comp/01.GIF There is a diagram there of how to wire up the chip (you just need the ic2 part), ignore the stuff to the left of the picture. All you need is 1 chip and 1 resistor. The KLINE goes to the wbus connection on the webasto. Hope that helps!
Thanks for the reply, got 1 step closer to epiphany :) But here are few more questions on this diagram: monosnap.com/file/3U0MdyrIWoCPwTbaZch7ZywUelUqWp - can i just connect VCC pin of the chip to 12V or need to wire up the capacitors? - does "R12 910" mean 910 Ohm resistor? - about rx/tx got it! :)
For people who want to build this yourself, I've added the links to the code, wbus.h and diagram of how to wire up a L9637D converter in the description of the video.
Hi, interesting work. I’m looking for a variation, and some advice. I would like to run the Webasto V as a water heater on my boat, controlling it with a thermostat on the hot water tank, and if possible timed, for am and pm. Your thoughts would be appreciated. This is new territory the last programming I did was dbase3!
@mickr1969 I am using an Arduino UNO. I changed the code from Serial1 to Serial and removed the old Serial commands due to the missing second UART of the UNO.
My TT C/Z does not respond. The Controller loops in "Init..." or "timeout".
The Uno cannot run at 18430kHz, but the generated Baud rate seems to be 2400.
Is the code compatible to the TT C/Z?
Собрал данную железку, работает. Мега не умеет работать от 12 вольт (точнее она отработала у меня минут 10 а потом пошел дым), используйте внешние DC-DC. Устройство имеет всего две кнопки, включить и выключить, нажатие на остальные кнопки приводит к срыву синхронизации дисплея, или перезагрузке. Если подогрев имеет ошибку 99h то на экране вы увидите, мощность 255 и сопротивление 0, нажатие на кнопки не принесёт результата.
This is good job. Arduino mega not can work with 12volts (and after 10 minutes, line regulator make smoke) need use external DC-DC. This device simple controll, use two button, start and stop. Other button not control process, pushing to other button call reboot or lost synchronisation lcd display. If you device have error 99h you can see on display wats=255 and resistance=0. Pushing to button not be work.
Looks very similar to the stuff that I did. I ported the whole libwbus to arduino and used discrete components for interfacing the wbus. Dumb idea, I should've just gotten that L9637D or similar.
Making libwbus work with the duemilanove was a bit tedious. Using a mega is much easier, I would not recommend the cheaper versions for the faint hearted.Anyways, Good job, keep it up!
+tr4fficam
Can you share the schematic for the RS-232 to Wbus? I've built myself one while I wait for the proper IC, which works fine on the thermotop C models, but haven't got any help getting it to work on the TTV.
+Susana Godinho
I had the same problem. I built one two from a schematic on the internet (K-Line schematic) using a couple of transistors etc. It worked fine with the C but not with the V which is why I decided to use the L9637D or similar.
Strange. So did the L9637D solved the problem for you? The VAG COM adapter I have also uses the discrete aproach and that too doesn't work with the TTV so wondering if there are different versions?
Yes, all I used is the L9637D soldered onto an adapter that breaks out the pins to a DIP8 format. then soldered on wires. Connected up TX / RX to the pins on the arduino. So theres actually not really much of a schematic to share...
+Susana Godinho
I was able to make it work with a similar discrete circuit as is shown in the libwbus documentation. Just the voltage of my arduino gpio is different (5V vs 3.3V) so I had to adjust the component values a bit. Making it work with the duemilanove which has the usb hooked to the serial pins is even more difficult but even that can be made to work without modifying the duemilanove. Just more work. I would always opt for the integrated circuit though, those are always more reliable than anything I can tinker.
I have never been able to make the k-line on the vcds cable work with a webasto. No matter what drivers I tried. You can buy a cheap VAG compatible k-line diagnostic cable from ebay for something like 6-7$ and that will work, makes no sense to waste time fighting with the vcds cable. I have used the thermotest sw with such and it is fine.
Cany you attached complete final circuit diagram and used material, please?
fantastic looking bit of kit, add a dht11 and a rtc and its a perfect solution. ok add IoT too :)
I've been searching everywhere for this. Does anyone know if it will work with a Eberspacher Airtronics Gasoline heater?
I doubt it, it will have a different protocol to the webasto I'd think.
I have a Thermo Top V here, that was originally controlled by the CAN Bus in an Volkswagen Passat. I ordered a Chip, that will controll IT via W-Bus.
Now i try to get contact to the internal control chip via an ODB/USB Adapter and the Webasto Thermo Test. The heater ist conected to the battery, the yello cable to the W- Bus pin... But no life sign... You have any clue? Is the W-Bus maybe deactivated? Is it possible to make contact via CAN?
Think there is a thing wrong gives only timeout on lcd. The adapter Works with a ftdi.
Need to ask you something else... Is there a control to force the unit to operate at low load (3KW)?
Mine starts, ramps up to the desired temperature, overshoots and by the time it realizes its too hot, switches off. It then restarts at full power again (5KW).
Hi Susana, I have the same problem, did you found a solution? Thanks! Luis
hi @mickr1969.
I set up the system. but I want to try it on other devices except tt-v. Which parameter can I do trial and error on?
Looks good, I'll be building one soon
Hello,
Please tell me if you can make a model like this for selling.
I want to buy one. How can i contact you?
Thanks!
hello,
i would like to use a solution like yours, can you get in touch???
Thanks
+Gianni Zamponi
Hello... what is it you want to know?
Please help
Sending: 0xF4 0x03 0x21 0x32 0xE4 Recv: Recv: 2
Received: 0x4F 0x04 0x7F 0x21 0x33 0x33 Request was rejected
do you know where the problem is?
Thank you for any advice
Hi
Just came accros this as i'm installing a new webasto unit.
It's replacing an old unit where there was no vbus or what so ever.
For the old unit i had build a arduino gsm remote with temp and status on when the different thing like cabin fan turns on. required a lot of wires.
With this it seems like a single wire can do the trick and also offer a bit more on the status part.
When you say vbus line, where did you tab in to it? at the yellow wire near the fuses? or at the connector for the clock?
Why i ask is that some units only have a 3 wire plug at the clock and those are said to not have a vbus...
but thanks for sharing code... makes it easy to port over the parts i need... not sure if i want to do a lcd... maybe a small one and just s single button...
Bo Herrmannsen
Hi, Pin 2 on the 8 pin connector is the WBus line that I connect the arduino with.
You need to use a converter chip to convert the serial TX / RX from the arduino to the correct signal (Same as K-LINE).
I used a L9637D chip, because it was the cheapest converter chip I could find on ebay. But there are several other chips that do exactly the same thing.
mickr1969 thanks for the info... i will check if that yellow connector at the fuses is not the same wire... would be 100 times more easy to wire it up with that one
mickr1969 looking at the wire diagram for the thermotop C i have 2 connectors.. a 2 pin one and a 6 pin one... pin 2 on the 6 pin one is diagnosis and that goes to the yellow wire/connector near the fuses....
so it seems like an easy connection... now i just need to figure the code...
mickr1969 studied your code and figured out how to remove LCD support as the remote i'm basing my build on does not have any. (store.open-electronics.org/index.php?_route_=TiDiGino)
but do i not quite understand when the 2 status voids are used... get_status2() and get_status().... are they both used when the heater is off? or is get_status2() only used when the heater is on?
mickr1969 can you help me figure why my code does not compile?
code is here: pastebin.com/L8cKNbts
error is:
_6_8_2015_pde.cpp: In function 'void send_Serial_byte(byte)':
_6_8_2015_pde:186: error: 'class SoftwareSerial' has no member named 'write'
_6_8_2015_pde.cpp: In function 'byte read_Serial_byte()':
_6_8_2015_pde:193: error: 'class SoftwareSerial' has no member named 'available'
_6_8_2015_pde.cpp: In function 'void msg_send(byte)':
_6_8_2015_pde:215: error: 'class SoftwareSerial' has no member named 'flush'
_6_8_2015_pde:218: error: 'class SoftwareSerial' has no member named 'available'
_6_8_2015_pde.cpp: In function 'void SendBreak(byte)':
_6_8_2015_pde:345: error: 'class SoftwareSerial' has no member named 'end'
_6_8_2015_pde:351: error: 'SERIAL_8E1' was not declared in this scope
_6_8_2015_pde.cpp: In function 'void loop()':
_6_8_2015_pde:498: error: expected primary-expression before '?' token
_6_8_2015_pde:498: error: expected primary-expression before ')' token
_6_8_2015_pde:498: error: expected `:' before ')' token
_6_8_2015_pde:498: error: expected primary-expression before ')' token
_6_8_2015_pde:527: error: expected primary-expression before '?' token
_6_8_2015_pde:527: error: expected primary-expression before ')' token
_6_8_2015_pde:527: error: expected `:' before ')' token
_6_8_2015_pde:527: error: expected primary-expression before ')' token
_6_8_2015_pde:556: error: expected primary-expression before '?' token
_6_8_2015_pde:556: error: expected primary-expression before ')' token
_6_8_2015_pde:556: error: expected `:' before ')' token
_6_8_2015_pde:556: error: expected primary-expression before ')' token
i have to use software serial as the only serial port left on the chip is not connected to anything
Im want make a simple analog to wbus coverter, 12v in = heater on. what is the easyest way to make this? what chip should i use?
You need a micro controller to send in the correct signals, and keep-alive signals. You could use pretty much any arduino, and alter my code to suit. You would also need a chip to convert the 5v signal from the micro controller such as the L9637D which I used.
Hi,
Great work. Is the W-Bus is a (LIN) BUS?
I have Webasto Thermo Top Evo (BMW). That connected via LIN bus to the car. would this work ?
I'm not sure, but the older webasto's fitted to BWM's had their own protocol, and were not the same as the webasto's fitted to other cars.
Thank you for replay. But the k-line and LIN are not the same ?
I'm not sure. I do know that the internal software on the older thermotop's are different on the BMW's to the one's fitted in other cars. The older thermotops can just be activated by a simple 12v wire, except the BMW version which does not support it. I'm not sure if there are any differences between the BWM evo, and other evo's. W-Bus is same as K-Line as far as I'm aware.
W-Bus is kind of a crippled LIN bus: it runs slowly at 2400baud, even parity, and there are no SYNC bytes - they are simply omitted.
Hello. Thank you for sharing.
The link to the wiring picture is down unfortunately.
Did you do anything with the canbus pins? I'm not sure what the function of them is. In two days I am going to build mine (waiting for the fuel pump) And would be grateful if you could share this information.
Thanks
Matt
Just checked the wiring picture link, working fine here...
mickr1969 Ah yes I can open it now as well. Might have been just a temporary thing!
Thank you 🙏
You’re welcome 😊
How can I start up climatronic fan from remote via KLine ?
+TheUPX
Sorry I do not have a climatronic unit. The only thing I have is the webasto unit.
relay and hardwiring
I've finally got the L9637D with a converter to bread board. How do you see which leg is 1? I have turned it boothways and each time it heats up and start to smoke. I've tried to use a USB2serial converter just with the thermotest software just to check the Hardware.
Should be a little dot on the chip which indicates pin 1.
Have you got it wired up correctly?
www.labkit.ru/userfiles/file/projects/car_shm/car_board_comp/01.GIF
vcc is 5v from your arduino going to pin 3, vbat is the 12v to pin 7, and you need gnd's from both the arduino and your 12v system connected together going to pin 5 on the chip.
T
Thanks for you reply, I cant see the dot, so i have tried the 2 possible orientations :-) I've also connected an Arduino Mega instead of the USB2Serial converter. When I connect the 12V supply everything is good, but as soon as the Arduino 5V is connect it gets very hot. I am on the 6th L9637 now :-) @@BuyitFixit
@@force136136 Pin 1 should be at the bottom left (near the ST logo), when the L9637D number is at the top of the chip. With the number across the top the pins should be 8 (top left),7,6,5 across the top, 1,2,3,4 along the bottom in that order.
@@BuyitFixit Thx a lot for the confirmation of that. I did that, but
after 5 seconds... smoke :-) I have ordered some new ones from another place. Until now I have used the mentioned schematic for testing with webasto thermotest.
github.com/stuartpittaway/WebastoWBUSInterface/blob/master/Webasto%20WBus%20Arduino%20Serial%20Interface%20mk7_schem.png
I did try it with your Arduino project, but as people reply it wont work with this heater. Until know I have just controlled the heater with a relay the 1533 webasto timer and with an Arduino and a gsm module.
With your project i could make it much more customizable, depending on temperature etc. and i risk Learning a lot of stuff! :-)
hello dear mickr1969 ,
does this system work in thermo top c or at3500st or at2000st ?
Hi, sorry I have only the thermotop V so not sure.
how you read glow resistance ? can you share this information ?
+TheUPX
int resistance = ((message_data[SEN_GPR] * 256) + message_data[SEN_GPR + 1]);
source code is here:
pastebin.com/9jEW030e
strange. just comunication with webasto unit or what ?...sorry I not understand ...
Any chance this can be put on github?
long time ago but i want to give it a go again... do you have an sketch to share?
I was just about to reply saying it's in the comments below somewhere, but I guess you found it :)
Hi mickr. I have one question, "sketch" in this film, is the same on link in below comments? I have problem, my arduino say me only: "TIMEOUT!!!" and won't connect with my TT-V.
no reply from webasto. wiring?
Wiring look's ok.
For this project i used serial TTL -> K-line/W-bus converter, build by transistors a resistors in prototype PCB.
If i connect it to TT-V by serial/k-line + FTDI usb\serial, and use thermo test, i have fully functionaly diagnostic by WTT. But when i connect it by serial/k-line direct to arduino, i take "TIME OUT!!"
I see only one problem:) I try convert your scetch to run on Arduino UNO (atmega328).
I change only in program serial ports, serial1 rename to serial0 and use it to w-bus, serial0 realized by softwareserial. And now.. debug on softwareserial works good-on arduino serial monitor, all data works same as hardwareserial. but on serial-wbus i have problem.
Did you change the Define TX pin to match your new pin? as this is used for the 'break' signal to tell the webasto to accept a command.
hello mickr1969,
i´ve one question. I used the same source code like u.
In general communication is working (i can recieve status information)
When i send "turn On" i get "request was rejected"
see:
Sending: 0xF4 0x03 0x21 0x0A 0xDC
Received: 0x4F 0x04 0x7F 0x21 0x33 0x26
Request was rejected
or
Sending: 0x24 0x03 0x21 0x0A 0x0C
Received: 0x42 0x04 0x7F 0x21 0x33 0x2B
Request was rejected
Do you have any idea to solve this problem?
Thanks in advance
Best regards
Marco
+Marco Chrappek
Sorry I'm not sure what the problem is.
I'd guess its the webasto is not in the correct state? (locked out for example)
I can't find the library "wbus.h" for arduino ide, can anyone send me a link please?
It's in the video description on a pastebin link.
I have a problem... :( Sending: 0xF4 0x03 0x50 0x05 0xA2 recv: recv: 2
Received: 0x4F 0x04 0x7F 0x50 0x11 0x75 Request was rejected
Not sure on that one, but it could possibly be something like the fuel pump not connected properly to the heater, or a faulty fan / glow plug perhaps? as it seems the heater was not ready to accept the command. Have you tried with the webasto diagnostic software to double check the heater is working correctly?
@@BuyitFixit Hey, thanks for the answer. It is a VW T6 with a engine heater but i flash it with the webasto firmware. Before flash it dosnt work with webasto test software but after it work great.
@@timoh.3984 Just looking back through what the code was actually doing, as it's been quite a few years... From what you first posted it looks like the command WBUS_CMD_QUERY 0x50 with QUERY_SENSORS 0x05 was being sent which is asking the heater for things like temperature / glow plug resistance etc. The command failed with a reply of 0x7F 0x50 0x11. the 0x7F should have been 0x80 if the command was accepted. I'm not sure on the meaning of the other values.
@@timoh.3984 hey how you flash it with the webasto firmware?
Hello,
Does the automation also go with ESP32?
I've never tried on an esp32 or esp8266, but the code is fairly simple so it should work as long as you define all your pins correctly.
mickr1969 Good morning,
I am a beginner in electronic assemblies, can you give me a schematic of the assembly?
Thank you very much
Alexandru
Thanks for you reply, I cant see the dot, so i have tried the 2 possible orientations :-) I've also connected an Arduino Mega instead of the USB2Serial converter. When I connect the 12V supply everything is good, but as soon as the Arduino 5V is connect it gets very hot. I am on the 6th L9637 now :-)
I can't introduce wbus.h to ide
Download it from the link in the description, click "download" and then rename to wbus.h or copy and paste into a text editor, and save as wbus.h
Copy the file into the same folder as the sketch.
Hope that helps.
Hey guys, will it work on my Thermo Top Evo 4?
Almas Abulkhairov sorry I'm not sure. I don't have a one to test.
Where are you located? I could share mine. If you are in Saint-Petersburg, Russia :)
Almas Abulkhairov I think distance may be a slight problem. I'm in the UK near Newcastle.
I've been to Newcastle & Durham about 10 years ago. In your source code i see wbus.h being mentioned - how can i find it? I'm looking for W-Bus or KL line framework in order to understand how it works & how to program controller for my Evo 4
Is it this? github.com/stuartpittaway/WebastoHeaterWBusArduinoInterface/blob/master/wbus.h
Can you share your code/schematics? Thanks
+Susana Godinho
Link is already in the comments below, along with how to wire it up.
+mickr1969
Thanks, the code seems to operate OK, but haven't got a burner to test at the moment.
I noticed there is a mention for a 18.43Mhz system frequency, rather than the 16Mhz standard. Was this a typo from when you ported the code or is it needed for baud rate compatibility?
Lastly, can you confirm the pump you've used? I can see its a model V, just looking at which OEM/part number. There are a few variations, might as well go for something like you have for peace of mind.
Once again, many thanks for sharing this.
Hi, this code is only for the thermotop V only.
I don't have other burners to test compatibility.
The only other burner I've used is the C or Z burner and does not require any code to work, just 12v to pin1 of the unit to make it "go". (note BMW models have different firmware and do not work with the pin1 method).
The 18.43mhz must be an artifact from the original code. I'm just using a standard arduino mega2560 with no modification.
That reminds me of another question. I know the thernotop V uses an external fuel pump to Meter and pump fuel. Does the C/Z burner also need this or is it integrated on the unit already?
Thanks
+Susana Godinho
yes they both use external pumps. Some cars have everything on a nice metal plate with pump exhaust etc all mounted. I think its a citreon c8 or Peugeot 508 but I'm not near my pc to check at the moment.
anyone that can tell me what i do wrong with soft serial?
Bo Herrmannsen
Hi, unfortunately I'm not using soft serial as the arduino mega has more than one hardware serial port.
mickr1969 i thought mine would have that too since its based on the mega
but the 2 pins on the chip with the serial port is not connected to anything :-D
Bo Herrmannsen
I'm using serial 0 for debug messages, and serial 1 for the communication to the webasto. The output from serial 1 then goes into the obd k-line converter chip, to give the correct signals needed for the webasto.
mickr1969 i use serial for debug, but serial 1 and 2 are tied to a GSM module
the only one free is serial 3 which is not connected to anything and my skills are not up for soldering wires to the chip pins
+mickr1969 problems solved... i tried to solder on wires on the board i had and i failed. lucky me the gsm module was in socket and i had a mega in the junk box
just have to wire up the whole thing :-D
I followed the steps I get started ... and then there is a timeout
Sounds like no communication between the unit and the webasto.
i wany to send you a picture with the lcd display .I want you to send the corect program for arduino .Please send the program in my yahoo mail vasile.tisalita@yahoo.com.Thank you.Please send your mail to talk more detail.I think i m wrong wreiting the two codes and it does not show me well.
запустил с небольшими доработками ваш код на arduino nano все работает. Спасибо.
пожалуйста (hopefully that means you're welcome)
mogu poluchit sketch?
cool! can you share your source code?
Dimitri Minich
Sure.
pastebin.com/9jEW030e
It's a bit rough and ready, and based on a pic version that I found on the internet.
Mick
mickr1969
Hi Mick,
thanks!
Can you please upload wbus.h?
Do you have an image of circuit?
Dimi
Dimitri Minich
wbus.h
pastebin.com/8e8JQdX0
I dont have a circuit diagram, but the output from the aurdino is on serial 1 (pins 18 and 19 on the mega2560 I'm using).
I used a L9637D (ebay item 171541780075) to interface with the heater, but there are several other similar chips that will do the job.
Hope that helps!
Mick
mickr1969 Hi, do you have a link to any more info about interfacing the Webasto with the Arduino?
Mark Trent
Most of the info I used came from www.disco3.co.uk/wiki/Fuel_Burning_Heater
There was also some code for a pic microcontroller which I used as the basis for my arduio code.
Finally got a sketch hacked together that uses a GSM module instead
Now building the hardware... opted to use the L9637D, in the sketch you only use one TX line... no RX needed ???
you posted this link a year ago: www.labkit.ru/userfiles/file/projects/car_shm/car_board_comp/01.GIF
and that one uses both RX and TX
for those that is interested my code is: pastebin.com/d8vpG8U3
still need to make the schematic complete in eagle
I use tx and rx as you send commands to the unit and also read back if it accepted the command and also other data such as temperature etc...
yes but only TX is defined in the org code
TX is defined in the code for the SendBreak(byte duration) command so it matches the pin being used for the serial port. The actual TX / RX communication just uses the standard serial library, so no need to define the RX pin.
oki doke... will put a note in my code to connect RX to Digital 0 or RX... thats correct right?
or should i connect to RX1 ?
@mickr1969, could you advise. I've connected everything according to pins in your scheme, with the L9637D chip. Rx/Tx pins are 10/11 accordingly.
1) I join Bo Hermanssen's question: as i understood the code, the "tx_line" which 0 variable is for serial output, but i don't need to connect anything to pin0, right?
2) When i connect device to K-line, it initializes but displays "TIMEOUT!!".
3) Serial monitor output shows some weird symbols, still hasn't managed to arrange output in plain english symbols.
Please advise.
Here's my album with how i connected everything: goo.gl/photos/9z3EDez2JYj9W1Eo8
Hi, In my code I had #define tx_line 18 //pin for TX
This var needs to be set to the SAME pin on your adruino that you are using for the serial TX. I was using a mega2560 and pin 18 on that is TX. I defined it as a var so you can change it if people were using something other than a mega2560.
The tx_line is used as a serial break command, which tells the webasto to get ready for a command. If you don't send this, then you will probably just get the "TIMEOUT!".
Hope that helps!
Thanks for quick reply! I have UNO, it has pin 0 for RX and 1 for TX. I suppose i have to make tx_line = 1. What about Rx? Anyway gonna see that, as video tells, the code somehow receives responses from webasto. Re-downloaded your code, tells error about Serial1 being not defined in scope take.ms/JzlPB. Re-checking. I'm more Ruby On Rails coder, rather than C :)
Ah, got it. It appears that "Serial1" is for MEGA and isn't fit for UNO.
Almas, did you run your program on UNO? My still don't work;/ all compilation with no problems, but i still take only "TIME OUT!"
Milosz, i had no success. But i resumed my attempts now, so how about make a Telegram Chat or whatever - to complete this together? My email is almas.abulkhairov [at] gmail
not tested yet , but you coul use this as serial to wbus converter
easyeda.com/maxim4/serial_to_wbus-150475837a1c49e2803490b797c98cc4
i got an adapter to comunikate my laptop and the thermo top V. now i have the ptoblem that i need to have a start code , holding and shutt off code . but i need it in hex codes dose anyone can help me?
It's all in wbus.h , and the arduino code. Hit the "SHOW MORE" just under the video, and the links are there.
i wana tu make just an start stop system for my ttv with no display btw to start it with 12 v
Hey everyone. I just got my arduino parts to make this work. Author's code compiles, need hint on wiring (i'm not strong in electronics, more about software). Using russian-made GSM modem device to control my Evo 4 for now, but want to make an app to control webasto with arduino. In your video - where does the purple wires pair go? It's hidden behind battery and i can't see which wire eventually should go into yellow wbus connection? What i mean is the yellow cable in the center of the following picture: take.ms/2XNfe
The purple are the TX and RX lines (pins 18 and 19 on my arduino) that go to a L9637D chip which is a serial to K-Line converter chip.
www.labkit.ru/userfiles/file/projects/car_shm/car_board_comp/01.GIF
There is a diagram there of how to wire up the chip (you just need the ic2 part), ignore the stuff to the left of the picture. All you need is 1 chip and 1 resistor. The KLINE goes to the wbus connection on the webasto.
Hope that helps!
Thanks for the reply, got 1 step closer to epiphany :) But here are few more questions on this diagram: monosnap.com/file/3U0MdyrIWoCPwTbaZch7ZywUelUqWp
- can i just connect VCC pin of the chip to 12V or need to wire up the capacitors?
- does "R12 910" mean 910 Ohm resistor?
- about rx/tx got it! :)
VCC goes to arduino 5v, and yes 910 ohm resistor.
Vbat (pin7) goes to 12v on the webasto, and shared gnd goes to both arduino and webasto.