Ford Transit USA Forum banner

MeatPi WiCAN on Ford Transit

3 reading
7K views 59 replies 13 participants last post by  Captadv  
#1 ·
Hi Folks,

For the uninitiated, WiCAN is an open source project with hardware that connects to your OBDII and allows you to easily stream data to, for example, Home Assistant.

The WiCAN project has made some progress with version 4.0 that was released in December 2024. This is primarily in the ability to easily take PIDs and shoot that information into MQTT. @mikegoubeaux did a nice video about it here.

I was able to get this working using ECU mode: ISO 6- ISO 15765-4 (CAN 11BIT/500K). The PID scanning mode resulted in the following on my 2021 transit with Ecoboost:

Image

Image

Image


I was able to get some test data into MQTT:

Image


I have yet to sit down with the standard and understand all of the PIDs and the units. Clearly the data is in metric units.

I started this thread to discuss "non-standard" PIDs on the transit to pick up things like tire pressure, fuel economy etc. I know there's been talk about the torque app on the forums so some of that knowledge can likely be used. If there are others with a WiCAN and have made progress on PIDs, please do share. Eventually I'd like to get to the point to create a vehicle profile on the WiCAN Github.

I'll also share some dashboards and automations that I'll be using from this data in Home Assistant.
 
#3 ·
The current plan of attack is to connect FORScan to an ELM327 and log the traffic. That should provide requisite initialization codes for the modules and the PIDs. The WiCAN emulates an ELM327, so we'll see how that goes.

Depending on what FORScan logs, it may take some time to correlate a given PID with the sensor. Then of course figuring out the expression to make it human readable. I suspect FORScan doesn't exactly fork that information up to the user on a silver platter as that's the grunt work that they have to do.
 
#4 ·
Are you planning on using an OBD2 splitter on the transit bus to capture the full handshake?

What I would love access to someday: climate control! As someone with the 10 inch screen, figuring out a way to add back some physical buttons for temp and fan speed would be amazing. (E.g. two momentary toggle switches)

That being said, I'm not sure what the exact situation is between all the various high and low speed buses and if there are any gateways filtering traffic.

My ideal setup is a 2 wire can interface to the van that provides a digital version of all the upfitter harness wires (door statuses, lock, unlock, ignition status, accessory status, load shed etc)
 
#5 ·
To your point there are different buses. Right now, I'm focusing on powertrain data. Lower speed buses can be accessed on the high spec connector. I actually have a WiCAN that has a screw terminal interface instead of OBDII for this purpose. It's low priority as I have physical buttons 😊

You can get door status, lock and unlock using a Shelly Plus RGBW PM and following my Github using the high spec connector.

I know there are other products which act as a sort of flight recorder; however, I'm looking to pull this data into Home Assistant for custom dashboarding amongst other automations. Eventually I want to build an application that takes the data from MQTT and builds a predictive fuel economy model where I can optimize my acceleration and understand the exact crusing curve of MPH vs MPG to maybe find some sweet spots in efficiency. I've been using AI to build some ideas, could be pretty cool if that comes together as I envision it.
 
#6 ·
I was able to pull up some interesting data and log the ELM327 traffic from the Car Scanner app. Unfortunately, I couldn't reproduce those results from the WiCAN itself. There's a specific sequence of AT initialization commands that light up the modules that provide the data. For example 0x221E1C posts back the trans temp on CarScanner. If I run those sequence of init commands and then 0x221E1C I get 'no data'.

Here's the sequence I'm running in ELM327: ATZ;ATE0;ATH1;ATSP0;ATS0;ATM0;ATAT1;

Anyone have experience with this sort of thing or am I off in the deep end?
 
#47 ·
I was able to pull up some interesting data and log the ELM327 traffic from the Car Scanner app. Unfortunately, I couldn't reproduce those results from the WiCAN itself. There's a specific sequence of AT initialization commands that light up the modules that provide the data. For example 0x221E1C posts back the trans temp on CarScanner. If I run those sequence of init commands and then 0x221E1C I get 'no data'.

Here's the sequence I'm running in ELM327: ATZ;ATE0;ATH1;ATSP0;ATS0;ATM0;ATAT1;

Anyone have experience with this sort of thing or am I off in the deep end?
That sequence brings back many memories of Hayes Smartmodem 1200 baud command strings from the 80s!
 
#8 ·
That would be a neat idea! e.g.: "You're still plugged into shore power!", "Water level low", "Fan/Window Open!"

Side thought on my climate control dream: A much simpler starting point would be to just be able to read the HVAC status and setpoint. Then you could have the house climate system stay in sync while driving.
 
#10 · (Edited)
I like the shore power status indicator. That's something relevant when shifting into drive.

I've made progress. I sniffed FORScan traffic and then used various message boards plus ChatGPT to figure out the expressions to decode the values.

Keep in mind the vehicle is off and parked in this screenshots below:

Image


I also have some template sensors that use basic math to come up with some other information.

Image


I haven't put together a nice dashboard yet, just testing, but here's what I have.

Image



The public lands was a new sensor I created recently. Details here.

I think what's more interesting is seeing historical information. I can the turbo boost up to ~12psi when I really feed her the onions:

Image


Image


According to the computer, the engine torque hit 474 lb.-ft. That seems a little farfetched, but I won't complain. To celebrate, I used AI to create this image:

Image


I can only initialize the PCM and I think that's a limitation of the instruction set supported on the WiCAN. Once I get my hands on a WiCAN Pro, I'll try to initialize other modules.

The code can be found on my GitHub here. It's barebones, but I'll add some description and guide at some point.
 
#15 ·
I like the shore power status indicator. That's something relevant when shifting into drive.

I've made progress. I sniffed FORScan traffic and then used various message boards plus ChatGPT to figure out the expressions to decode the values.

Keep in mind the vehicle is off and parked in this screenshots below:

...
Fantastic work! I'm amazed that there's data with the engine-off. I think the Meat-Pi unit I have is powered from OBD and the light stays on, so... cool that it's capable of pulling data.

Gonna test your code here in a couple days... especially if I can work on it without the engine running!
 
#11 ·
I used AI to create this image
That's REALLY bad.
DSD with no handle (it is RHD) and/or a single door van with sliding door track that was just randomly placed surface mounted on the drivers side. I suppose not close to level could be accurate for Ford?
How do you filler-up with gasoline. What's the big hole in the drivers door. Parallel tread lines in the marks from tires that are at 45 degress. Oh my bad, not skid marks, based on smoke it's a burnout. So then van is perfectly lined up on skid marks from side by side vehicles. Daylight throug right front wheel engulfed in smoke. Speaking of smoke, no reduction in density as it spreads away from the van, just turns from white to black. Why is there smoke in front of the drivers side wheel but not the passengers side.

The public lands was a new sensor I created recently. Details here.
Might wat to crawl the website to download the data, before it gets taken down in some kleptocratic effort. (oil, rare earth metals, resorts). Well aside from that potential issue, might actually still be good for when out of cell range. Oh wait just a guess you've bought into StarLink so ubiqutous internet access. ... not sure I'd want to count on that :unsure:

Anyhow, all kidding (or not) aside. Impressive work.
 
#19 ·
Progress! Got all caught up in playing with this... and didn't go for a run... and the van is sitting out front of the house idling so I can see all the stuff updating... <sigh>

For the audience at home... it took me a while to get the firmware up to 4.0.3 - had to do it via USB. Then had to do it a few times because I kept breaking things. But finally got it up and stable (so far). Then got it talking to my Mosquitto broker. Yay!

Not too long ago, that stuff alone would not have made enough sense for me to do it. Now... it seems like normal language instead of the WUT? it would have been not long ago. I know that if I can get stuff into the MQTT broker, I can do whatever is possible with it in Home Assistant.

BTW, there is a direct Home Assistant plugin in development - no MQTT required, from what I can see. But the "alpha" state isn't reassuring. And it looks like the goal is to have it fully functional with the upcoming WiCAN-Pro, so... going MQTT for now.

Using @IT Nomad (Anthony?) notes above and Github files, I've got all of the, "Standard PIDs," that were available with the engine off going into MQTT in their native IDs and names. After starting the van, I realize now there are MANY more - and some of them that showed with the van OFF go away when it's on? I dunno... so I added all of those and made sure they're ALL dumping into MQTT. I kept all the automatic names they had as the MQTT topics.

