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:
- More space has been given between the connectors (the PCB has been "widened" by 1.2mm), so that it fits correctly into the servomotors.
- Space has been given in the four corners to be able to reinforce the cover of the servomotor that has been designed in 3D. In the previous version I was limited by space and if the servomotor cover was screwed on tightly, it would crack in the screw area.
- JLCPCB has come out with a VERY AGGRESSIVE offer for 6 and 8 layer boards, so aggressive that it is cheaper than the 4 layer even though it includes ENIG finish (gold finish), epoxy filled vias and tin capped... all for $2 instead of $63 which would be their already low price. This is almost certainly a one-time offer. Even so, I have modified LibreServo to 6 layers, but maintaining full compatibility on 4 layers. When generating the Gerber files, just remove the two central layers, simple. The biggest benefit that is achieved with the two extra layers in LibreServo is that the flow through LibreServo to other LibreServo is more efficient, something that if a LibreServo is intended to hang more than three LibreServos would be something to value.
- We have tried to improve the routing of several components, use polygons where possible and improved the use of tracks.
- All the texts on the board have been tweaked.
- The LibreServo schematic has been reworked to meet certain standards.
Not content with that, and even though I have already ordered the new boards, I already have three other small changes that I will make soon to round the LibreServo design and make it the final design (I hope):
- I will change the oscillator to a 33% more compact, cheaper and more accurate version.
- I will change the order of the FFT cable between the main board and the AEAT-8800 sensor to give it a little more noise immunity.
- I will connect the exposed pad of the STM32F30X to ground, something that when I started with LibreServo ST indicated not to do, but now it has rectified and indicates that it is advisable... ST stuff 🤷
Finally, in the software part, the FP function has been added to find out the direction of rotation of the servomotor. The LibreServo Commands article has been updated.