I have traced the omission to a change of computer used for building RMIR versions. I have fixed this in the new computer so JP1_Arduino.ino will now get included automatically in future RMIR builds. I will issue RMIR v3.2.16 as a new release shortly that will include this Arduino file.The Robman wrote: Sun Mar 08, 2026 4:23 pm that folder seems to have accidentally been dropped starting with v3.2.13, if you download versions v3.2.0 and before, it's there
RMIR v3.2 Major new release!
Moderator: Moderators
Re: RMIR v3.2 Major new release!
Graham
Re: RMIR v3.2 Major new release!
I have posted RMIR v3.2.16 as a new official release on SourceForge. It is the first release since v3.2.11, as builds 12 through 15 were for development purposes only.
This build addresses several issues that each occur in only special circumstances. These are:
- an issue that occurs in XSight Touch and related remotes when a device upgrade, and so corresponding device, is deleted;
- an issue that when using RMDU to load successive upgrades, it can give a message "Upgrade <none> has inconsistent command lengths";
- failure to open KM files with protocol Sony Combo (12/20), handled now by treating this protocol as a special case;
- an error in RDFs for remotes HUD0HUD0 and related files that causes spurious error messages when importing certain files from KM;
- a problem with editing protocol parameters after editing a device upgrade.
In addition it fixes the omission of JP1_Arduino.ino in the JP1EEPROMSupport folder of recent RMIR builds. It also includes rudimentary support for the Bluetooth OFA Advanced Phone App for URC7981 and related remotes, but as yet this does not allow the downloading or uploading of the data content of the remote.
It should also be noted that certain RMIR features do not work with the most recent versions of Java. The latest LTS (Long-Term Support) version is Java 25, the previous LTS version is Java 21. RMIR works correctly with Java 21 but some change between that and Java 25 has caused certain RMIR features to fail. What that change was is at present unknown, so it is strongly recommended that you use Java 21 or earlier.
This build addresses several issues that each occur in only special circumstances. These are:
- an issue that occurs in XSight Touch and related remotes when a device upgrade, and so corresponding device, is deleted;
- an issue that when using RMDU to load successive upgrades, it can give a message "Upgrade <none> has inconsistent command lengths";
- failure to open KM files with protocol Sony Combo (12/20), handled now by treating this protocol as a special case;
- an error in RDFs for remotes HUD0HUD0 and related files that causes spurious error messages when importing certain files from KM;
- a problem with editing protocol parameters after editing a device upgrade.
In addition it fixes the omission of JP1_Arduino.ino in the JP1EEPROMSupport folder of recent RMIR builds. It also includes rudimentary support for the Bluetooth OFA Advanced Phone App for URC7981 and related remotes, but as yet this does not allow the downloading or uploading of the data content of the remote.
It should also be noted that certain RMIR features do not work with the most recent versions of Java. The latest LTS (Long-Term Support) version is Java 25, the previous LTS version is Java 21. RMIR works correctly with Java 21 but some change between that and Java 25 has caused certain RMIR features to fail. What that change was is at present unknown, so it is strongly recommended that you use Java 21 or earlier.
Graham
-
WagonMaster
- Posts: 366
- Joined: Thu Apr 16, 2009 2:25 pm
Re: RMIR v3.2 Major new release!
Many thanks for all your effort, Graham!mathdon wrote: Fri May 08, 2026 4:18 am I have posted RMIR v3.2.16 as a new official release on SourceForge.
Especially since this is an official release, can you please tag the code associated with this release when you have a moment? Thanks!
Re: RMIR v3.2 Major new release!
Nice to see that you are still active, Graham!!
Bug: Loading this file, selectng the "General" tab (the default, really), selecting row 5, and pressing "Edit". Nothing appears to happen, but in rmaster.err, we see that things went bellyup:
Tested both with Java 21 and Java 25.
I believe that this is relevant.
Bug: Loading this file, selectng the "General" tab (the default, really), selecting row 5, and pressing "Edit". Nothing appears to happen, but in rmaster.err, we see that things went bellyup:
Code: Select all
DeviceUpgradePanel.createRowObject()
Protocol.setDeviceParms(), protocol="NEC1" (00 5A), parms.length=0 and devParms.length=5
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at com.hifiremote.jp1.translate.NEC005ATranslator.in(NEC005ATranslator.java:28)
at com.hifiremote.jp1.Protocol.getFixedData(Protocol.java:1486)
at com.hifiremote.jp1.SetupPanel.update(SetupPanel.java:443)
at com.hifiremote.jp1.DeviceEditorPanel.actionPerformed(DeviceEditorPanel.java:433)
at java.desktop/javax.swing.JComboBox.fireActionEvent(JComboBox.java:1294)
at java.desktop/javax.swing.JComboBox.setSelectedItem(JComboBox.java:619)
at com.hifiremote.jp1.DeviceEditorPanel.refresh(DeviceEditorPanel.java:515)
at com.hifiremote.jp1.DeviceEditorPanel.<init>(DeviceEditorPanel.java:228)
at com.hifiremote.jp1.DeviceUpgradeEditor.<init>(DeviceUpgradeEditor.java:138)
at com.hifiremote.jp1.DeviceUpgradePanel.createRowObjectA(DeviceUpgradePanel.java:210)
at com.hifiremote.jp1.DeviceUpgradePanel.editRowObject(DeviceUpgradePanel.java:280)
at com.hifiremote.jp1.GeneralPanel.editUpgradeInRow(GeneralPanel.java:614)
at com.hifiremote.jp1.GeneralPanel.actionPerformed(GeneralPanel.java:480)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6576)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3404)
at java.desktop/java.awt.Component.processEvent(Component.java:6341)
at java.desktop/java.awt.Container.processEvent(Container.java:2260)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4958)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4917)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4560)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4501)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2671)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:725)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:702)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Protocol.setDeviceParms(), protocol="NEC1" (00 5A), parms.length=0 and devParms.length=5
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at com.hifiremote.jp1.translate.NEC005ATranslator.in(NEC005ATranslator.java:28)
at com.hifiremote.jp1.Protocol.getFixedData(Protocol.java:1486)
at com.hifiremote.jp1.SetupPanel.update(SetupPanel.java:443)
at com.hifiremote.jp1.DeviceEditorPanel.refresh(DeviceEditorPanel.java:519)
at com.hifiremote.jp1.DeviceEditorPanel.<init>(DeviceEditorPanel.java:228)
at com.hifiremote.jp1.DeviceUpgradeEditor.<init>(DeviceUpgradeEditor.java:138)
at com.hifiremote.jp1.DeviceUpgradePanel.createRowObjectA(DeviceUpgradePanel.java:210)
at com.hifiremote.jp1.DeviceUpgradePanel.editRowObject(DeviceUpgradePanel.java:280)
at com.hifiremote.jp1.GeneralPanel.editUpgradeInRow(GeneralPanel.java:614)
at com.hifiremote.jp1.GeneralPanel.actionPerformed(GeneralPanel.java:480)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6576)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3404)
at java.desktop/java.awt.Component.processEvent(Component.java:6341)
at java.desktop/java.awt.Container.processEvent(Container.java:2260)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4958)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4917)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4560)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4501)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2671)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:725)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:702)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I believe that this is relevant.
Re: RMIR v3.2 Major new release!
Just tried RMIR.v3.2.16 with jdk-21 and my 7880 bluetooth fails to connect. It finds the remote fine, but after hitting the Connect button the bottom of the window shows Connecting 5% ... then flashes back to Move/Macro: N/A Upgrade: N/A Leanred: N/A. Subsequent tries instantly fail with a quick flash across the bottom of the window. Excerpt from rmaster.err below if it helps.
Code: Select all
Interface Name = JP2BT
Port Name = Windows WCL
Testing interface: JP1.X Serial
Testing interface: CommHID
Testing interface: JP2BT
Interface matched. Trying to open BLE interface
Connected BLE interface on port Windows WCL
BLE stack is Microsoft
Port Name = Windows WCL
Opened on Port Windows WCL
Opened interface type 601
Progress updater set
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot read field "advanced" because "com.hifiremote.jp1.RMIRSetup.access$52(com.hifiremote.jp1.RMIRSetup).bg" is null
at com.hifiremote.jp1.RMIRSetup$ConnectTask.done(RMIRSetup.java:5160)
at java.desktop/javax.swing.SwingWorker$4.run(SwingWorker.java:749)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:847)
at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:857)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:311)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:243)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
RMIRSetup.windowClosing() entered
Unsubscription failed
Already disconnected