EVTOL system - brushless servo module with UAVCAN

Even that won’t work. The problem is that the lateral forces will off-set the flat surface contact and the cycloid will start working by engaging the edges. The cycloid assumes there is a constant contact of all contact surfaces simultaneously. If you look carefully at the video @Andrey_Sabadash posted with a wireframe of the model, see how all lobes touch? When you apply lateral force, the lobes touch only on the edges, and your cycloid jams. I mean, it really jams and you need a hammer to take it apart.

I’m not trying to discourage anyone, just pointing out certain difficulties to be overcame.

You could make a cycloid work but you need fantastic tolerances and super-hard steel and the entire box needs to be milled to mirror finish (nanometers). Which creates a problem because then you need to solve the problem with trapped lubrication, at that tolerance the lubrication needs to flow somewhere. Also, the cycloid required actually two working in tandem to offset the wobble because the center of mass of a single cycloid offset and wobbles around the center. Cycloids are a very simple idea, extremely hard implementation.

1 Like

Thanks Valentin!
this is a good point of view.
I was just thinking about tangential loads today, there are two ways, either surface polishing, or a support bearing.
Now I have an achievable accuracy of about 5 microns, but I will steadily check the machine, it has recently been serviced.

For vtol need a small gear ratio of about 30 units, if it does not work out with a cycloid, I will return to the planetary version.

But I will publish all attempts here, I think it will be useful to many.
Now I’m waiting for the material and cutters.

I plan to make a case from structural hardened aluminum, in russia it is called D16AT, tensile strength 450 MPa European analogue 2024 alloy, but I could be wrong. I’ll try to make the internal cycloid out of brass, it will turn out a friction pair that does not require lubrication.

the main load is reverse in my case, these are vibrations up to 3 m/s ^ 2 and gyroscopic precession of the propeller.

1 Like

This is very interesting. I’m very curious if this works. May be in your use case it will be successful. Please post the progress.

Hi Valentine!
I try to understand schematics curret and voltage sensing because need toque control for servo.
can u pls some explane about Driver DOG curent sensing?

  • why here two shunt resistors per phase ?
  • what is it 6 legs component ?
  • if MCU does not have CAN support, can you give an example in which CAN is implemented via SPI?
  • will the performance of the selected controller be enough to operate foc and communicate via can?

  1. The yellow is a high capacity tantalum capacitor, not a resistor.
  2. CANBus: CAN Bus MCP2515 / D230 (SN65HVD230) DIY Module Schematics
  3. Which 6 legs? You mean the 6-pin chip? That’s a current sense bidirectional opamp, if that’s what you mean. I think I put 199, but not sure, that was like so long ago.
  1. Which controller? There is not controller here, just the driver.
1 Like

Hi all!
Seems to be able to understand the basic principles to move a little further with the project.
I have drawn up a primitive diagram of the necessary components for designing a driver.

Several questions came up:

  1. MCU selection
  • at the first stages, I would not want to create my own binary to work with the STM chip. Therefore, as I understand it, I can use any chip supported by Arduino?
  • Which chip would you recommend?
  • I want to try bga soldering, but it seems that such options are not supported by arduino.
  1. Voltage measurement
    as I understand it is not necessary? But if necessary, where is it better to measure, at the power input? What microchip?

  2. Communication between the board and the encoder.

  1. MCU selection in these times of semiconductor shortages is mainly a problem of availability. ESP32 and RP2040 are two available MCU models which work well with SimpleFOC, but both have “weak” analog-in features.
    STM32 and SAMD21/51 work great with SimpleFOC, but availability is very bad right now. If you can find some, ask me and I can let you know if it will work with Arduino and SimpleFOC.

The MCU package (QFN, BGA, WLCSP, etc) has absolutely nothing to do with Arduino framework. Arduino framework will work very happily with BGA packaged variants of MCU types it does support.

