Date

Firmware Notes and Instructions

DM42 Firmware

The latest firmware version for the DM42 is available at https://www.swissmicros.com/dm42/firmware/
For firmware update instructions see Quick Update Guide or more generally Firmware Update chapter ofDM42 User Manual

Voyager Series DM1XL / DM41L

DM-41 Firmware
DM-16 Firmware
DM-15 Firmware - M1B with extended memory
DM-15 Firmware - M80 with extended memory
DM-15 Firmware
DM-12 Firmware
DM-11 Firmware
DM-10 Firmware

Instructions

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

Notes

Early models of the DM calculators (pre Sept 2012) have an LPC1114 CPU with only 32k flash memory.
The firmware versions since V17 for the model DM15 no longer fit into 32k. The same happened for all other DM1x models since V30.

The last 32k versions for the DM15 (V16) and for all other DM1x models (V29) could be found in firmware/old/ directory.

Mind the '_32k' suffix in firmware name for DM15.

Voyager Series Firmware Upgrade - Linux

Under Linux the procedure is very similar as under Windows, but instead the tool lpc21isp must be used in a console:

  • Run sudo apt-get install lpc21isp
  • Run 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

Voyager Series Firmware upgrade - Mac OS/X

Install/update the following software

  • Download and install CP210x USB to UART Bridge VCP Drivers (www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx)
  • Download and install MacPort (www.macports.org)
  • Open the Terminal application
  • Run sudo port selfupdate
  • Run sudo port upgrade outdated
  • Run sudo port install lpc21isp
  • Close the Terminal application

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
  • 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
  • Run: 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

Voyager Series Firmware Upgrade - Windows

Use the SwissMicros Firmware Update Tool for flashing the calculator.
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
  • Connect the calculator with a standard miniUSB cable, preferably a shielded one. The calculator may be turned on or off before flashing
  • Run the SwissMicros Firmware Update Tool
  • 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 history

V30: 17.01.2020

ALL: Added 'bootloader' serial console command
ALL: Abandoned support for 32kB firmwares
ALL: Improvements to Nut emulation layer
DM41: Stopwatch now generates 'TIMER ALARM' when SW is hidden as well when calculator is turned off

V29: 05.06.2019

DM41: Past due alarm bypass at auto power-down
DM15_Mxx: GTO I: extended range to 999
DM15_M80: Change initial register allocation to match other DM15 models

V28: 22.02.2019

DM1x: Fixed irregular LCD blinking DM41: Fixed non-responsive keys during ALARM acknowledgment period
DM41: Emulation fixes - should fix earlier synthetic programming inaccuracies

V27: 05.09.2018

DM1x - Programs were sometimes almost impossible to stop e.g. when PSE was used in short loop. Now fixed.
DM1x - Fixed missing dot in program listing of RCL .1 and similar (for non-segment fonts)
DM41 - Fixed continuous stopwatch operation

V26: 25.03.2018

New bold 7-segment font (all DM1x models)
Bugfix: Registers overwritten after numeric integration. Fixed in DM15_M80, released as DM15_M80_V16a_32k.hex for old 32k machines
Bugfix: MEM output fixed in DM15_M80 and DM15_M1B
DM41: Speed improvement

V25: 18.01.2018

Fixed timing of alarm catalog listing
Fixed GETKEY delay to ~10s duration
Added X-mem module to DM41
New slim 7-segment font for DM1x models

V24: 31.10.2017

Modify time module ROM to remap T/R/M keys from [7], [9] and [RCL] to landscape positions in ALMCAT
Fixed PSE delay on all models

V23: 10.05.2017

Added manual setting of time and date
Fixed memory dump for DM12

V22: 02.10.2016

Fixed occasional calculator hanging
Changed init after reset (no moving text anymore), more battery friendly
Fixed CAT 4/6 delay for DM41
Fixed default date for DM41 (2014-01-01 Wednesday)

V21: 03.03.2016

DM1X fixed PSE (keep any button pressed to interrupt)
DMXX add setting via console to increase the time-out of the serial console mode
DMXX Fixed julian date calculation ([ON]+[STO/RCL] +/- one hour just around midnight causing day transition) DM1X for all boards with RTC: add [ON]+[A] displaying the time with 1s increments by RTC and sleep in the mean time
DMXX Add timeout to clock mode [ON]+[A] to 5min
DM41 adjusted key mapping for LCD contrast settings to the same as the other models

V19: 18.07.2015

DM41 bugfix ON-key conflicting with RTC (long running pgm suddenly stopped and sporadic lock-ups)

V18: 23.04.2015

DM41 without extended module

V17: 20.04.2015

Initial release DM41 with extended module

V16: 13.02.2014

Fixed keyboard timing issues introduced in V15
Optimized power consumption
DM15 versions include all three fonts in one firmware
**************************************************
This will be the last firmware version < 32k
Only newer calculators with an LPC1115 will be support by the next releases
**************************************************

V15: 25.09.2013

Rewritten keyscan routine - improved key respond - affects all models

V14: 18.06.2013

Enhanced pending key indicator for DM15
LCD contrast setting changed - changing settings requires confirmation

V13: 05.03.2013

Fixed pending key indicator display (little square upper left corner)

V12: 17.02.2013

Fixed bug for complex mode in both extended ROMs versions for DM15C_M80 and DM15C_M1B (many thanks to Yukihiro Imanaga 今永幸弘)

V11: 22.01.2013

Fixed SST autorepeat delay for 10C, 11C and 12C
All model names are reduced from DM1xCC to DM1x
Extended memory version renamed from MEM80/MEM1B to M80/M1B

V10: 26.11.2012

Slim font added to all firmware versions ([ON]+[7] cycles through three fonts) except DM-15 has two different firmware versions each with only two fonts

V9: 26.11.2012

Added low battery indicator
Fixed serial communication race condition
Turning calc ON sends message to serial port

V8: 29.8.2012

Added self captured 16C ROM, now we got them all
Added LCD contrast settings [ON]+[CHS]
updated annunciators in key-test for 10C

V7: 15.07.2012

Fixed problem with MEM display on 15C
Added battery voltage displayed in [ON]+[E] screen
Added read battery voltage on console (calculators from first batch do not have a Vref diode)

V6: 01.07.2012

Removed the firmware naming 'VANILLA'
All ROM files are based on own extraction except for the 16C which we don't have yet
Changed CPU speed to 48MHz. switch to 12MHz and back with [ON]+[9]

V4: 04.04.2012

Fixed PREFIX shows the enhanced MEM display

V3: 25.03.2012

Enhanced MEM display for memory extended firmwares
[ON]+[E] displays firmware version on LCD

V2: 22.03.2012

Initial release DM11CC

V2: 14.03.2012

Initial release DM12CC

V2: 21.02.2012

Corrected ROM in DM15CC_ROM_MEM80_V2.hex
Thanks to Jean-Francois Garnier for pointing to that mistake

V1: 10.02.2012

Initial versions DM15CC, DM16CC