Master and Slaves

The modules of the system Theremino

This page is dedicated to comments and ideas for Master and Slave modules

Some users have asked how to apply an external power supply

The easiest solution is to use a USB HUB with the 5 Volt feeder 5 Volt exterior. Some of these hubs can even reach up to 3 Amperes and over. But we recommend that you don't overdo the maximum current, to avoid the risk of burning the delicate contacts of USB ports.

In the event that the system is composed of Master and Slaves could be used adapters visible at the bottom of this page:

Adapters can stop, and food, the entire chain of Slaves or they can be used on a single actuator, interponendoli between Pin of InOut and actuator with a standard extension.

These considerations apply to have more power on pins of InOut and not to feed the master module from the outside.

In all cases we recommend that you do not overdo it with the maximum current and use a power supply protected against short circuits. Also make sure that it does not produce noise and excessive voltage spikes when they connect to the 220 Volts.

In case of actuators with strong inrush current before proceeding to external supply try a capacitor by 4700 UF between + 5V and ground. The capacitor can be soldered to the master, or you can use the pin remained free to access +5 and to ground and connect the capacitor with a small female connector.

If it is really necessary to feed the master PIN from the outside do as shown in this image.


Master led does not turn on

If the led on the Master will not turn on does not fetch system failure USB or in Windows drivers, It is more likely to be the same led.


Write here your questions and recommendations, so it will be useful to all.

  1. Gianni. carr says:

    Hello Livio are Gianni (CNC amended) I got the drivers :TB6600 Upgraded Version 32 Segments 4A 40V 57/86 Stepper Motor Driver

    But I can't get them to work.
    You have some indication to give me master links & drivers?
    Thank you very much

    • Livio says:

      There should be no special warnings, fellow GND GND, then connect the STEP signal and the signal and it should work.

      You didn't swapped the wires of motors? You must connect the torques.

      You didn't wrong slot numbers in HAL or application in CNC apps?

      Are you holding the HAL started application?

      In CNC application keep both buttons “In OUT enabled” and “HAL enabled” (at the top right) lit?

      I haven't personally tried those drivers so I don't know if there is also a qualification for him, in this case, you've got to give them a mass or a +5 to enable.

      If you can't write me at “Engineering at sign theremino dot com” and we'll hear over the phone or skype.

      • Gianni. carr says:

        Hello Livio.. This morning I did some testing and found:

        master — driver
        GND — dir –
        dir — dir + 5v
        step — Pulse –
        +5v — Pulse + 5v

        Note that printing on the cover is the incorrect drivers compared to printed inside:
        the particulars of the engine outputs are swapped between a and b but the polarities are respected, then there were particular problems if not reversing the direction.

        the drivers are fine and I switched from vel 800 and acc 25 in vel 2000 and acc 1500 all with 3,2 Ah….I can increase up to 4 Ah

        Thanks Livio tips

        • Livio says:

          The link should be so:

          master ......... driver
          gnd ............ dir -
          dir ............ dir +
          gnd ............ pulse -
          step ........... pulse +

          • Gianni. carr says:

            I tried as you say but the engines were going in one direction only only also with adverse commands

            • Livio says:

              The DIR (that determines the direction) the you had connected as in my table. That any differences could be following in the footsteps of movement and not on the direction of movement.

              So perhaps the problem of failure to change of direction was due to other.

              Plugging in your table you step pulses (motor steps) on the contrary.

              Working with pulses on the contrary should not cause problems because we treated the firmware so that you can work independently or with negative than positive impulses (in other words, we make sure to complete each movement with the front right and then let Miss a step at the end of each movement).

              Though some drivers of engines may not work well with pulses who the top larger than low. I suggest you connect as shown in the table and if that doesn't work find out why.

            • Livio says:

              I'm having a doubt….

              Isn't that internally to the driver the two entrances marked + 5V are linked together?

              You have a pattern of the driver?

            • Livio says:

              I went to find the schema and seems to be this:

              One might say that the three photocouplers are totally isolated from each other, so it should go.

              It's not that you merged K + and Pul + with a wire as shown in the image “Typical connection”?

              The other possibility is that you added the resistors “R” and that therefore our 3.3 volts not enough more. The resistors “R” outside must be removed for sure.

              I can't find the lowest voltage characteristics. I know that many have used them with 3.3 volts and therefore should go. Possibly, to be sure to pilot them with enough current, internal resistors should be reduced also by 240 ohm at 100 Ohms or less (our master has already the resistors on outputs).

  2. vital1 says:

    Sorry, posted in the wrong location. Please delete.

  3. Livio says:

    Mark wrote:
    ... So’ doing, with Arduino created a draft of the Master but does things that the Master can't do. This does look bad to the Master, because it highlights its supposed boundaries ...

    Our system is a PC Input usable even by those who don't know how to program. If you complicate it too loses its characteristic of minimalism. Then he necessarily limits.

    Marco wrote:
    ... and still has limited Arduino as something more than what is, almost denigrandolo, When instead there are Arduino, and compatible ,far more powerful than the Nano and One ...

    The Arduino boards, No matter how powerful, When used as In Out for PC, inevitably suffer the bottleneck caused by virtual serial.

    Application-> O.s.. -Serial-USB-CH340 > > > (or similar) -> CH340-USB-Arduino-Serial-> > > > O.s.. -> Application

    In all these steps a few milliseconds you lose it for strength. And it's not so much the Arduino to lose it, but the virtual serial driver and the operating system of your PC. The kernel allocates tasks on your PC (But even on Linux and Mac), working with a millisecond granularity, why you lose more or less one millisecond with every conversion.

    It is already a miracle that the master arrives almost 1000 exchanges per second. Are 1000 complete exchanges, round trip, for all the pins at the same time.

    And it's inevitable that a virtual serial, with all the steps you have to do, lose at least four milliseconds and therefore has a limit of around 250 exchanges per second. That is not to denigrate. For stand alone applications Arduino is fine, but as a form of InOut is always lower than the Master.

    It might seem that 1000 or 250 exchanges per second are not a big difference. But for most of our applications are. With 1000 trade you have a bandwidth of 500 Hz, and then you see until the 10th harmonic 50 Hz. This makes it possible for applications like the FlickerMeter and Wave Analyzer to analyze the quality of 50 Hz.

    Instead 250 exchanges per second make a bandwidth of just over 100 Hz, that is precisely the minimum wage. They're still going well for automation applications, But if you go down even little can't even move well engines, or make a feedback loop that swings and not go jerky.

  4. Livio says:

    Regarding the previous Post they wrote us:
    All the reasoning row if your transfer you are obliged to put a single value for time, would you like to sample device limits, you want to limit the communication channel between the PC and the device.

    But if, For example, a device could sample internally with a frequency 10 times greater than that of transfer and could transfer at once the values of 10 samples per PC because the communication channel let, and the PC was so powerful that we can do at once each of the calculations 10 new values, by repeating the calculation 10 times by including only one of 10 new samples at a time, you would not get actual bandwidth 10 times higher? The delay in the processing and exploitation of results, equal to the time of data transfer, will always be constant, might as well transfer more data than you can for each transfer.

    If I understand correctly what I have described would allow an increase in bandwidth, not to be confused with supersampling which increases the signal-to-noise ratio, and takes place exclusively device end.

    What you describe is no longer working in real time but in “batch”, that is to say lots of samples. You must then wait for all samples in the batch have arrived before you can answer and you lose the ability to intervene if, for example,, After the third sample one sees that it is time to change the output data.

    In addition.
    Up allHAL you could send a parcel, for example,, one hundred samples. But then should he process them and then you should change the HAL for each new task. You cannot send 100 samples for other applications (through our mechanism of slots) If not with synchronous techniques messed up but no more than one sample every few milliseconds.

    And there's a third aspect which would prevent anyway to send too much data to each Exchange.
    The ultimate USB HID devices package is limited and simply just to send data to all pins of the Master and of the Adc. To send larger packages you should use a non-HID. And then you would lose one of the key benefits of our system, that is, to connect the Master and see it work for, on all Windows, No driver problems.

  5. Livio says:

    Louis asked us

    How can I connect more than 6 capacitive buttons?


    The Master can read 6 capacitive buttons. The Slaves could read 8, but with additional complications, Why not recommend them. In some cases you may use multiple masters, and connect it with a USB HUB, to have only one wire that goes to the PC.

    You could connect 12 capacitive buttons OnOff at each Master, with the adapter explained here:

    If you have any adapter close to its sensor, then the wires towards the Master's course will be of any length.

    These adapters can be purchased on eBay for around one Euro.

    Use Arduino
    You could also use a ArduinoNano, connected to our ArduHAL application. ArduHAL will send data to slots and then from then on it is as if we had used our Master. Through the slots you can connect all our applications.

    The library should be programmed with the Arduino for capacitive buttons

    We didn't try, but probably with an Arduino Nano can be read up to 21 capacitive buttons.

    Sure that the wires should be short (maximum ten centimeters), and far from each other so as not to influence.

Leave a Reply

Your email address will not be published.