Documentation

Progress of LibreServo

LibreDriver Ficheros de producción

After more than a year without any update in LibreServo, it might seem that the project is at a standstill and/or abandoned. As I have said more than once, and I repeat myself, I will never leave LibreServo until it is completely finished, even if it takes me 5 more years.

What has happened in the last year?

LibreServo v2.3.1. Release Version

LibreServo v2.3.1 Servo hack LibreServo v2.3.1. Release Version

LibreServo has finally reached the first final Hardware release (version 2.3.1)!

party


It has been a long road and there is still a long road ahead, but now on the software side. LibreServo will not stop here and later on there will come new projects that make use of LibreServo, like a possible 3D biped robot, but all of that will come in the future and all of it will be announced here so let's stop the guessing and talk about the now.

How to check the JLCPCB production files

PCB Production Files Production Files

Generally the final production of a PCB is exactly the same as the gerber files we have generated, but there are times when there is a doubt if the production is going to be exactly the same as we want, for example if we have a tinned slot, or if we have epoxy filled vias and we want to make sure we meet the specifications as we saw in the article on last minute changes in LibreServo. In all these not so usual cases, in JLCPCB we have the option to check the production files before our PCB goes into production. Be careful! we will only have 24 hours to confirm the production files, otherwise they will autoconfirm, so don't lazy.

Last minute changes at the time of manufacture the final version of LibreServo

🎉I have already sent to manufacture the final version of LibreServo to JLCPCB!🎉
In total there have been 50 PCB boards (50 because they were the same price as 30) of 0.8mm thick and of the highest possible quality; 6 layers, ENIG finish, epoxy filled and capped vias, PCB material upgraded to FR-4 TG155... Everything came out to me for about $93.24, which with VAT and shipping goes up to $118.18. That gives a base price of about $2.36 per LibreServo. Making the four-layer version of LibreServo, in HASL finish (with lead), FR-4 TG135-140 material and tracks simply covered with solder mask comes out to $56.20, which with VAT and shipping goes up to $75 for a total of $1.5 each LibreServo. Personally I think that making it in 6 layers and the rest of the improvements are well worth 0.86$ per board, but it is something that each one will have to value and that certainly LibreServo is going to work equally well in both configurations.

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.

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