The original MK-52 came with memory expansion modules, called "BRP". I have never seen one in-metal, but by the effort of Sergey Frolov the contents are available for download at http://www.leningrad.su/museum/show_calc.php?n=157
Instead of the bulky BRP, the programs now are kept at the SD card. For what I understand, the module insertion into the calculator was a tricky business.
The plan so far is to convert both BRP-3 (math programs) and BRP-2 "Astro" (navigation programs) into usable form.
In early May the BS250's have finally arrived from China, and the calculator became completely autonomous.
In sleep mode, it consumes less than 2uA (micro-Amps). The natural NiMH battery discharge is probably more than that. The booting is by 0.5-sec press on Cx button; to put back to sleep - A-Cx.
I have been using the machine every day, in on-off mode for 80-90 minutes per day on average. The battery life of 4 new AA NiMH batteries (2300 mAh as claimed by the manufacturer) is over 30 hours, which means recharging is due every 3 weeks. The HP-35S under this use pattern eats 2 coin cells in about 1 month.
With the batteries installed and cover on, the calculator is exactly 390 g:
Retro look-and-feel of the original is preserved:
Admittedly, the letters are a bit of a screw-up. I used a white-out marker and hand-writing. To fix it, I have ordered letter stickers.
The SD card fits natively between two "fake slot" covers. Note that the original calculator used two right-most covers for the expansion slots and the other two served decorative purpose. I just expanded the "fake slots" with Dremel.
With the card in, all looks pretty native:
How, the sacred question "So, how much memory does this thing have?" the answer is "Just under 8 gigabytes!"
The quick usability remarks after 1 month of extensive usage:
* Keyboard quality - excellent, better than the original and about par with HP-35S.
* Screen readability - good, better than the original and far superior to the HP-35S non-backlit LCD.
* Battery life - comparable to the original (if modern NiMH are used), but because of the Instant-ON, the Resurrect does not need to be on for long periods of time, which saves a lot of battery time.
* Program entering and editing functionality: comparable to HP-35S. Additional screen lines help.
* Original functions of MK-52 badly missed: none so far. Tried many historical programs from A.Schelest and other books, always was able to reproduce results.
* Functions badly missed from HP-35S: One-Key Solvers, Hyperbolcs, One-Key Stats, Numerical Integration, Unit converters, Physics Constants.
* Portability: 390 g against 184 g of HP-35S. MK-52 is exactly 1 3/4 inch longer and 1/8 inch thicker. Some little price to pay for being "Retro".
The next picture is without photo light to show the relative screen brightness/contrast under normal usage conditions.
It came as two thick books, about 3x6 inches, 180 pages each - the book size allowed to bundle them under the calculator. The manual featured excellent content combined with terrible printing quality. For what I understand, the books were printed directly at the calculator factory in Kiev (Ukraine) using the East Germany's "Rotaprint" equipment. The book original was produced on a typewriter, with some manual drawings!
Hopefully my translation features slightly better graphics:
All programming examples are tested on both the Simulator and the actual ESP32 machine.
A simple program that was tricky on the original MK-52, but easy on the Resurrect:
## MK-52 program#
PC=0000
P0000: LBX> ENTER N.X:P0001: LBY> MOLAR WEIGHT:P0002: CxP0003: EnterP0004: STOPP0005: X->M L0P0006: M->X L0P0007: -P0008: 100P0009: *P0010: K M->X L0P0011: *P0012: +P0013: EnterP0014: GOTO 0004## MK-52 data#
MC=0001
M0001: 1.008M0002: 4.0026M0003: 6.94M0004: 9.0122M0005: 10.81M0006: 12.011M0007: 14.007M0008: 15.999M0009: 18.998M0010: 20.18M0011: 22.99M0012: 24.305M0013: 26.982M0014: 28.085M0015: 30.974M0016: 32.06M0017: 35.45M0018: 39.948#... and so on through the Periodic table
Start by pressing B/0, S/P, then enter the <element number>.<number of atoms in molecule>, S/P.
For example, glucose (C6 H12 O6):
B/0, S/P,
6.06,S/P,
1.12,S/P,
8.06,S/P
The same calculation manually (in the most efficient RPN way) looks like this:
12.011 Enter
15.999 +
1.008 Enter
2 * + 6 *,
and each element weight (12.011, 15.999 and 1.008) has to be punched-in. With the program, obviously, still need to keep the Periodic table in hand, but no need to type the numbers with decimal places.
Note there are two programs: LUNOLET-1.MK52 - is the original from the magazine, LUNOLET-1B.MK52 is slightly modified to utilize the new screen with 4 lines of stack.
Back in the day, the owners of B3-34, MK-54 and MK-61 had to enter the program every time the power was cycled. The program looked like this:
The proud owners of MK-52 entered the program just once and then saved it in the memory module! So we pretend it has been entered (press A-ABT to enter FILE mode):
Select the program name with ШГ-> and <-ШГ buttons and press П->X
Here, just press F-ABT to return to the AUTO mode.
After loading, press [B/0], [C/П]; and check/enter the parameters: Moon gravity, dry mass of the MOONFLY (including 2 people in space suits), specific impulse in m/s and the maximum g-force the pilot tolerates. According to the story, the technician did not qualify for a pilot because he blackouts at 3 g.
Press [C/П] again and enter/verify the parameters: fuel mass, life support time, initial speed and altitude.
Press [C/П] again, and now you are ready to fly. Each command consists of 2 or 3 inputs: first, enter the amount of fuel to burn, press [ПП], then enter the number of seconds for the burn. If reversed thrust is not needed, just press [C/П]. For the reversed, press [ПП], followed by [/-/][C/П].
The first command was issued by the technician's son, "soon will be 12"! Entering 65, [ПП], 3 [C/П] gives us
Hit [C/П] to "wake up".
You've been in blackout for about 3.5 seconds.
According to the story, the technician tried to land the thing. The full sequence of commands in the story:
* 65 kg for 3 sec (blackout), v=+84 m/s, H=169 m (this command is already done)
* 0 kg for 2 sec (the technician climbs into the chair), v=+80 m/s, H=334 m
* 65 kg for 3 sec (blackout), v=+166 m/s, H=916 m
* 0 kg for 120 sec, v=-28 m/s, H=9175 m
* 25 kg for 2 sec, v=+5 m/s, H=9151 m
* 10 kg for 10 sec (reversed thrust, use /-/), v=-26 m/s, H=9044 m
* 25 kg for 5 sec, v=+3 m/s, H=8984 m
* 0 kg for 90 sec, v=-143 m/s, H=2652 m
* 100 kg for 3 sec (blackout), v=-31 m/s, H=2123 m
* 10 kg for 20 sec, v=-49 m/s, H=1314 m
* 10 kg for 15 sec, v=-57 m/s, H=515 m
* 35 kg for 1.5 sec (blackout), v=-17 m/s, H=390 m
* 22 kg for 22 sec, v=-17.5 m/s, H=13.5 m
* 22 kg for 0.7 sec (blackout), v=-17 m/s, H=7 m (this was a panic press)
* 22 kg for 0.7 sec (blackout), and:
The MOONFLY ran out of fuel (press C/П), but still landed with some reasonable speed of 3.6 m/s:
This is the "classic" MK-52 speed test adapted from Dr.Shelest book.
On the actual ESP32 hardware, it executes about 175 times faster. Actually, the processor speed is even faster, but the Resurrect updates the screen and checks for the STOP button 3 times per second, so 60% of the time it is busy sending pixels via SPI.
P0000: # TRIPLE SUMMATION LOOPP0001: # A.E.Shelest, "Programmable Calculators in Physics", p. 27.P0002: # On the original MK-52, this program took 35 minutesP0003: # ESP32 computes the same in under 12 seconds (x175 the speed)P0004: CxP0005: X->M 9P0100: 7P0101: X->M L0P0102: 8P0103: X->M L1P0104: 9P0105: X->M L2P0106: M->X L0P0107: M->X L1P0108: X^2P0109: *P0110: M->X L2P0111: SINP0112: *P0113: M->X 9P0114: +P0115: X->M 9P0116: WHILE L2>0 GOTO 106P0117: WHILE L1>0 GOTO 104P0118: WHILE L0>0 GOTO 102P0119: STOPP0120: GOTO 2
I have started using the monster as my primary calculator. Based on the experience, some refinements may be needed. In particular, an automatic switch-off after a period of inactivity is a must. Also, it would be nice to allow a WiFi connectivity. I will build a laundry list and then do yet another coding session.
The next big item is to make a full copy of the ESP32 into the C# emulator and release a Windows installer. Now the display is a pixel-to-pixel match: