check in
Ongoing

Gooser5

STDGooser5

tag

68
0
0
0
Mode:Full

License

Public Domain

Cloned fromGooser4
Creation time:2025-05-05 08:43:39Update time:2025-05-06 03:24:46

Description

https://community.simplefoc.com/t/gooser-a-4-in-1-lepton-derivative/5325/84

After running out of ideas to try and make Gooser4 work, I decided to rework Gooser3 for standard 3.3mm mosfets. I intended to keep the changes minimal just to test if it would work, but it took on a life of its own and I ended up with a lovely single-sided design (aside from the usual back-side capacitors and optional heavy copper bars).

Unlike my previous tileable designs, this one is max 4 motors. The primary design is for 2 motors, and instead of running signal lines across the board, the aux pin header is placed on the right edge so you can copy the board and rotate 180 degrees so the aux headers are side-by-side, and join the I2C and power inputs between the two. They do have to crisscross eachother, but there are 4 shared lines and 4 copper layers so it works (3V should typically not be joined, since each board has its own regulator and their outputs could interfere with eachother).

As before, it can be cut smaller for one motor as well. The 0402 resistor below the CPU is the southernmost essential component. Minimum board size is 21x31mm (single mosfets required increasing the width by 1mm compared to Gooser3).

Also as before, there are four power rails on the board: HV_IN (power to mosfets, no minimum voltage, max depends on rating of mosfets, capacitors, and TVS diode), VDRV (power to gate drivers, 20V max, minimum depends on mosfet Vgs), LV_IN (power to 3.3V LDO, 4V mininum, 6V max if <90mA, keep below 250mW waste heat), and 3V (power to MCU, current sensors and encoder connectors, typically 3.3V, though anything 3-3.6V is within spec).

Notes:
* 6PWM with 3-channel current sense, and ADC channels chosen so any two sensors can be sampled simultaneously. By dynamically choosing which ones to sample, you can get improved accuracy.
* Encoder connectors now have 5 pins each: 3V, GND, and 3 ADC pins. This allows using two linear halls, 3 digital halls, or 3 linear halls spaced 120 degrees for similar accuracy increase as the current sensors by choosing the two that are farthest from their sine wave peaks. There are some combinations that can't be sampled simultaneously, but linear halls generally give good signal with short sampling time whereas the current sensors are noisy and need a long sampling period to average it out.
* There is a complete set of SPI pins among the two encoders, so SPI encoders can be used, as well as I2C encoders via the aux pin header. There are two TIM3 pins on M0's encoder and two TIM2 pins on M1's, so I think hardware counting of ABZ encoders will work too.
* Can use through-hole or SMD electrolytics. Through-holes usually say not to reflow solder them, but it's difficult to add them after soldering heavy copper bars, plus vibration may fatigue them when bent down on their side like I usually do. You can optionally use two 8mm diameter SMD electrolytics alone, or place copper bars with ceramics between them and electrolytics on top and solder them all at once. The connectors fit between them when soldered on the back side, which leaves the front side clear so it can be stuck to a heatsink.
* Bus voltage sense is fully implemented this time.
* Added a spot on the back for an optional reset pullup resistor.
* I have not made a version with buck converters yet, but it could be done. They would be on the right edge. As it is, it's primarily designed to tap into the lower cells of a battery for the lower voltages.
* The timer channel numbers are reversed from the driver phase names (the routing was much cleaner this way). For example motor 0 phase A is TIM1_CH3, and phase C is TIM1_CH1.
* As usual, HV_IN can be joined with VDRV if it is below 20V.
* I left the filter capacitors on the current sensors, but they should generally not be populated. According to my testing, filtering slows down the noise but does not significantly decrease its amplitude, so it works better to use a longer sampling period on high frequency noise to average it out.

Motor 0:
TIM1 ch3 PA10, ch2 PA9, ch1 PA8, ch3n PB15, ch2n PB14, ch1n PB13
Current sense ADC1 ch2 PA1, ch1 PA0, ch10 PF0
Encoder PA7/ADC2ch4, PA3/ADC1ch4, PA6/ADC2ch3

Motor 1:
TIM8 ch3 PB9, ch2 PB8, ch1 PC6, ch3n PB1, ch2n PB0, ch1n PB3
Current sense PA1/ADC12ch2, PA0/ADC12ch1, PF0/ADC1ch10
Encoder PA5/ADC2ch13, PA2/ADC1ch3, PA4/ADC2ch17

SWD: io PA13, clk PA14
UART3: tx PC10, rx PC11
I2C1: sda PB7, scl PA15
Bus voltage sense: PC4/ADC2ch5

Design Drawing

The preview image was not generated, please save it again in the editor.

BOM

Bom empty

Attachments

OrderFile nameDownload times
No data
Clone
Add to Album
0
0
Share
Report

Project Members

Comment

All Comments(1)
Sort by time|Sort by popularity
Followers0|Likes0
Related projects
Empty

Bottom Navigation