Terminal-BASIC programmable calculator

A poket-to-laptop size microcomputer/programmable calculator, based on Arduino DUE and Terminal-BASIC

Similar projects worth following
This is an attempt of creating the autonomous pocket-to-laptop size device, based on Arduino-DUE and Terminal-BASIC interpreter, which can be used as BASIC programmable calculator or microcomputer. I/O devices include 480x320 TFT display and custom matrix keyboard.

This project is inspired by the nostalgia for portable devices like USSR "Электроника МК-90" and Texas instruments TI-92.

Keyboard Sthematic.pdf

Hardware Keyboard. It interfaces via J1: 1 VDD (3 to 15 Volts are OK, the logic level will change correspondingly) 2 KBD RESET 3 KBD CLOCK 4 KBD READ 5 LED RESET 6 LED CLOCK 7 ARDUINO RESET 8 GROUND J2 is for connecting additional buttons or other devices: 1 VDD (pass-through from J1) 2-11 COLUMNS 0-9 12 ROW 7 13 ROW 8 14 GROUND

Adobe Portable Document Format - 148.43 kB - 10/11/2019 at 06:41


  • 1 × <A href="">CD4520</A> Dual Binary Up Counters (CMOS)
  • 1 × <A href="">CD4017</A> Decimal Counter (CMOS)
  • 1 × <A href="">CD4051</A> 8 to 1 Mux-Demux (CMOS)
  • 4 × 3mm LEDs Any type/color
  • 4 × Resistors: 330R - 2.2k The actual value depends on the LEDs used. Limit each channel current to 2.5 mA or less.

View all 8 components

  • Hardware Keyboard: Working Prototype

    ptrav3 days ago 0 comments

    I have completed the keyboard design. The current version has 60 buttons (one is hardwired to the controller Reset).

    The display so far is a Black-and-White 128x64 low-power Black-on-Blue LCD (Note that the original MK-90 has exactly that resolution, but the screen is much larger). This is a quick rendering for comparison:

    An alternative version would be with something like <A href=",searchweb201602_9,searchweb201603_55">LG320240</A>, but they are very costly. 

    The keyboard is assembled on a 140x95 mm mock-up board (the actual PCB size will be 100x70).  The electronics and the Arduino Mega driver are working, Now need to decide how to assign the letters...

    The schematics is attached in the PDF file.

    The keyboard will have 6 rows and 10 columns, 59 buttons in total (#60 is used for reset). It is operated via a 3-line interface not very dissimilar to SPI: setting RESET high brings the counters to the initial state, then CLOCK is cycled 59 times and SIGNAL reads the status of 59 buttons (HIGH means "pressed"). The CMOS 4017 decade counter addresses 10 rows and a combination of a 4520 binary counter and a 4051 analogue mux connects the rows. The clock signal is sent to the 4017. Upon reaching back to zero after 10 pulses, the ripple signal from the decimal counter advances the 4520 to the next row. Because only one button is connected between the mux and the decimal output at any given time, diodes at the buttons are not required. Any number of buttons can be pressed  simultaneously (the number of your fingers - and toes - is the technical limit) - they will all register .
    The second half of the 4520 octal counter drives 4 LEDs to show the keyboard status (or could be used from the Basic to do some creative blinking).  One button is hardwired to ESP32 reset.

    In the stand-by mode the keyboard consumes less than 10 uA (micro-amp).  Each LED consumes about 1200 uA if lit.

    Upon the PCB completion and testing I will put the KiCAD files on Github.

    The next big design question: "To brick or not to brick?"

    MK-90 is, well, a "brick". Another status symbol, MK-52, is a "wedge" (an so are B3-34!):

  • Thoughts on matrix keyboard

    Andrey Skvortsov05/06/2019 at 16:09 0 comments

    Here is a first variant of matrix keyboard. I choose 5x9 size as the smallest suitable to support full cyrillic charset and digits on separate keys (33+10).

    It will use 2 shift keys: the red shift and the blue shift, which state will be indicated by the 2 LEDs of corresponding colors.

  • Simple structure

    Andrey Skvortsov04/03/2019 at 11:41 0 comments

    First prototype will consists of minimal number of modules:

  • Firmware is almost done

    Andrey Skvortsov03/31/2019 at 23:59 0 comments

    The firmware is a Terminal-BASIC with UTFT output driver.

    Things to be done includes support for double precision floating point arithmetics (DUE has double reals unlike 8-bit AVRs). and driver for a matrix keyboard of 45 - 48 keys.

View all 4 project logs

Enjoy this project?



ptrav wrote 3 days ago point

The next big design question: "To brick or not to brick?".

The original MK-90 is a "brick". The original MK-85 is a "brick" (although a very slim one).

The original MK-52 is a "wedge" (picture in the gallery) MK-51

And so are the MK-61, B3-34, Texas Instruments and HP.

  Are you sure? yes | no

ptrav wrote 06/25/2019 at 03:06 point

Hi Andrey,

I am planning to build something similar to MK-90 with a steno capability for taking notes.

I tried to build your Terminal BASIC from the source, downloaded from the Sourceforge, the writes: "no directory libarduinoext". How to get these files?



  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates