Hey guys đź‘‹
A couple of weeks ago i got this idea that it'd be nice to have a fully digital dash for the 12, after some research i figured there aren't really any viable options that don't require a full ecu swap (ie haltech elite, or motec -- which come with their own sensors yada yada) or the AiM MXS which is around 1/1.5k, dont get me wrong its a great product just not for the average folk.
TL;DR: I set out to make my own unit, from scratch.
So there's a few barriers:
1) Looking at other similar projects mainly for cars i noticed they usually run TunerStudio which results in long bootup times and more powerful hardware required -> more expensive
2) TunerStudio CAN (see what i did there? no? ok fine..) only process CAN-BUS messages which we dont have on the 12 (since theres no OBD port)
3) OBD can be slow and delayed (depends on the unit) since its not on the ECU's top priorities to send the diagnostics data (i guess) and is probably more focused on correcting mapping for that chinatown akro pipe you slapped on
.
TL;DR: The 12 is mostly analog so no poncho
The requirements:
Fast forward a week, i got a package:
A raspberry pi 4 model b, the 8gb model to use as a development kit (jackpot because these are rarer to grab than gold),
the actual board that will go on the bike permanently will be a much cheaper lower spec one because this is just overkill.
Wires, meters, arduino for analog inputs because the raspberry does not have any, led's and more:
Quickly gave it all a test and began to wire up a simulation for sensor voltage inputs:
All good so far. The potentiometer simulates the 0-5V output of the 12's sensors and we get good input.
Then we had to send the data to the raspberry, i used CAN for this since it works great under high EMI environments like the coils that will be sitting right under it.
Wiring it up and setting up the data transfer was not too annoying (kinda was tbh now that i think about it lol).
After some (a lot) of fiddling we got good data transfer, some actual progress finally.
Time for the software, spent a few days researching what to use to run on these tiny things, in actual PCs we have limitless cpu, graphics and memory to do whatever, but for something that's gonna be running under a motorcycle seat we are pretty limited cpu, memory and power wise, like i mentioned before it needs to run on a potato and were limited to 512mb memory in total.
After making a decision on the backbone for the drawing part i started working on the actual dash interface, a couple of sleepless nights later aaaand voila:
Now you'll notice that this is running on windows, so the next part is to actually get it to run efficiently on the SBC that has a different processor architecture than the PC, which turned out to be a major pain.
TL;DR eventually after a few stages of denial, bargaining with the code, depression and walls of errors I got it working.
Planned to work on:
All you see above
- Status screen which will display just the sensor data (pic for reference)
It seems like the most intuitive one, but the problem is that the 12 has the choke slapped to the LH control and i dont feel like eliminating it, will put more thought into it.
So whats next?
Here's a video of the final result running demo mode on the RPM / Gears / Speed / Fuel Bar (Phone did a subpar job of capturing the kawi green goodness, but its there.)
Axcell
A couple of weeks ago i got this idea that it'd be nice to have a fully digital dash for the 12, after some research i figured there aren't really any viable options that don't require a full ecu swap (ie haltech elite, or motec -- which come with their own sensors yada yada) or the AiM MXS which is around 1/1.5k, dont get me wrong its a great product just not for the average folk.
TL;DR: I set out to make my own unit, from scratch.
So there's a few barriers:
1) Looking at other similar projects mainly for cars i noticed they usually run TunerStudio which results in long bootup times and more powerful hardware required -> more expensive
2) TunerStudio CAN (see what i did there? no? ok fine..) only process CAN-BUS messages which we dont have on the 12 (since theres no OBD port)
3) OBD can be slow and delayed (depends on the unit) since its not on the ECU's top priorities to send the diagnostics data (i guess) and is probably more focused on correcting mapping for that chinatown akro pipe you slapped on
TL;DR: The 12 is mostly analog so no poncho
The requirements:
- Basic: Tach, Speed, Gears, Temps, FI, Oil, High Beam. Turn signals? (eh no.)
- The extra stuff: IAT, IAP, Oil temp & pressure, Tire pressures, Wideband AFR, Battery Voltage, GPS, IMU (Accelerometer / Lean)
- Some way for all that stuff to communicate together
- Software that can run on a potato, or a calculator (pretty much literally)
- Sleepless nights
Fast forward a week, i got a package:
A raspberry pi 4 model b, the 8gb model to use as a development kit (jackpot because these are rarer to grab than gold),
the actual board that will go on the bike permanently will be a much cheaper lower spec one because this is just overkill.
Wires, meters, arduino for analog inputs because the raspberry does not have any, led's and more:
Quickly gave it all a test and began to wire up a simulation for sensor voltage inputs:
All good so far. The potentiometer simulates the 0-5V output of the 12's sensors and we get good input.
Then we had to send the data to the raspberry, i used CAN for this since it works great under high EMI environments like the coils that will be sitting right under it.
Wiring it up and setting up the data transfer was not too annoying (kinda was tbh now that i think about it lol).
After some (a lot) of fiddling we got good data transfer, some actual progress finally.
Time for the software, spent a few days researching what to use to run on these tiny things, in actual PCs we have limitless cpu, graphics and memory to do whatever, but for something that's gonna be running under a motorcycle seat we are pretty limited cpu, memory and power wise, like i mentioned before it needs to run on a potato and were limited to 512mb memory in total.
After making a decision on the backbone for the drawing part i started working on the actual dash interface, a couple of sleepless nights later aaaand voila:
Now you'll notice that this is running on windows, so the next part is to actually get it to run efficiently on the SBC that has a different processor architecture than the PC, which turned out to be a major pain.
TL;DR eventually after a few stages of denial, bargaining with the code, depression and walls of errors I got it working.
Planned to work on:
All you see above
- Find some place for the FI, OIL & High Beam icons in the main dash interface.
- GPS Speed indication (instead of the ECU signal).
- GPS Lap timer, this is still in the thinking stage im still researching GPS sensors.
- Data logging & graphs (might even go for live graphs too).
- Multiple wideband inputs (will attempt up to 5) for getting wild and analyzing per cylinder AFR (this might not work out since every wideband needs about 1Amp at 12V and power output is limited on a bike).
- Wire up some IR temperature sensors on the bike (pic for reference)
- Status screen which will display just the sensor data (pic for reference)
- Custom colors (easy since the entire interface is coded and no images are used).
- Wire up an actual button control for going through the options and menus of the interface, been thinking of grabbing one off a KTM Duke that looks like this:
It seems like the most intuitive one, but the problem is that the 12 has the choke slapped to the LH control and i dont feel like eliminating it, will put more thought into it.
So whats next?
- Ill need to get the bike back when the knocking issue is solved so i can do fiddling with the multimeter and figure out the sensor voltage-to-value for the Water & IAT and measure how much amperage headroom there is (should be around 10 Amps?).
- IAP and AIR Pressure sensors are well documented on the service manual so it should be easy enough to map them.
- Find sensors for Oil and Water pressure.
- Wait for the 3D Printer to arrive and start making some cases.
- Wait a couple of months for the 12's ECU & Dash connectors to arrive from aliexpress so i can make small extension harnesses to wire up the system without modifying the original harness.
- SLEEP.
Here's a video of the final result running demo mode on the RPM / Gears / Speed / Fuel Bar (Phone did a subpar job of capturing the kawi green goodness, but its there.)
Axcell