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. freddy says:

    Hi!! i was looking for your excellent work “robotic arm”, it’s amazing; so i have a question, i would like construct this but whit the atmega8535, the reason is that i have the starterkit stk500 offer by atmel, this startedkit don’t have the comunications through usb have only serial. How can comunicate the software “Theremino_Arm” through serial rs232? it’s possible?
    thanks and congratulations for yours works!!

    • Livio says:

      The theremino system does not communicates via rs232 but only via USB, SLOTS, UDP, or OSC. In the pages you can find all the necessary informations, and so you may use a atmega but you will definitely put a very long time to program the firmware. We do not know the ATMEL processors and thus we can not help you.

  2. Mario says:

    Hello everyone!
    Mi chiamo Mario e già da qualche tempo ho “adottato” il braccio robotico “Theremino” in my lab and I am literally ECSTATIC! You write just “adottato”, aside from the fact that it is an OPEN SOURCE project, but because you can really tell that “became part of his interests” Once “entered” in the project) And’ a device easy to build, and gives PLENTY of OPPORTUNITY’ to learn something more about the Robotics and enslavements! This was mainly thanks to Theremino_ARM and, They also freely downloadable from the site and Open Source!

    Myself I dabbled in its construction, learning a lot of new and interesting things, mainly thanks to the whole team, in particular by Livius. Very interesting the mechanical part, easy to understand and effective INCREDIBLE, considering the simplicity of the structure. Just look at the small videos featured on the site, to stay immediately AMAZED by the precision and REPEATABILITY’ in its operation. I tried the hardware and I can confirm that the speed of this video is not rigged!

    Really recommend anyone to undertake the construction, in order to “enjoy” personally the satisfactions that can give already as it is and see the enormous potential that this little project opens before your eyes, with a disarming simplicity!

    greetings and thank you all for your commitment.

  3. Paul says:

    Hello Livio,
    I have a few questions for you:

    1) I had a look at the software system theremino, I understand both in VB (personalmetne prefer the c ), but I did not understand how RAD environment was developed ? I don't think Visual Studio because I did not recognize the definition of project. I think codeblock or something similar ...

    2) It's not clear to me how do I create custom programs to send to card. Should I use VB ? There is an interpreter ? Can I create software to post the pic in other languages

    3) I understand that you will need to download material by interface from Microchip, but it's not really clear. I haven't seen tutorials on (If I would gladly give a hand since I start from neophyte with this card)

    4) You told me that you no longer need the slave for arm, you just need the master, can you confirm ? It is not to make the order 2 times.

    5) On the post I read that you are implementing the software 2.7 for the delta robots. Are you also working on u prototype ?

    6) In software version you see the preview of the image you want to print. ;to if I want to start with a new image, How do I ?I don't understand how it is possible to reverse the process. Probably need a little program in the mail like a notepad that translate the pixel coordinate positions Gcode. But I haven't seen it.

    • Livio says:

      Hello, answer your questions one by one:

      1) Theremino system software is written with VisualStudio in VbNet because such tests proved the fastest. But if you prefer the C is easy to convert it in CSharp, using one of the many converters that you find on the net (such as SharpDevelop) In practice changes nothing, in CSharp there are semicolons and execution is only slightly slower because of the cumbersome handling of strings.

      If you want you can check for yourself the VbNet speed, CSharp, C++ and VB6 using the examples on this page: (“Interprocess Communications”)

      After downloading the examples you can open them with VisualStudioExpress2010 or VisualStudioExpress2008, Verify that do exactly the same things, rebuild them, try them in 32 bits and 64 bits and you will always find that the VbNet is language faster and then, to get off, There are CSharp, C++ and finally VB6. The speed difference you notice mainly complex operations on strings and arrays.

      On this page you can read the details that make the VbNet above CSharp (and also well above the C++):

      However, starting from the examples of “Interprocess Communications” You can write your own programs in any language you want because Theremino is an open system and can be accessed through the slots. (of course it will be more difficult than using our software already written, you will need to learn a lot but, Since all our sources are in open source, You can do it)

      2) You don't have to “Create custom programs to send to card” Theremino the system operates in Real Time, you have a direct link between high level applications and hardware, of all complications of the hardware shall bear the HAL program and you can focus on high level aspects of your project, without programming anything.

      3) You don't need to download “…interface material from Microchip…” everything you need to communicate with the hardware is ready and working immediately, just plug in the USB and launch the HAL.

      4) I confirm that just the Master to make a six-axis robotic arm up.

      5) Soon we will publish the Robot_Arm program that computes the inverse kinematics for the arms of type “SCARA” and “DELTA” Regarding the prototypes the SCARA is simple while the deltas are extremely sensitive to the length of the arms and small engine connecting rods. We still haven't found a good setup for the DELTA that in this case you should experience alone. You can also do simulations with only software… the goal is to maximize the range of servo rotation on a small work area so as to maximize the accuracy.

      6) To produce the Gcode using 3D programs like “Mastercam” or “SolidWorks” or programs for PCBs as “Eagle or conversion from the drawings as “Wintopo””

      We are preparing a program to convert images to stretch into GCode, It's called “Theremino_ImgToGcode”, lacks many useful commands and its controls are confused but, If you use it the right way, works fine and there is nothing else like it on the net.

      You can download a pre-release from here:

      Then you have to do:
      “LoadImage” an image composed of STROKES (not a landscape)
      “Rosenfeld” to get the contours
      “Vectorize” to produce the GCode


  4. Paul says:

    Finally you upgrade on the latest tests I've done on the Arduino board and my little experimental arm (essential, just for conceptual testing done within a weekend) now that I have it and I cannot throw it

    The purpose was to test the quality of module interfacing Arduino UNO from PC via direct servo control keyboard. I must make a correction on the Arduino. A user is able to interface the keyboard using the pins of communication 7 and 8 of the card, However the result was disappointing for two aspects:

    – The system travels to the baud rate of the keyboard, so if you set high precision small steps is jerky. By setting a higher range reduces the accuracy but the movement is more fluid. But at this point it does not serve any longer.

    – The controls are always sequential, so even by broadcasting directly from very high speed card (1/2 second of delay) the engines always move one after another. The movement is never perfectly fluid, but always a little jerky, with the result that a circle is never perfect, not even remotely. Transfer stand-alone moviemtni processing algorithms with integral formulas with few bytes are not for everyone.

    – KeyboardPS2 libraries contain only some keys (arrows, function key 1-12, of, pageAbout, pagegiu, little else) The library can be implemented but loses compatibility with the standard library keyboardPS2 (in later versions always re-implement it, unless you put hand directly to the network through the community)

    I'm having trouble between direct supply via USB and via battery, but I do not understand why (with battery keyboard not working) I will carry out tests to see why. Then I'm curious to repeat all tests with Theremino !

    I realize that you can do a lot of optimizations. How often have you commented on your posts only those who want to learn can understand what motivates us to study these control systems, simplifying as much as possible access to all. I agree that the old PC were much more open, Today everything is armored as everything is purely commercial. But we don't we don't quit !


  5. Paul says:

    Hello Livio,

    I tried the program that you have sent for vectorizing images and transformation into Gcode but often gives me this error:

    Unhandled exception…
    ************** Exception text **************
    System. ComponentModel. Win32Exception: No application associated with the specified file for this operation
    in System Diagnostics. StartWithShellExecuteEx Process.(ProcessStartInfo startInfo)
    Process. Start in System Diagnostics.()
    Process. Start in System Diagnostics.(ProcessStartInfo startInfo)
    Process. Start in System Diagnostics.(String fileName)
    at Theremino_ImgToGcode. Module_Gcode. Finish()

    • Livio says:

      This and’ certainly due to the fact that do not have associated files GC to a viewing program. Try doing double click on a file and Windows should confirm that there is no association.

      As already’ I wrote I would recommend to use “Metacut” that shows the GCode very well but, given that and’ a program not freeeware and it’ difficult to install it, I would recommend you, For now, Associate GC file to Notepad or WordPad.

      The Theremino_IngToGcode after producing the GCode tries to have access to a fast favorite with program control yourself, If this seems superfluous will add the chance’ to disable it in the next release.

      Grazie per aver segnalato questo comportamento, se possibile cercheremo di evitare l’errore anche con file GCode non associati.

  6. Livio says:

    Nancy has written:
    Dear Ms. Livio, Cappie and I are building our own robot arm but are running into issues getting it to draw well. What servos have been tried? from
    I can see HXT900 and TGY930 but not sure what was originally tried going from top to bottom of picture
    How can we reduce the “fuzzy” issue of our robot arm drawings like you did?

    Dear Nancy,
    It is good to consider, as the center of the problem, the inaccuracy in the uS.

    The dead band of the servos (in uS) and the instability of the electronic pulses (in uS) produces the same result: a incorrect position of the writing tip.

    The magnitude of the errors
    The entire writing tip excursion produced by a servo can be, for example, about 300 mm (depending on the length of the arms and other variables)

    The whole excursion takes place in about 1000 uS variation of the pulse to the servo.

    So if a servo has a 3 uS dead-band, we calculate 1000 uS / 3 uS = 300 positions

    Then a 300 mm excursion divided in 300 parts produces 1 mm of inaccuracy.

    Error sources
    The 1 mm imprecision was only theoretical but in practice:
    – with a 3uS declared servo
    – with a command signal not particularly stable,
    – with a heavy mechanical
    – in the presence of mechanical friction
    It is not strange to obtain inaccuracies of some millimeter that are horrible to see.

    Servo precision
    The dead-band declared by the servo producers is measured with zero force.
    When a servo must contrast the mechanical friction and the weight of the mechanical parts the dead band increases dramatically.
    I think that under normal work your 3uS servo could have dead band of about 10 or 15 uS

    Instead the TGY930 (called also MG930) has a “measured and real” dead band of about 1uS (about 10 or 15 times better)

    I have not tested the DS8231 but the producer says “5900 steps on 120 degree” that means a dead-band better then 0.2 uS.

    Electronic signal precision
    The servo are driven by pulses that must be generated at a frequency of about 50 per second it is not important if they are 40 or 70 per second but the frequency must be stable.

    The pulses are large from about 500 uS to about 1500 uS so the complete rotation of the servo (normally about 180 degree) is produced by a 1000 uS pulse excursion.

    It is very important that the servo pulses are produced with a very stable firmware algorithm

    The normal Arduino servo signals are relatively stable (many uS of imprecision) (this can be improved a little rewriting the whole microcontroller firmware with a programmer and not using the normal sketch programming)

    Instead the Theremino servo signals are absolutely stable because they are generated by a highly optimized firmware, syncronized by a interrupt signal that comes directly from the microcontroller clock chrystal.

    Mitigate the dead-band problems
    1) Reduce the arm lenghts
    2) Reduce the mechanical weight (simple and minimal mechanical – like my arm – is better)
    3) Eliminate any mechanical friction (simple and minimal mechanical parts are better)
    4) Use only servo with metal stud and dual bearings
    5) Use the scara configuration (the tip position depends only by 2 servant – not 3 servant)

    Measuring the real servo dead-band
    You can measure the dead band of a servo attaching a long arm to it (about 30 cm)
    The servo must be driven with a stable signal (not moving)
    The servo must be tight in a clamp
    Then you push a little the servo arm clockwise and then anticlockwise with your hand and measure the mm of deviation at the end of the long arm.
    Then with a proportion, considering length of the arm and the corresponding terminal circumference and a 180 degree of rotation that is produced by about 1000 uS of signal change you can calculate the real dead-band of the servo.

  7. Livio says:

    Leo ha scritto:
    Se in ogni joint posiziono due servo identici, di cui uno con il funzionamento in contro-fase (fili del potenziometro interno invertiti), dovrei ottenere un aumento della coppia e una riduzione degli errori.

    Lo hanno già provato, It takes minimum linearity in servo internal references so that in some areas the two servo strive against each other and lose all power to quarrel among themselves. And tremble even.

    They also discovered that the servos are different from each other and rock fall to make them go exactly together is practically impossible.

    The improvement of accuracy obtainable would still be little (If you add two noises it is halved but becomes 0.7 – square root of 2) and the doubling of weight you would eat all the advantages.

    Strength in comparison
    To improve the accuracy (and the force of at least 6 times) I would try the DS8231

    According to the characteristics have a force even less of 930 but as the area is dead “non-existent” the force “actually usable” becomes vastly greater than that of 930

    Dead zone compared
    If you try to push sideways one servant 930 you see that before he starts to fight with full force has rotated almost a degree.

    The servo DS8231 (at least according to what they promise) give full force now and (If you do not exceed their 1.26 Kg/cm) not rotate even a hundredth of a degree.

    – the TGY930 correct to 60 Hertz
    – the DS8231 correct to 250 Mega Hertz

    The huge difference in speed of DS8231 makes the correction can correct much better, even minimal movements, never shake.

  8. Paul says:

    Good morning everyone, I would like a clarification about files to send to theremino arm to draw silhouettes (2D). Here's what do I do:
    1. drawing my outline in 2D > Save to DXF ( release 12 )
    2. amount on DXF in ACE converter 3.20 > Save the converted file in NC
    3. Start Theremino Robotic Arm 3.4 > load the file NC > RUN > does not simulate any movement.
    Let me start by saying that the sample files included in your sw work well, but I want to produce something of my, What is wrong ? What data are missing to my files to start the simulation ?
    Thanks for your attention.

    • Livio says:

      File probably NC is not raised well.
      Are you using the latest version of RobotArm? (early versions didn't read some formats)
      Could you send me a NC file to check? (in engineering at sign theremino dot com)

      I would recommend though to follow a simpler:
      – Open
      – Download “Theremino ImgToGcode”.
      – Use it as described on the download page.

      You may also ask for advice to Alexei (Alessio. righteous at sign wetteruseful dot it)
      that often makes these conversions.

      • Paul says:

        Hello Livio,
        I fixed the catch Gcode, I missed the start and end process instructions.
        The latest vers. the RobotArm is the 3.4 ?
        I'm using very powerful servants of which I only remember the acronym 995 and the card (master) disconnects very often, opt for a condenser (about master) connected to 2 free pin of the servant > If you read something wrong let me know !!
        Finally I leave my very positive opinion about the Theremino robot arm, both the hardware and software system, very practical and efficient.
        Derivo from Pololu world with satisfaction but a lot of trouble to solve compared to Theremino, The arduino use it casually for applications beyond Robotics and servo motors and management > so for me the winner is Theremino.
        A greeting, Until next time.

        • Livio says:

          Yes, the version 3.4 is the latest (from a look at the website and download the latest version)

          It would be better not to use powerful servos because they are very inaccurate (dead band wide and then exaggerated arm tremors) It would be better to use those indicated in our sensor page (TGY930 or MG930)

          It is said that with a capacitor you do, You may add an externally powered usb hub with power supply 5 Volts, This is the cleanest way to decouple from the PC power supply.

          Thanks for the compliments, If you need anything ask smoothly.

  9. Stefano says:

    SIG. Livio good morning and happy new year…
    I was impressed with the ease of theremino, I'm supposed to drive a relay from VB6.
    I had a look at the codes present in the section Foundation, and in particular to VB6 code,
    But having to only piloting an exit and having to run on a Windows system 7 to 64 bit, I was wondering if there was an easier way to use it as a simple ON/OFF usb interface, without troubling the FileMapping.
    Kind regards

    • Livio says:

      Can I do that but I predict a long and hard work.

      If there is based on the functions of reading and writing of your USB (that are in the application HAL) You should rewrite a lot of software. Communicate with the USB is not easy, are many classes, split into many files. Transplant needed in VB6 would require months, even for us who are familiar with the system.

      I would recommend then to consider the application at HAL as a “driver”, that allows you to communicate with our modules.

      In fact the HAL behaves exactly like a driver, but we preferred the format “application”, to allow easy working parameters, don't pollute the system registry, does not require installation and restart your computer and allow you to move files and copy them to wherever you want.

      The application also runs on Windows7 64 bit HAL and not have to worry of FileMapping (slots), they are fast. You can write and read hundreds of slots, 500 you want per second and CPU almost does not realize it.

      Thanks to slots everything becomes easy, slotless Ouch Ouch Ouch…

      • Stefano says:

        Thank you for your kind reply.
        I understand, however, that it would be very easy to create a simple script using ThereminoScript to control a digital output.
        At this point I could then run the script to the task from the main application.
        But even using ThereminoScript it is always necessary that HAL is running?
        If so, It is possible it is running without active GUI so that the end user cannot go “pasticciarci” inside?
        Thank you for your kindness,
        Kind regards

  10. Livio says:

    The script should not serve you if you already have the software in VB6. You could simply add the form we have prepared for the VB6 and call its simple functions: Initializes / ScriviSlot / LeggiSlot.

    The HAL must be running.
    You can minimize it and then close it, so when you launch will be minimized.
    Or with a little work you could modify its software and make a special version that does not display the.
    In this way you could still use the normal HAL to make adjustments and instead for the final operation, launch the invisible one (possibly adding to the beginning the function that prevents multiple executions).
    I (for various reasons) I would recommend you use VisualStudio2008_express, but you could also use the 2010 or the 2012 (they are all freeware, kindly donated by Microsoft)
    If you can't tell me and I'll help you to make this change.

    It might also be a good idea to read the command line and don't show if it says “/Hidewindow” or something.

  11. Fabrizio says:

    Salve. I wanted to ask you a question about the purchase of MASTER and SLAVE modules SERVANT.
    shipping costs cannot be considered for a package including both the master and the slave servant…to save more on shipping. I would spend 44.90 because shipping costs (by 10 Euro) are considered separately for the two modules…in fact I could save 10 euros if I pay just one shipping cost of both modules. Thanks in advance

    • Livio says:

      We do not sell Theremino system, We explain only “How do you”.

      If you want to save you pay attention to the fact that most likely the slave servant won't do. The Master module already has six pins that can do everything and can drive even the servant. There is no difference between pins of master and Servant.

      So if you don't need more than six pins you can save about 15 euros.

      If you need only the Master could ask Alessio doing some master for friends. He mounts them manually, or you could send a KIT to weld and you should give him little more than the cost of the components. Also the shipping would be less:

      • Fabrizio says:

        Then to make the robotic arm could also use only the pin of the master module ?
        If it were possible the connections as would be made with the single master module ?
        Sorry for these questions but I am a neophyte regarding Robotics

        • Livio says:

          Certainly, You can use only Master for controlling up to six Servo.
          For links you do that:
          First servant on PIN 1
          Second servo on PIN 2
          See pictures of the master
          Check out page 2 Master datasheet: Masterdil-V3 _ Datasheet_ITA this page:

          Then you must set the pins to 1 to 4 (If you're using 4 servant) ThereminoHAL software, as Servo_16 (and you have to keep alive the Theremino HAL )

          In the program ThereminoARM the value FirstSlot must match the slots on the first PIN of the HAL,
          If they don't match the correct HAl or ThereminoARM

  12. Fabrizio says:

    Hello Mr Livio I wanted to ask you a question about servos…I have bought ,instead of tunigy TGY 930, high tech HS225BB servos that I seem like good servant ( 0.14 sec/60° , output torque: 3.9 do not differ much from the size of just tunigy that cost a little more (16,00€) What do you think of these servo ? Are a good replacement ?

    • Livio says:

      As already explained, All servo tested so far have a dead-band wide, usually from 5 at 10 times greater than the 930.

      Given that manufacturers say so many nice things of their servant, but they look good by specifying “with precision” the dead band, the only way to know is to put a toothpick along thirty centimeters and then move him micrometrically, to see which is the slightest shift (on a ruler in place 90 degrees at the bottom of the stick). Then to calculate the dead band, We take into account that the servos are about 180 degrees in 1000 uS, or something, and with a little’ of geometry to get there.
      But even without calculation, It's obvious that the 930 move the tip of the toothpick PAL tiny (about 10 for mm) and that all other servant, they make “leaps” of nearly a millimeter at a time. And many servant “so good” even worse.

      Our needs (If you want to write straight), are very different from moving a rudder of an airplane. So nobody gets hot too if the servos have a dead band pitiful.

      I'm sorry I can't tell you if the HS225BB are fine, but I'm pretty sure (as regards the dead band). are more or less the same as the HTX900 that cost two euros.

      If you measure with a toothpick and ruler, write here as they go for the good of all.


      Keep in mind that some servant “so good” They starting currents so exaggerated that they drop the power and stop the USB communication. In many cases, an electrolytic 470 UF may suffice, but with some servo there is no hope and it would require a separate power supply (to give with a USB HUB, powered by 5 Volt external power supply). Or you should use a current limiter, as explained here:
      Useful information here:

      Hello Livio

  13. Fabrizio says:

    excuse me as I would like to make the robotic arm but I do have the coupon that I mean master arm comada dil but then I need the program to program the pic 24 or nn serve ??? just do the coupon and I start with theremino arm and work

    • Livio says:

      the modules are programmed, attack them and they work, instead if you do them you have to program them.
      To program you need a programmer PicKit2 or PicKit3 (on eBay there are)
      The PicKit3 are the latest to get better but the PicKit2 cost less.
      Finally you have to download the HEX file and write it to the PIC.

  14. Fabrizio says:

    the EXE file where I can find ?

  15. Fabrizio says:

    where can I buy theremino ?????

  16. Fabrizio says:

    Another question but theremino can work with any motor or need to force that pitch psasso because I also have scooters and scooters of spampanti normal thermino fuzonare could do with them sape voleo

    • Livio says:

      For now there are only the Servo outputs
      We are preparing the pin type “Stepper” and when ready, simply replace the firmware.

      But while the Servant attacks them and go, Steppers also require driving circuits and a supply of 12, 24 or 48 Volts.

      As the driver circuit I suggest a Pololu A4988, rediculously, have the microstep, they adjust and fly to 4 wires (The swindles in 6 wires are much worse for reverse emf currents issues)

      Please note however that the firmware for the pin Stepper is not ready yet, It might take another month or two to finish it. fifteen days, If all goes well.

  17. Fabrizio says:

    sorry I did order but written in preparation for being ordered 02 08 2014 Why is it still in preparation and nn tells me where it is or if you know when contrasegnio payment ariva nn

  18. FABRIZIO says:

    SCS if I make all ste questions because we want to make a project do anything nn I understand very well thereminio work only with scooters here from model sport or work even with the stepper motors can also work in thereminio 3 d

    • Livio says:

      What you're asking is possible but very difficult to achieve.
      We have already answered about search engines “Stepper” but clearly these topics are familiar to you, so I guess I do 3D, Right now, It's too complex. I would recommend you to start making friends with the system Theremino, the slots, the application HAL. the Master and the various possibilities of InOut, using simple sensors and actuators. We will try to help you as much as possible, ask away here or write me at “Engineering at sign theremino dot com” or call me on skype as: livio_enrico

  19. Fabrizio says:

    excuse me, I mean the firmware project for the pin Stepper you said 15 days just how do I know that I am most interested lavete did for my robot for now, then maybe I turn that into a nice robotic arm to create things icesioni work on fibreboard and Ta other things …. I would do this because something like that you put a picture of a mause makes a mause worked no carved or maybe a igranaggio na Crown or some piece of plastic in the shape of a padlock or key and so on … I'd like to do that it takes a while but I'll do it before I'll work the plastic or fibreboard and later iron or laluminio I know it something difficult in fact nn are just my cousin that I got from a hand that he did a drill press controlled by pc crato everything from him with engines steper works there with the cutters or can Pierce like a normal drill.

    • Livio says:

      It is said that it takes 15 days, maybe even months if there are going to be hitches. When they are ready they will write from all sides and you will for sure. Keep an eye on the page for wiring diagrams, the new firmware will drain from there.

      Meanwhile build the mechanics you're talking about, I am sure it takes you much longer to make a functioning mechanics that we finish the firmware, I'll explain why….

      First for what you want to do a robotic arm is not good, do you have to make a CNC milling machine. A robotic arm has the stiffness needed to do a good job at one-hundredth of a millimeter but would, under the best conditions, many millimeters of error. So after having worked for months, you'd end up with a cutter that can only do soft wood or plastic and without any precision. Anything printed circuit boards, No aluminum, nothing dies for plastic and much less copper or iron.

      What you want to build is called CNC mill and build such a machine (running) It's much harder than it looks. All the prototypes of our system were done with the CNC mill, but before he could do something good we worked for about six months. Before it comes to the mechanics, then to redo from scratch, then to break dozens of tips and finally learn everything you need, even software, in order to make it work a minimum and start doing something useful.

      Plan in advance several months of trials and research, If you don't have a lot of patience and a great deal of time, I suggest you drop this ASAP. I'm not exaggerating, It is humanly impossible to learn everything you need in less than three months and that even if you buy the mechanics over. If then you also have to design and build the mechanics yourself go ahead the first PCB (they're easiest of 3D) you're going to get them a year from now.

      We drove from a mechanics Proxxon and not from scratch, This facilitated quite mechanical but the pure mechanical construction is only part. It takes drivers for steppers (better ones with microstep), a nice sturdy feeder, the Dremel (or similar) secure and controlled on off, chip vacuum…


  20. Livio says:

    Armando asked:
    …a working circuit of which I have difficulties in achieving… This is the FANTASTIC TRIGGER IV of Ferruccio Badua. Rotor I worked personally. I would also like a magnetic polarity detector (an LED lights near the north face of the magnet) with Hall sensor. An oscillator that drivers with Mosfet a coil that pushes a rotor with magnets for high RPM.

    First of all let's take a look at the fantastic TRIGGER Badua:

    With the system Theremino not serve i piastroni filled with components of these videos. It takes a Master, a Mosfet drivers, a tour and many standard cables, to link the various components (even to sacrifice, by cutting and spellandoli). You don't even need a PCB because the very structure of the engine will act as support for the elements and magnetic field meter for traction coils.

    Connect the components with the wires, you download software HAL and immediately begins to see anything that moves and turns.

    Simple trigger as in the videos of Badua are achievable with the single application HAL, without writing a single line of software. You can, for example,, turn on an led when the magnetic field exceeds a certain threshold and can do simple trigger.

    After a while’ of software could perform complex operations such as, for example,, drive multiple reels with different phase shifts. With this software you can do much more than what he can do on the TRIGGER plate IV of Badua, How big and full of components…

    References to pages on our site
    The masters are here:

    And can be purchased here:

    The application HAL, to communicate with the Master module and to make the first experiments are here:

    The leads are here:

    The halls are here:

    A driver can drive up to 4 coils are here:

    To join all you can use a small program in ThereminoScript:

    The result will be the maximum speed and efficiency, If you want efficient engines we recommend the brushless motors that have incredible powers and rediculously:

    Sample videos
    Here you can see some examples with magnetic sensors and motors:

    These examples were made over a year ago and give the impression of having to buy in addition to the Master module, even some modules Servant, but the new masters have up to six pins generic In Out and then with a single Master does everything.

    How to proceed
    (1) Obtain the necessary components:
    – 1 Master :
    – 1 or 2 Hall elements :
    – 1 mosfet drivers :
    – Many connecting wires :
    – 1 power supply bench 12 volts
    – Some coils and magnets

    (2) Study thoroughly, maybe even with a friend who knows how to write simple software

    (3) During the first achievements We recommend that you, before you turn on and connect the master USB to send us some pictures, with details of the links.

    Efficiency of a motor home
    Because the system Theremino, the fastest hardware-software Exchange is around 500-800 Hz. And since such an engine must have at least one coil. The maximum speed of rotation should be 500 * 60 = 30000 RPM (revolutions per minute)

    In practice, however,, If you want to use two or four reels and want the software can monitor even phase shifts, you will have to further limit the maximum speed. I wouldn't call it then as a maximum speed 1000 RPM.

    An engine “Smart” (using software and hardware means), as slow and inefficient, has the great advantage that it always knows its location, Why is the software itself that moves step by step.

    With stepper motors, exceeded a certain effort or some acceleration, the engine “shells” and you lose distance. Instead with a motor “Smart”, When the engine fails, the software (If well written) can you realising it and wait for him.

    For pleasure, We don't talk about “Magnetic motors” and “Energy from nothing” !!!”
    We don't want to in any way promote the myths and hoaxes. Just a little scientific knowledge to know that free energy, perpetual motion and magnetic motors are Galactic bales. Who would be so ignorant as to have these doubts, You school soon, for her sake. The following videos can help:


  21. Leonardo Abbruzzese says:

    Hi, You may need to list all the materials to build the robot arm?Thank you

  22. Emilio says:

    Good morning,
    I just recently discovered the system Theremino, I found that quite wonderful for design and simplicity (congratulations!!!!).
    Given that I have no experience of robotic achievements, I would use the Theremino Master to pilot a linear motion system, that will enable me to make a move straight out of a small object (very low weight) over distances of a few centimetres with a precision indicative less than half a millimeter.
    I wanted to take advantage of your experience to ask whether there is on the market, low cost, something ready, or otherwise requiring only a minimum of mechanical adaptations.
    Thanks in advance for any suggestion.

    • Livio says:

      For what you need can do no better than a “Servant” (servo motors for model airplanes, No stepper motors, nor brushless motors or continues)

      Servos are directly flyable (up to 6 at the same time) from a Master unit that you buy here:

      There are linear servos (but be careful which are tiny, much smaller than it looks from the images and then could have a run too short)

      I'd use normal servo with a rod or with a Ribbon wrapped around a pivot, to pull/push a sled. Normal HXT900 are fine but for more precision you could use the TGY900. You'll get it from HobbyKing.

      Both the HXT900 that the TGY930 are surprisingly powerful, then you will have no problem of weight to move. In case of need there is the MG958 that for little more than ten Euro lifts (and breaks) almost everything, including itself. But don't take the servant too powerful if you don't really need, are less accurate and could consume too much current, making it difficult to feed them. (always better to feed only from USB, Perhaps with a 1000uF Electrolytic Capacitor for input and do not use external power supplies)

      The connecting rod that pulls/pushes the sled could be (How do you often in model airplanes) a simple piece of wire bent at 90 degrees and inserted into one of the holes of the various nylon cruises that are always attached to the servo. The sled, If you can't find any better, may have a potentiometer “slider” deprived of the whole electrical part (try to find one that has a precise and smooth ride)

      A tape (around a pivot) pulling and pushing is inherently linear., instead a connecting rod is not. If linearity is not enough you can easily correct it with two lines of software.

      With a run of a few centimetres'll precisions around the tenth of a millimetre (and even better than a dime with TGY930, If the sled is precise, without games and with little friction)

      Welcome to thereminomani, ask for any questions, do not disturb, Indeed we appreciate and thank you for the compliments.

      • Emilio says:

        Thank you so much for the tips. I'll do some testing and will let you know how it goes.

  23. Livio says:

    Armando asked:
    Having realized the GREAT TRIGGER circuit IV, as I got 10.000 RPM rotor system and a consumption of 150 but. You suggested using Theremino as with a few components I would have achieved my purpose without headaches…. Therefore theremino will have to work to feed my coils instead of the fantastic trigger IV with swing control (rotor speed) as a function of a thermal sensor. for now nothing more. The speed I get is 30.000 RPM with power supply 12/24 Volt and low power consumption. We can do it?

    Turn fast and consume little depends not only on the trigger but also from:
    – Magnetic paths well defined that concentrate the magnetic fluxes in all the right places
    – Magnetic paths designed to minimize vibrations
    – A few tenths of a millimeter air gap between stator and rotor
    – Windings with large low resistance wire can be combined with impedance
    – Construction suitable to withstand the centrifugal force without deformation
    (If the rotor is deformed is impossible to maintain a minimum air gap
    and a rotor that spins in 30 000 revolutions can be very dangerous)
    – A high number of Poles (at least 8 If you do not 24, like the best brushless)

    The number of Poles and the shape of the magnetic paths, are important to minimize vibrations.
    The vibrations are eating power and then decrease the efficiency when it revs.

    And coming to your question:
    No, I really don't think that we can make efficient engines that run at 30 000 rounds Only companies like Turnigy with rotors and stators made with CNC machines can do it.

    What I proposed is a “Smart engine” He always knows where is
    – No claim to turn at full speed possible (I would say a maximum of 1000 RPM)
    – No claim to consume little.
    – The efficiency may be one tenth of that of a good brushless
    so you have to feed it with MUCH more power than they can glean.

    But in return we would have the opportunity to build an engine that is half and half hardware software, with huge gains the ability to control it, in speed and acceleration and d know at any moment, How many steps did and in what direction… a treat for some applications.


    I also have the feeling that there is a desire to Chase religious purposes more than science and in this we are not at all friendly…

    The laws on magnetism, on energy and the friction they are relentless and precise, not much to see in this field, rather you should design good engines… And, still an advice, wouldn't you design more with the hacksaw and file, but with his head, simulation software and Internet.

    I would recommend therefore to continue with the fantastic Trigger IV of Badua


  24. Stefano Mantovani says:

    Good morning .
    For business needs , We are building a small anthropomorphic robot with three degrees of freedom,
    We need to move the three servos simultaneously following a route with a slightly elliptical shape( We could make calculations with G-codes) the servants are micro servos ,robot arms are about 70 mm. If somehow I can send pictures, someone please could you tell me if theremino is suitable for us?
    Thanks STEPHEN

  25. Stefano Mantovani says:


    # 3 servo controls
    9355000035-0/50464 Turnigy TGY-DS245MG Alloy Case Micro Digital Servo 2.0 kg/

    Our robot , has only three servants , because it would be too difficult to build with more degrees of freedom for the small size , given that the arms are 70 mm…
    Theremino , You can configure with only three servants ?
    I can send photo if needed!!


    • Livio says:

      Theremino the system can control any number of servo, from a minimum of one, to a maximum limited only by the number of modules that connect. With one module can be controlled by Master Theremino 1 to 6 servant. Adding slave modules you add additional 10 channels per module.

      The servos are all okay, connect directly to pins. The 5 Volts coming from USB is present on all pins, then just connect the servo, Open the application HAL and try them immediately with your mouse on the column VALUE.

      We never tried the TGY-DS245MG but will work for sure. And’ though a digital servo and digital servos typically have strong starting currents. You may need to add a capacitor to 2200 uF, greater than 6 Volts, among the 5 General Volt all pins, and the mass. If they are not accurate enough will be replaced with the TGY930 recommended by us.

      The application Theremino RobotARM does exactly as you requested:

      Theremino RobotARM is an application written in a simple and all our software are “Open”. Then you can modify it to your needs, or even copy the algorithms, in other applications written by you.

      Theremino RobotARM contains everything you need for your application, both the GCode file reading, forward and reverse kinematics functions, up to three/four ACEs. There are three controllable configurations: Articulated Arm (I think it's your case), SCARA (spiders with three arms) and Orthogonal (X/Y/Z).

      All our applications work without buying the hardware. My advice is to download the Theremino RobotARM, try it with GCode and see how it is written. Contains high quality algorithms that may save you a lot of work.

      If you need further assistance please write to:

  26. Stefano Mantovani says:

    Send them an email with the photo attached.

  27. Stefano Mantovani says:

    the servant who says she is too big for us, We have size limitations, This is a miniature robots for painting .
    It would be a scale model of a real plant , with the simulation of all the movements of real robot…..
    the robot we built, but the software and the operating cycle begins to be a problem serious enough for us.
    Take the master module would not be a problem , We need to talk to any of you to better explain our problem and that the road taken.
    my mail :
    all AIDS are welcome.
    Thank you

  28. Guido says:

    Hello everyone…
    I just recently discovered the system Theremino, I found that quite wonderful for design and simplicity (congratulations!!!!!!!!!!!!!!!). I built a couple of cnc which are controlled through the lpt with Linuxcnc. I would like to ask you if there is a possibility to control them with the Linuxcnc through Theremino.
    Thanks Guido

    • Livio says:

      In these days we are completing the stepper motor control:
      (pharaonic work and results with outstanding performance)

      Later we will make a simple CNC Theremino, It will replace the various Mach3, Linuxcnc e MC2. This is because we got tired of checking the cutter with programs so unnecessarily complex. I don't know the LinuxCnc, but Mach3 has so many settings, protections and controls, that when it stops walking, It takes the Pope's blessing for restart.

      Then, When we have time, We expect to make a RepRap machine controller type. But for now we have to finish the stepper, and we must succeed by Christmas as promised.

      That being said, of course it would be possible to convince LinuxCNC to write the X values, Y and Z in our Slots. It should be fairly easy but we don't, because it is better to engage the little time doing clean applications, rather than tweak existing applications. Moreover, I do not know Linux use it and I can't stand it, too many sudo, too many passwords. I once tried to become super user forever and delete all passwords, but it seems impossible. I lost a whole day and I couldn't!

      Hello, Thanks for the compliments, and welcome to thereminomani.

      • Marco says:

        Using visudo sudo can be configured so that a user acquires permanently the same rights as the administrator of the system.
        It's very romantic, though do it because it brings into play the safety.
        Don't use proprietary operating systems for many years but I read that even M $ in recent versions of its OS tries in every way to lose a bad habit to log on as administrator, seen the severe damage that causes.
        If we know that we must work on GNU/Linux for a long time in the terminal as root, It is much better to use the-i option to sudo that allows you to remain logged in as administrators, as long as we will not exit.

        $ sudo-i
        password …
        # exit

        Hello :-)

        • Livio says:

          Thanks for the advice, I'll try for sure, but Linux has an antivirus system? (not Avast, MacAfee and the like that only serve to make you worry)

          The problem is that by dint of giving sudo to everything you lose all restraint and does not serve any longer. Much better than take care of the operating system itself, as explained here:

          • Marco says:

            How do you know Linux is quite immune from viruses and its users care more about not becoming healthy carriers and maybe send virus unknowingly outwards, such as through an email attachment.
            I doubt so that even if you wanted me to, you could find on the net many antivirus for linux. Will there be someone .., I remember Avast but I've never tried.
            Normally I prefer to install packages available in the official repositories of the distribution that I use (Debian testing). The only antivirus and you probably already know and ' clamAV with, wanting to, clamtk, its graphical frontend.

            This is the description that a data packet has inside:

            Clam AntiVirus is an anti-virus toolkit for Unix. The main purpose of this software is the integration with mail servers (attachment scanning). The software provides a flexible package multithreaded daemon clamav-daemon, command line scanner in the clamav package and a tool for automatic updating via the Internet
            package clamav-freshclam. The programs are based on libclamav5, which can be used by other software.

            This package contains the command line interface.
            – integrated support for various archive formats, including Zip, Tar,
            Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS and other;
            – integrated support for almost all mail file formats;
            – integrated support for ELF executables and Portable Executable files compressed with UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack and obfuscated with SUE, Y0da Cryptor and others;
            – integrated support for popular formats for documents including Microsoft Office and Mac Office, HTML, RTF and PDF.

            For scanning functions, you need a virus database. There are two options:
            – ClamAV-freshclam: updates the database from the Internet; is the recommended choice if you have access to the Internet;
            – ClamAV-data: for users without access to the Internet. The package is not updated once installed. Clamav-getfiles package allows you to create custom packages from a computer connected to the Internet.

            ClamAV I tried it several times and I know it's available in the official repositories of all major linux distributions but honestly I couldn't be sure about its validity because, to my luck or maybe even why I don't go too potentially dangerous sites, virus not duly so didn't apply rebutting evidence.

            For additional security on Linux I might recommend, If you have not done so already, also install rkhunter and chkrootkit:

            Rootkit Hunter scans your system for rootkits, Backdoor, sniffer and bug
            Security is known to be strangers.

            Checks for:
            – changes to the MD5;
            – files created by rootkits;
            – executables with anomalous permits;
            – suspicious strings in kernel modules;
            – hidden files in the system directory and can optionally examine the contents of files.

            Using rkhunter alone does not guarantee that the system is not compromised. Additional testing is recommended, as chkrootkit.

            As for your link to security updates for XP, I had already read some time ago on your site and, Although not directly concerned, I was pleased. :-)
            Helping often newbies to install linux in dual-boot with windows, I noticed that, at least at national level, the fleet that XP is still installed and is truly remarkable and sinking slowly over time.
            Pity that this information is not widespread among users and is hard to find even at Microsoft.

            “Only the paranoid survive.”
            (CIT. Andrew Grove)

  29. Lorenzo says:

    I built a Master and a Slave, I would like to know where can I find software Arm Teremino. Please answer me ASAP. Thanks in advance.

  30. Livio says:

    Orlando wrote:
    I saw a graphical program for Arduino called S4A, also works on theremino?

    The S4A works only with Arduino and isn't even compatible with the regular Arduino firmware, much less with thereminico software. SA4 Reprograms the Arduino, to make them do things Robotics, you see in videos, but it only does what.

    With system Theremino using a simpler language, Theremino Automation:

    Theremino Automation is not a paint program but, for this, is more powerful. For example can read sounds files (MP3), and video files (MOV, WMV and AVI). With the simple word “LOAD”, Opens a WEB site and navigating, as with any browser. Or open up YouTube videos, or access the mail or to your FaceBook page. Or you can use animated GIFs, to construct the moving screens.

    Theremino Automation can control robots, as the SA4, but it can also perform lengthy or complex programs, for process control, and bench testing, also in industrial. Such applications, with a graphic program like SA4, would become an uncontrollable tangle.

    The Theremino Automation is also very easy to use, words to learn, they are about fifteen in all. The program provides a continuous help, suggests words when writing, and highlights errors.

    We advise everyone to download it and try it, works even without hardware and contains many examples. You learn to use it in five minutes:

Leave a Reply

Your email address will not be published.