Standalone J1850 Controller HELPPPP

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Ok guys (and gals), long time listener, first time poster. This is going to be a LONGGG post, so sit down, strap in, and get ready for some babbling.

Lets see where to start. I own Olson Kustom Works, we mainly do LSA swap parts for almost every LS platform on the planet. I have an extensive electronics and mechanical background, as well as the machining/manufacturing side of things (I mean, we make parts, so I hope I know what Im doing). I have 3 LSA powered GMT800s, and a 2650 powered GMT900 tahoe, but the GMT800 Suburban that i have been building for a few years is the one that has some fanciness that I need the GMTNation help with.

Heres a short list of mods done to this 2000 1500 4x4 chassis so far (not including most of the interior stuff), just so you know what Im working with here. This thing started life as a 5.3/4L60 4x4 model, and It got a little out of hand. I was going to swap all this 8 lug stuff into my 2000 Yukon, but I liked the condition of the Burb better.

Full Float DanaS70 (the 37 spline one) rear end out of a 2008 Dmax GMT680 van chassis, still kept the stock 4 link from the 1500
fabbed all 4 link brackets and heim panhard bar
Eaton Trutrac
9.25 2500 front diff and axles
built 4l80
stock 2005 2500HD Silverado 263HD Tcase
1410 Steel driveshafts
Stock Lq4, gapped rings, stock LSA cam
Ported SPS cathedral 317 heads, ARP head studs
Speed engineering headers, custom Ypipe, to 4" SS Magnaflow Catback
2500 front spindle swap, brakes, hubs, etc.
LSA blower, unported, 90mm TB, stock LSA balancer, 2.45 upper pulley, 16PSI at 2500rpm.
deka80s, stock intank pump, surge tank with twin 340s
efan conversion with 6 relays
battery relocation
Toyota Corolla radiator made into a heat exchanger
Stock Bosch IC pump
OKW Intercooler tank
Giant Derale trans cooler
Derale deep tube pan
OKW Rails
OKW Front Drive (8 rib belt)
OKW Phenolic Adapter Plates
OKW Phenolic Lid spacer
MT Classic Beadlocks custom powdercoated
BFG TA KOs

Pic For Attention
20200922_174541.jpg

Where we started:
20180430_194449.jpg

Now for the nitty gritty. Swapping to the 263 tcase. Well, I bought the 4L80, and the Tcase came with it, so I figured, how hard can it be to make it work right? Wrong. First issue is the shifting order is different than the 246 case. So when it says its in 2hi its actually in 4lo (actually killed a 4l80 just driving it around the parking lot like this). So that sucked. The 99-02 TCCM is a non-programmable unit (at least per the dealer), so finding a pre-03 263 TCCM was impossible, so I went with a 2004+ TCCM out of an Envoy, and sent it to Dmax Swap for them to flash it, since they have a standalone setup that will work with an ALLISON swap (note the lack of 4L80 there). The other issue is that the actuator on the tcase needs to be the new style 5 wire one without the internal brake, no biggie, rockauto had one in stock.

Got all the wiring swapped over to the 2005 Silverado diagrams per Mitchell1, key on, nothing. Some Google searches, the TCCM on the 263 wont even turn on until the engine is RUNNING. Ok, start engine. Hey, 2HI lit up (burb was on a lift at the time). Put it in gear, 2 rear wheels spin. Hit 4HI, HEY ALL 4 TIRES SPIN YAYYYY. Hit 4LO, light flashes. Crap. Emailed DMax Swap and the best guess they had was that the ECU (0411 PCM) wasnt sending the right Neutral/Park signal to the TCCM to allow it to shift into 4LO, as well as shift into N if I hold the buttons down. Not the END OF THE WORLD, since I may use 4LO once every 5 years (having 700hp you dont use 4LO often I wouldnt think). So driving in snow and mud in 4HI is still a VAST imporvement over 2HI anyday.

Now comes the fun part. Ive been messing with my OBD2 scanner/logger and trying to find PIDs and data for CURRENT GEAR SELECTED (which looks like 1114 or 1113 from another post I found), which would help me send the correct signal to the TCCM (which I would have to "sniff" from a Dmax ecu, easy), and use an Arduino with a J1850 converter to talk to it. But, theres another problem thats gonna pop up here. We are working on swapping this setup over to a Holley Terminator, with a 12.3 Pro Dash. So we were going to keep the ECU just to turn on the TCCM with serial data, but if it doesnt give the right shift position data, it seems like a giant waste of space. We already have an Arduino that is controlling the AC request from the body controls, turning on the AC compressor, and monitoring the AC pressure for duty cycle, so that part is handled as far as one of the big reasons that people say to keep the stock ECU in place. We also have the holley dash so we dont need to keep it for fuel gauge, etc. The ONLY thing we would now need it for it to turn on the TCCM.

IF there is a way to "sniff the bus" and figure out the command being sent to the TCCM to turn it on, as well as find the command to send either/both a VSS and park position to the TCCM, I could theoretically delete the stock ECU, hook up a VSS, ACC and a P/N wire to the Arduino inputs, and send the commands to the TCCM as a standalone setup. I just have no idea where to start with getting or sending bus commands. I understand a fair bit about how the commands are being transmitted, but as some of these posts get farther into detail, I get lost.

Im used to doing a lot of direct analog/digital stuff but bus commands are foreign to me. Ive been using my ELM327 module and a bluetooth serial console to send and receive buss messages and try to log bus traffic, but again its over my head at that point.

This is the stuff I normally try to build.
IMG_20191214_165615.jpg
20191214_164739.jpg
My other option is build a complete standalone controller in place of the TCCM, an arduino and a Hbridge and a night of coding would get it done, I just didnt want to go that route if I didnt HAVE to.

And no, im not swapping back to a 246 case or doing a manual conversion, so dont ask/say that.

This link was a HUGE help, but I think only condused me more, @TJBaker57 Ill be sending you a message here at some point.
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
used to doing a lot of direct analog/digital stuff but bus commands are foreign to me. Ive been using my ELM327 module and a bluetooth serial console to send and receive buss messages and try to log bus traffic, but again its over my head at that point.


Does your terminal have logging capabilities?? If no then I suggest a free Android app by Kai Morich, Bluetooth Serial Terminal. Get connected, enable logging with timestamps, enter ATTP2
ATS1
ATH1
ATAL
ATMA

then start the engine, shift the 4WD system between selections and any other actions that may be of interest.

The ATMA will put the bluetooth OBD2 adapter in a bus monitoring mode. Should capture everything in the log file for us to decode. I have another thread here on the normal class 2 serial data traffic besides the PID stuff. That's what we need to get into but first we need to see whats happening on that bus. The "engine is running" I am already familiar with as well as some of the usual chit-chat between a GMT360 TCCM and PCM.
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Does your terminal have logging capabilities?? If no then I suggest a free Android app by Kai Morich, Bluetooth Serial Terminal. Get connected, enable logging with timestamps, enter ATTP2
ATS1
ATH1
ATAL
ATMA

then start the engine, shift the 4WD system between selections and any other actions that may be of interest.

The ATMA will put the bluetooth OBD2 adapter in a bus monitoring mode. Should capture everything in the log file for us to decode. I have another thread here on the normal class 2 serial data traffic besides the PID stuff. That's what we need to get into but first we need to see whats happening on that bus. The "engine is running" I am already familiar with as well as some of the usual chit-chat between a GMT360 TCCM and PCM.
Thats the software I have, its been working well but Im not that familar with it. Ive done ATMA but not with timestamps or a few other of those commands. The TCCM should be the same between a bunch of the platforms, since mine came out of an Envoy and it has a 2500 Silverado OS on it.
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
Thats the software I have, its been working well but Im not that familar with it. Ive done ATMA but not with timestamps or a few other of those commands. The TCCM should be the same between a bunch of the platforms, since mine came out of an Envoy and it has a 2500 Silverado OS on it.


I have spreadsheets set up to decode much of that traffic seen with ATMA. The spreadsheets are built expecting the timestamp so it's just easier to have it in there.

ATTP2 is try protocol 2
ATH1 turns on the headers
ATS1 turns on spaces between bytes for ease of reading.
ATAL allows long messages (just in case)

With a saved log file of proper format we can perhaps see what is needed.
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
well we got a log, once its running there is a LOT more data on the bus. I keyed on, shifted through the gears, then started it and did the same thing. interesting enough the TCCM didnt turn on so i have to diag that.
 

Attachments

  • serial_20211219_001644.txt
    71 KB · Views: 6

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
I am on Mountain Time so just rising here. Tossed your logfile into this spreadsheet here and have just started to have a look. I will be the first to say my spreadsheets are at best a hack. I am no programmer, I just toss together stuff to suit my purposes. So there may be some stuff requiring adjustments on my end. Usually the first thing I do is scan for any node addresses that I don't already have identified in the spreadsheet. So far I see only the usual suspects.

 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
TCCM booted on the next key on must have been a fluke


I find this odd. In it's native installation the TCCM in the Envoy is powered hot all the time and awakens with any network activity such as opening a door or pressing a keyfob button. Is this how it is currently installed?

It looks like the logfile begins after the network is already awake as I see no wakeup sequence. Is this correct?
 
Last edited:

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
Something unrelated I notice. There is an avalanche of "Vehicle Security" message traffic between your PCM and BCM. Approaching 70% of the total traffic. These are high priority messages that will win the message arbitration and use the bus before the bulk of other data traffic as well. Seems highly suspect. Know of any reason for this?
 
Last edited:

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Im sure the mismatch of ecu to BCM may be suspect since the 0411 ecu is from a different vehicle with Vats disabled in the tune
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
The TCCM is powered hot all the time with the main power, but doesnt "wake up" until the engine is running. the 246 TCCM in the other GMT800s I have will power up with key on, I think its something just in the OS for the 263 Tcase, or at least thats what the service manual says
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
The TCCM is powered hot all the time with the main power, but doesnt "wake up" until the engine is running. the 246 TCCM in the other GMT800s I have will power up with key on, I think its something just in the OS for the 263 Tcase, or at least thats what the service manual says


Normally, as far as I know, any module can send what is specified in SAE J2178 as a "bus wake up" message. You open a door and that door module does it. Press a keyfob unlock button and the receiving module does it. Unless the OS flashed to that TCCM somehow disables that I would expect it to wake up upon transmission of the wake up message like it did in it's source vehicle.

Screenshot_20211219-224627.png
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
hmm, reading through the documentation again for the GM service manual, it does say the key needs to be in the RUN position, but doesnt specify that the engine needs to be running. I think I saw that elsewhere, but I dont remember where it was.
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Unfortunately I dont have the source vehicle, I bought the trans/tcase from a guy who crashed the truck, and sourced the TCCM and control box seperately on ebay, and sent them all to DMax swap for them to program and test, and it came back all working correctly, but im sure they have the right platform/ecu combo to test, as where Im just trying to fake it to work.
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
this was Dmax Swaps email to me earlier this week

My guess is that the TCCM is not receiving the proper serial data neutral signal from the TCM to allow 4 low to engage.

That’s exactly what I was afraid would happen and why I warned you that it may not work.

The TCCM looks for the engine running to activate the system and also requires an appropriate neutral signal from the ECM/TCM to allow a shift into 4 low.

I have had this issue when trying to use this TCCM with more modern drivetrains like the 2007.5-2010 LMM since the ECM does not have serial data, even though the TCM does output a neutral signal on serial data.

You are going to have to make sure that the ECM and TCM operating systems are compatible with the VIN you provided for me to program into the TCCM.
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
Sooo.. before the TCCM wakes up the PCM and EBCM repeatedly ask for the 4WD system status. Naturally there are no answers since the TCCM is inactive. When the TCCM does come online it announces it is awake, reports the 4WD system status. The PCM acknowledges this and the TCCM then instructs the PCM to load several bytes of unknown data from the TCCM. Next the EBCM acknowledges the 4WD system status.

The next thing I see is interesting in that the TCCM acknowledges a message sent by the PCM about 0.12 seconds before the TCCM announced it was awake! The PCM message was an announcement of "actual gear position with shift in progress".

The TCCM goes on to request all manner of data. The network status, throttle position, vehicle speed, something about interior lamps??, as well as the running status of the engine which at the time of the request was running.
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
this was Dmax Swaps email to me earlier this week


So I can identify the TCCM requesting the actual gear position, the PCM reporting that status, and the TCCM acknowledging that status report.

The example I see first begins at timestamp 00:17:17.961 with the TCCM making the request. The PCM answers at the very same timestamp and the TCCM acknowledges at 00:17:18.041


So that doesn't seem to be the issue here.
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Maybe its the lack of vss data as the diagrams differ from one manual to the next as far as the vss input to the TCCM vs the ecu
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
I know the 246 case has 3 Vss sensors on the case itself, one input, one output to 4x4 module, and one to the PCM. the diagrams from the 263 are conflicting, since the 263 only has 1 vss on the output, and thats it, but there is another set of "VSS" wires that look to go to the tccm.

