-
Notifications
You must be signed in to change notification settings - Fork 20
CANserverManual
CANserver is intended to connect to a CAN network and transmit live data to a microDisplay or app and log to an SD card. While initalliy developed for Teslas, the CANserver can be used with nearly any CAN network and most modern automobiles.
If you have microDisplays, please read the microDisplay manual as well.
CANServer is based around a powerful common ESP32 board and has the required hardware to run off automotive 12 volts, a CAN network tranceiver (configured to only receive for safety), connectors for various CAN connections, and a microSD card slot. The latest v2 hardware revision can optionally support a second CAN bus and read from two busses simultaneously. A power switch disconnects the rest of the CANServer from 12v power (as well as the switched CAN output power). The case is secured with four small phillips screws which can be removed to open and make connections.
CANServer hardware revision v2
CANServer hardware revision v1
Firmware v2 is supported on both hardware v1 and v2
CANserver should be connected to your CAN network with a supplied cable harness and potentially a 3rd party harness. This depends on the car you are connecting to. Use the Bus Comparison wiki to help choose which bus to connect to.
Standard OBDII
CANserver offers dual CANbus support through a standard OBD port present on most vehicles. Not all vehicles may have two CAN busses present. We may add documentation here for specific manufacturers as we add built-in support, but feel free to contribute!
Tesla 3/Y vehicle bus
Tesla's Vehicle bus has most motor, battery, and power data. Most Teslas will require a 3rd party OBD harness that plugs behind the center console. Note there are different harnesses for 2018 Model 3, and 2019+ Model Y and 3. Center console harnesses are available at Amazon 2019 or 2018, GPS Tracking America, E-Mobility (Europe), and AliExpress. Unplug the car's console harness, plug the OBD adapter harness in between, then plug the CANServer into the OBD harness. The server and cables can be tucked underneath the opening under the console. Only a signle CAN bus is present on this OBD harness, a north america 3/Y dual bus CANserver will have an extra long OBD harness so it can be plugged into chassis under the seat as well.
Tesla 3/Y chassis bus
The CANserver is designed to plug and play easily under the passenger seat for data on the chassis bus, which contains some UI and autopilot data. Note this connection is not present on most European vehicles! Raise the seat to full height and look for a small box with a yellow connector. While the car is in Park, squeeze and pull to release the cable from the seat box. Plug it into the CANserver and plug the chassis pass-through cable into the seat box. Use a zip tie etc to mount the CANserver under the seat where it does not interfere with the seat moving. Please confirm this connection is present before ordering. If there is a problem with installation, you will get a passenger restraint error on the screen, double check connections.
Watch the installation video here
Tesla S/X diagnostic connector
A custom harness is needed to plug the CANserver into the diagnostic connector in Model S and X vehicles, which contains both vehicle and chassis CAN busses. This is an open connector hidden behind the storage cubby at the front of the center console below the center display. Only the Maxwell OBD harnesses support passing both Vehicle and Chassis CAN busses through the dual CAN OBD canserver. Other harnesses may only support the single Vehicle bus.
Standard CAN DB9 connection
The CANserver is available with a standard CAN DB9 connector, with the same pinout as Vector's CAN connections. Pin 2-CANL, 7-CANH, 9-12V, 3-GND, 5-Shield, 1-CANBL, 8-CANBH
The CANserver can be setup and configured by connecting to its wifi network with a computer or phone and any web browser. When first connecting, your device will no longer be connected to the internet and may complain, but you can later set up the CANserver to connect to your home wifi and then connect through your home network. If not installed in the car, you can plug the CANserver into any USB charger or port to power it with a microUSB cable.
WiFi connection
You can use the following QR code to easily connect to the the CANServer's WiFi network. Just point your smartphone's camera a the QR code below.
- Power the CANserver via 12v (check on/off switch) or USB and connect your device to the CANserver wifi SSID with password JWcanServer2020
- Open a web browser and enter the URL 192.168.4.1
- You should now see the CANserver status page with build and memory information.
- There are tabs for setup pages across the top. Select the Network tab.
- Enter the SSID and password of your home Wifi and select the Save button.
- After a minute, if needed reload the Network page and the top Status should hopefully show a green Connected and home IP address. Copy that IP.
- Disconnect from the CANserver wifi and connect to your home wifi.
- Paste the above IP address and you should now see the Status page of the CANserver through your home wifi
Time Synchronization
An important item to configure after receiving a new CANServer or upgrading from firmware v1 to firmware v2 is to setup Time Synchronization
. This can be done through the Settings page in the WebUI. There are presets to make it easy to configure for a Tesla Model 3/Y or a Model S/X, but if you are using the CANServer with a different vehicle then entering the correct information in the Time Synchronization settings will allow the CANServer to adjust its clock and synchronize based on the vehicle's clock.
- Status -- The status tab displays information about the current state of the CANServer.
- Scripting -- The scripting tab allows you to build a script to react to values and control what is displayed on displays as well as the onboard IO
- Network -- The networking tab allows configuration of both the internal and external wireless networks
- Analysis -- The analysis tab allows to enter CAN messages and signals for the CANServer to monitor and process
- Logging -- The logging tab allows configuration of logging to an inserted SD card
- Settings -- The settings tab is where CAN interface to bus configuration can be set, as well as onboard IO settings and time synchronization details
The CANserver can transmit all CAN data live to phone and computer applications at high speed over WiFi. It emulates the Panda protocol and can therefore be used instead of a bluetooth OBD adapter. You must first connect to the CANserver wifi with your phone (as above), then configure the app to connect to 192.168.4.1 with Panda protocol.
Supporting applications include:
- TesLAX - iOS live data visualization with logging and advanced features
- ScanMyTesla - Popular iOS and Android app for Tesla data visualization
- SavvyCAN - Extremely power desktop CAN analysis app.
- CANdash.app - Android based instrument cluster.
The CANServer supports upgrading via it's web interface. There are two methods that can be used. Both are available from the Status page.
-
Automatic Updates
By clicking the "Check for Update" button the CANServer will check for an update from the internet. For this feature to work you need to be using a browser on a device that has access to both the CANServer AND the Internet. This can be done for example, by connecting to the CANServer's private WiFi network and having a cellular connection at the same time on your phone. Or connecting via through your home network WiFi.
The CANServer does NOT connect to the internet. Only the browser on the device you are using to perform the update does.
-
Manual Updates
Manual Updates can be performed by downloading the required files from the releases section of
Github
.Once you have obtained the files you can then upload them to the CANServer, and it will perform the update.
Manual Updates are made up the following files:
-
CANServer-OTA.zip
- This is the preferred file to use to perform a manual update. It contains both the firmware and the updated WebUI.
or
-
CANServer-OTA-Firmware.bin
- This is only the firmware. It is usually better to use the combo update zip file.
-
CANServer-OTA-WebUI.bin
- This is only the WebUI. It is usually better to use the combo update zip file.
-
CANServer-OTA-Data.bin
- This is only the default analysis items and script. You can use this if you want to reset things back to the default state. This file is not included in the combo update zip file.
-
V1 and V2 use Silabs USB uart, drivers are here.
To upgrade from a firmware v1 release you will have to perform a two stage upgrade process and install an "upgrade helper" firmware to move between the firmware v1 release and a firmware v2 release.
From Github
obtain the web-firmware.bin
file (this is the first stage upgrade file) - You can find the file here
Then you can upload that file to the CANServer running firmware v1 via the OTA web interface. Once that update has been applied the CANServer will restart and will be broadcasting a new wireless SSID.
You can then connect to the CANserver-Upgrade
access point with the password JWcanServer-Upgrade
(this is a temporary SSID and password, and is only used during this two stage upgrade process)
Once connected to this new wireless network you can then return to the CANServer web page (http://192.168.4.1) and continue with the next stage of upgrading.
Be sure to reload the page if you are using the same browser window from the initial step as the CANServer uses the browser cache for performance reasons. You can ensure that you are loading an uncached version by holding down the ctrl
(windows/linux) or command
(macos) key while clicking reload
Once loaded you should be presented with a page titled CANServer - v1 to v2 Upgrade
. At this point you can then use the three Manual Update files (CANServer-OTA-Firmware.bin
, CANServer-OTA-WebUI.bin
, CANServer-OTA-Data.bin
- be sure you select all three of them at the same time) and update to the firmware v2 code.
If you wish to perform a factory install of the firmware v2 code you can do so by obtaining then CANServer-USB-Factory.bin
file the releases section of Github
.
You can then flash that binary file to the CANServer via USB using either ESPTool (if you have it available) or by using the latest version of nodemcu-pyflasher (https://github.com/marcelstoer/nodemcu-pyflasher).
The CANServer-USB-Factory.bin
file contains a full flash image for the ESP processor. It will reset and default all options and erase any and all customizations.
The CANServer produces a number of internal status CAN frames that can be consumed both via a network connection or logged into log files when enabled.
Some examples of the data available is the CAN interface data rates, memory statistics, network statistics, and logging statistics.
All CAN frames are tagged with a Bus ID of 15 so they don't interfere with data captured on any of the hardware interfaces. Both via a network connection or in log files the frames can be identified by this specific Bus ID.
The details of these internal CAN frames can be found in the a DBC file located here
April 2, 2021