Project plans - existing/intended features and releases
The project is still at a very early stage, so the scope of the project and the appearance/features of the final version may not be immediately apparent. The intention is to add new features at each release, so that progress can be measured and so that there is no confusion as to the content required for each release.
Release 0.1: first alpha - IN PROGRESS
Simple text interface.
Data loading/saving via Intel HEX files.
Device and programmer support via DLLs.
Elementary checking of device-requested programming facilities against programmer-supplied facilities.
Basic control of programmer I/O.
Possibly some more complex control of programmer I/O.
No support for adaptors.
Hardcoded text strings for user interface.
Test DLLs allowing programming of a PIC16F877 on ProPIC2 hardware.
Release 0.2
Full checking of device-requested programming facilities against programmer-supplied facilities.
Full support for complex control of programmer I/O.
Support for adaptors.
Provide simple adaptor to handle socket adaptors or cables for in-circuit programming.
Allow chip position/location in socket to be altered, specified manually.
Support for more PIC family members.
Release 0.3
Automatic positioning of chip in socket for programming.
Possibly support for other existing programming hardwares.
Possibly support for other file formats for loading/saving.
Release 0.4
Replace text user interface with GUI for main interface - plan to use wxWindows to build this GUI (as this is the only production-ready, free, cross-platform toolkit).
Programming settings still to be set via text interface.
Release 1.0: first full release
Full replacement of text user interface with GUI.
As befits the "1.0" tag, this release will be a fully-working version. At this point, it will be ready for use by the general public with all major features complete.
Release 2.0
Port to Linux/Unix/HURD.
Note that since the GUI will use a cross-platform toolkit, and since the code will all be designed to restrict OS-specific interactions to a few classes with standardised interfaces, only those few classes which touch the OS layer should need rework. If any new project contributors are particularly keen, this could be added any time after release 0.2.
Release 3.0
Add internationalisation, so text is no longer hardcoded.
This is a useful feature, but is not absolutely essential. Being practical, most electronics people either speak English or can understand English, so multi-language support is not as important as actually getting something working. However this is not a very charitable attitude to take in the long run, so the intention is to provide this when other more important work is completed.
Further plans
That's really it so far. Other stuff which will be ongoing (and may be done at any time) is to add further support for other devices, adaptors and programmers. A few other ideas I've had but can't really see space for yet are:-
Add "worksheets" which capture the device, adaptor(s) and programmer(s) used. The user can then short-cut to existing worksheets for setups they use frequently.
Add "scenarios" which stand above the device level to carry out other actions, eg. blowing a test program into a PIC and then using the programmer to stimulate I/O and check that the PIC responds correctly, all in one button-press.
Bugs will always happen, although I do test all code fairly thoroughly. I plan to do further "point" releases in between major releases (eg. "0.4.1"), which will fix bugs. I may also use these to release new features for people to try out, as code is completed.
After I've got GunFire to a fair state of readiness, I may return to GunProg and work on the universal programmer hardware. I'm not likely to do this before release 0.3. (Unless I get really hacked off with GunFire, of course! ;-)