pins A1 and A2, and B1 and B2 i cant find info on on any diagram, and knowing that this came from a 6.0 gas motor, 6.0, 4l80, maybe the programming they put on it was for a diesel and thats what messing me up, as the LBZ ecu would have a slightly different data set? The vin I used was 1GCHK29295E168677 which looks like it comes up as a Dmax, I may have to find a gas model and try to have the local dealer program it again?
 

Attachments

  • 263 tccm C2.pdf
    75.5 KB · Views: 3

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
Maybe its the lack of vss data as the diagrams differ from one manual to the next as far as the vss input to the TCCM vs the ecu
That's an interesting thought. I can see the TCCM requesting vehicle speed and the PCM reporting vehicle speed. BUT!! The TCCM is requesting a high resolution speed (indicated by the 02 in column M) and the PCM only reports a low resolution speed (indicated by the 01 in column M). I wonder if that mismatch is behind this??


Screenshot_20211219-235704.png
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
Behind the scenes I look up details in SAE publications. Here is where that bit about vehicle speed and high vs low resolution comes from. The address pair of 0x28 and 0x29 belong to the Functional address Primary ID of "Vehicle Speed". The bytes I referred to in column M are the secondary ID seen in the table. Way over at the far right of that table is yet another reference that I could look up to learn what reported units and resolution etc. are.

Screenshot_20211220-000850.png
 
  • Like
Reactions: azswiss

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Well it looks like I found the right guy for the job, I still dont know how hard it would be to make an ECU simulator that would talk back and forth to the TCCM once I delete the stock ECU, but this may at least get this thing working properly at the end of the day.
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
I wonder if a speed message of the type requested by the TCCM was provided by an arduino type device would it then shift to 4Lo? And how frequent would the messages need to be? And would the message need to be sent in response to a request or simply broadcast? I have observed some modules request specific data that was just broadcast seconds earlier. Makes me wonder if their programming is such that they don't constantly parse the data stream for pertinent parameters but rather request it when they want it.

Having observed a lot of data over the last couple of years it appears to me that some parameters are updated based on a change of the parameters value. Others seem to be more of a time based update broadcast.

Are you familiar with the concept of "Functionally addressed" messaging? It took me a while to get a grip on that. Messages sent from one specific module to another specific module came easy. It wasn't until I got hold of some SAE specifications that I began to get it. Anyway, these speed messages we are speaking of are addressed to a functional address for use by any system that needs that data. The whole speed message the TCCM is asking for would look like this...

88 29 10 02 34 4D xx

Where "xx" = CRC and "34 4D" is the 2 byte speed value in kph with 1 bit = 1/128 kph.

The 34 4D would resolve to 65 mph after the math was done.
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
So being that I have no way to know for certain what a module's programming is doing sometimes I will just take some action to see what happens.

If we were to speculate that the TCCM needs this vehicle speed message before it will shift to 4Lo, and wish to test this idea out without a lot of effort, we could supply the message using a multiline macro in the serial terminal app and the bluetooth OBD2 adapter. Set a between line delay of maybe 1 second and let the app just keep resending the speed report while attempting the shift.

We could get either a positive result and it did the shift showing we are headed the right way or an unknown result where it still wouldn't shift but we had not definitively proven anything.

The message "88 29 10 02 01 00" would resolve to a speed of roughly 1.24 mph which I think is below the threshold for a shift to 4Lo. Of course one could also report a speed of 0.0 mph with "88 29 10 02 00 00". The Bluetooth adapter will add the required CRC byte for us.

In your log file I see the TCCM requesting vehicle speed a little more frequently than once per second so I figure a 1 second delay between speed reports should be good.

Screenshot_20211220-111725.pngScreenshot_20211220-111738.pngScreenshot_20211220-111946.png
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
I gave that macro a try, and it sent out ok every 1 second, but 4LO still didnt work, no matter the shift position. I will have to log a vehicle that the TCCM should have been in and maybe there is a different code that is used in a different ECM?
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
I gave that macro a try, and it sent out ok every 1 second, but 4LO still didnt work, no matter the shift position. I will have to log a vehicle that the TCCM should have been in and maybe there is a different code that is used in a different ECM?

Well I have an 02 TrailBlazer and that should be the same as the Envoy you got that TCCM from. I have been studying my data looking for clues and differences between your log file and my vehicles. I also own an 05 Yukon so I have looked over that system bus traffic as well.

