Skip to the content
PCBKitNew board
2 layers70 × 151 mmDm50, the printed circuit board in 3D

DM50 is a cheap, powerful, easy to build, open source hardware, and high precision calculator.

Size
70 × 151 mm
Copper layers
2
Thickness
1.6 mm
Parts
131
Nets
102
Pads
441
Tracks, vias
1,217, 234
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
19 Dec 2022
Updated
24 Jan 2025

Overview

Dm50 is an open-source printed circuit board by xavierbasc, from the xavierbasc/dm50 repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 70 × 151 mm with 131 parts on 102 nets, routed with 1,217 tracks and 234 vias.

It is built around the W25Q128JVSIQ, MCP73831 and USBLC6-2SC6, with the BAT54C among its other parts. Its parts include 52 switches, 29 capacitors, 26 resistors, 7 ICs and 6 diodes. It belongs with the STM32 boards of this library.

Main components

4

README

README.md

DM50 calculator

The main features of the calculator are the following:

  • 32bit ARM Cortex-M33 MCU ultra low power.
  • Mathematical coprocessor acceleration.
  • Floating Point Unit (FPU).
  • 2MB RAM (STM32U595RJ).
  • 4MB FLASH memory (STM32U595RJ).
  • 16MB FLASH storage Octo-SPI (accessible via USB).
  • USBC port, connects as USB mass storage device.
  • Serial port for communications with external devices.
  • MicroSD memory slot.
  • Integrated speaker and stereo audio output (jack 3.5).
  • Graphic LCD Display (128x64 dots).
  • ESD protection of USBC.
  • LiPO 3.7V rechargeable battery, with JST PH2.0 connector.
  • Possibility of using AAA batteries.
  • Battery charge level sensor.
  • USB power and battery charging status LED indicators.
  • JTAG debug port.
  • Temperature sensor.
  • Same number of keys as the legendary HP48.

Hardware

Below is a list of the most relevant electronic components:

  1. Processor: STM32U5 ARM Cortex-M33 ultra low power with FPU.
  2. Display: EA_DOGL128L-6 STN reflective display 128x64.
  3. Flash memory: W25Q128JVSIQ 16MB Flash.
  4. Voltage regulator: ADP2108 Vin 2.3 - 5.5, Vout 3.3.
  5. USB protection: USBLC6-2 ESD protection of VBUS.
  6. Battery charger: MCP73831 Lithium-Ion/Lithium-Polymer Battery Charger.

Some of the supported batteries are as follows:

BatteriesCapacity (mha)
AAA Alkaline900 - 1155
AAA Ni-MH800 - 1000
LiPO 402025 (4.0x20x25)150
LiPO LP272247 (2.7x22x47)260

Electronic design: New Sch

PCB

PCB render

PCB front

Case

Freecad software has been used to design the casing. The spaces have been optimized to reduce the size, continuously giving shape to the calculator and improving the user experience. CASE

Faceplate

A master faceplate has been designed although it can be exchanged by the user through a simple manual process.

The front plate is printed on photographic paper and cut to size, with professional results. A photo-quality printer is recommended, such as the Epson Ecotank.

To create the faceplate, the Inkscape tool has been used to edit the SVG and the font used is Latin Modern Math, licensed by the GUST Font License, developed by the TeX user group in Poland, and can be used for academic use. , commercial or academic.

Latin Modern Math font

Software

TBD

Reference

Comparison of the hardware used in the different reference calculators:

YearModelProcessorFREQRAMFLASHDisplayMIPS
1988HP42SHP Saturn (1LF5)-8KB64KB131×160.5
1993HP48GHP Saturn (1LF2)4MHz32KB512KB131×640.5
2006HP50GARM9 S3C241075MHz512KB2MB131×8075
2013TI-Nspire CX IITI OMAP 3530396MHz64MB128MB320x240792
2016NumWorksSTM32F730V8T6216MHz256KB6MB320x240432
2017DM42STM32L476RG80MHz128KB6MB400×240100
2019HP Prime G2i. MX 6ULL528MHz256MB512MB320×2401710
2021OpenRPNCalcSTM32L4768MHz128KB1MB400x240100
2023DM32STM32U575160MHz786KB1MB400×240240
2024DM50STM32U595RJ160MHz2MB20MB128×64240

List of software used as firmware in some calculators:

  1. DB48X: DB48X is a modern implementation of RPL.
  2. C47: C47 is a RPN Scientific Calculator (old WP43C project).
  3. WP43: Firmware for the WP43 pocket calculator (old WP43S project).
  4. Free42: Free42 is a software clone of the Hewlett-Packard 42S calculator.
  5. TCalc: Firmware for STM32 CAS calculator.
  6. TinyExpr: parser and evaluation for math expressions.
  7. Giac: CAS calculation engine used in HP Prime, Casio Graph 90, Casio 35eii, TI Nspire CX, Numworks, and software such as Geogebra and PocketCAS.

Parts

131
QtyValueFootprintReferences
50BT_SMDDM50:dm50-buttonSW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24 +34
111µFCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4, C5, C6, C7, C8, C9, C25, C29
8100nFCapacitor_SMD:C_0603_1608MetricC10, C12, C14, C15, C16, C17, C24, C26
810KResistor_SMD:R_0603_1608MetricR1, R2, R11, R16, R17, R18, R19, R20
55.1KResistor_SMD:R_0603_1608MetricR3, R9, R10, R23, R24
41MResistor_SMD:R_0603_1608MetricR4, R6, R14, R15
420KResistor_SMD:R_0603_1608MetricR7, R8, R21, R22
44.7 uFCapacitor_SMD:C_0603_1608MetricC18, C20, C22, C23
368µFCapacitor_SMD:C_1210_3225MetricC27, C28, C30
214pFCapacitor_SMD:C_0603_1608MetricC11, C13
2500Resistor_SMD:R_0603_1608MetricR25, R26
2AAADM50:dm50-batAAABT1, BT2
2SW_SPSTButton_Switch_SMD:SW_SPST_CK_KMS2xxGSW1, SW42
11.5KResistor_SMD:R_0603_1608MetricR13
110 uFCapacitor_SMD:C_0603_1608MetricC19
1100KResistor_SMD:R_0603_1608MetricR5
11uHInductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolderL1
12KResistor_SMD:R_0603_1608MetricR12
132768DM50:XTAL_ABS05-32.768KHZ-9-TY1
1ADP2108AUJ-3.3Package_TO_SOT_SMD:TSOT-23-5U5
1AUDIO JACK 3.5DM50:SJ-43516-SMT_CUDJ7
1BAT54CPackage_TO_SOT_SMD:SOT-23D2
1CHARGLED_SMD:LED_0603_1608MetricD3
1DEBUG, SERIALDM50:610110249221J6
1EA_DOGL128X-6DM50:EA_DOGL128-6U1
1LED01LED_SMD:LED_0603_1608MetricD5
1LED02LED_SMD:LED_0603_1608MetricD6
1LiPOJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
1LiPO 3,7VDM50:CONN_S2B-PH-K-S_JSTJ4
1MCP73831Package_TO_SOT_SMD:SOT-23-5U6
1Micro_SD_CardDM50:502570-0893_MOLJ5
1STM32U595RJTxPackage_QFP:LQFP-64_10x10mm_P0.5mmU2
1SpeakerDM50:BuzzerJ3
1TPA6111A2DRPackage_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.81mm_ThermalViasU7
1USB PWLED_SMD:LED_0603_1608MetricD1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U4
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ2
1W25Q128JVSIQPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1schottkyDiode_SMD:D_SOD-323D4

Questions

How big is the Dm50 PCB?

It measures 70 × 151 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Dm50 use?

131 parts, built around the W25Q128JVSIQ, MCP73831, USBLC6-2SC6 and BAT54C. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Dm50 KiCad files?

From the xavierbasc/dm50 repository on GitHub, at the commit this page was made from: the board is hardware/DM50.kicad_pcb and its schematic hardware/DM50.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Dm50 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers50 × 70 mmStm32-portable data logger, the printed circuit board in 3D

    Stm32-portable data logger

    copperheadhq/copperhead-stm32-data-logger

    Portable STM32L433 data logger, 50 × 70 mm, four layers, microSD, USB-C LiPo charging. Designed with copperhead. Never built: do not order expecting it to work.

    90 parts3
  • 4 layers101.6 × 101.6 mmAvionus Flight Controller, the printed circuit board in 3D

    Avionus Flight Controller

    leptun/Avionus_Flight_Controller

    Controller board for autonomous RC plane

    287 parts1GPL-3.0
  • 4 layers100 × 100 mmBLDC driver, the printed circuit board in 3D

    BLDC driver

    MarijnVerschuren/BLDC_driver

    Brushless DC motor driver

    150 parts1MIT
  • 4 layers42 × 62.5 mmKeyboard PCB, the printed circuit board in 3D

    Keyboard PCB

    MarijnVerschuren/Keyboard

    Custom 65% keyboard PCB featuring the STM32H750VBT6

    101 parts1MIT
  • 2 layers116.9 × 100 mmSTM32H7B0 devboard, the printed circuit board in 3D

    STM32H7B0 devboard

    MarijnVerschuren/STM32H7B0_devboard

    micro devboard featuring the STM32H750VBT6

    116 partsMIT
  • 2 layers149 × 65 mmFlight controller, the printed circuit board in 3D

    Flight controller

    DinosaurPotato534/Project-Albatross

    birb

    155 parts
  • 4 layers57 × 27 mmAltlog, the printed circuit board in 3D

    Altlog

    alexdortiz/flight-data-recorder

    4-layer flight data recorder. Open altlog.kicadpro in KiCad 10.

    47 partsMIT