Numeryx Home

My Love Affair with Computers & CNC

Last updated Nov-29-2005

A brief history

I was interested in all kinds of technology from my early childhood.
In high school I learned mechanics and auto-mechanics. Electronics was always my hobby. As a teenager I built model airplanes, radios and amplifiers, a rocket, a telescope, and I read every technical book and magazine I could lay my hands on.

I served 7 years in the Israeli Air Force, 4 years as an instructor in ground equipment.
This was a broad subject that included gasoline and diesel engines, AC/DC generators and motors, hydraulic testing equipment, pneumatic systems and devices, and fuel distribution systems.
In 1963, still in the Air Force, I started my undergraduate studies of mechanical engineering in the Hebrew Technion in Israel.
After 2 years I enrolled in the electrical engineering faculty too.

1966. I was a student in College, 3rd year.
I took a class in programming. In the university there was just one computer, a second-generation mainframe Elliott 503 computer, employing transistors instead of vacuum tubes. I had a chance to look at it.
It was located in its own building, in a 200 square-meter or so room.
The computer wasn't very big but its peripherals occupied cabinets about the size 10 refrigerators standing side by side. It used 39 bit words and could do addition in 20 microseconds and multiplication in 50. Its core memory capacity was 8 K-Word (about 40 KB). Input/output was done by punched tapes. The maufacturer was proud to say that the computer can run without a resident engineer.
The visitors could watch from behind a glass wall. It was maintained by a full-time staff of engineers who wore white lab coats and shoe covers.
For more information about Elliott 503:

We, the students, never came close to the computer. We wrote our programs on a sheet of paper and submitted them to the receptionist, the next day we got the results, usually an error message.
We learned to program in Algol-60. The professor that taught us knew very little himself.
I found that out years later, when I began programming for living.
In addition to programming we learned a little about the hardware--logic equations, addition, and the like.
But not how a computer is built and how it works.

For me the computer was a love at the first sight.
I dreamt about building a computer, but I didn't know where to start.

In 1967 I graduated from college with a dual B.Sc. in mechanical and electronic engineering.

After graduating, I started to work in Sharnoa, a company in Israel that built agriculture machines and citrus packinghouses.

In 1968 I started the electronic department in Sharnoa, which designed and built automation for Sharnoa's machines. (For a while it was a one-man department--me).
One of my earliest success, which won a prize from the government of Israel, was a control for an unstacker and dumper for citrus bins (the machines were designed and built by Sharnoa, with my participation). These bins weigh 400 kg each and are fed in pairs, one on top of the other. The unstacker separates and feeds them one by one to a dumper that dumps the citrus on the production line.
Almost all packinghouses in Israel bought this system. The nicest thing about the system was that in case of a jam, the operator could switch to manual, resolve the jam and then resume automatic operation from any point. Other controls wouldn't let you start from the middle of a sequence.

1968 Unstacker-Dumper

In 1969/1970 Sharnoa remodeled the national theatre in Tel-Aviv. I was involved in the design of rigging system (45 hoists), rotating stages (2), and the curtain.
Each hoist was driven by a 3 speed ac motor. All hoists were controlled form one console where the operator could preset up to 10 hoists and then start them simultaneously. (A year later we installed another rigging system with 40 hoists in the Jerusalem Theater).

1969, Rigging system, Tel Aviv's Habima theatre

The two concentric rotating stages were driven independently by hydraulic motors. However, the stages could be locked together and the hydraulic motors would then share the load, same as in a car's differential.
The stages had continuous velocity set from zero to 1m/sec at the outer perimeter.
The acceleration was low enough to start and stop the motion while actors were performing.
To stop the stages at a preset location I developed my first motion control system.
This was a hardware that employed an in-house encoder. The control calculated the point where deceleration began based on the square of the feed versus the distance-to-go.

I used this algorithm later for CNC.

In 1970 packinghouses for oranges wanted to count the fruit. There were ten sizes and I built a complex 10-counter device with display and a printer. Integrated circuits were available then at a ridiculous price, which went down all the time.
In 1971 there was a requirement for counters that could count up and down.
At that time counters had 4 bits per chip but there were 64 bit memory chips.
I thought that I could do it with a memory in which the numbers would be stored and, according to the command, would be incremented or decremented. Then I thought, why not save the command itself in the memory and voila! I had invented the computer. My computer, of course.
I could not wait until I completed my first prototype, in 1972, which was an eight-bit machine with 256 bytes of memory.
Now I had to learn how to program the thing, so I taught myself programming, by doing and experimenting with it.

In addition to developing the computer, in the same year I invented the Torcontrol. This is an electronic device that monitors the load of a 3-phase electric motor and stops it upon a preset torque. Sharnoa sold thousands of Torcontrols and it was patented in many countries, including the USA. US Patent Office (Patent No. 3,818,270) Look
To view the full text you have to install a Tiff image viewer recommended by the Patent Office.

1973 Torcontrol

In 1973 the electronics department became an independent company called Sharnoa Electronics, and I became a partner.

Soon enough I decided that the 8-bit computer was a toy, and in 1973 I designed and built a 16-bit machine with 8 KB of memory. This one had a 4 MHz clock and was twice as fast as the first IBM PC (which was introduced 8 years later).
I named this computer R-741.

1973 R-741 Computer

If you miss the typical switches and flashing lights - there weren't any. The console was a Teletype and the computer had a hardware loader. The computer could be in Run mode or in Halt mode, so in Halt mode the serial interface converted the incoming characters into pseudo-instructions, based on the high nibble of the character, as follows:

0xh - CR,LF  nop
1Bh - ESC    goto 
20h - Space  save and increment address
3xh - digits shift into accumulator
4xh - A to F shift into accumulator
52h - R      Run
That way a readable program could be printed and punched on the Teletype. The first program I wrote was a primitive operating system that could read other tapes in the same format and had routines for I/O, punching compressed tapes, etc.
To really see the registers I made an oscilloscope interface, in which the bits in the main registers were displayed as 0 or 1.
The computer had one interrupt and one DMA channel, and could do arithmetic in binary as well as BCD.
At the end of that year I added a 128KB hard disk (the size of a current PC and $5000 price tag).

Now I had a computer and nobody in Israel knew what to do with it.
At that time Israel was known for its oranges rather than being high tech.
For two years I tried a few applications; I wrote a Basic compiler and sold a few to schools.
We tried to install a computer in a packinghouse but that was ahead of time and failed.

CNC - The Holy Grail

Here begins the story of my lifetime development of CNC for machine tools and industrial robots.

In 1975 I stumbled upon machine tool controls and stayed there until these days.
I saw an RFQ (request for quote) in a newspaper, for 10 controls for schools, from the ministry of education.
The specifications were tailored for a company that had developed a primitive NC.
I decided to use my computer. Our price was $6700, the other company $6750. Those in charge of the RFQ could not accept the more expensive offer without a good reason. So they said that the other company had a working model and we should demonstrate our system.

In a week I prepared an interface that replaced a Superior Electric control for a Bridgeport machine, both made in Connecticut (that control cost about $20,000). On Mar-18-1975 we made the first demonstration. I wrote a short program that moved all three axes of the machine simultaneously.

The original Superior Electric control could only move two axes at a time. The rival company could move only one.
An owner of a small machine shop came to see the demo and gave me an order on the spot.

Two weeks later I demonstrated the control in a seminar for teachers. In those two weeks I worked night and day to prepare an operating system that could read and use a standard NC code.
How do you develop circular interpolation without motors? Four LED's in a circle, connected to the stepper output, were a good simulation for each motor.
During the next two months I added on line editing, polar coordinates, loops and subroutines, scale factor, and many more features that were not available elsewhere at that time.

In May-18-1975 we exhibited the control in a technological show in Tel-Aviv and received 10 orders. The school contract brought 10 more.
I sat in the show and wrote simple programs on the spot for the visitors.
I cut conical spirals and other fancy shapes.

1975 Technological Show

Our selling points were ease of programming and low cost.
Since 1975 sales of machine controls grew at a fast pace.

Just imagine that the software was written in machine code (Hex), not assembler.
To develop more complex code I needed assembler and I wrote one. I also wrote a word processor program for printing my instruction manual. Then I had to write the manual.

In 1976 the first control was exported to England and we participated in a show in Birmingham.
This time I programmed and cut visitors' names.

In the mean time I added tool radius compensation, single line plasma display, and high-speed tape reader.

The guys called it a washing machine

In 1977 we displayed 4 controls mounted on 4 different machines, in Hanover, Germany. A fifth, spare control, was sold in the show. In this year I switched from stepper motor to DC servo. For that I had to develop an interface, which was my first motion card.

In 1978 I received the Rotchild Prize for the development of the computer and the CNC.
In the same year we opened our own office in Ungersheim, France, near the border with Germany and Switzerland.
In 1979 Sharnoa Electronics received an "Outstanding Exporter" award from the President of Israel, for tripling its export three years in a row.
In 1980 we opened an office in Kalamazoo, MI. Our first customer was Wells Index, and they installed the control on their knee type mill.
Later the office moved closer to Detroit. Other offices were opened in LA and NJ.

The control now had 64K memory, a 12" CRT display and a new front panel. Axis position was displayed in double-size characters, which has characterized my design ever since.
It had an extensive math capability and a powerful scripting language. 20 years later programmers were still trying to emulate the FRC function that divided a value into equal parts based on the number of repetitions in a loop.
The software was distributed on a punched tape and its size was 24K.

Tiger III, 1982

In 1982 we built our first industrial robot. It was a 6-axis articulated arm with a gripper.
Engineer Zami Aberman designed and built the robot, which was later named GIL-1.

GIL-1 Robot, 1982

I wrote the kinematics equations but I didn't know how to solve them for the inverse-kinematics.
For 3 months I looked at them every day and nothing came out. Then one day I saw the light. I found a solution based on axis-rotation. Then I noticed that all equations had a typical and simple construction. I still use these equations today.
I have never seen them in any robotics textbook. Few experts that saw these equations were amazed at their simplicity.
Back then I used my 4 MHz 16 bit computer without anything similar to arithmetic co-processor.
Even integer multiply/divide was performed in software.
The robot was displayed in many shows and on Israel's national TV. In a typical demo the robot used to load parts to a milling machine and in the idle period it painted a sketch of itself. The pictures were dedicated to the visitors, that is, the robot wrote their names.

Robot display, technology show in 1984

In 1984 I added a 3.5" diskette to the control. It took me 3 months to develop the hardware interface and 3 more months to develop the Bios and the Dos.

Tiger IV, 1984

In 1986 I moved to Michigan, USA and worked in Sharnoa's office there.

In 1987 I left Sharnoa.
The last control using my software was the Tiger 4.
Back in 1982, a group of Sharnoa's engineers started to develop an intel based control. In 1986 they moved a machine for the first time. Following my advice they switched to PC and after I left they called it Tiger 5.
Others left Sharnoa and started new CNC companies, like Creative and Lemoine.

For service and tapes for Tiger 3 and 4 try:


In 1988 I developed my current software, NCPLUS, for an IBM AT computer.

1988 - It all started in my garage
1988 First contol prototype

NCPLUS is an 8-axis software and for running it on an 8MHz, 80286 computer I had to fight for every byte and every clock cycle. No wonder half of the code and all of the motion routines are written in Assembler.
From the very beginning I decided to use 64-bit arithmetic, so that data will not be limited in size.
This time I used graphics for testing my routines, but how do you test feed and acceleration/deceleration?
A trick of the trade--make the speaker play the feedrate.

In 1989, Robomatix, another Israeli company, opened a branch in Michigan. They designed and manufactured industrial robots for laser cutting, mainly for the automotive industry. Trouble was, they designed a new robot without checking whether they could find a standard control for it, which they couldn't.

Modulaser by Robomatix

I joined Robomatix late in 1989. They sent me blueprints of the robot and I developed the inverse-kinematics routines, without seeing the robot.
I sent the software to Israel by Modem, and to everyone surprise, it moved the robot.
From 1989 to 1992 Robomatix sold a few laser robots to GM and other companies.

Laser Cutting Robots, BOC, 1992 Robomatix contol 1992

Shibuya Kogyo in Japan bought a robot and wanted to use Kanji. In a few months I modified the editor to recognize and properly handle DBC (Double Byte Characters), using Japanese Dos.

Help Screen in Japanese

Instead of having both American and Japanese screen drivers I separated them into external files, automatically detected and loaded.
Soon I wrote the motion, I/O, and other interfaces as Dos device drivers, so NCPLUS was independent of the hardware.

In 1993 Boeing became the major customer. The first machine sold to Boeing was a 5-axis gantry, 30 meters long (100') for laser scribing. It was driven by Anorad's linear motors.

100 feet, 5-axis Gantry Robot, Boeing, 1993

Before we got the order, to test our ability, they gave us blueprints of a complex shape, which was supposed to be cut on a cylindrical surface. Over the weekend I wrote the equations that projected a flat program on a cylinder.
The nicest thing was that their demo parts had different radii. Now imagine re-writing the program for every part. But all I had to do was to modify the radius in one line of the program.

The next project, in 1994, was two buff robots (polishing) moving on a 50 feet long track.
Each buff was a 6-axis robot. The control maintained a constant torque by moving the 6th axis. Since it had only 4" stroke the whole robot followed the 6th axis to maintain it in its center.

Buff Robots, Boeing, 1994

40 inch Buff Wheel, Boeing, 1994

Then came the drilling robots. The drill and its control were purchased from a third party and were talking to my software.
For the drill Boeing required a better accuracy than the mechanical design could deliver. For that I added mapping software that calculated 3-axis corrections over a programmable grid.

Between projects I modified the editor so it could handle huge files, up to 250 MB.
This was done by caching the data from the disk as needed. This made higher speed possible so I started to develop the look ahead and the logic required for that. For smoother acceleration I added Jerk factor, common to all axes.
For a while I could not have feed override greater than 100% together with high speed.
Not so obvious, but there is a conflict between the look ahead and the feed override.
Just imagine what the control has to do when the operator raises the feed override at the same time that the look ahead has already decided to slow down.
Necessity is the mother of all inventions. I solved the conflict by making the look ahead calculate a limit for the override, and now both work in concert.

In mid 1996 Robomatix was bought by Utica Enterprises in Michigan and was renamed to Robomatiks Inc.
Robomatiks continues to work with Boeing to this day.
I convinced the new owners to manufacture regular CNC for machine tools. We bought a used Mori Seiki mill with a tool changer and installed the control on the machine. In a few months I adapted my software to the machine and we started making demos and displaying the machine in shows.

1996 First CNC prototype

During 1997 about 20 controls were sold. One of the greatest new features that customers love is starting in mid-program, without requiring the operator to modify the program and without waiting more than a few seconds while the computer scans the program.

My last project in Utica was remote laser welding.
The idea was to weld auto parts with a laser beam rather than the conventional spot welding. The laser beam could (naturally) be beamed to the desired position by rotating mirrors and not by a slow robot.
This project had a unique inverse kinematics.
The seemingly simple one was to convert XY to 2 angles, but it was not so simple because of offsets between the mirrors and changes in the point where the beam was reflected from each mirror. But the interesting part was the focus. As the mirrors turn the length of the beam changed and therefore the distance between the lenses had to be controlled as well.
The mirrors of the first prototype were controlled by moving coils (galvanometer motors) and could accelerate in no time. For that the XY acceleration had to be increased from a typical 0.1 g for servo-motors to 10 g's.
All in all, the prototype could weld 5 spots per second, and a typical demo ended before the visitors could digest what was going on.

In 1998, upon agreement with Robomatiks owners, I left Robomatiks and started a partnership with another person. The name I invented for the company was Numatix.
We retrofitted machine tools with controls utilizing my software.


In 1999 the partnership split and I started my own company, Numeryx Inc.
Numeryx continues to develop and to license CNC software.
Neither Numatix nor Robomatiks are customers of Numeryx or Gil Hagiz.

In 2000 I created a website stuffed with NCPlus' technical info, and renamed it to NCPlus 2000. At the same time version 5 was developed.
In 2001 Mr. Hilik from Degem came to me for 10 days of training and later developed his own control hardware.
In 2002 CMI Inc. in S. Korea was founded by engineers who were previously involved with Numatix and 2 of them came to me for training.
The website was moved to its own domain-name and attracted attention of more customers that couldn't get technical support for NCPlus elsewhere.
In 2003 Miceli Technologies in Canada and D.O.C. in S. Carolina switched to Numeryx.