SwissMicros | Firmware


Download
These are the latest firmware versions available: Links
DM10 firmware DM10_23.hex
DM11 firmware DM11_23.hex
DM12 firmware DM12_23.hex
DM15 firmware DM15_23.hex
DM15 firmware 'M80' with extended memory DM15_M80_23.hex
DM15 firmware 'M1B' with even more memory DM15_M1B_23.hex
DM16 firmware DM16_23.hex
DM41 firmware DM41_23.hex

To download, right click on the link of your choice, then left click on the "Save as..." option.

Use the SwissMicros Firmware Update Tool for flashing the calculator.

Early models of the DM calculators (pre Sept 2012) have an LPC1114 CPU with only 32k flash memory.
The firmware versions since V16 for the model DM15 no longer fit into 32k. These are the last 32k versions for the DM15:
DM15_V16_32k.hex, DM15_M80_V16_32k.hex, DM15_M1B_V16_32k.hex

firmware history
see all files
Explanation of extended Memory versions There are three versions of firmware for DM15:

  • DM15 firmware
  • DM15 firmware 'M80' with extended memory
  • DM15 firmware 'M1B' with even more memory

The first one is the same as original HP-15C, so it has exactly the same amount of memory.
M80 and M1B firmware versions contain modified ROMs to enable bigger amount of registers.
The hex number after MEM actually means the memory location where the usable area for registers starts (memory location of NUT CPU).
The memory location of the original HP-15C ROM is at 0xC0; M1B and M80 use 0x1B or 0x80 respectively.

The difference can be seen on calc using [g][MEM].
Note that recent M80 and M1B firmware versions have special display for memory configuration including sizes of matrices.
Initial configurations should be:

DM15 19  46  0-0
DM15_M80 19  110  0-0
DM15_M1B 19  211  0-0

This also gives an idea about number of available memory.
If you accidentally don't know what this means, please, look into HP-15C manual Appendix C - Memory allocation.
Please see the known limitations of the extended memory Firmware below.
Firmware upgrade under Windows Don't worry, it is not possible to break or brick the calculator with this or any other upgrade procedure.
All programs, registers, etc. will be lost. If these need being preserved, do a backup BEFORE starting the firmware update.

  • install the CP2102 Windows driver, get it from here or here
  • get SwissMicros Firmware Update Tool
  • download the latest Firmware file for your device, using the 'Target save as...' function
  • run the SwissMicros Firmware Update Tool
  • connect the calculator with a standard miniUSB cable, preferably a shielded one. The calculator may be turned on or off before flashing
  • press "Open File ..." and choose the Firmware file
  • choose correct COM port
  • press the "Program" button
  • push the "RESET" button in the left-hand pinhole closest to the corner on the backside with the paperclip
  • flash progress is being displayed and takes about 10-20 seconds depending on the firmware version
  • after flash procedure is done, push the same "RESET" button again
Firmware upgrade under Linux Under Linux the procedure is very similar as under Windows, but instead the tool lpc21isp must be used in a console:
  • sudo apt-get install lpc21isp
  • sudo lpc21isp DM15_M1B_V16.hex /dev/ttyUSB0 115200 12000
  • press the "RESET" button after the message"Synchronizing (ESC to abort)" to initiate the upgrade process
  • after flash procedure is done, push the same "RESET" button again
Firmware upgrade under Mac OS/X
Install/update the following software
Console session with the device
  • open the Terminal application
  • connect the calculator
  • put the unit in terminal mode: [ON]+[C]
  • start a console session: screen /dev/tty.SLAB_USBtoUART 38400,8,n,1
  • the calculator menu is now active (press ? for help)
  • put the unit in normal mode: press any key
  • end the console session: press [CONTROL]+[a] then [k] then [y]
  • disconnect the calculator
  • close the Terminal application

Firmware Upload
  • open the Terminal application
  • connect the calculator
  • sudo lpc21isp -control -controlinv -hex DM16_21.hex /dev/tty.SLAB_USBtoUART 115200 12000
  • push the reset button on the back of the calculator
  • when the upgrade is finished disconnect the calculator
  • push the reset button on the back of the calculator
  • close the Terminal application
Known limitations of the extended memory Firmware Solving lin.eq and matrix inversions is limited to matrices with sizes up to 8x8, please see the more detailed explanation by J.Fossy Weinzinger.
Unpredictable things may happen when operating with matrices larger than 8x8, it may even completely block the calculator.