Hello all,
Firstly, thank you Kim. Your input here has been most welcome and I must admit, understanding the X characteristics is something I struggled with especially as you say when the sensor range isn't known. I have also been working with better understanding how Pico can help us visualize SENT and hope the following helps.
I’m not going to spend too much time on what SENT is. There are some great trainers out there that will do a much better job at describing how this protocol works. To give brief insight into this network though, SENT stands for Single Edge Nibble Transmission and follows the J2716 standard. It is a low cost, Uni-directional (one direction only) so the sensor can only send data out. What makes SENT different is that multiple pieces of data can be ‘sent’ over one wire for example, one sensor can send both pressure and temperature measurements using a single wire. This makes it low cost and reduces cabling, something manufacturers are always looking to do. This means you may well see a MAF sensor with just 3 wires which when measuring you will have a 5V supply, ground and the data.
As above, SENT has the ability to transmit more than 1 piece of data and it does this by making up SLOW message from ‘nibbles’ taken out of the FAST message. In order to build up a slow message it takes multiple fast messages but more importantly both of these can be decoded in Pico using the serial decoder. What does a SENT sensor look like then?
This capture was taken from our forum where a member had kindly uploaded it. To see the post please see here -
https://www.picoauto.com/support/topic21901.html
You can see that it could quite easily be mistaken for a PWM signal given it is 0 – 5V with a seemingly varying change in duty cycle. You may also notice throughout this article that there is signals that appear inverted. This isn’t deliberate but just another characteristic of the SENT protocol as the polarity of the signal can change but the data remains the same.
Just so we can all see how the SLOW signal is made up, I’ve already added the decoder but I will go over how to set each one up. From the above then we can see that there are a number of FAST packets of data required to make up the one SLOW message. This is important to note as the SLOW message contains so extremely useful information related to the sensor but it is necessary to take a long enough capture to ensure you have all the data.
If we continue to use the above data and begin to add the decoder in but it is useful to start with the SLOW decoder first.
Click
Tools > Serial Decoding > Create> SENT Slow.
The reason for starting with the slow message first is because quite often information about the sensor can be found in here. The FAST decoder provides you with a number of options as to how you would like the decoder to work based on the sensor type you are measuring.
In order to complete the decoder, the software will automatically set some paraments for the thresholds based on the channel selected. You will notice that this signal isn’t ‘clean’ and has some interference which can be cleaned using the LowPass filter in the channel options. I’ve found that 300 kHz works well. The other options is to amend the settings yourself in which case you will need to inform the decoder what voltage threshold to decode with and any hysteresis you would like to include. The following settings where done after the LowPass filter had been activated but settings you can use would be 3V with minimal hysteresis.
Once completed click OK and then ensure the decoder is ticked before clicking OK once more. The table will now form at the bottom of the waveform with some information. Now we can see some human readable data! Unfortunately, we are missing some additional sensor information. If we had a little more time on the screen would have meant we could get additional information on the sensor meaning we can create a SENT Fast decoder more accurately.
Using the same process to setting up the Slow decoder we apply it to the following capture. For clarity the following sensor is a pressure sensor used in an EGR cooler. The capture was taking with the engine started and then performing a snap WOT test.
A lot more packets of data present given us more chance to find some of the additional information transmitted in the SLOW signal. You can also see the Characteristic values for X1 and X2 which as Kim explained above are needed to translate the data into a physical value. Packet 8 at this point is the one we are interested in and as you can see it gives us the information relating to the sensor type. This is important when it comes to setting up the FAST decoder and we can see we have Pressure/Secure sensor. The additional data can be equally as important though especially the Manufacturer code. The message ID actual refers to list that can be used to determine who makes the sensor.
It is available with a quick search on the internet but for reference the ones that I’ve found so far are listed below –
There may well be others added in the future.
Heading back to PicoScope then and looking to the serial decode tool we now select SENT FAST from the list.
Here you’ll see that knowing the sensor type is important to us as we can select the specific sensor from the list. We know from earlier that it is a Pressure/Secure sensor. Again, I’m not going to go into too much detail here as it’s not the purpose of the article but basically the format of the data field changes depending on the sensor type. Pico allows you to pick out the type of format you want from the standard J2716 list.
Now we have both the Slow decoded data and the Fast data in the decode table. To flick between the two, you can click on the tabs for each table at the bottom of the screen where the labels for the SENT Slow and SENT Fast are visible.
The next step in order to better understand what this sensor is doing is to use the export function in PicoScope. On the decode table ensure you have the SENT Fast tab open and the decode only operating on the Current Buffer only, then click Export. You will then be asked to save the file in a easy to find location. I always find the desktop a good one to go for!
With file saved, locate the file and then double click to open in Excel. You will now be presented with the same decode table from PicoScope but with the ability to further manipulate the data. Steve has a number of posts on the forum where he has used Excel to pull further information from captured data one can be seen here -
https://www.picoauto.com/support/topic21593.html?&p=97888&hilit=excel#p97888
Whilst on the surface it looks quite overwhelming, we are only going to do something very simple in order to visualize what the sensor is doing in a way we are familiar with. The data packet for the SENT message is actually split up depending on the type of sensor it is which are labelled as Channel 1 and Channel 2. Below is an example which hopefully explains it in more detail.
When you apply the SENT Fast serial decoder in PicoScope you are telling the software how you want the data to be split up. In the image above this would be a typical even split for the data field so 12 bits for Channel 1 and 12 bits for Channel 2. We know that the sensor we are looking at in Pico is a Pressure/Secure sensor and when looking through the J2716 standard the Pressure data is present in Channel 1. Returning back to the Excel sheet in order to visualize the data we need to create a chart. Select Channel 1 column, column D, and by clicking on the column header it will select the entire column.
With the data selected now select Insert and then locate the Line Chart option.
You can now see the graphed image of data which we acquired from the SENT sensor. Whilst it looks a little basic, we can zoom in to the graph by amending the date in the graph. I admit this is a little ‘clunky’ at best but if it’s all you’ve got then it’s better than nothing!
Selecting the data source and then amending the data range will allow us to focus the graph on an area of data we would like view more closely. Below I have chosen to view between D5625 and D12140.
Below, I have amended the range again to be between D5625 and D6625. I think we can agree that what we are looking at is something resembling an exhaust pulsation waveform.
The exact same process was applied to MAF sensor that used a SENT sensor to send out air flow and temperature. Data was capture with Pico, decoded and then exported and a chart was created using the data present from Channel 1. Similar test carried out with engine idling moving to a WOT snap test.
Again, amending the range changed the ‘zoom’ of the capture.
The one problem I've run into is I can’t correctly take the value decoded for the channel 1 or 2 and translate this into a unit of measurement we can relate to. Kim mentioned that in order to do this correctly you do need the pressure range of the sensor in order to do this which is sometimes tricky to find. That being said I feel that this is an extremely useful way of visualizing a SENT sensor that we couldn’t before. You could graph the data from a serial scan tool but I would be worried that the refresh of PID data will miss something which for intermittent faults could be vital.
For both the exhaust sensor and MAF sensor I’ve found it best to take long capture, between 1s/div and 2s/div and keep the sample rate high, aim for 10MS. This will hopefully ensure that the samples can be decoded correctly. I have seen that I get the Yellow warning triangle for ‘Sample rate may be too low,’ but I’ve not had any issues with the decoding as of yet. There are ways to ensure no loss of data and one would be to add a single trigger but you have to be ready to perform the snap test. We will continue to work on trigger functionality as it’s one thing I’ve found tricky when capturing. Other options would be to use another channel accelerator pedal position or brake switch. Once you’re all set up a quick touch of the pedal will trigger the scope ready to capture the data for decoding.
I hope this helps and please feedback with any suggestions and if I can get the units working, I will update.
Ben