Acknowledgements: People who've contributed to JMRI
A number have people have contributed their effort to JMRI. They are listed below and deserve our thanks.In addition, a large number of people have donated to the project. For more information, or to donate, please see our donations page.
- Sakae Akanuma provided a Japanese translation.
- Kerry Albrecht, who helped debug a problem loading panel files
- Debbie Ames of Lenz USA, who has provided valuable information on the Lenz decoders and loaned equipment for testing
- Ronald Angel, who figured out how to run the demo on GNU/Linux
- Ian Anderson, who set up the documentation Wiki, which lets a lot of people easily contribute to building better documentation
- Ron W. Auld, who's llnmon program formed the basis for the LocoNet monitoring
- Michal Basta, who contributed the Czech internationalization
- Patrick Beard, who allows us to distribute his javax.comm.MRJ package for the Macintosh
- Rick Beaber contributed definitions for MRC decoders
- Robin Becker, who has had a major role in the Soundtraxx decoder definitions, created our Windows icons and has debugged several difficult problems
- Paul Bender, who wrote the XpressNet throttle code, maintains the XpressNet implementation, created the LI101 configuration tool, has made important contributions to the base code, added Lenz XPA support, wrote the Lenz feedback code, wrote the Lenz consisting support, and in general has made more contributions than can be counted.
- Jim Betz provided a version number for TCS decoders and a model definition for the Z2 decoder.
- Thomas Beutel, who helped with the early EasyDCC tests
- John Bicknell, who worked with Ian Birchenough to update ZTC decoder definitions
- Ian Birchenough, who contributed (with Phil Grainger) six ZTC decoder definition files, plus the ZTC 4007, and the Lenz Standard decoder.
- Rodney Black, who has worked on refining the JMRI interfaces as part of creating his CATS system.
- Bob Blackwell, who moderates the jmriusers mailing list, accumulating the decoder ID info, and updated the DecoderPro manual
- Don Borden, who loaned a Soundtraxx decoder for testing the dual-decoder support
- Joseph T. Bore, who contributed the code upon which we built the scripting windows
- Sip Bosch, who contributed Zimo and ESU decoder definitions, helped test the physical data fields in the decoder definitions, added features to the decoder index, decoder selection tree, and speedometer, and created the connection to the Zimo MX1 DCC system
- Dan Boudreau, who added support for the new NCE turnout command and read-back of turnout positions, updated the "send packet" tool to send NCE binary messages, added a tool to let NCE users send macro commands, updated the NCE-USB support, fixed a lot of details in the NCE support, and improved the support for NCE consists. He worked on improving the way we read and write our panel files. He created the operations section of the code, and did a huge amount of work improving the general quality of the code.
- Dave Boydston of Serialio.com, who helped with the Windows connection to an MS100. Check out their great Java serial library!
- Peter Brandenburg, for many CT Electronik decoder definitions, definitions for Haber & Koenig decoders, and for creating the SPROG web page
- Jerry Britton, who acquired and maintained the domain registration for decoderpro.com, despite Matt Katzer's despicable behavior, and wrote a scripting example page
- Dick Bronson, who created the great LocoBuffer-II and worked hard to make sure it worked well with JMRI. He also contributed sets of USS, PRR and B&O panel icons for PanelPro, worked on the PanelPro logo, created fantastic clinics on PanelPro, provided CTC sounds, and made numerous improvements to the Simple Signal Logic.
- Stephen Brooks, who did the initial testing of the Grapevine and Maple support
- Bill Brown, whose layout was used for the first NCE tests
- Graeme Brown, who helped debug the MacOS X disk images and startup scripts for 10.4
- Bob Byck, who did extensive testing of test release 1.7.3
- Allen Byrne, who has systematically made improvements in the syntax and structure of the JMRI code
- Bill Carman, who located information on the MRC/Athearn F Unit and Challenger decoders
- Ken Cameron, who wrote the NCE fast clock support, added support for more than two systems to the preferences, added the Light Control, provided sample scripts, improved the titling of throttle windows, and created the InstallTest app.
- Peter Cesaro provided MRC decoder definitions
- Barry Chinn, who created the PDF file of our manual
- Bill Chown, who did a lot of work on the MRC decoder definitions
- Nigel Cliffe, who updated the CT Elektronic decoder definitions and provided new Zimo MX620 and ZTC 471 definitions.
- Normal Clymer, who contribed a TCS definition file
- Seth Cohen, who helped get serial sensors and NCE AIUs to work, and wrote the speedometer web page
- Glen Colbert, who contributed the MRC AD370 decoder definition
- Bob Coleman added the CTI Acela support and did a huge amount of work on the operations code tests.
- Peter Cressman provided a major improvement to Logix, improved Sensor Groups, fixed some problems in Routes, and provided the Warrant system for scripted running
- Andrew Crosland create the SPROG implementation, SPROG programming tools, has generously contributed lots of time for SPROG users, and worked on the CAN and CBUS support
- Mike Davison, who got the Linux serial connection working with Java 1.4, has helped with the EasyDCC code, helped debug the Ant compilation process, and has been working on decoder files
- Ray deBlieck, who let us test on his Empire Builder
- Lou DeHayes, who provided a definition for the MRC Sound Brilliance 1806 decoder.
- Eddie Delozier, who write the TCS M1 decoder file.
- Kevin Dickerson, who figured out the ECoS protocol so JMRI could connect to one and wrote code for ECoS throttles and turnouts, added turnout monitoring to the ECoS support, fixed a problem what would sometimes improperly disable Logix and Conditionals, worked on improving the throttles, and fixed problems in the SPROG and multisensor icons.
- Robert Doss, who provided ID information for the MRC 330 decoder
- David Duchamp, who has added diagnostics to the C/MRI code, did much of the customization work for the fast clock, created the C/MRI light controls, added Light support, updated the Route functionality, created Logix and the Layout Editor, added "two outputs per turnout" support for C/MRI, fixed a bug with complex definition loading, and produced some great clinics.
- Dave Duchesneau, who provided a decoder definition for the MERG accessory decoder
- Jim Duncan, who did a lot of the initial Grapevine debugging
- Michael Dunn, who provided a decoder ddefinition for the MRC 1645 decoder
- Joe Ellis provided the DecoderPro configuration files for the Lenz LE077XF decoder and has done a fantastic job on the manual
- Wayne Eric, who provided the MRC AD370 decoder definition
- Max Ettinger, who made JMRI work with the QSI Quantum Programmer on Windows and wrote great instructions.
- Dave Falkenburg created the original DecoderPro application (and found the perfect name for it!) He created our Mac Classic and MacOS X icons and worked on the PanelPro logo. He also updated the NCE support to work with new NCE EPROMs that require binary commands, and made it work with TCS decoders. He's helped with networking and various Macintosh issues.
- Don Fiehmann provided MRC decoders for testing
- Marco Forcone, who sacrified two turnouts motors to the cause of debugging XPressNet turnout support
- Marc Fournier, who improved the TCS decoder definition
- Paul Fraker, who wrote the documentation for the Throttles and provided MRC decoder definitions
- Joe Fugate and the other people of Model Railroad Hobbyist emagazine for putting the JMRI clinics from the NMRA 2008 Anaheim convention on the web.
- Simon Ginsburg has helped with advanced consisting, provided some Digitrax definition files, and translated much of DecoderPro into German
- Joseph Goldstone, who put together the javax.comm implementation for Mac OS X
- Martin Gostling, who provided CML and Digitrax decoder definitions
- Phil Grainger, who wrote articles about DecoderPro in the UK press, greatly helped with ZTC decoder definitions, provided the DH83FX definition, and many great suggestions
- Bill Gray suggested web page improvements
- Michael Greene, who corrected a bug in the SoundTraxx decoder definition; provided our jmri.info, decoderpro.info and packetpro.info domain names; and provided definitions for the E-Z Command and Zimo MX61_N decoders
- Walter Griffin, who provided graphics for signals and CTC panels
- Mark Gurries, who provided loaner equipment and great ideas. He's currently working on decoder definitions for DecoderPro
- Rob Hamerling, who got the demo to run on OS/2, contributed his scripts and has been patiently testing
- Jim Hanna, who helped with instructions for NCE units
- David Harris fixed some bugs in the Lenz decoder definitions
- Matthew Harris, who provided instructions for installing JMRI on EeePCs, updated the roster pane to work on small screens, improved handling of screen insets, provided a shutdown task, greatly improved the handling of scroll bars on panels, and added greatly improved audio capabilities.
- Phil Hartung, who provided some CTC graphics
- Tim Hatch, who added the support for TCH Technology devices
- Ian Havercroft, who provided the correct identification codes for ESU decoders
- Rob Heikens, who created ESU decoder definitions and programmer pages
- Freek Heite, who located some important XpressNet info
- William Hipple, who registered the JMRI.org and DecoderPro.org domains for us
- AJ Ireland of Digitrax, who loaned equipment, answered questions and made valuable suggestions
- Al Huberty, who organized our first users meeting at the NMRA Toronto convention
- John Jabour, who created the excellent LocoBuffer and thereby made reliable LocoNet communications routine
- Bob Jacobsen, who wrote some of the early code and does packaging and user support
- Lionel Jeanson, who added images to the roster, updated the throttle to add preferences for displaying them, cleaned up some code problems in the throttle, and created Jynstruments for improving the GUI
- Robert Johnson, who provided info on the DZ123 decoder
- Colin Jones, who first recognized the LocoButter
- Randy Jones, who provided identification info for several Quantum decoders
- The Jython project, who provided a very powerful scripting engine for us
- Scott Kitts, who helped debug the new communications library for MacOS X
- Tony Koester, who helped with signalling
- Ross Kudlick researched options switches on Digitrax command stations
- Nick Kulp, who helped test much of the C/MRI and signaling logic, presented a nice clinic on how to start making panels, and contributed numerous icons
- Al Lautenslager of CVP Products, who loaned some EasyDCC hardware and found answers to programming questions
- Jeff Law provided two Umelec decoder definitions
- Jim LeFevre, who did the testing on the TMCC implementation, including buying components so we could do a more complete job
- Peter Lloyd-Jones, who contributed a script for playing a sound when a function key is pressed on a throttle and wrote instructions and an installer Ubuntu Linux
- Kelly Loyd, who contributed throttle code for EasyDCC
- Carsten S. Lundsten, who let us make icons from the artwork on his great signaling website http://www.lundsten.dk/us_signaling.
- Jim Malone, who created a decoder file definition the Digitrax DN163K1a
- Mark Marowicz, who provided the CT Electronik SL 51 decoder definition
- David McDowell of the North Raleigh Model Railroad Club created a clinic covering Block Occupancy, Transponding and Simple Signal Logic.
- John McAleely, who contributed Hornby and Bachmann decoder definitions
- Randy McKenzie, who contributed some CTC panel background images
- Ron McKinnon, who fixed some problems with the lighting options in the SoundTraxx Tsunami Steam definitions
- Larry Meaney provided decoder ID for the Digitrax DN163K0b decoder
- Philip Middlemiss provided a decoder definition Hornby R8215 decoder.
- Dennis Miller, who greatly improved the CV printing, added the run-time help system and repackaged the window icons
- Jon Miller, who has been doing user support and decoder testing, plus contributing good ideas and loaning equipment for testing on sound decoders, Linux and small form factor computers.
- The good people at MindVision, who are letting us use their excellent Installer Vise to build our Windows installer
- Elmer McKay, who provided a nice help file on how to start signaling your layout.
- Mike Moir, who provided a lot of information on how Grapevine works.
- Michael Mosher, who helped identify the way Digitrax decoder models are organized, has done a lot of work to improve the decoder definitions for NCE, Soundtraxx and Atlas decoders, provided new definitions for TCS, MRC and (lots of!) QSI and Zimo decoders; a real hero of decoder definition distinction
- Robert Myers provided instructions for installing JMRI on an OLPC XO laptop
- Bill Nanney, who tenaciously worked to help find a bug where certain decoders wouldn't read and write all sheets
- Seth Neumann, who provided information on Wangrow decoders
- Glen Oberhauser, who added LocoNet throttles
- David Phillip Oster provided key information and a useful tool to help get USB working on MacOS X
- Howard G. Penny provided info on the NCE D14SR decoder, then went on to become an active developer, including providing the code for indexed CVs (ala QSI), better support of text and clocks on panels, providing a "factory reset" feature for decoders, and fixing multiple hard bugs
- Phill Perry, who contributed a decoder definition for the New York Byano Limited locomotive
- Bruce Petrarca, who has started offering CDs so nobody else has to burn them and provided decoder information for the Soundtraxx Diesel Tsunami
- Bob Phillips provided an MRC decoder definition
- Ronnie Pinkerton, who worked on a throttle update
- Rob Plevier, who provided instructions for running JMRI on OpenSUSE GNU/Linux
- John Plocher, who make good suggestions on XML DTD items, created the infrastructure for this web site, and lead the construction of the demo layout for the JavaOne show.
- Herb Poppe, who diagnosed a problem in some Digitrax decoder definitions
- Gerry Pruss, who provided information on connecting to the QSI Programmer
- Simon Reader, who improved the throttle, added a check for completed status to Routes, and added the "invert" option to LocoNet Turnouts.
- Bill Robinson of Team Digital, who provided a schematic of their MS100-equivalent level shifter, contributed the LnSendTool.py script and decoder definitions for Team Digital products, and helped fix a problem with overrunning LocoNet command stations.
- Mark Rogerson, who provided the RXTX (Java communications library) for MacOS X machines with Intel processors
- Wim Ros, who provide help with the direct connection to the Intellibox
- Klaus Ruebsam, who is hosting German and English JMRI discussion groups on his http://www.dcc-portal.net/ website.
- Peter Rushworth helped to add a reporter icon to the layout editor.
- John Sacrey wrote instructions for getting Java to work on 64-bit Windows
- Joe Salemi, who contributed the Atlas 345 decoder definition and updated the TCS Tx definition.
- Jeff Schmaltz, who contributed decoder definitions for the Massoth eMotion and LGB decoders, the Zimo MX65, and the ESU LokPilot and LokPilotBasic decoders.
- Mark Schutzer, who helped debug some significant NCE improvements and contributed the Lenz Gold decoder definition
- Jim Scorse, who gave generously of his time to answer questions about NCE details and provided debug hardware
- Brett Scott contributed the scripts for programming DCC Specialties products
- Jack Shall, who cleaned up the XML files, contributed decoder definitions, added a huge number of tooltips to DecoderPro, and reorganized the SoundTraxx Tsunami decoder definitions.
- Bruce Shanks, who offered corrections for the DecoderPro manual, investigated how to display the throttle ID in the LocoNet Slot Monitor, updated the Comprehensive programmer format to improve speed, and co-wrote the 2009 DecoderPro manual.
- Alex Shepherd, who helped move development to JBuilder, a much better tool, and created the client/server implementation for LocoNet. He's also improved the LocoNet monitor formatting and added support for a new type of accessory decoder
- Dustin Shoup, who figured out how to preserve order in XML files
- Pekka Siiskonen, who suggested we add error numbers to error messages to make it easier to discuss which specific error is happening
- Al Silverstein, who helped figure out the format of some LocoNet messages and provided decoder information on several models
- Don Smith, who ran down some NCE decoder information
- Alfredo Sola provides the Spanish translation
- The good people at SourceForge who provide site hosting, download servers and computing resources for JMRI development
- Ron Sommer, who provided the PanelPro icon for Windows
- Tom Starbuck, who updated and organized the model numbers in the TCS BEMF decoder definitions.
- Dima Stepanchuk, who provided a fix for the Packet Analyzer
- Francois Taburet, who provided the French translation for DecoderPro
- Giorgio Terdina, who provided the code for the Roco multiMaus and for JMRI to connect to his XnTcp adapter, wrote the XTrkCadReader tool, and provided screen icons for German signals.
- Jim Thompson provided a sample script for handling messages from PM42 power controllers
- Walter Thompson, who provided the ID information for the Lionel Challenger decoder and DS54 accessory decoder, updated lots of decoder definitions, and is a jmriusers moderator.
- Dale Tripp, who co-wrote the 2009 version of the DecoderPro manual.
- Peter Ulvestad, who created some nice clinic presentations, created the page on XML editors, and has done a large amount of work on decoder definitions.
- Tjeerd Verhage, who provided the logo for our SourceForge.net page
- Didrik Voss, who provided the configuration information, including the default values, for the Hornby R8215 decoder
- Marshall Wales investigated how to display the throttle ID in the LocoNet Slot Monitor
- Jack Walton, who created the Lenz LE080 decoder definition
- Mark Waters, who provided numerous Zimo decoder definitions and new Zimo MX620 definitions.
- Howard Watkins, who helped test the CBUS support
- Jim Wells, who created our logos and the great program icons
- Donn Welton, who provided info on configuring a PowerBook for DecoderPro
- Ken Weygandt, who provided the default values for the SoundTraxx Tsunami decoder definition and 45-degree icons for panels, and helped fix a problem with over-running LocoNet command stations.
- Denny Whitaker, who wrote a great description of how to program Hare and Wabbit controllers using JMRI.
- Rich White II, who provided the images for our small Nixie tube clock
- Simon White, who added support for FindBugs and EMMA to our build tools.
- Stephen Williams, who improved the LocoNet slot monitor, made multiple small improvements to LocoNet internals, especially including the LocoNet monitor, fixed a nasty problem with looping LocoNet throttles, and added a command station option to the TCP connection.
- Jos Wils updated the ESU decoder definitions, and extended the Comprehensive programmer format for really-high-functionality decoders.
- Mike Yawn, who provided the instructions for building under Eclipse
- david zuhn, who provided instructions for installing the comm libraries on Linux
- Christopher Zurek, who improved the LokSound V3.5 decoder definition and provided several MRC definitions.
Developer Code Swarm
We have created a Code Swarm of JMRI development from its inception to January 2009. A Code Swarm is a fascinating and dynamic visual representation of change as developers come and go and make changes to the files that make up a project. More information is available on the Code Swarm page.