A 3rd Party Firmware for the DM15 family of calculators
3.345 +22.356 iX and Ysudo lpc21isp LF15C_250408.hex /dev/ttyUSB0 115200 1200reset buttonreset button to start new firmwareI've seen it be possible to flash and run LF15C directly after DM15 V34 with no problems.
I've also seen the problems described below, requiring downgrade to V32.
Just bear it in mind if you have problems starting LF15C after flashing it on top of V33-onwards
The new Swiss Micros firmware V33 changes the behaviour of the bootloader, and it appears to be impossible to flash 3rd party firmware when the calculator is running V33 or later.
The firmware appears to flash correctly, but on reset it will not start
The solution is to downgrade to V32 first, and then install LF15C
sudo lpc21isp DM15_M1B_32.hex /dev/ttyUSB0 115200 1200reset buttonreset button to start V32 firmwaresudo lpc21isp LF15C_250408.hex /dev/ttyUSB0 115200 1200reset buttonreset button to start new LF15C firmwarereset button in all cases.| Latest LF15C firmware | lf15c_250408.hex |
| V32 firmware | dm15_m1b_32.hex |
| Swiss Micros Voyager Windows Update Tool | voyage_firmware_tool.zip |
3.45 +4.34 i or Polar: 5.5442 ∠51.5177170fx! = 7.2574 E3060 is returned9SINCOSTANATANACOSASIN9-
-1.6584 x10 -10
x ↔ yx ↔ any Storage Register| Calculator | Firmware | Time |
|---|---|---|
| DM15L | V34 | 202 seconds |
| DM42 | 3.23 | 7.30 seconds |
| DM15L* | LF15C 250408 | 0.992 seconds |
| Calculator | Firmware | Time |
|---|---|---|
| DM15L | V34 | 247 seconds |
| DM42 | 3.23 | 14.9 seconds |
| DM15L* | LF15C 250408 | 4.008 seconds |
Press f I in normal mode to create & destroy a complex number from ⇔ to y and x on the stack.
Make a pure imaginary number by using fRe<>Im
x and y stack levels between Rect and Polar values as in the HP15CPolar mode ALL Complex numbers on the stack are in Magnitude / Angle format.Deg or Rad as appropriateRectangular to enter a Rectangular format number, when working in Polar, and then switching back to Polar once it's been entered on the stack..Rectangular format - and Polar format numbers must be converted → R first.P is always present when in Polar. P means Rectangular mode is active.Similar features to the standard HP15C, with differences due to increased Program Label numbers
Indirect Register pair I and (i) work in the usual way
As in the HP15C you can also indirectly address Program Labels using the contents of the I register to point to the label required.
The HP15C allowed 20 numerical Program Labels 0 - .9 which meant indirect addressing for Labels A - E was done by reference to 20 - 24 in Register I
LF15C has 100 numerical Program Labels so….
Store 00 - 99 in I to address numerical Program Labels 00 - 99
Store 100 - 104 I to address Program Labels A - E
Using GTO I or GSB I in a program will lead to a jump to the Program Label referred to by contents of Register I.
Changing Register I's contents (e.g. within a program) can then cause the execution of program to branch in different ways - this can be a very powerful mechanism!
Similar to the above, if the Indirect Register I contains a NEGATIVE number then a call to GTO I or GSB I will cause a branch to the absoloute Line Number referred to in I.
00 - 99 are capable of storing Complex NumbersTEST 0 - TEST 9LBL A → LBL E) press f LBL ## 88 ##runTime opCode in the program. runTime writes to x the program execution time once it's executed.nn sets the number of significant digits as requested, UNLIKE the original HP15C where fENGn sets the significant digits to n + 1go to label feature (single press in run mode)go to line number feature (single press in run mode)ALWAYS INCLUDE AT LEAST ONE TRAILING ZERO FROM THE STRING OF DIGITS REPRESENTING THE MEMORY DUMP
Paste PrgMemory:Tabulated List of LF15C firmware versions
| Date | Firmware | Version | Firmware File | Comments |
|---|---|---|---|---|
| 12/09/24 | LF15C | beta240911 | lf15c_beta240911.zip | initial public beta |
| 15/09/24 | LF15C | beta240914 | lf15c_beta240914.zip | |
| 17/09/24 | LF15C | beta240916 | lf15c_beta240916.zip | |
| 17/09/24 | LF15C | beta240916_2 | lf15c_beta240916_2.zip | |
| 21/09/24 | LF15C | beta240920 | lf15c_beta240920.zip | very fast benchmarking, roots of -ve numbers bug |
| 21/09/24 | LF15C | beta240921 | lf15c_beta240921.zip | Fix of “powers of negative numbers” bug, new 10^x bug |
| 23/09/24 | LF15C | beta240923 | lf15c_beta240923.zip | 10^x fix, other bug fixes |
| 25/09/24 | LF15C | beta240925 | lf15c_beta240925.zip | Bug fixes More new bugs |
| 28/09/24 | LF15C | beta240928 | lf15c_beta240928.zip | bug fixes |
| 30/09/24 | LF15C | beta240929 | lf15c_beta240929.zip | Bug Fixes etc. |
| 30/09/24 | LF15C | beta240929_2 | lf15c_beta240929_2.zip | RCL I Bug fix |
| 01/10/24 | LF15C | beta240930 | lf15c_beta240930.zip | Bug Fixes |
| 02/10/24 | LF15C | debug241001 | lf15c_debug_for_john241001.zip | version pre-loaded with my B.Fil prog for debug purposes |
| 02/10/24 | LF15C | beta241002 | lf15c_beta241002.zip | Bug Fix my B.Fil runs correctly. No known showstoppers left? |
| 03/10/24 | LF15C | beta241003 | lf15c_beta241003.zip | fPREFIX fix. Discovered inverse HYP SIN bug |
| 06/10/24 | LF15C | beta241005 | lf15c_beta241005.zip | fixes ,HYP ASIN bug still present |
| 07/10/24 | LF15C | beta241006 | lf15c_beta241006.zip | Bug fix and new runTime function |
| 08/10/24 | LF15C | beta241007 | lf15c_beta241007.zip | Bug Fixes |
| 10/10/24 | LF15C | beta241009 | lf15c_beta241009.zip | Bug Fixes |
| 12/10/24 | LF15C | beta241011 | lf15c_beta241011.zip | RND bug fix |
| 14/10/24 | LF15C | beta241014 | lf15c_beta241014.zip | |
| 20/10/24 | LF15C | beta241020 | lf15c_beta241020.zip | |
| 21/10/24 | LF15C | beta241021 | lf15c_beta241021.zip | |
| 22/10/24 | LF15C | beta241022 | lf15c_beta241022.zip | |
| 24/10/24 | LF15C | beta241024 | lf15c_beta241024.zip | |
| 31/10/24 | LF15C | beta241031 | lf15c_beta241031.zip | |
| 02/11/24 | LF15C | beta241102 | lf15c_beta241102.zip | |
| 10/12/24 | LF15C | beta241210_2 | lf15c_beta241210_2.zip | Integrate feature |
| 17/12/24 | LF15C | beta241217 | lf15c_beta241217.zip | Integrate improvements |
| 21/12/24 | LF15C | beta241221 | lf15c_beta241221.zip | Bug Fixes |
| 22/12/24 | LF15C | beta241222 | lf15c_beta241222.zip | Sin(180)=0 Fixed |
| 14/02/25 | LF15C | beta250123 | lf15c_beta250123.zip | Enter Key bug fixes |
| 15/02/25 | LF15C | beta250215 | lf15c_beta250215.zip | Better integration routine and bug fixes |
| 16/02/25 | LF15C | beta250216 | lf15c_beta250216.zip | Y↑X and TEST bug fixes |
| 17/02/25 | LF15C | beta250217b | lf15c_beta250217b.zip | Integration bug fix |
| 19/02/25 | LF15C | beta250218 | lf15c_beta250218.zip | Integration programability |
| 20/02/25 | LF15C | beta250220 | lf15c_beta250220.zip | Linear Regression bug fix |
| 21/02/25 | LF15C | beta250221 | lf15c_beta250221.zip | Complex/non-integer factorial |
| 25/02/25 | LF15C | beta250225 | lf15c_beta250225.zip | improved precision in x! function |
| 26/02/25 | LF15C | beta250226 | lf15c_beta250226.hex | f-PREFIX bug fix |
| 12/01/26 | LF15C | 250408 | lf15c_250408.hex | no longer BETA. Stable version - mature?? |