So you said the programmers reflashed that TCCM with a different OS?? You may have said what that TCCM was flashed with, I can't remember.

Oh CRAP!!

I just now remembered that in that macro I totally forgot to separate the header from the message body!! It can't work like I typed it!!

I will edit this message in a moment with the correct macro!!

Copy/paste this into the macro editor.
 

Attachments

  • Vehicle_Speed_Macro.txt
    4.8 KB · Views: 3
Last edited:

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Well I have an 02 TrailBlazer and that should be the same as the Envoy you got that TCCM from. I have been studying my data looking for clues and differences between your log file and my vehicles. I also own an 05 Yukon so I have looked over that system bus traffic as well.

So you said the programmers reflashed that TCCM with a different OS?? You may have said what that TCCM was flashed with, I can't remember.

Oh CRAP!!

I just now remembered that in that macro I totally forgot to separate the header from the message body!! It can't work like I typed it!!

I will edit this message in a moment with the correct macro!!
Sounds good, the OS was from a 2005 Duramax which uses a completely different ecu than the LS powered stuff, or even the I6 stuff in the trailblazer platform.
 

Mooseman

Moderator
Dec 4, 2011
25,331
Ottawa, ON
Just out of curiosity, was the TCCM flashed for a 2 speed transfer case? Eric O. at SMA just went through this on a truck that wouldn't go to 4lo and found out it had the wrong switch because the truck had a single speed case. Swapped it to a 4hi only switch.
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Just out of curiosity, was the TCCM flashed for a 2 speed transfer case? Eric O. at SMA just went through this on a truck that wouldn't go to 4lo and found out it had the wrong switch because the truck had a single speed case. Swapped it to a 4hi only switch.
This TCCM was flashed for a 2005 Dmax/Allison combo (per the vin) with the 263 tcase, which is a 2 speed, non auto 4x4 unit. I have the correct controls in the dash (without the auto 4x4 button). I have never seen a single speed transfer case besides the denali/escalade AWD one that lacks the 4LO option.
 
  • Like
Reactions: Mooseman

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
If desired, we can read out what the GM part#, OS#, and calibration(s)# are in that TCCM.

In the serial terminal enter the following either first hand or in macro:

ATTP2
ATH1
ATS1
ATAL
ATSH6C1AF1
3C08
3C0A
3C0B
3C0C

In the replies will be the data as hexadecimal.

(I added the corrected Macro for vehicle speed in that previous message)
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
If desired, we can read out what the GM part#, OS#, and calibration(s)# are in that TCCM.

In the serial terminal enter the following either first hand or in macro:

ATTP2
ATH1
ATS1
ATAL
ATSH6C1AF1
3C08
3C0A
3C0B
3C0C

In the replies will be the data as hexadecimal.

(I added the corrected Macro for vehicle speed in that previous message)
I will try to give that a try tonight. I had to use 4x4 today and 4hi worked fine, but tossed up a service 4x4 code, even though it shifted in and out of 4x4 just fine.
 
  • Like
Reactions: TJBaker57

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
Reading out the code for that service 4wd light might also be useful.

Just for fun after you grab that calibration etc info, while the header is still set type in "19 D2 FF 00". It will spit out any current, pending, stored, and MIL codes. There is a small decode to break out the actual code but it's really simple.
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Reading out the code for that service 4wd light might also be useful.

Just for fun after you grab that calibration etc info, while the header is still set type in "19 D2 FF 00". It will spit out any current, pending, stored, and MIL codes. There is a small decode to break out the actual code but it's really simple.
Im sure glad I stumbled across the page and you TJ lmao
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
This has become my hobby of the past few years. Everyone seems to be on the CAN bus. My niche is the old class 2 serial data system.
 

TJBaker57

Member
Aug 16, 2015
2,900
Colorado
Were you able to grab the corrected macro for broadcasting vehicle speed? Still can't believe I totally brain-fogged on that first macro post!
 

BoostedBurb

Original poster
Member
Dec 18, 2021
21
Seattle WA
Were you able to grab the corrected macro for broadcasting vehicle speed? Still can't believe I totally brain-fogged on that first macro post!
havent yet, had to go pick up a 250 gallon tote of waste oil for the shop heater for the next week, still need to unhook the trailer and pull it back inside the shop
 
  • Like
Reactions: TJBaker57

Forum Statistics

Threads
23,319
Posts
637,893
Members
18,519
Latest member
chirobo1

Members Online

No members online now.