I've got the config files from Anthony and from Mike (@mikegoubeaux) in Home Assistant and still have a lot of work to do there - converting / blending / changing the MQTT sources and the device IDs/Names so that the various templates and stuff work.

@IT Nomad and @mikegoubeaux, thank you! Really, really great work here! As many hours as this has taken me so far... I can't imagine how many more hours it would have taken just to get to this point.

Anthony, I assume you're still sniffing out more stuff and will add it?

I'm attaching the WiCAN config file for anyone who wants to use it - or just pull out the PID list and dump it into your config and it should work.
 

Attachments

#23 ·
Sweet. Ordered the WiCAN Pro as well - mid-March deliver, they said?
Match 19th - We shall see. I don't plan to do any further development until I get the new kit.

How's the hiking in Death Valley this time of year? I'd heard there is good stuff to see, and I'd also heard that it is indeed brutal most of the time.
It was lovely. Temps in the 60s and 70s. A little cool at night (30/40s) but nice and cozy in the van. Feb/Mar is the best time. Highest chance of flowers, still cool and no rain. By the time April comes around it's already hot.
 
#24 ·
Little update info for anyone else considering these: I got it up and running with the engine running, then shut off the engine and kept playing with things - including the "sleep" options; I can't imagine what that device is doing... but it will kill the starter battery faster than anything I've run on it, for some reason. Of course you warned me, @IT Nomad, but I have to try things.

So... I have the sleep now set up to shut off 15 minutes after the engine stops running, basically.

And everything that @IT Nomad and @mikegoubeaux documented is a really great start for these devices. I don't know exactly what-all I'll be using while driving; but it already pushed me back to wanting a dash-mounted screen for Home Assistant. Looks like this wide screen will go well on the dash, then use a RPI-Zero2W to drive it. Going to be nice to have useful vehicle information on display again; haven't had that since we had the Sprinter!
 
#26 ·
Nice,

Mine is expected to ship on the 25th. Really hoping we can figure out a quick/simple way to recoup the fordapp perks they took away.

Remote start with full hvac control is another thing im hopeful for.
 
#27 ·
Fyi ... someone posted this Vehicle Profile on the Wican GitHub but never followed up with a Pull Request.

I'll review that data, and @gregoryx's file and do my own test and later I'll submit a pull request to Wican fora Ford Transit Vehicl Profile.
 
#28 ·
#35 ·
There is a new WiCAN Firmware being discussed on their discord which uses the ESP32 deepsleep strategy to limit the power usage.
I think the one it shipped with just stays on and doesn't do any deepsleep. It can go to sleep after X amount of time, but I'm referring to deep sleep which is a microntroller feature where they can sleep, wakup, do work, sleep, etc.. on an internal timer (or an event).

 
#36 ·
My WiCan came in and tested it out with some free iOS tools.

Decided to check my o2 sensors (bank 1 / bank 2) since i cant find the volt spot in forscan for them. Think it may have paid for its self already. 18 months of trying to get Ford to fix underboot/running rich.

Image
 
  • Like
Reactions: gregoryx
#37 ·
Got it working with HASS, and really was able to dig into my issue. I could see bank1 (bad o2 sensor) trying to lean out, while the engine was advancing the timing at the same time.

1000ms is the lowest the WiCan will let you set the interval

Image

Image

Image
 
#39 ·
I'm in active development mode with the WiCAN.

I'm focused on modules on the HS-CAN that are easier targets that will be applicable to WiCAN and WiCAN Pro.

I have access to:
  • PCM - Powertrain Control Module
  • BCM - Body Control Module
  • AWDM - All-Wheel Drive Module
  • APIM - Accessory Protocol Interface Module
I'm focused on PIDs that provide information to create dashboards relevant for fuel efficiency and off-road driving. A little preview but certainly not exhaustive:

  • Tire Pressures (psi)
  • Battery SoC (%)
  • Current gear
  • AWD torque split (%)
  • Torque converter lock (%)
  • Trans fluid temp (F)

Once I get the base of my project working and organized, I'll share more details on my GitHub.

I'll also be open to requests and can be bribed with Coffee. 😊