Robotics and CNC

Recommendations for CNC machines

If you need advice on search engines to use, mechanical components or how to assemble them and buy them, Please contact Fabio di Arezzo which in recent years has gathered a lot of experience on CNC milling and engraving machines with lasers.

In upcoming pictures you can see some of his achievements. Clicking the images get bigger and you may notice that are combined machines, that is, that you can mount either a laser that a cutter.

CNC machine CNC machine CNC with laser

Write to Fabio for recommendations, to buy together components or to make you procure from him of the kits of components. Or you might even agree to build parts or complete machines.

Fabio di Arezzo – Civitella in Val di Chiana (AR) –

Radar and robotic arms

This is the first sonar das Riboni, l ’ application ThereminoRadar was born from this prototype. We thank Mauro, for keeping us involved and for insisting, up to get it to work.
Download ThereminoRadar here: /downloads/automation * radar and information on sensors here: /hardware/inputs/sensors # usound

– – – – – – –

Mauro Radan is also experimenting with different versions of parallel grippers. His mechanics are designed very well. This is a version with high power servo. These servos are not suitable to write because of their dead band, but are great for catching and lifting objects. The two servo at the base and the very robust construction, heavy enough to lift objects.

– – – – – – –

One of the first prototypes of ThereminoArm. This version was still a Master and a Slave, because the first Master did not have configurable PIN. Now you do everything with just Master and advance even two pins. The April update 2017: the new firmware of the Master, increases the number of pins to 6 to 12, so now they advance eight pins for general purposes. Also new firmware may also drive the stepper motors.

You can then build very precise robot arms using small stepper motors and belts. I recommend using a very high reduction ratio, at least five but better if you manage to get to ten. In this way the 200 steps per revolution will become 2000 steps per revolution and you can get an accuracy of 0.7 mm with half-meter long arms. Accuracy that will increase to about one-tenth of mm and above using the microstep.

– – – – – – –

A Robot is not necessarily an articulated arm. With a little’ fancy, You can compose simple and efficient machines.

A robot “instructional” built by students of the Institute ’, C. of Corniglio

The Institute's proposal, motivation i.c. Corniglio is: “…join the digital world with the real world and concrete” and that's precisely why is born on system Theremino. A warm thanks for your research!

Sketch and Firmware

Many after learning the language Arduino sketch, they wrote that they would like to use it, for Theremino. Unfortunately the language sketch was thought, only dell processors ’ Arduino and transplanting it on other “micro”, would become so different, to lose any possibility, Exchange programs between the two.

Our PIC programming in C or C++, using an IDE standard and standard compilers, We use GNU Compiler, It is Open Source.

As far as the huge popularity of Arduino, It can make us look “several”, in fact quite the opposite is true, is Arduino using a nonstandard language, made especially for Arduino and valid only for Arduino.

Sketches are not true firmware programming, but a simple programming, that hides all the “outline”. With the sketch, l ’ efficiency is the ability to maneuver, are limited.

In addition to a didactic deformation sketches, you learn to use an abstraction of micro, instead of the micro itself. To learn how to use a micro, You should consider the data sheet of the manufacturer, not the instructions of Arduino.

That being said, Luckily, the system firmware Theremino, requires no programming. We are in 20xx and supposedly the InOut a PC, as well as the firmware of a mobile phone, or a washing machine, are working. “How are”, without having to re-schedule every time, Depending on whether you want to wash shirts, or blue jeans.

Shift of perspective

The shift of perspective, between Arduino and Theremino is in fact, move the ’ intelligence from the firmware to the software. This shift multiplies per thousand the available speed, the computing power, the memory, and the ease of programming.

For this approach, You must be permanently connected to a PC (or a NetBook, a eeeBox, a Tablet, an embedded PC or a Raspberry Pi, as explained here: blog/standalone-applications#standalone, and also here: downloads/notes-on-software # computers)

Many devices, like printers, monitors and mice, they are constantly connected to the PC and all they find “normal”. Yet many people think that a “device”, such as a robotic arm, or a 3D printer, should be autonomous, and probably a pile…

Robotic arms and intelligence

We do l ’ example, watch case, a “robotic arm”. Many manufacturers of robotic arms Arduinici, they realized that their arm “battery powered standalone”, in the end he always does the same thing. What he's missing? Communication and software, powerful algorithms that keep in touch 3D data, with the outside world, sensors, Webcams, microphones, understand the GCode, and communicate with other applications, in real time.

Micro are not designed to handle 3D files, or decode audio signals, do not have adequate power, to play midi files, or decode the video of a WebCam. And even if they are forced to do so, the hurt. Said with other words: “The appropriate place for the brain, It's not close to the muscles”

Another reason, that makes it very smart, connect firmly the arms and 3D printers to your PC, is that you have to supply them power. When you exceed the phase toy, power needs, become too heavy, for batteries.

How are the professional robotic arms ?

  • Have big cables, that carry power and data.
  • Communicate constantly with a hub PC.
  • Contain only the firmware, intelligent algorithms, they're all on PC.

Click on the image, for a better look.

Which language to use?

Once you have decided to move the ’ intelligence, from the firmware to a high-level language, which is the best language to learn?

Here is a matter of taste, Some say that only exists on C++, and treat with contempt, every other language.

Other, like us, think that C++ is a language older, that requires much more time and energy, recent languages. And they also think that C++ and similar (C, Java and all languages with the semicolon to each row) formal languages are poorly structured and poorly, that invite you to write, so “dirty” and confused. In these languages, you can write, things acceptable by the compiler, but absolutely unreadable, for humans.

We prefer more structured languages, that help to write well, and to minimize errors. This process of gradual estrangement, from machine language, is underway for fifty ’ years and with each new step, c ’ is anyone who complains and complains about the old languages. But the process will continue, and eventually we'll get to program, in human language. Currently the human language is VbNet.

As the modern languages (VBNET and C #), they have a power and impressive speed, because their basic functions, are not rewritten every time from scratch, but are instead ready in “Runtime” and written with optimized algorithms, and adapted to the operating system.

A second advantage of modern languages, is to be independent of the operating system. An application written in C # or Visual Basic, runs without changing a comma even on Mac, Linux and Unix. (This in theory… in practice only on Windows works fine, While on other operating systems, implementations are incomplete and full of errors)

In conclusion we We suggest using VbNet or C # (very similar to each other) Almost all applications, of the Theremino System, are written in VbNet, because we find it more “Human”, but you can easily switch from one language all ’ more, using SharpDevelop to translate.

To install the developer tools, read here: downloads/notes-on-software # instruments

  1. Luca says:

    good morning to you.
    I bought a Theremino StepperDriver card that will serve to replace the electronic original file of a Chinese cnc I use to produce PCBs. I saw that that schedule can also manage in addition to engines 2 power lines with mosfet, so I imagine that you can also connect an electric. But I did not find detailed instructions on what the ports to handle it and the images that I find on the net, I still have some doubts. You also know if there is a pdf file with all the details for schedaStepperDriver?
    I thank you in advance for your answer.

    • Livio says:

      Usually the spindles operate at mains voltage, so the mosfet of this card can not fly it. These MOSFETs are designed to adjust the PWM heating elements of 3D printers.

      To turn on and off the spindle should use a mechanical relay or our Optotriac (but bearable attention to power and cooling of the Triac). To adjust the spindle speed should send Pwm from a master output and having a PWM adapter that can withstand the power. Or the spindle itself should accept a PWM signal.

      The Stepper Driver tab is explained on this page:

      The pin and slot to be used are explained in the documentation of the CNC application (Slots to use are on page 43).

      For general concepts about the operation of slot you should also read the documentation of HAL application and Master modules.


      If you need more ask, He explains in detail what it is not clear, so we can focus on what you need.

  2. Marco says:

    Some time ago I asked for advice on how to Livio produce a gcode for Theremino CNC with Eagle and Fastgcode.ulp. If you remember gcode product was limited to the circuit holes “printed” and not draw the slopes. I also made screenshots of the Fastgcode configuration page to get help. Eventually I gave up for time and had used other software to the gcode. Yesterday, though, I finally solved my problem and everything works perfectly with your Fastgcode 7.9, it was necessary to set at least two depth step on the Z, in any of the boxes (I did it for milling contour of the board). Thanks again for your availability

    • Livio says:

      Thank you for your evidence.
      FastGcode is a little-used application and some operations are difficult to understand or even worse.

      And’ advisable to also try older versions, they had not the first drilling. The latest versions, with drilling beginning, They have been recently tested and may have faults.

  3. Luca says:

    Good morning,these three years I use Theremino master to operate a three-axis milling machine for wood with excellent results. Now I tried to drive a plasma torch to cut metal but I quickly encountered difficulties because when you turn on the torch many times you stop usb communication and HAL goes wrong. I am using a cheap plasma cutting with contact starting because machines designed for cnc cost thousands of euro. I took a shielded usb cable but I have improved things a lot. I wanted to know if there are any filters or protection to prevent electromagnetic interference. The departure of the cut is handled by a pin of the master which activates an SSR that an electromechanical relay in its turn activates to 220 volts which closes the start button on the torch circuit(I did so’ to use the outputs 220 volts controlled by the master vac and spindle).
    Thank you , Luca Auctions

    • Anonymous says:

      It is not the USB cable to pick disorders, but the wires that go from the Master to the stepper motor driver and to the switches (manual buttons and switches).

      Disconnect from all wires Master (precisely from the Master Card not on the other side).
      It also disconnects the ground wires that go to the drivers and sensors.
      The Master will then only connected to the USB.

      Also check that you have the bulk of the PC connected to the electrical system ground.

      Under these conditions, try turning on and off several times flashlight and communication should never come off.

      Then connect only one of the sensors and try again

      Then connect only one stepper motor and try again.

      Once identified by which wire (or from which wires) interference can be the Master, we will focus on him and add resistors to completely eliminate the problem.

      For the limit switches and the manual buttons disturbances are eliminated completely by adding two resistors as explained here:

      If the noise come from the stepper driver, then they should be connected to the electrical system ground also the negative of the power supplies of the stepper driver.

      • Luca says:

        Thank you, I will do these tests and then I tell you!

        • Luca says:

          I finally got to rehearse. From the information that I have found the ignition system is not high frequency but has a coil that sends the high-voltage discharges(a little’ like an old lighter). I unplugged everything from the master but,by starting the ignition after two or three times skips the USB communication and the program is interrupted cnc. I connected the land of the cutting table in the center of the plant lands (remembering the advice on grounding)but the problem has come back. I ran the plasma in a nearby room under a’ but other line,if I get close to one meter from the computer and I start turning,jumps back communication. If I put the cutting machine next to the computer, but I'm away with the torch then I can turn on what I want and there is no interferenza.Poi I noticed that I can get with the torch to the computer running the ignition without causing interruptions only if I hold in vicinity of the torch lead to the mass that sticks to the metal to be cut(?!!) This would make me think that maybe placing a copper screen to the torch cable and connecting it to the ground may improve things…. What do you think?Thank you , Luca

          • Livio says:

            Since you talk about high voltage, I imagine that the current passing along the torch cable is very small, then an electric screen (thin aluminum or copper) They should totally shield the disorders.

            So you could try to wrap the cord of the torch with a kitchen foil (at least for test, Then if it works you study better).

            At the start of the torch cable should wrap, around aluminum, a little’ of bare wire coils and then connect this wire to earth.

            Then maybe you should also shield the torch itself.

            Check then also that the box from which comes the cable is metal and grounded. Please try the tester, not trust you. After many years I used it, I discovered that my bench power supply, the box had not grounded. In fact, every time I lit, and I turned off the generated noise. I stripped the paint below the ground screw and fell into place.

            If not then there are magnetic couplings, for example between the transformer which generates the high voltage (but it should be done badly and have standards are applied losses), and USB cable.

            I'm pretty amazed that it is possible to lose communication to the bare Master, no wire connected to Pin. Maybe try again but with no USB cable lying (all crowded in “S”, near the PC and the Master over). This way you'll check if the USB cable to capture the trouble.

            Continue with the evidence, only you proceed step by step and methodically, as you've done so far, you'll understand what's going on. And, for pleasure, when you understand what and where mates, enter it here. What I'm really curious to see how it happens.

            • Luca says:

              Thanks for the idea of ​​the screen. Also I'll check the grounding of the plasma box that is metallica.Poi'll let you know. I also saw the security update to the input pin with the capacitor as well as the two resistors. I'll try that too as the only protection with resistors was not enough and I had to disconnect all switches because’ I would stop the usb communication (even with the cutter)

              • Livio says:

                You had put the protection resistor 330k near the Master ?

                If so then you have some really huge noise induced on wires, hundreds of volts. If it happens with all grounded, then there is something very odd and you should find out what.

                • Luca Auctions says:

                  Finally I managed to make new tests with plasma. I added a screen in copper mesh on the torch lead ,I added a emi filter incoming plasma cutting and a feeding-control computer ,I've run a gcode and I continued to ignite the plasma arc and everything works!

  4. Livio says:

    Leo asked us

    In the HAL application of the stepper motors are adjustments in “mm per minute”, “mm per second per second” and “Steps for mm”. That makes me hard to do the math when I want to use millimeters instead of the engine speed, or grades.


    We used millimeters because the majority of readers have a stepper motor that moves a cutter every lap of a millimeter, or of two millimeters. So in these cases it becomes easy to deal.
    – The engine 200 steps per revolution
    – If every lap is a millimeter I am then 200 step for mm

    Then here are easily derived other cases:
    – If any did turn would then be only two mm 100 step for mm
    – And if I set the driver with microstep to 8, then they would 800 mm steps.

    In some cases (rarely) it might be useful to think in different units of measure from mm. For example in inches, or in degrees, or in revolutions of the engine. In these cases, simply replace mm with the new unit and always proceed in the same way.

    Wishing you could also open the file for the language you use and change the text you want to appear in Label_MaxSpeed, Label_MaxAcc e Label_StepsPerMillim. We do not recommend doing this because it's uncomfortable and it is not even said he wants all engines with the same unit of measure.

    So just where it says “mm”, you do realize that there is written “meters”, “degrees”, “inch”, “RPM”, or any other unit of linear or circular measure.

    But be careful that when you then send data to the engine must be on the same drive that is used to write in the HAL boxes.


    As just two examples is how they make a decision, reasoning in engine revolutions or degrees to the place that in mm.

    The next two examples answer the question:
    “Considering that the Master has a maximum output frequency of Step 65 KHz”
    “And considering having an engine driver set to 256 microstep”
    “Which is the maximum speed of the engine output pin, in degrees and in revolutions per minute?”

    Max Speed in “degree”
    (for a stepper motor with 200 step per tourn and 256 microsteps)
    Motor = 200 steps / tourn
    Motor with microsteps = 200 x 256 = 51200 steps / tourn
    The same in degree = 51200 / 360 = 142.22 steps / degree

    Master max pulse frequency = 65500 pulses per second
    Motor max speed = 65500 / 142.22 = 461 degree / SEC (approx)
    Motor max speed = 461 x 60 sec = 27660 degree / min (approx)

    Max Speed in “tourns”
    (for a stepper motor with 200 step per tourn and 256 microsteps)
    Motor = 200 steps / tourn
    Motor with microsteps = 200 x 256 = 51200 steps / tourn

    Master max pulse frequency = 65500 pulses per second
    Motor max speed = 65500 / 51200 = 1.28 tourns / SEC (approx)
    Motor max speed = 1.28 x 60 sec = 76.8 tourns / min (approx)

  5. Luca says:

    I'm Luca : on my milling machine controlled by the master wanted to have the opportunity to start the spindle motor, connected through a ssr to an output pin, manually via a button to do the work with manual shifts. If I you connect this button to a separate power supply and the entry of the same ssr provocherei interference with the master?

    • Livio says:

      Add a 10k resistor in series with the output of the Master and then connecting to the opposite side (that goes toward the motor control) you can do what you want. However, suppose that the control of the motor driving both high impedance, if it is not you will need to lower the resistor a bit ', trance 1k.

      Or you should add two diodes.

      Difficult to better advise without knowing the components you use and how to connect them.

  6. Joseph says:

    Hello Livio, I ask you some information about the driving stepper and brushless.
    1) to drive a single stepper motor, for example a positioned king, how could I do? Do I have to use Theremino CNC? how could I send a command?
    2) They are holding a big brushless motor, as’ is a servant must always use in addition to the driver (type intended for Turnigy) also true servant card?
    3) if so where can I buy it? I do not think I saw it on store-ino.

    Thanks again for everything

    • Livio says:

      1) To fly one STEPPER you must use the master module and the application HAL. Then with any application you write a target value in millimeters (or degrees of rotation) in its Slot, and the stepper accelerates to top speed you've set HAL, then it slows down and stops at its destination. You could set destinations, and change even while the motor moves, writing a few lines in the application Theremino_Automation.

      2) The brushless motors are piloting the ESC board (for example Turnigy) and the Master Module. Then you have to open the HAL and set the output as Servant 16. Finally, it will move by changing the number in its slot by 0 to 1000.

      3) You do not use a card “servant” but a master module. The Master you find it on eBay (venditore maxtheremino), that of STORE-INO

  7. Joseph says:

    Thank you very much…. Chiarissimo as always.
    Good job

  8. Luca says:

    Hi, I'm Luca. I wanted to use to reset the axes of the inductive sensors. What kind of sensor should I take NPN or PNP? I have seen that feed with voltages from 6 to 30 volts and so I think the connection to the pins is not immediate… I wanted to know if the site there was a pattern of how to connect this type of sensor. Thank you

    • Livio says:

      You could use magnetic sensors (elements HALL) and calamitine.
      There are also going to 3.3 volts, for example,:
      – A1319
      – A1318
      – A1318
      – DRV5056
      – DRV5055

      There are others who go to 5 volts but then could be overcome with the signal i 3.3 volt of the inputs of Master and liquids should Add them a series resistor from 33k or a divider. here they are:
      In reality, even if made to 5 volts are also fine if you feed them with 3.3 Volt Master.


      Or you should write the theme song of the sensors you want to use, we investigate some’ and most likely also they work by feeding 5 volts. Or you look for someone to go 5 volts, There are for sure.

      • Luca says:

        Grazie.Sempre accurate and fast.

        • Anonymous says:

          Hello,I'm Luca. I took the Hall sensors to Arduino and even feeding them with work 3.3 Volts. My problem is how to connect between them the two sensors to reset the x and y axes which can be reset is done in a single operation. The slot for the reset is 33 but I can only attribute it to a pin.
          Thanks Luca

          • Livio says:

            It takes two 1N4148 diodes and a resistor 10k, to be placed close to all Master.

            The diodes must be in series with the signals of the two sensors and combine the input of the PIN associated with the slot 33, configured as DigIn.

            Then you have to figure out if the sensor signals go to zero volts when it will go arrivals, or if they go to 3.3 volts.

            IF YOU GO TO ZERO VOLT
            – The ties of the two diodes are turned to the sensors
            – The resistor is connected between the PIN entry and +3.3 volts (or you may configure the input as DigIn_PU and eliminate resistor).

            IF YOU ARE A 3.3 VOLT
            – The ties of the two diodes are turned to the point of union that goes PIN
            – The resistor is connected between the PIN input and GND
            – The Slot signal 33 It is changed by switching the values ​​of its MaxValue boxes and MinValue sull'HAL (MaxValue = 0 e MinValue = 1000)

            If you can not write here yet, or call on Skype or phone.

            • Luca says:

              Thank you,I procure the diodes and try

              • Luca says:

                Hello,I made the connections but I had problems with the type of sensor,meaning that the sensor does not take so “clean” but oscillates the pin value on-off thus tricking the zeroing procedure. I used the’ digital output of the sensor but does the same so… the sensor is this
                By controlling the output voltage value changes as the magnet approaches the central point

                • Livio says:

                  If you use a DigIN input should work and take to 1000 (or to zero) when you approach beyond a certain point. And the process of CNC application once heard him should stop.

                  Maybe you're working on the contrary. Check (with SlotViewer) that the slot of the signal 33 I'm going to go to zero when end of stroke both with an axis with the other, and returns to 1000 when both of them away from the end of stroke.

                  You should also try to get precise shots, changing the arrangement of the magnets and sensors.

                  And you should also avoid going to slam on the sensor if the truck does not stop immediately. To achieve this should not make them work but approaching from the side.

                  And you should also rotate the magnet in the best location and the best distance, until the switching is good and well repeatable. By moving the hand truck engines off, or the JOG CNC, and looking at the signal with the SlotViewer or SignalScope.

                  • Luca says:

                    I gave up the hall sensors because I have trouble regolarli.Pensavo use of mechanical sensors like the ones I made for Switches. I've wired normally open in parallel on a pin configured dig in writing on slot 33 setting val min 1000 val max 0 but when the sensor comes into contact does not stop( only manually reopening the contact snaps calibration). The calibration sequence would occur in a correct putting val max 1000 e val min 0 but in this case by starting the calibration carts go towards positive values( I did this test by manually trigger the sensors).Luca

                    • Luca says:

                      Im very sorry. I tried again and now everything funziona.Non know what a mess I had done before .Spero not I wasted time. Thank you. Luca

  9. lean fabrizio says:

    Hello Livio
    I would like to ask you if there is a way to control the stepper motors for using a cnc CNC Theremino and master above except as L298N driver, who need 4 inputs for controlling the motors instead of just step and dir. I ask this because I have different drivers of this advanced type and wanted to exploit them to do tests on the stepper.
    Thank you

    • Livio says:

      No, I'm sorry, but L298N are made for engines in continuous and can not drive the Stepper motors.

      • lean fabrizio says:

        Ok, Arduino was wondering why you can not fly it, however, using precisely 4 Pin… Li also sell for stepper up to second but in fact lacking the complementary l298 is difficult commandeered.
        Thanks for the quick reply as always.

        • Livio says:

          The problem is not fly it, that maybe in some way you could also make, but that module you can not connect to a stepper motor. That module is an H-bridge and serves to drive continuously engines, No stepper motors.


          I went to see better and in fact to that module can also be connected stepper motor but using them as if they were constantly engines, that is, adjusting them in speed and direction, but NOT in place.

          Copio from the module characteristics:

          “This motor control board is based on Dual H-Bridge driver L298N and allows to drive with two DC motors simplicity or a bipolar stepper motor with an operating voltage in the range between 5V and 35V, controlling the speed and direction.”

          In practice, with those cards you would turn a stepping motor with adjustable speed, but you lose the main characteristic of stepper motors, that is, the ability to always know how many steps you've done and then the exact location. And without the exact location of the CNC machines can not work.

          • lean fabrizio says:

            Explanation as always impeccable! Thank you!
            Leaving so by the CNC control for these drivers, Use only wanting to prove a stepping motor, specifically to make the twisting force testing (the classic test with the weight attached to get to test the real strength of a given voltage and motor current or even just to see if a motor is running or not), It would be difficult to run them with the master module or a simple thing you can do without hacking a day?
            My basic idea was to see if you could do to form the work that the driver performs the appropriate integrated L297, which takes note of the dir and step signals and handles them in order to drive the h bridge l298…
            These small cheap as drivers are widespread and perhaps may also be of interest to others to use them with this purpose, I do not know.
            Thanks again to availability

            • Livio says:

              “These small cheap as driver…”
              It does not seem just like that, There are drivers for steppers that cost about the same as the L298.
              And by spending just a little’ There are more drivers for stepper from 4 amperes in the L298 are compared ciofeche, look at this example:

              In the next email I write how to link them to the Master, even if what you get is crap compared to a true stepper driver.

              • lean fabrizio says:

                true, I also use it on my cnc driver 4 TB6560 axes, which now replace the new cnc with tb6600, but before I did I had used the couple L297 / l298
                The fact is that these had taken them a long time ago in support of another type material paying € 1.5 each, I took a dozen to keep them…I certainly do not recommend them even for cnc, you are definitely right

  10. Livio says:

    To drive the L298N say…

    Enabling pin 6, if we give logic as:
    Pin5=high, pin7 = low, motor A will start turning clockwise.
    Pin5=low, pin7 = high, motor A will start turning anticlockwise

    Pin5=high, pin7 = high, motor A will stop
    Pin5=low, pin7 = low, motor A will stop

    Enabling pin 11, if we give logic as:
    Pin10=high, pin12 = low, motor B will start turning clockwise
    Pin10=low, pin12 = high, motor B will start turning anticlockwise

    Pin10=high, pin12 = high, motor B will stop
    Pin10=low, pin12 = low, motor B will stop

    So you should fly it with a Master:

    – Enable Pin 6 the L298N with a Master Output Pin
    – Use a Master Output Pin connected to Pin 5 to determine the direction of the L298N
    – Use a Master Output Pin connected to Pin 7 the L298N to run it (with the PWM will change the speed)

    – Enable Pin 11 the L298N with a Master Output Pin
    – Use a Master Output Pin connected to Pin 10 to determine the direction of the L298N
    – Use a Master Output Pin connected to Pin 12 the L298N to run it (with the PWM will change the speed)

    Then the whole thing would not be controlled by the CNC application, but you'd need a special software to raise and lower the six pin of the Master in the right combinations out.

    How do you see the whole thing would become extremely complex and commit six of the Master PIN when using a normal driver it takes two. And in the end you would not even monitoring the position.

    So I would not waste my time.

    • lean fabrizio says:

      Ok, I got it, I trust your opinion. I give up and if anything, I use them, just to prove engines, Arduino just making him do movements preset in the sketch. Thanks again

  11. GIANNI CARRARO says:

    Hello Livio and happy Easter to all the staff.
    question: Possibly (in the cnc source program) change the return of one millimeter from the automatic zero setting of the z axis ?
    I made myself an optical reset device that errs by a few thousandths when probing .. With a 3d resin printer and an optical sensor .
    the problem is that the return would take longer because of the stroke I have of the feeler.
    possibly where should I edit this function with visual express?
    P.S in programming helps me a friend of mine…in all the rest I arrangio.arrriciao everyone and thank you

    • Livio says:

      Hello, you should press the button “Settings” (the last one on the bottom right) and then change the value “Compensation (mm)” of the panel “Calibrate Z”.

      If this does not solve the problem, write us another message explaining better what you are missing.

      Or you can modify the software to your liking with Visual Studio 2008 Express, but it won't be easy because the CNC application is very complex.

      • GIANNI CARRARO says:

        the compensation is used to reset the zero piece with respect to the fixed zero;I do the zero with compensation mm 0 on the probe-axis z touch and return of “1 mm” and it gives me a measure 1 mm.(-I wish I could increase that return to (ES 10 mm) and it gives me size 10.-this is because the testator's run is +- 10 mm, and if I immediately move the x y axes, I scrape the tool on the probe).then I go to touch the piece,I read the measure,I write it in compensation and you're done…every time I change the tool and go to touch it, then it always goes to the actual zero of the piece, regardless of the length of the tool.
        if you give me a tip where I can change that return mm,I try to edit with visual basic. grazieeee livio

        • Livio says:

          I have no idea how to modify the software to follow what you need, also because I can't understand what you need.

          Have you tried pressing the "Settings" button (the last one on the bottom right) and then change the value "Compensation (mm)”Of the“ Calibrate Z ”panel?

          Doing as I wrote to you doesn't work?

  12. GIANNI CARRARO says:

    and,works, edit me ” the zero of the piece zero correctly” but when the tool touches the sensor, it retracts by one millimeter… I would like to change that millimeter to 10 mm

    • GIANNI CARRARO says:

      I specify that the compensation I do in the negative + 1 mm( what retracts after probing

  13. Livio says:

    The variable you need is “CNC_CalFinalClearance”
    and is declared and initialized in the form “Module_CNC” to the line 173

    Here is how it is written:
    Friend CNC_CalFinalClearance As Single = 1 ‘ final movement fixed = 1 mm

    If you change it with 10 will move out of 10 mm.
    Too bad that the variable is also used for X, Y, A and B which will also move ten mm from the zero sensor.

    If you don't like it then you should declare a specific variable for the Z axis immediately after the other, as in the following example:

    Friend CNC_CalFinalClearance As Single = 1 ‘ final movement fixed = 1 mm
    Friend CNC_CalFinalClearanceZ As Single = 10 ‘ final movement fixed for Z axis = 10 mm

    And then replace it in two lines in the form “Module_ExecutionThread”

    – The line 546 that will become so
    CNC_Dest.z + = CNC_CalFinalClearanceZ * CalZDirectionPositiveNegative()

    – The line 650 that will become so
    CNC_Tip.z = CNC_CalZCompensation + CNC_CalFinalClearanceZ

    If you can't, write to us again

    • GIANNI CARRARO says:

      THANK YOU LIVIO.. you are always a security.. I envy you a lot .. so I always congratulate you.
      hello to all the staf and thanks

      • GIANNI CARRARO says:

        perfect.. I have changed all the lines you have indicated to me and everything works as you expected… grazieeeeee

  14. GIANNI CARRARO says:

    I try to put photos of my CNC

  15. Alexander says:

    Good morning
    My name is Alessandro thanks to you I immersed myself in this world.
    I am using theramino CNC with a 3 axes and I am very happy.
    Now I would have liked to try and build a robotic arm, but I note that on Robot Arm1 the maximum work area is 1000 x 500 mm.
    Ditto the LenZ settings are limited to 99 mm.
    It is possible to increase the working range.
    Thanks in advance for your kind attention

    • Livio says:

      To go beyond the 500 mm it would take motors from over 500 euro each, ie these:

      With normal servants you already have exaggerated rocking alone 30 cm. Inaccuracies of centimeters and rocking with a tendency to oscillations. By extending the arms a little more, everything oscillates and never stops.

      We are looking for suitable motors at reasonable prices and have also completely changed direction, we have totally eliminated 3D calculations and therefore also the RobotARM application. It was too difficult to adjust the parameters and if you use it you will know for yourself.

      So we're using a different system now, give positions manually, position by position, without any parameters to adjust and without 3D calculations.

      When we have obtained useful results we will publish them on this page:

      In the following video you can see the current experiments of an arm “Collaborative” con SmartMotors FeeTech:

      Programming is considerably easier than with the RobotArm application, you no longer have to adjust the parameters and angles of the arm (which was very difficult), but on the other hand it is no longer possible to follow a GCode or draw, just define positions one after the other.

      However, even with these motors the maximum arm length cannot go beyond 50 cm.
      We are looking for engines that can do more without costing insane amounts, if we find them we will publish them on the Smart Motors page

  16. Alexander says:

    But with stepper motors and a reduction of at least 1:10 you can't get anything a little bit’ more precise.
    I was thinking of 4 no 34 with M5 toothed belts to reduce play.
    So if I wanted to increase the limits of theremino Arm, you can't.

    • Livio says:

      If you use steppers with belts then you can do something more, but over a meter is practically impossible because steppers weigh a lot and those that are on the elbow and tip you should lift them with an exaggerated lever. Say “one meter” it's easy but try to do it and then you will realize what a meter actually is.

      When you have assembled it (and if he can lift his own weight) in two minutes we will change the maximum limit of the MaxViewArea box from 1000 mm to 10000 mm and the LenZ from 99 to 9999

  17. Anonymous says:

    Ok thank you

  18. Vincenzo says:

    Hello Livio, I tried Theremino ImgGreyscaleToGcode.
    The spindle speed appears to be fixed at 20000. It would be convenient to be able to set it up.
    Then I would write it before the M3 to give the spindle time to pick up speed.

    • Livio says:

      Sorry, we don't have time to tweak all the small apps for details like this. There are sources on purpose and anyone could do it.

      However, to fix your problem immediately, just set “Speed locked” in the CNC application and then adjust the Speed ​​box as you like. Or edit the Gcode and change the 20000 in whatever you want and then save it (you can do it directly with the CNC application in a snap).

  19. Anonymous says:

    No problem ,so already done.
    It can serve others as a help.

  20. Andrea says:

    Good evening, a couple of years ago i built a small cnc 3 axes controlled by theremino.
    Now I would like to replace the cutter with a laser module. How should I connect it to the system?.
    I can use the tb6560 driver that controls the Z axis?

    • Livio says:

      For laser modules, the stepper motor driver is not needed.

      You must only:
      – connect GND of the Master to GND of the laser module
      – connect the master PIN output signal to the laser start signal
      – configure the output of the PIN used as DigOut (lit / turned off)
      – or as Pwm16 (to adjust the power)

      Normally lasers operate with a command signal from 3.3 like ours and they can also work in PWM but not necessarily all are like this.

      If you have any doubts, ask the manufacturer or search the internet what signal your laser module wants.

      If you have any doubts, do not connect it and do not give voltage, Power lasers are expensive and delicate. They can break in a microsecond even just because it's Thursday and they've woken up badly.

  21. Luca Auctions says:

    Hi, I'm Luca. For four years now I use Theremino cnc with a cutter 3 axes plus rotary axis. I have always updated software versions. I tried the latest version 5.3 and it goes really well even on circular milling where the previous versions, especially at high speed, deviated from the set path. The problem I've encountered is that if I open the Hal screen to make speed or acceleration adjustments,as soon as I click on the list of pins to enter the adjustment menu I hear the engines taking ghost steps. And’ the first time it happens to me. Hal's screen is also a bit strange ,in the sense that it has transparent parts that let you see the screen of Thereminocnc. I use Windows 7. I used the version before 5.0 but I had to put an older version of the’ Hal why’ I had the same problem.

    • Livio says:

      Really strange, we haven't changed anything in the HAL that can do these things..
      You could call me on Skype (you can look for me as livio_enrico) and we see it together?
      Or, if you don't use Skype, write here again and I will send you my phone.

      • Luca Auctions says:

        Hello,I don't use Skype,but today I managed to make a video where you can see the problem. I can send it to you by mail? What I noticed (and that does not happen with previous versions ) is that when I click on the pin list to open the adjustment panels the fps repeat locks (without giving error) and then it starts again and it is at that moment there’ that the motor of the axis on which I had clicked takes steps. Thank you

  22. Hello Livio,
    I introduce myself, my name is Davide Lorusso, I would like to congratulate you on this project!!!
    I state that I already have’ a cnc 3 axes and I've been through for a while’ from linux cnc to your system, and I applied theremino automation to replace an old telemecanique plc.
    I'm making an automation for the eyewear industry, I should interface a small cnc system 3 planks with a hinge drowning system (it looks complicated but it is two cylinders and a heating system);
    and’ possible , after carrying out a drilling or milling operation, start an automatic work cycle (in my case move the sled to the drowning position and perform it)?
    Thank you

    • theremino says:

      I think you should use axes A and B
      We will meditate a little’ and do various tests.
      I should understand what you move the sled with (other steppers ?)
      But two other engines (A and B) you'll be enough?

      If you do not succeed with the only CNC application we have ready a new version of Theremino CNC (that we will publish shortly) controllable with commands from other applications. So you could have all the functions of a real procedural program (Theremino Automation), read sensors, move other engines, piloting solenoids, pronounce messages, perform functions on voice commands, read Barcode or QRcode, perform timings, Loop, counts and controls of all kinds. And then at the right times guide the application Theremino CNC with all its functions as if you did it manually, and also load different GCodes and run them from the beginning or run individual lines.

      Eventually if you need we will also feel for Skype or by phone, Hello.

      • Thank you for your quick reply!!
        I move the slide with a pneumatic cylinder without a stem, in essence the cycle would be this:press start, Theremino cnc performs drilling, the holes or cmq the seat for the hinge in milling (depends on the shape of the anchor);
        the cnc goes into position of “Home” active theremino Automation that starts me the drowning cycle:forward-cylinder slide drowning down-cooling-cylinder drowning on (obviously there are the various sensors (Fc,proxy etc)).
        I think that from the description the new theremino cnc will be’ the top for this application.. you have a version “Beta” to be anticipated in order to test it?
        Thanks again

        • Livio says:

          Yes I can send you the version now 5.4.6 which we will then publish as a Version 5.4

          You should search for me on Skype as livio_enrico
          With Skype, transferring programs is easy, otherwise the mail deletes them. And it does even if you compress them in ZIP. They open ZIPps and delete everything that contains executable programs.

          Or you could go to this section, read my phone number and call me (from 09 at 19 including holidays)

          I point out, however, that to use the commands from the outside you should then program in the simple language of our application Theremino Automation:

          If you have a little’ of experience in programming will be easy for you, otherwise you should find someone who can help you.

Leave a Reply

Your email address will not be published.