kellym
New Reader
10/26/23 10:29 p.m.
I have a 1969 Giulia 1300Ti and I want to install a set of 2017 Giulia seats. The passenger seat was straight forward, +12V and Ground and all happy. The driver's seat has a control module for memory, heaters etc. and is connected to the Can Bus.
From what I can figure, I need to emulate the can bus signal in order to activate the seat motors/controls.
If I can get the heater to work too that would be fantastic.
I did some reading it looks like I can use an arduino with a can bus sheild, but I need to "sniff" the can bus signals and then code those into the shield. I have some familiarity with arduino's, but sniffing a can bus is all new to me.
Any good tutorials?
Would be a great article...hint, hint.....
Savvy can is a decent open source tool box and Collin (collin80) has some good tutorials. If you are familiar with arduino then the c++ is simple. This assumes you have the car the seats came from and they're still installed so that you can operate the seats while capturing data frames over the bus.
On the other hand I use serial bus tools at work that are not public and have to work 100% whether it's Bosch, Magnetti Marelli, or whatever. Even though I have access to good tools I probably wouldn't bother with them for a seat. It's just dc heaters and dc motors with simple switches you are trying to control. Controlling those by pwm would be trivial, cheap, and reliable and you would cut out the controller and bus
Found a good tutorial here:
(You might want to watch at 1.5x speed)
Just jumped in here to see what that title meant. Literally had no idea. Interesting.
In reply to Feedyurhed :
Me, too. And I'm kind of surprised that modern seats would even fit into the Ti- it's a pretty small space for seats. Would make for a really nice car.
I imagine that the seat module is looking for signals that the car sends out. Do you have a Giulia to sniff? If not, maybe find one on Turo or another car rental service to sniff. I used the CSS Electronics cl2000 sniffer for my Jag project.
If those seats have side air bags, STAY AWAY FROM THE YELLOW WIRES....unless you want exploding seats.
I have a set of really nice, power, leather, heated/cooled seats from a Mercedes that I'm putting into my '71 Bronco. (Yeah, I know, but trust me, they look great).
Anyway, fooling around with a battery and some test clips to figure out the seat motors (forward, back, raise, lower, tilt, headrest adjust, etc), I scared the crap out of myself when I set off the headrest "rear end collision feature" - there's a servo that SLAMS the headrest full forward to support the occupants heads in the event of a rear end collision to mitigate whiplash. Sudden LOUD "BANG" and I was sure I had ruined them - luckily it was not the airbags, just the headrest servo (which is resettable with some disassembly).
In the Mercedes, the driver's seat was controlled from a set of switches elsewhere in the cabin (console, door panel, idk) and I have to solder up some relays and switches to control it in the Bronco, but the passenger seat was easy peasy - buttons right on the side of the seat.
GameboyRMH said:
Found a good tutorial here:
Arduino is what I've used, it works very well as long as you're comfortable writing a bit of C.
kellym
New Reader
10/27/23 3:20 p.m.
In reply to alfadriver :
Fits really well, like it's meant to be there (ignore the driver)
In reply to kellym :
I would have figured the seat was a lot bigger. Fits great and looks great.
Neat! Following along for CAN Bus and vintage-friendly-seat content...
The seats look great, I would try hooking it up to power & ground first & seeing if it will operate. The bus signal may just be for mirrors & seat adjustment on startup. Worst case it needs a bus signal to wake the module up, sometimes just a steady signal of what the bus communicates at. CAN used to be 2.5 volts but newer cars are going to 12 volt Lin buses for many things. Do you have a wiring diagram for the seats?
The bus signal is for controlling, but the motors are still sent a 12v signal for actual function. Run power and ground through a switch directly to the motors (and use a fuse on the 12v side!) And it'll work.
Think of the CAN controller as just a really fancy and expensive relay. Because unless you want memory functions, that's all you'd be using it as.
Do you need wiring diagrams for the seats? I'm a Alfa Romeo Tech so I can give you all the detailed factory diagrams off dealerconnect.
Caperix said:
The seats look great, I would try hooking it up to power & ground first & seeing if it will operate. The bus signal may just be for mirrors & seat adjustment on startup. Worst case it needs a bus signal to wake the module up, sometimes just a steady signal of what the bus communicates at. CAN used to be 2.5 volts but newer cars are going to 12 volt Lin buses for many things. Do you have a wiring diagram for the seats?
There are all sorts of different CAN protocols. Most of the newer ones are centered around 2.5v going high or low, I assume because everything has a solid 5vref anyway, but the older stuff was all over the place.
LIN can be anything, really. It's just point to point data. The headphone jack connecting my phone to my radio could be considered a LIN bus
For the seats, assuming the switchgear is part of the seat, I assume that the CAN data is for things like heated seat control (possibly with temperature sensors, too), occupant presence, and the like. Not required unless you want to tie your HVAC system in so the air conditioning blows cooler if the seat temperature is too high...
kellym
New Reader
10/28/23 11:37 a.m.
In reply to Pete. (l33t FS) :
I have connected +12 and ground, nothing moves on the drivers seat. The passenger seat works great with only +12 anf=d ground.
The drivers seat includes a control module installed under the seat. The control module controls the memory, easy entry and seat/steering heater and apparently the motion of the seat. Thus my need to mimic the can bus signal to enable movement of the seat.
I did swap over a passenger wiring harness to the drivers seat and was able to test out some of the motors, but the motors on the drivers seat do not have all of the wires that the passenger seat does as the control module controls some of the movement.
Sounds like you will need to wake up the module. You should just need to apply the high voltage signal to the bus line on the module. Do you know if it is 2 wire or 1 wire? Body bus's tend to be lower speed with less need to make sure they are reading correctly so many of them are only single wire, if you are lucky they operate at 12 volts. If you have a car to test a scope to the seat connector will be best, but if the bus does not have many other modules on it than a multi meter can be used. If you are trying to get features that are transmitted via the bus, seat heating/memory than you will need to sniff & record the signals when operating the functions. I have not done this my self, but I understand it can be done with a basic arduino & Wireshark.
kellym
New Reader
10/29/23 10:06 a.m.
In reply to Caperix :
It's a 2 wire bus, I have a high wire and a low wire. I'll have to research the bus voltage
kellym said:
In reply to Caperix :
It's a 2 wire bus, I have a high wire and a low wire. I'll have to research the bus voltage
I can get you every spec you want tomorrow morning at work. I can email you files or take pics of my computer screen and put them on here, whatever is easier for you.
kb58
UltraDork
10/29/23 11:24 a.m.
Retired hw/sw engineer here. The question is, do you want to make this a project, or just get it working? If the former, get a logic analyzer, or second best is a good oscilloscope. If you're happy with just making it work, I heartily endorse chucking the CAN module and as suggested, wiring ordinary switches to the motors.
Note that the "can bus signal" is a whole bunch of messages from all sorts of devices, and they're sent out at rates of 80 Hz or more. The traffic can be anything from throttle position to cruise control button activation to "start car now". You need to find the messages that make the seats do what you want them to do, and that's going to require a fair bit of analysis once you've figured out the actual trigger to make them happen. Sounds like you're going to be getting messages identifying what driver is in the car and if the door is open, amongst other things.
It's a fun thing to learn, but it's probably a long way from what you're actually trying to accomplish.
It sounds like the seat has battery power and uses a wakeup signal from whatever is the master device on that network to turn on, instead of an ignition hot wire. Not uncommon, as there are various convenience benefits involved. (Let's say it has an auto-move back function when you open the door, that needs to work if you shut the car off first. Or shut the car off and sit for ten minutes before opening the door)
This also means there needs to be a shutdown signal from the network, so the module doesn't stay awake and drain the battery. 90% of parasitic draws I diagnose end up being a module failing to go to sleep when commanded.
FWIW, I am firmly in team bypass-the-module. I suppose one could do an end run around the issue by finding out what the master unit on that network is and install one strictly to wake up and shut down the seat, but without knowing the car this may turn into a daisy chain comedy of secondary and tertiary requirements.