![]() |
Jifi
So, Jifi is a java IFI loader for the 2006/2007 RC. I could not get IFILoader to work in Wine (I program in Linux) so I had to find another alternative. I have had pretty good success with this but do not guarantee that it will work for you. Right now, all I have is a linux package at http://shtylman.com/jifi but will be adding a Windows and Mac version soon.
If you have any comments or suggestions please let me know and I will try to implement them. P.S. The program is in the early stages and may (will) have bugs. I also plan to at some point release the source as well as an eclipse plugin. Right now it only works with the 2006/2007 RC (The 8722 chip) but can be made to work with others. You Will Need java 1.6 to run this. |
Re: Jifi
It would be really nice if you could help Astronouth integrate this into the FIRSTClipse project. It already uses SWT for the GUI, and if you're willing to provide the source, it would be really helpful. We already can compile the robotics code in Eclipse without writing makefiles, this would be a really great addition.
BTW, does this work with the pre-06 RCs, the EduBots or the Vex robots? Although relatively few use the EduBots (aka Robovation), having support for at least the older RCs would be nice. Assuming your program works in the same way that the other loaders on here work, it should just be a matter of changing one value in the code (I think). I'm no expert on it though. EDIT: All right, I just tried running it, (I was too excited over seeing a Java version of the IFI loader), and I get an UnsupportedClassVersionError when executing the Jifi executable in the Linux directory. This is with sun's java5 jdk on Ubuntu Edgy 6.10. |
Re: Jifi
Woul you be interrested in trying to integrate this into th next version of FusionEdit<www.sourceforge.net\projects\fusionedit >?
|
Re: Jifi
Quote:
Quote:
|
Re: Jifi
Quote:
|
Re: Jifi
A few questions about the technicals:
What serial library do you use? Did you use another loader as a code base? (eg, IFI Reloaded, pycloader, etc.) How structured and generic is the code? One of the things that I'd like to allow is for creative uses of the loader (eg, EEPROM variables). As far as integration goes, here's my opinion (if any of the developers on the project disagree, please tell me):
The last two points may happen after any code import. As to illustrate my point as to the usage of the libraries outside of this little project, I looked at some Java-base CMUcam2 GUIs, and decided I couldn't use them. Why? Their code was not structured into separate modules, so I could not easily take their code and use it in mine. Interfacing with the camera and parsing the data isn't that hard, so I'll just write my own. As for the loader, I'd like to see independent and useful libraries to interface with the code, such that each library could be a separate Eclipse plugin. If you borrowed the OOP methods from pycloader, that'd be awesome. :D If not, I'd like to see the structure first. |
Re: Jifi
in response to the post above this one here goes:
Hope that got everything. As a side note, the point of writing this was to hopefully send it over to the IFI guys and use it as an official loader. I am in the process of trying to get this to happen because I think a platform independent loader would be wise and useful. Until then, I will not open release the source to prevent tampering with the protocol as it can cause the RC to do weird things. |
Re: Jifi
Unfortunately, many GNU/Linux distributions (include slackware and Fedora), ship with a gij version that matches Java 1.4.2, and although it has some 1.5 extensions it doesn't seem to be able to read the class file version. This is pretty limiting, IMO, but of course, free software nuts who don't use the Sun JRE may not exactly be your target audience :P
This is the error I get: Exception in thread "main" java.lang.ClassFormatError: jifi.Jifi (unrecognized class file version) at java.lang.VMClassLoader.defineClass(libgcj.so.7rh) at java.lang.ClassLoader.defineClass(libgcj.so.7rh) at java.security.SecureClassLoader.defineClass(libgcj .so.7rh) at java.net.URLClassLoader.findClass(libgcj.so.7rh) at java.lang.ClassLoader.loadClass(libgcj.so.7rh) at java.lang.ClassLoader.loadClass(libgcj.so.7rh) at gnu.java.lang.MainThread.run(libgcj.so.7rh) |
Re: Jifi
Quote:
|
Re: Jifi
1 Attachment(s)
Understood; It doesn't matter to me what you use, I was just rambling as usual :P
Anyway, I've also been working on a program loader (in C), and one of the things I've just recently started working on is "an851d", which is just a server that pretends to be a PIC18F8722 with IFI's boot loader. By connecting my two serial ports together, I've been able to test it extensively without having to worry about screwing up our team's FRC, and have squashed a few bugs I couldn't have (reasonably) otherwise. If you're interested in using it to test I'd be glad to release the source before I release it all together (it's about 95% done). It basically just responds to any valid bootloader command it gets and prints out information about what commands its received (see picture). |
Re: Jifi
I have now made a windows package for the people that want it. It is found at the same place as the linux package (http://shtylman.com/jifi) except with extension .zip
- small tip: in the config tab, change the "chunk size" to something bigger (248 max) and see the effect on download speed. * Still requires java 1.6 to run * * OSX package to follow soon I hope * |
Re: Jifi
Quote:
And also, IFI probably will not allow you to open source it. IMHO, you need to make that choice up front. |
Re: Jifi
I was not aware of the microchip documentation, but thank you for that.
As for what IFI decides, I will leave that up to them. I don't think it is fair to speculate given that I don't know that anyone has ever offered. Also, From my previous research into loaders I found just one (picloader I think) that stopped working on the newer larger code size controllers, was only for linux as far as I could tell, and was not very flexible in what I wanted to be able to get out of it. If I missed something, I am sorry, but this loader was also more of an exercise for me in protocol sniffing and implementing, so I don't mean to offend or belittle anyones efforts. |
Re: Jifi
Astronouth, would you mind if I updated your Wiki to have a complete documentation of AN851 + IFI's "special" commands?
|
Re: Jifi
How hard would it be to integrate a serial console to your program as one of the tabs, like the "debug window" that pops up in IFI's program?
I know that I can "cat /dev/ttyS0" in Linux or "type COM1" in Windows, but it would be nice to have it integrated if possible. From what I understand, it involves reading the serial port when not downloading, checking if it is ASCII (to avoid getting garbage data, i.e. line feeds or else values between 32 and 126), and displaying it in a text box. Also, IFI has a useful checkbox to pause output... I would imagine this might also be relatively simple to add in. -Patrick |
| All times are GMT -5. The time now is 03:56. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi