Article

We have a winner. Test results in PCB test 2


LibreServo sending data via RS485 to Arduino plotter

After several tests, the LibreServo hardware is finally chosen and it's working, even the H-bridge that gave me a lot of problems! In general, all the parts of LibreServo remain as they were, because they were already working correctly, except the parts are discussed in this article.

New PCB Test v2 for LibreServo


Hello World in LibreServo PCB test v2

A month ago I was analyzing the results and conclusions obtained with the LibreServo test PCB v1 and trying not to lose momentum this month I have designed, I have ordered new PCBs and I have already assembled the LibreServo test PCB v2! 🥳

It is the first PCB that I have designed with 4 layers for LibreServo and I hope that this will mitigates some issues with the H-bridge that I think comes, in part, from electronic noise. For the rest, it is a PCB with the final components, it is closer to the final design in which I have forced myself to put the components as close as possible to each other to see the real limit between what is designed and what can be easily welded without overcomplicating things, everything holds up on paper but then you have to bring it to reality.

Results and conclusions of the tests

RS-485 9 Mbps Hello World
RS485 Hello World at 9 Mbps

After analyzing all the parts of LibreServo, I have decided to make several design changes again. I am happy with the results obtained with the test board since without it, it would have been impossible to analyze all the components separately and detect all the errors and faults that I have found, it is something that I should have done from the beginning and it would have saved me a lot of time. The topics to be discussed are:

  • Current Sensor
  • Protection against change of power polarity
  • New power supply, mpm3610 + ap2112
  • NTC temperature sensor
  • New more compact RGB led
  • RS-232 vs RS-485 serial communication
  • New AEAT-8800 magnetic sensor
  • H bridge
  • Next PCB (4 layers)

Power Analysis (MPM3610 + Ferrite + AP2112)

MPM3610 and AP2112 circuit with Ferrite MPM3610 and AP2112 circuit

One of the parts that I have changed the most in LibreServo and thought about is the power supplies. In previous versions it was a linear regulator that I reduced in size, but the truth is that I was not at all comfortable since if LibreServo was powered with only 12V, the linear regulator should dissipate up to 1.74 Watts and in 16v 2.54 Watts... something that was really unreal that it could handled.

A few months ago I discovered the MPM3610, and this finally made it possible for me to design the power supply as I wanted. This tiny component is a powerful 1.2A step-down that supports up to 21V input and also has a built-in diode and coil! It is the latter that makes it perfect for my design, due to the reduced space used, being the only step-down that is manufactured that has an integrated coil and diode in the same package. The difference between using a step-down and a linear regulator is that a linear regulator from 3.3V to 12V gives an efficiency of 35%, while a step-down of 80% or higher, the rest is dissipated in heat, so one is much more prone to overheating than the other. The downside of using a step-down is that they are quite noisy and their output is not as clean as one from a linear regulator.

Análisis del sensor de corriente ZXCT1010

Circuito básico ZXCT1010 con protección Zener MMSZ5226BS Circuito básico ZXCT1010 con protección Zener

El primer componente que voy a analizar en mi nueva placa para testear LibreServo es el sensor de corriente ZXCT1010, el cual es una versión mejorada del sensor ZXCT1009. La mejora sobre todo es en la parte baja del sensor, cuando hay poca caída en Rsense, parte en la que quería estar ya que no quiero que se desperdicie tensión en Rsense. Además, aparejado al sensor de corriente está el diodo Zener MMSZ5226BS para evitar que la tensión de salida del sensor de corriente pueda superar los 3,3V y quemar el microcontrolador.

New PCB to test LibreServo

LibreServo test PCB LibreServo test PCB

It has been a long time since my last update, a pandemic in between and many changes. Be that as it may, LibreServo continues moving forward, little by little, but it moves 💪.

During the previous versions of LibreServo I have continually encountered different problems in the design and without knowing exactly how different components were going to behave, in addition, later trying to debug the board being so compact and without extra space to be able to even solder a cable to be able to see the signs, always complicated everything too much.

Compras y cambios de los últimos meses en LibreServo

DS1054Z LA1010 GPS3010D DS3235 Nuevo material y herramientas para LibreServo

LibreServo va a sufrir varios cambios importantes y he decidido cambiar el método en el que estoy realizando las pruebas. Además, he decidido rascarme el bolsillo y comprarme algo más de equipamiento para medir todo lo necesario de una manera externa y precisa y así saber de antemano qué esperarme en LibreServo.

Comparativa Smart Servos (Serial Servos)

Comparativa de Smart Servos
Comparativa de Smart Servos

Hace poco hablé de la nueva línea de Smart Servos de Lynxmotion y se me ocurrió que sería un buen tema poner en papel las caracteríasticas del resto de Smart Servos del mercado realizando una pequeña comparativa entre todos ellos. También ayudará a dejar plasmado qué es lo que voy a superar, ya que LibreServo nace con entre otras pretensiones, como ya expuse en objetivos de Libreservo, superar lo ya existente en el mercado a nivel software y electrónico, que son las partes que dependen de mi.

¿Por qué usar un Smart Servo en vez de un Servo estándar?

Casi con total seguridad si estás leyendo esta entrada ya tengas bien claro por qué quieres utilizar un Smart Servo, pero para algún despistado, vamos a ver qué motivos hay para usar un Smart Servo en vez de uno estándar.

  • Comunicación: La comunicación en un servo estándar es unidireccional. Al servo se le comunica la posición en la que quieres que esté pero no hay forma de tener una respuesta por parte del servo; si ha llegado a la posición, si el servo se está sobrecalentando, si tiene algún problema o alguna otra cuestión.
  • Software: Un servo estándar requiere de un señal PWM con un pulso bastante preciso, el cual se repite 50 veces por segundo. Cuando el número de servomotores aumenta, manejar dicha señal sobre todos los servomotores para que se vaya actualizando de manera adecuada para conseguir un movimiento suave y continuo 50 veces por segundo no es tan sencillo. Por norma, si se quiere una señal precisa, se necesita de timers dedicados para ello y cuando se manejan muchos servomotores, no se suelen tener tantos timers. Si has usado la librería servo.h de arduino la cual usa un sólo timer para intentar generar las señales de servo y has querido generar un movimiento suave, que cambie la posición 50 veces por segundo, habrás podido experimentar que la señal generada dista mucho de ser precisa y adecuada.
  • Hardware: Cada servomotor estándar requiere de su propia señal precisa y su correspondiente cable. Eso hace que necesites un montón de cables y de salidas digitales en tu microcontrolador, además de los más que necesarios timers ya mencionados.


[...]