So if you find a BGA packaged STM32 or SAMD MCU, you can most likely use it.

  1. Voltage measurement of the motor phases is not needed and currently not supported by SimpleFOC.
    Personally on a battery-powered system I would include VBUS voltage measurement to protect against over-discharge of the battery, and to automatically adjust the driver.voltage_power_supply as the battery voltage drops.
    A voltage measurement needs no special chip, just a voltage divider and an analog input on your MCU. You can make it more fancy with some ESD protection (3.3V TVS diode) and a filter to smooth measurements, but I wouldn’t even bother with the filter, you can do it in software.

  2. I think for I2C it won’t matter much if you use flex PCB as a cable, it would depend how long the cable needs to be… for shorter lengths <30cm almost any kind of cable should work for I2C.
    But all other things being equal a shielded cable will have better performance than an unshielded one.

1 Like

Hi all!
I’ve made some progress with the project, The first steps are quite difficult, but the simple foc community has made it real for a beginner.
Special thanks to Runger and Valentine for their very frequent advice and support with reference design.

A little bit of circuitry and PCB design. This is my first experience with electronics.

I tried to follow all texas instruments recommendations for the driver, for example the board has a power pad for heat dissipation, but according to the documentation the heat dissipation will be minimal, later I will make a thermal calculation. On the back side of the board I placed the ESP this will allow to control the temperature with built-in temperature sensor.

I haven’t made up my mind yet about the encoder type, so I made two pin clusters for I2C and SPI connection.

The size of my first prototype is 12x22 mm

Maybe you will have some suggestions on the design?

Love the curvy layout, is that pcbnew or a different program?

You have two ICs on opposing sides of the PCB, right? That thermal via pattern looks like some vias would be directly covered with solder paste. Normally you’d have an excess wicked away but your setup prevents that. You might want to move the vias out of the paste and slightly reduce the amount of paste for the center pad. Shorts under QFN chips are some of the least fun board issues to find and fix.

You’d also want to use a lot more freestanding vias to connect the ground planes.

Aren’t MISO and MOSI a little close together in some places? Oh, also CANH - GND

1 Like

I also love the curvy traces :slight_smile: nothing wrong with this, just less usual. It looks like a very nice, and very tiny design.

I would not be too concerned about the vias under the chips. They’re all ground vias leading to ground pads, and even if solder were wicked away, then the huge ground pad would still be connected overall. Stefan’s point is correct, really, but I would not be too concerned about it not working in this case.

But you should just ask for the vias to be tented. They will generally do this with no surcharge, and it should minimise the solder wicking away. Or you could ask for the vias to be filled (plugged), which is really recommended when you use vias in pads, but this will cost extra.

I would be more concerned in general about having a motor driver exactly underneath of a MCU. You have 2 ground planes in between, and I think are targeting low power levels, so it will probably work… but normally I’d avoid doing that.

Castellated edge connectors look cool and are all the rage in PCB-design these days :wink: but I would consider whether this is the most practical? They will cost you extra in production, and complicate the panel layout, since these tiny PCBs will be produced in a panel.
And they’re really most suited if you want to solder this PCB onto another PCB (board to board mounting). If you want to solder wires to these connections, the castellations are less practical than real through holes, and won’t make for as strong connections.

1 Like

KiCad plugins
I came across a great video by mixtella

I used his plugin to round tracks, the board is more compact, but there are some small problems like proximity of tracks, but this is corrected manually, thanks for paying attention.

Production

May have to change the form factor of the board.
I must mention that ordering the boards is a complicated story for me now. I am in russia, JLC say they cannot accept payment and cannot ship.
Local manufacturing is worse quality, longer lead times, and a very high price tag.

ESD
I’m not sure there’s enough ESD protection.
Maybe just shielded cable will be enough. Just a reminder that the CAN and power wires go inside the wing console, above which the carbon blades rotate and induce current.
On the other side all the boards are connected to the same GND.

Peripherial
I want to use the LCD connector and flex cable to connect external sensors, but the plan is for this to be the next prototype, now I need to do a proof of concept and there will just be wires.

Usability
I don’t plan to use the boards in other projects, so the pin sequence and connectors form factor is not important to me.

