OtherTuningSoftware/JTune

JTune is a Java application (under development) wrapped around a serial IO framework, and targeted towards ECU tuning.

The main target is the PDA and cellphone devices. This is from the old PalmOS devices up to the newest PocketPCs. See OtherTuningSoftware/JTune/HardWare

Design must be solid

Even though we finally need a C based software to support OtherTuningSoftware/NintendoGameBoy, it seems that writing a well-designed tuningsoftware is the best way to go. The design is easiest to get right in Java, and porting to C shouldn't be particularly hard (maybe laborsome - but much less than getting it right in C first).

I think it's time for some design before processing with tuningsoftware coding.


Code is on SourceForge megasquirtavr in CVS module JTune. It's easiest to work with in Eclipse, but if you want to go old school, you can download it and build manually with Ant: ant -buildfile build_superwaba.xml all-exegen You'll need to check and modify the a couple of the build paths first.

I hunted the libraries together, it even compiled, but:..........

...............java.lang.ClassNotFoundException: javax.comm.CommPortIdentifier
Exception occured when creating serial port: java.lang.ClassNotFoundException: javax.comm.CommPortIdentifier
	at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:187)

That'll be the RXTX libraries, I think. Make sure that the native libraries are installed in the JRE's lib/i386 directory. I think messed up rxtx versions caused this problem.


Here's what's used:

These bits are on hold at the moment...


TODO


GUI Layout

MembersPage/PatrickB wrote: I'm thinking that JTune could do with a loosely coupled GUI confined to 160 x 160 pixels per page as the information would lend itself well to this type of visualisation. These same UI components could then be used as Portlets in a Web Browser/Portal type UI and against a JVM running on a PDA.

I'm not sure what that means, but as I understand it's for making independent widgets that can be pack according to configuration. (? Marcell)

160x160 is traditional Palm screen size, I think. Anything pixel based is nasty as we have to be able to scale for multiple screen sizes anyways, but it's worth considering this as a "worst case scenario" - in 1 bit colour. As appealing as the JGoodies stuff is, Thinlets offer a sane way to provide an interface on some PDA screens (WinCE / Linux devices) as well as laptops.

After some sleep and thinking, I propose the following:

sounds well based


Some notes by Jörgen:

I think that we need a scrolling table view.

We need a gauge section where we show a bar for TARGET AFR, Actual AFR as horizontal sliders.

afr-gs.png

Something like this? Monitoring could happen in it's own thread, so if a different screen is shown and parameter like AFR gets out of bounds, it could give an audible warning. -- Richard

More like this:

jurg_display.png --Jörgen

Load and RPM can be shown in numbers if we have a flying dot in the table. Flying dot is very important.

We need RPM, MAP, TPS, IAT, CLT, Injector duty, Injector Pulsewidth, ignition timing, knock retard,acc enrich and a few others on the main screen.

monitor-gs.png

This is emulating an older Palm, and the WinCE style GUI. It might be easier to look at, but the PalmOS style fits more on the screen... --Richard

Starts too look nice! No need to have the unit after the number though, MAP(kPa) ### is more effective and makes for a cleaner display. BTW, the LOAD and RPM parameters is the most important. Load is normally expressed in kPa (except for Alpha-N applications where it's TPS%). Ignoring the units altogheter where possible is even better. --Jörgen

One good feature is to have a dialog pop up when you start writing a number in a cell. A PDA would have two of the physical buttons assigned as up down buttons and when those are pressed a dialog for the current cell pops up.

popup-gs.png

The font size is increased on the pop up, and is adjustable from the PDA buttons. --Richard

Really nice! --Jörgen


Did you look at [ Megajolt Lite Junior] ? Webpage says Gnu General Public License, source files doesn't contain any licensing information.

I would assume it to be GPL'd unless a specific file says otherwise. I've not looked much at it to be honest, but it looks quite nice. Just appears to be in a moving in a slightly different direction to where we are heading. - Richard


Just another update:

The basic comms work ok over the net on the PDA, and over serial in the POSE emulator. I bought the cheapest new Palm to try with, a Zire 21, but it's USB only - unlike most other Palms, which have RS232 available via the feature connector. I've been unable to find a suitable adapter, so I'm not sure where to go with it now. Ideally we'd be adding a USB OTG controller to the Genboard.

I've got a Java/SuperWaba app running on PalmOS through POSE on my Linux box. It's talking to Marcell's Genboard via Telnet. Doesn't do anything useful, but if nothing else it proves the packaging and TCP/IP comms can work.

m505remote.jpg