{"id":18269070,"url":"https://github.com/raphaelcoeffic/sport_ecu","last_synced_at":"2025-04-04T23:31:19.096Z","repository":{"id":99980039,"uuid":"58260982","full_name":"raphaelcoeffic/sport_ecu","owner":"raphaelcoeffic","description":"Exports telemetry data from ProJET ECU to Frsky S.PORT","archived":false,"fork":false,"pushed_at":"2017-07-26T20:24:40.000Z","size":1911,"stargazers_count":5,"open_issues_count":3,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T20:17:49.298Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Arduino","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raphaelcoeffic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-07T10:24:17.000Z","updated_at":"2023-08-21T14:43:32.000Z","dependencies_parsed_at":"2023-05-11T10:15:26.255Z","dependency_job_id":null,"html_url":"https://github.com/raphaelcoeffic/sport_ecu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelcoeffic%2Fsport_ecu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelcoeffic%2Fsport_ecu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelcoeffic%2Fsport_ecu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelcoeffic%2Fsport_ecu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphaelcoeffic","download_url":"https://codeload.github.com/raphaelcoeffic/sport_ecu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266475,"owners_count":20910831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:34:27.558Z","updated_at":"2025-04-04T23:31:19.090Z","avatar_url":"https://github.com/raphaelcoeffic.png","language":"Arduino","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SportECU\n\nThis small project allows you to export telemetry data from a ProJET Hornet III ECU\n(or any of the re-branded version among which IQ-Hammer, Behotec, etc...) to a\nFrsky S.PORT compatible receiver (X-series).\n\nFollowing sensors are implemented:\n - RPM\n - Temp1: EGT\n - A3: ECU battery voltage\n - A4: pump voltage\n - Fuel: qantity left in ml as reported by the ECU.\n - Temp2: hijacked to transmit the status.\n\n## LUA script / OpenTx\nIf you are using a Frsky Taranis with OpenTx (2.1.x), you can use the provided LUA script\nto display these values (see screenshot below) as well as the air speed (Frsky air speed sensor).\nPossibly, the names of the sensors need to be changed/configured for the script to work properly.\n\n![Screenshot LUA script](https://github.com/raphaelcoeffic/sport_ecu/blob/master/lua/screenshot.png?raw=true)\n\n## Hardware\n\nIt has been tested with Teensy LC and Arduino Pro Mini (5V/16Mhz). However, it should\nprobably work with any Teensy 3.x as well or any other kind of Arduino board.\n\n### ECU cable pinout\n\n![ECU pinout connector](https://github.com/raphaelcoeffic/sport_ecu/blob/master/doc/ecu_connector_pinout.png?raw=true)\n\n### Teensy\n\nTeensy LC \u0026 3.X have hardware support for half duplex inverted serial (as used by the S.PORT protocol),\nwhich makes things quite simple on the S.PORT side. The TX line is directly connected to the S.PORT signal.\n\nHowever, on the Hornet III ECU side, the ATmega uses 5V levels, which means that you might need to protect\nthe serial input, especially if you use a teensy LC (NOT 5V tolerant). This is easily done with a 3.3V Zener\ndiode backward against GND and a 1KOhm resistor in the ECU's TX line.\n\nIn case you plan to use a teensy 3.2, nothing special is needed here as it is 5V tolerant (not tested however).\n\nPlease connect the teensy as shown here:\n\n| Teensy PIN        | Connect to                    |\n| ----------------- | ----------------------------- |\n| GND (near pin 0)  | GND on ECU \u0026 S.PORT receiver  |\n| 5V                | ECU +5V                       |\n| 10                | ECU RX                        |\n| 9                 | ECU TX (possibly limiting the voltage as described previously) |\n| 1                 | S.PORT signal                 |\n\nPlease note that if just connect 2 single 90 degree pin header to G \u0026 pin 1, you have a connector \nwhich can be directly used with a straight servo type cable between the teensy and the X-series \nreceiver (in case you are using one of X6R or X8R).\n\nOn the Teensy LC, I soldered the Zener diode (3.3V) directly on the board between pin 9 and the \nnearby GND pin and a 1k resistor between pin 9 and the wire going to ECU TX as shown on the next picture.\n\n![Teensy LC voltage limiting](https://github.com/raphaelcoeffic/sport_ecu/blob/master/doc/teensy_lc_voltage_limiting.png?raw=true)\n\n### Arduino Pro Mini\n\nOn the pro mini, S.PORT is implemented with a special software serial S.PORT library \n([FrskySport](https://github.com/raphaelcoeffic/FrskySport)). A big thanks to Mike Bland (er9x/ersky9x) for the code!\n\nThis library is configured by default to use pin 4 on the Arduino. However, you can configure it to use pin 2 instead.\nThen you just need to connect the arduino serial port with the ECU's. Do not forget to flash the arduino before soldering\nthe cable into the serial pins.\n\nPlease connect the arduino as follows:\n\n| Arduino PIN             | Connect to              |\n| ----------------------- | ----------------------- |\n| GND (between RESET \u0026 2) | GND on S.PORT receiver  |\n| 4                       | S.PORT signal           |\n| TXD                     | ECU RX                  |\n| RXD                     | ECU TX                  |\n| VCC (FTDI adapter side) | ECU +5                  |\n| GND (FTDI adapter side) | ECU GND                 |\n\n\n## Software\n\nIf you are using a teensy, please refer to the [teensyduino page](https://www.pjrc.com/teensy/td_download.html) for more instructions on how to install everything.\nI'm currently using Arduino 1.6.7 to compile \u0026 flash both teensy \u0026 arduino software.\n\nIf you are using an arduino board, you will need to install the [FrskySport](https://github.com/raphaelcoeffic/FrskySport) library into your custom library directory.\n\nOnce everything is installed, just compile \u0026 flash!\n\n### ECU configuration\n\nThis project uses the wireless telemetry interface on the ECU.\nThis means that it needs to be enabled first using a regular ECU terminal by setting the proper frequency.\n\nI recommend using the highest frequency you can select (10x per second) to get the best experience. However, anything will work just the same.\n\n### OpenTX configuration\n\nI assume here that you are using OpenTx \u003e= 2.1.8. It will not work with version 2.0.x, as the LUA \u0026 telemetry interfaces have changed between versions.\n\nOnce everything is plugged and powered on, go to the telemetry configuration screen and discover the new sensors.\n\nIf you wish to install the LUA script, here is how it should look like on your SD card:\n\n| File          | SD card location                |\n| ------------- | ------------------------------- |\n| RxHornet.lua  | /SCRIPTS/TELEMETRY/RxHornet.lua |\n| *.bmp         | /SCRIPTS/BMP/                   |\n\nYou should then be able to select the script on the model telemetry configuration screen.\n\nIf you are not using the Frsky air speed sensor or prefer to use the GPS speed over ground, edit the LUA script and change this line:\n```\n   local speed  = \"ASpd\" -- change ASpd to whatever the name of the speed sensor is\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelcoeffic%2Fsport_ecu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphaelcoeffic%2Fsport_ecu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelcoeffic%2Fsport_ecu/lists"}