mcu GND vias
I haven’t yet separated the driver footprint into segments for solder mask application, I plan to solder the driver side first, then flip and solder the MCU. This should fill in the capillary effect of vias. I suggest trying XD.

Where is the best place to post the schematics?

It’s called topological routing (topo-route). Altium does this out of the box, but they call it snake routing. Back in the days auto-routers doing topo-routing were all the rage. Also even way, way back everyone did topo-routing by default, they didn’t know any better, because it’s the most natural routing since routing was done by hand on a piece of paper like that:

Then it was abandoned because they started using software and it was a lot easier to design an algorithm with angles than smooth curves. And now, with improved computing power, the old is new again. Who knew. If you stare long enough, the light curves along the the fabric of the time-space continuum of the universe and you eventually see your back.

Cheers,
Valentine

1 Like

Then at least mention TopoR, the ‘ancient one’ in this area :slight_smile:

Big fan of curvy tracks, but the amount of DRC violations had made me wonder if @Andrey_Sabadash had used something other than KiCad. Pretty neat plugin. The standard curved tracks are usable (heck, one of my boards is included as example), but not very quick or easy to use. My hope is still that someday all tracks will use parametric (bezier, etc) curves as base and just wrap around objects with a ‘shrink’ command.

If you have a GitHub project for it, you can export the schematic to PDF, commit it, and link it in the README in the GitHub repo and other places.

In the forum, you can take a screenshot of the schematic and post it as an image…

For Kicad, there is KiBot:

Which can be used to automate schematic export and more as a GitHub action. It was being updated to KiCad version 6, but I think it might be ready now.

1 Like

TopoR is a toy project. You may get some passable results for a small hobby project. However, for anything more serious it fails spectacularly. The time you will spend trying to autoroute a project in TopoR, you might as well manually route it and move on.

The theory has been there for decades. These are the original papers by Dayan Tal, with even earlier references inside.

https://dl.acm.org/doi/pdf/10.1145/127601.127622

https://www.semanticscholar.org/paper/RUBBER-BAND-BASED-TOPOLOGICAL-ROUTER-Dayan-Cruz/91ce7726d0b103db47ab5db433ed75b538e6e7f8?p2df

Cheers,
Valentine

1 Like

There is one question, if I want castellated pads by default pcb pricing, can I place a cluster of boards and order production as one solid pcb?
Once received, I can mill boards of any geometry, including making castellated pads.
Do I understand this correctly?

Changed the PCB design to match the JLC design rules

Inductance form factor for buck converters remains to be chosen.
Looking for a small SMD inductor for 10 uH < 600 mA

After that I will order the first board

Your paste openings and several pads (last image, bottom-left caps) are way too large for the parts you’re using. They look like some strange hand soldering attempts. Solder will try to pull the part to the center of the pad. Any misalignment with those parts and one side will snatch the part (‘tombstoning’). Try to stick with IPC-7531 B (did a board with C pads and JLC messed it up bigtime) or use C for better manufacturers. Note that KiCad library managers felt the need to randomly choose a density instead of embracing multiple as per standard, so you’ll have to check.

2 Likes

You will have to account for the diameter of your milling bit. Assuming you route out the PCBs with a 3mm PCB cutter, you can place a 3mm wide gap between your individual boards, and then cut them out yourself. Why not?
You’ll have to try it and see the results - I think the milling process might damage the pads, but maybe not. I assume you would be doing this to blank boards, and then assembling afterwards?

If you do this, I would love to see a picture of the result!

1 Like

Some updates

I cut the boards myself, designed the attachment points, they will also serve as a support for the stencil.
I will cut it off by milling after the board is assembled. Or vice versa, I can assemble the boards after milling.

As long as the cutter is sharp, it almost does not put stress on the board, castellated pads should turn out well.

It’s a bit awkward to design in EDA after solidworks CAD.

MCU side


Driver side


Got the boards from JLC, quality is excellent
Using 0201 components was not the best idea XD

Waiting for ESP mcu and soldering station