ET-58
Programmable calculator
Current
latest build: 221129 (11/29/2022)
> Source codes are freely available <
The ET-58 calculator is a clone of the Texas Instruments TI-58/TI-59 programmable calculator, with an ATmega328P processor and enhanced features. The source code for the calculator is freely available. The ET-57 calculator firmware (for the ATmega88 processor) can also be used in the calculator, with which this calculator will function as a clone of the TI-57 calculator.
Source
codes and binaries with firmware of the ET-58: ET58_src.zip
Source code on GitHub: https://github.com/Panda381/ET58
User manual in PDF - Czech
language
User Manual in PDF - French, by Pierre Houbert
User Manual in PDF for A5
print - French, by Pierre Houbert
Instructions on how to build the calculator, in Czech language: ET58_Sestaveni.pdf (.odt)
Drawing of component layout for mounting: ET58_Mounting.png
Eagle7 Gerber: ET58_complete_Eagle7_Gerber.zip
Printing and cutting plexiglass: ET58_plexi.zip
--------------------- other downloads ---------------------
User
manual partially translated into English (to page 71): ET58_User_Manual_EN.pdf
Manuals in PDF and DOC format: ET58_help.zip
Source codes of the embedded library module ML: ET58_module.zip
Schematic and circuit board for Eagle Free (note: change
C1 to 220 uF!): ET58_diagram.zip
Graphic documents (schematic, circuit board, keyboard): ET58_png.zip
Source codes of ET-57 clone for ATmega88: ET-57




List of properties:
• Power supply voltage 2.5 V (from
battery) to 5.5 V (from USB connector).
• Calculation accuracy 19 digits
• Data display up to 14 valid digits
• Exponent 4 digits, range +- 9863
• 1000 user program steps in EEPROM (program storage even
without battery)
• 110 data registers
• 16 HIR control registers
• Two-line LCD display (2 x 16 alphanumeric characters)
• 45 buttons
• Calculator code completely written in AVR assembler
• Built-in library with 50 programs and almost 10000 steps in
length
• Exponential and logarithmic functions
• Trigonometric functions
• Hyperbolic functions
• Factorial of decimal and large numbers
• Random number generator
• Index access to variables
• Indirect parameters of functions
• Scientific and technical display mode with exponent
• HEX, OCT and BIN display, including decimals
• Bitwise AND, OR, XOR, NOT, shift operations
• Pseudographic display of graphs and pointers
• Program display of text
• Dynamic keyboard input at runtime
• Statistical functions and linear regression
• Absolute addressing, labels, relative jumps
• Calculations with matrices
• Complex numbers
• Fractions
• Evaluating polynomials
• Numerical search for roots of a function
• Numerical calculation of integrals
• Interpolation and approximation
• Calculations of triangles
• Unit conversions
• Circular section
• Combinations, permutations
• Floating diameter
• Interest and repayments
• Time conversions, time zones
• Interval between dates, day of the week
• Games (Hi-Lo, Codebreaker, Acey-Deucy, Lander and others)
• Astable Generator with 555
• Reactance of capacitors and inductors
• Serial and parallel ordering of components
• Active and passive filter calculations
• Signal convolution
• Discrete Fourier transform
• Ohm's law
• Number sorting and the median
• Finding prime factors
• Finding the minimum and maximum of a function
• Measuring reaction time, stopwatch
Assembly instructions for the ET-58 calculator:
1) First mount the power supply circuits: the USB connector, the HT7533 regulator with diode D3 (BAT42 or BAT41), the IRLML6402PBF transistor with resistor R2 (2K2), ceramic capacitor C4 (100n) and the flashlight holder. Carefully check the connector pins for short circuits between them. The stabiliser must be placed on the left so that it does not interfere with the top cover.
2) Check the proper operation of the power
circuit from the external power supply. Connect the external
power supply via the USB connector and measure the voltage behind
diode D3 with a multimeter. There should be a voltage of around
3.2V. If not, measure the voltage before the regulator.
- If there is 0V before the stabilizer, there is a fault in the
USB connector - a short between the contacts or a mis-fitting of
the contacts.
- If it is 1V before the stabilizer, there is a short behind the
stabilizer.
- If there is 5V before the stabilizer and 0V after the
stabilizer, the stabilizer pins are swapped. Different
manufacturers use different arrangements of the HT7533 stabilizer
pins, which may not match the drawing in the manual. In case of
malfunction, check the pins according to the datasheet, or try
turning the stabilizer over.
3) Check that the power circuit for the CR2032 battery is working properly. Measure the voltage at the battery holder contacts, without the battery inserted and with the external power supply connected. There should be no voltage present. If you have a sensitive multimeter that shows voltage here, put a resistor of a few kiloohms on the contacts as a load. Then disconnect the external power supply and insert a CR2032 battery. There should be a voltage of about 3V behind the regulator.
4) Stick the microswitches. Insert them all into the board first. Cover them with the top cover and secure the cover with either duct tape (be careful leaving an impression on the cover) or screws with nuts that you very lightly tighten (be careful you may crack the cover). Before soldering the microswitches, press them lightly to straighten them out.
5) Solder the other components, except the display. Make sure the processor is oriented correctly and pay attention to the correct polarity of the electrolytic capacitor C1. The capacitor C1 must be installed flat so that it does not interfere with the housing. Ceramic capacitors may need to be angled slightly so that they do not interfere with the housing. Resistor R1 controls the intensity of the display backlight (only with external power supply), the value of 100 ohms is used in the kit.
6) The last thing to stick is the display. Insert the pin strip into the PCB (4 contacts must be broken off) and mount the display on it. Place 4 smaller plastic washers under the display and temporarily screw the display to the PCB with 4 M3 screws and nuts. Now, from above, carefully press the pins of the pin strip (e.g. with a screwdriver) so that about 0.1mm of pin remains above the plane of the display. Without denting the pins, the pins would interfere with the top cover of the calculator. Do not push the pins all the way in, as they may be harder to solder. Then glue the pins and the display and remove the screws. Be careful not to let larger tin droplets form on the top of the display, they could interfere with the top cover (or even crack at that point).
7) Screw off the calculator covers. The bottom cover is separated from the PCB by 6 large plastic washers. There are 4 smaller plastic washers sandwiched between the display and the PCB. The top cover is separated from the PCB at the bottom by 2 large plastic washers and is separated from the display by 4 metal washers. The screws are screwed into the bottom cover using threaded brass inserts. With some covers, the brass inserts may not hold well in the cover - in this case, use a dab of instant glue in the cover (be careful not to let the glue get into the threads), or use longer screws and secure them with nuts from underneath.
Processor Programming:
When programming the ATmega328P processor, use the following settings for the fuses: low 42 (default 62), high D1 (default D9), ext FE (default FF). When the calculator is turned on, the logo and text ET-58 221129 (build version) is displayed. If the ROM checksum does not match, the calculator will report an error instead.

After programming, try the diagnostics: Pgm 01 E and A'. After successful diagnostics, the build number and CRC will be displayed. When the calculator is powered from an external +5V supply, it is possible that the text will not be readable, it will be black. In this case, first reduce the contrast using the "2nd-2nd-LCD-0" buttons. After the tests are finished, return back to the default contrast (used with a 3V battery) using the "2nd-2nd-LCD-4" buttons.
Glitch:
The ET-58 calculator has one known defect based on the characteristics of the processor that must be taken into account (and is therefore not subject to complaint). The processor operates at 4 MHz. At this frequency, it is unable to oscillate at supply voltages lower than approximately 2.2V. The processor uses brown-out detection, which resets it at voltages lower than 2.0V. It may happen that if the processor power supply gets into the 2.0 to 2.2V range, the processor may freeze because its clock does not operate properly with this voltage. This can occur both when the battery is very weak, and when the battery is tampered with, where the supply voltage may briefly fall into the forbidden 2.0 to 2.2V band.
Therefore, if you ever find that the calculator becomes inoperative even though you connect it to an external +5V power supply (can happen when handling a weaker battery), disconnect the external power supply, remove the battery and leave the calculator without power for a few minutes. After a few minutes, connect the external power supply, the calculator should boot up properly. For these reasons, it is better to handle the battery with the external power supply connected. You can reduce the necessary waiting time of several minutes by shorting the electrolytic filter capacitor in the power supply (this is able to maintain the calculator's state when the power is off for several minutes).
List of components:
- 1 piece, Microcontroller AVR
ATMEGA328P-PU SDIP28
- 1 piece, HT7533-1 TO92 HOLTEK fixed voltage regulator
- 1 piece, LCD alphanumeric display 16x2 characters,
yellow-green, HD44780
- 1 piece, Unipolar transistor IRLML6402PBF SOT23
- 3 pieces, Schottky diode BAT42
- 1 piece, Ceramic Capacitor CK 22n/50V X7R 10% RM5.08
- 2 pieces, Ceramic Capacitor CK 100n/63V Y5V RM5.08 +80/-20%
- 1 piece, Electrolytic capacitor CE 220u/10VT JAM-TK 5x11 RM2.0
BULK (5x11 mm)
- 1 piece, USB-MINI B F SMD connector
- 1 piece, Battery holder for PCB BKC3003P
- 45 pcs, Microswitch TC-0108-T
- 1 piece, S1G20 2.54mm pin strip
- 1 piece, Metallized resistor RM 100R 0309 1W 1%
- 1 piece, Metallized resistor RM 2k2 0204 0.4W 1%
Miroslav Nemecek