LibreServo v2.3 schematics. Candidate version

LibreServo v2.3 PCB servo hack LibreServo v2.3 PCB

A few days ago I presented LibreServo version 2.2 and announced that I had one last final change... this time the wait has not been long and I bring the new version of LibreServo, version 2.3.
This version should already be the final hardware version of LibreServo .
The biggest change that LibreServo has had in this latest version with respect to the previous one is the H-bridge. Risky move seeing what it cost me to make it work but I think it will be a remarkable improvement and the missing component to make LibreServo the definitive option.

Tracespace and LibreServo

LibreServo tracespace.io

Now the LibreServo gerbers are going to look much better. For some time now I have been using the tracespace website to be able to see the gerbers easily and quickly before placing any order.
I liked the web so much that while researching I discovered that you can create static links to my gerber files, so said and done, I have modified the last LibreServo schematics articles and I have added a button that links directly to tracespace so you can see the schematics in more detail and in an interactive way.

LibreServo v2.2. Pre-Release version?

LibreServo v2.2 PCB servo hack LibreServo v2.2 PCB

Pre-final version. This was going to be the final version, was going to be, because in the end it is not going to be.

  • The oscillator has been changed for a more compact one.
  • The position of several components has been slightly reworked
  • Ground planes have been generated on the outer layers
  • The position of the silk-screen printing has been repositioned with the idea that the vias will be capped and it will be possible to silkscreen on top of them
  • The PCB has been narrowed by a few tenths of a millimeter to fit perfectly to the servomotors
  • The two PCBs have been joined by using mouse-bites

In general, they are all small changes, but... just before placing the order I went back to review each and every one of the components, and there is one that I have decided to change and it is a very important one that has been in LibreServo from the beginning. In the next article I will unveil the final change 😉

How well gold suits LibreServo!

LibreServo v2.1 Servo Hack New LibreServo v2.1

A few days ago I received the LibreServo boards I had ordered from JLCPCB. As I told you in the article of changes in LibreServo v2.1, the new version of LibreServo added two extra layers to reach the 6 layers and thus have the offer of JLCPCB and after receiving them and see them ... I only have words of absolute amazement.

The result is magnificent, not only the gold finish looks great in it 😎, the silkscreen itself is much better than when you order plates of four layers or less and the tracks filled with epoxy and covered in copper give an extraordinary result, not only at electrical/routing level and for soldering is a huge improvement, but also allows silkscreen printing on top of vias without any problem, which in LibreServo with the philosophy that has to point all the components to facilitate then when soldering, it comes great.

LibreServo v2.1 Schematics

LibreServo v2.1 PCB LibreServo v2.1 PCB

These schematics will not last long because new changes have already been made and will be sent to manufacture in the coming days if all goes well. The order of the next version will coincide with the Chinese vacations, but I hope not to have any problem except some small delay already announced by the manufacturer JLCPCB.

In this LibreServo version, the main PCB, goes from 4 to 6 layers because JLCPCB, as we mentioned in the article of changes in LibreServo v2.1, has made a very aggressive offer in which it is cheaper to manufacture a 6-layer PCB instead of 4, taking into account that in 6 layers you get for free the ENIG finish (in gold) and the vias are filled and covered, in other words, a totally professional finish. It is a really crazy offer.

Despite all this, of course LibreServo will maintain full compatibility with 4 layers and only when generating the gerbers the central layers are removed and the matter is solved.

LibreServo v2.1 changes

In the previous article on how to tune a PID, you can see how LibreServo is already fully operational. All the collected data you see in the graphs are data returned by LibreServo and the movements in the video are also real LibreServo movements. With this I want to say that LibreServo is already very close to a final and mature version of the project, at least in the hardware part, since in the software part there is always room for adding features and improving those already present.

With all the above said, I have made a new version of the hardware improving the little things that I have been seeing in the last months. Although at first glance it is not noticeable, changes and tweaks have been made throughout the board.


[...]

How to properly tune a PID

There are hundreds of guides on the Internet on how to adjust a PID and they can all be summarized in the following simple steps:

  • Set KD and KI to zero and increase KP until the system corrects the error and starts oscillating. That would be the maximum KP
  • Increase KD until the KP oscillation stops.
  • Increase KI slightly so that the system fully corrects the error.

They seem like three simple and quick steps, but the reality is that in the end it becomes a sort of trying to guess the constants and after hundreds of tests and hours, if you are lucky, you get a relatively stable PID. It is a rather cumbersome task that rarely achieves a completely satisfactory result.

Let's forget about all that and try to obtain KP and KD mathematically.


PID comparison video

LibreServo v2 Schematics

PCB para test LibreServo LibreServo v2 PCB

I had pending for months to upload the schematics to the web. The schematics are exactly the same with which I made the LibreServo v2 PCBs but with the texts corrected in position so they read better.

In previous posts as you can read in the article of the first LibreServo test board and in the conclusions of the second LibreServo test-board, the LibreServo changes were massive in each and every aspect. Virtually every component was overhauled and moved to a two PCB, four-layer design.

New version of the 3D encoder parts


LibreServo encoder assembly video

To know the position of the servomotor axis, LibreServo uses the AEAT-8800 16-bit encoder. This encoder replaces the potentiometer that the servomotors have and with it we get much more precision and allows the servomotor to rotate 360 degrees.

To achieve this, LibreServo makes use of a tiny 10.2x11.2 mm PCB to which a 3D printed part of the same size and shape as the original potentiometer is attached. This 3D printed part consists of 3 small parts, a 4x7x2mm bearing and a small 6x2.5mm diametrically magnetized magnet. Only a glue point is needed to fix the magnet. The rest of the parts, bearing and PCB are designed to be snap-fitted and fixed.

LibreServo commands (part two)

I have spent a lot of time on the command part of LibreServo and I think it is one of the most important parts of the project, it is how LibreServo is presented to the user. It offers a flexibility and possibilities that I have never seen in any manufacturer.

The documentation of the commands will be divided into two articles, this article is more focused on examples and explanation of execution and the other article is focused on the description of LibreServo commands.

LibreServo has a task manager for the high-priority engine management part and a separate low-priority task manager for sending data to the user only (commands GX). This must be taken into account since the order and timing will be independent between the commands to receive data and the rest of the commands.


[...]

Subscription

Receive an email for each new article.

This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

8 + 8 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.