Affordable, precise, integrated motion control for robotics
To make the experience fit your profile, pick a username and tell us what interests you.
Welcome to another Tinymovr Update! Work on Tinymovr in the past month focused mainly on fixing various small issues, as well as improving performance and safety!
Sometimes breaking changes may occur in either firmware or client software. This is inevitable in the early stage of product development, but may occur even in the mature development stage. To ensure API compatibility, a mechanism to ensure compatibility between firmware and client side is necessary. Even more so in mission critical systems such as motion control, where API incompatibility may result in undesired behavior, property damage or even injury!
With this in mind Tinymovr is introducing a new system of compatibility “self-verification” for Tinymovr Firmware and Studio, starting from v0.8.7 and v0.3.7, respectively. The system is simple: The firmware holds, together with its own version, a flag that denotes the minimum supported Tinymovr Studio version. This can be obtained through a standard CAN Bus endpoint, and is also user-readable. In parallel, Studio has its own flag that denotes the minimum supported Firmware version. At Studio startup, two comparisons are made: min studio version requirement with actual studio version, and min firmware version requirement with actual firmware version. If one of them fails, Studio exits with an error message.
In this way, it is possible to manage compatibility separately for Firmware and Studio, and always ensure that versions working together are compatible. This also allows for the least number of upgrades to be performed by the user: If a new firmware upgrade is available that does not break API, the user can continue with the same version of Studio if they wish, and vice versa.
The second feature addition allows user-defined rotor zero-point and direction. It is now possible through Tinymovr studio (and CAN Bus API of course) to set a user-defined zero point for the rotor, also known as offset, as well as set the direction of the rotor to be either positive, i.e. electrical phase same as encoder, or negative, i.e. electrical phase opposite to encoder. The settings are persisted in Non-Volatile Memory.
Besides, several minor issues have been addressed, both in firmware as well as studio. Indicatively, writing to NVM has been simplified, better fault handler debugging features have been added, and the CAN Bus module in Tinymovr Studio has seen a cleanup and renaming to better distinguish it from the Python CAN module. All these changes may break some programs using the Tinymovr Python API, but overall disturbances should be minimal.
The latest firmware is available now and goes together with Tinymovr studio, which you can easily install with
pip3 install tinymovr
And since this month’s update is mostly text-text-text, here’s a Tinymovr-powered jumping robot video to cheer things up a bit! :
Till next month!
Welcome to another Tinymovr monthly update, with a lot of news to share. The Tinymovr store is now fully stocked with boards as well as dev kits and accessories. Dev kits include a Tinymovr R3.4 controller, a high-quality 5005 size motor from MAD Components, and a 6mm diametrically magnetized magnet securely mounted on the shaft.
The mount is made of precision CNC machined 6061 aluminum designed to be in contact with both stator and power MOSFETs, enhancing heat dissipation. Using the mount, you can turn the dev kit into a compact servomotor unit, fully integrated with your project. Or, you can use the kit standalone, using the provided 3D printed stand.
In addition, we introduced the ACT8.3 Open Source actuator, a lightweight module that achieves 1.7Nm@15A, while weighing a little over 200g (0.44 lbs). ACT8.3 is suitable for building legged robots, and soon a completely open source robot based on ACT8.3 will be published.
The firmware has seen important improvements as well. The most important being the introduction of encoder eccentricity calibration, which allows for more accurate positioning and smoother performance in high rotational velocities. See the video below for more information, and upgrade using the firmware in the latest release.
Finally, on the devops side, CI has seen vast improvements, with the firmware check and build pipeline getting a major overhaul.
For more details on related changes, check out the commit history.
See you next month!
I'm glad to report that the upgraded Tinymovr Dev Kit R2 is available in the Tinymovr store.
The new Dev Kit R2 is more compact, and can be used as an integrated servo actuator in your next robotics project! Simply detach the mount from the 3D printed stand using the two screws, and integrate it into your robot! Full 3D CAD drawings are available.
R2 has been upgraded from the ground up to include a new R3.4 Tinymovr, a MAD 5005 350Kv motor, and a precision CNC machined mount! The new R3.4 Tinymovr, included with the new Dev Kit, has an enhanced PCB layout for better heat dissipation, and better labeling of all headers onboard.
Back with another update in what seems to resemble a regular monthly update cycle :D
The big news is the release of the new Tinymovr R3.4, with immediate availability of boards in store. There is a temporary shortage of Dev Kits, but these should be restocked by the end of the month. Tinymovr R3.4 features some optimizations in power routing, allowing wider traces and better via interconnects between layers. Also, all IOs are now properly labeled, and a small geometry deviation with the board shape is fixed! So head over to the Tinymovr store to find out more!
Besides, this month’s update brings two important improvements to the Tinymovr firmware (0.8.4) as well as to Studio (0.3.4).
The first is support for gimbal motors out of the box. It is now possible to set the motor type to gimbal and specify resistance and inductance (those are not measured in gimbal mode, so to find them consult your motor datasheet), and continue with calibration as normal. The firmware will detect all other parameters except R and L as usual, and you will be able to use the motor in all control modes.
Here is a video of a gimbal motor driven by Tinymovr:
The second concerns an important fix to a bug in the scheduler that would sometimes permit “dead” control cycles, due to the MCU entering sleep state prematurely. This has been fixed and minor improvements were done to the scheduler as well.
Besides, minor improvements are to be found all around, from documentation to Tinymovr studio, testing, and CI. For more details, check out the commit history.
Finally, here are a few updates on projects using Tinymovr:
Till next month, stay safe and stay tuned!
Happy new year! This month's update comes rather early, and brings several improvements all around, with the aim of making Tinymovr perform better and safer. The latest firmware & studio app feature the following improvements:
Here is a brief demonstration of the velocity integrator in action tracking low velocities:
Stay safe and stay tuned for more updates!
Things have been moving at a fast pace in terms of development, with the firmware and studio receiving updates all around. In a nutshell the following major updates have been completed:
from tinymovr.units import get_registry ureg = get_registry() A = ureg.ampere s = ureg.second rad = ureg.radian tm1.set_pos_setpoint(1.0*rad, 0*rad/s, 0.5*A)
The second and third arguments to the function above are feedforward values for velocity and current.
Keep in mind that the addition of units may break some programs that you might have built around Tinymovr Studio API. To restore broken functionality, it is usually sufficient to modify your calls to getters to work with units. Alternatively, for a quick fix, you can obtain the "magnitude" property of the object returned. See the docs for more information on units.
If you prefer to take some time before diving in the latest changes, the last major version (0.2.x) is still available on PyPI and you can install it easily as follows:
pip uninstall tinymovr # if tinymovr is installed pip install tinymovr==0.2.7
Finally, here are two of the latest demos of Tinymovr. The first demonstrated full-body kinematics on the Tinymovr Quad. The second demonstrates a ‘telepresence’ device: A pair of Tinymovr controllers and motors that mirror each others dynamics.
The code to this last demo is available at the Tinymovr Github repo.
Stay safe and stay tuned for updates!
The new R3.3 Dev Kits as well as USB-C <-> CAN Bus adapters are now available at tinymovr.com.
The new dev kit features a Tinymovr R3.3, a MAD Components 5005 motor, and an aluminum backplate that holds both motor and controller, and is designed to make contact with both controller mosfets and stator for increased cooling efficiency.
The CAN Bus adapter is a revision of the CANable adapter with USB-C connector and DF-13 connectors matching the ones on Tinymovr.
Head over to tinymovr.com to browse more
Good news, after an admittedly long wait, the new alpha2 boards (R3.3) are now available! These boards have a few layout improvements compared to the alpha1 boards, namely:
The Tinymovr store stock is updated, and now you can browse and make your orders! Currently only Tinymovr boards are available, but in the near future it will be stocked with Dev Kits, essential items and accessories.
In the meantime, improvements have been made in both firmware as well as Tinymovr Studio. For a list of detailed changes, please take a look at Github Issues. Here below a few highlights:
It's been some time since the last update however the project has been moving on at rapid pace. First, the alpha boards and dev kits have been completed and sent out to their owners in early August. In addition, the Tinymovr Github repository now hosts the complete array of Tinymovr modules: Firmware, client (Studio), documentation and some related schematics and drawings. Furthermore, I've set up a Discord server to stir up the discussion. Hey! There's not much there yet, but given time.. :)
Most importantly, the new batch (I call it alpha2, for lack of a better name) is in the works. There is no clear timeline yet, but I've been really busy with minor improvements in the PCB layout and planning production (hint: it will be outsourced this time). As part of this, I've recently received a bunch of 5005 motors from MAD Components, which will make it into the next Dev Kits:
They are larger in diameter compared to the T-Motor 4004 shipped with the alpha, which means that Tinymovr will be able to be completely integrated behind the motor face, good news for building integrated servo drives :).
That's all for now, stay safe and stay tuned for more updates!
Production of Tinymovr boards and dev kits is almost complete! Here is a photo of most of them (a few are still getting connectors fitted):
It took quite a sprint during the past few days but the alpha batch is now almost ready for shipment. This includes the boards themselves, Dev Kit motor holders, CAN bus adapters (CANdapters) and associated wires.
I'll be finalizing the boards today, and tomorrow I’ll be testing all boards and kits for a final time before packaging them. The aim is to ship on the 5th of August.
Once the alpha boards/kits are on their way, I’ll be focusing on releasing the Tinymovr Firmware and creating a Discord server for support and discussion. I’ll be posting here with updates.
Today I’m releasing the schematic of the CANdapter, the CAN adapter that is included with the Dev Kits, which is an adaptation of the CANable boards. You can find them in the Tinymovr Github repo.
Once again, I’d like to thank all Tinymovr alpha participants for their support! I hope that you will enjoy your boards and use them in creating awesome robots!
Become a member to follow this project and never miss any updates