Update readme
55
README.md
@ -14,29 +14,38 @@ Premium SmartKnob experience. Under active development.
|
||||
### SmartKnob Handheld
|
||||
An exploration of a small handheld form-factor. Under active development.
|
||||
|
||||
<a href="doc/img/PXL_20220212_013249074.jpg"><img src="doc/img/PXL_20220212_013249074.jpg" width="200" /></a>
|
||||
|
||||
### SmartKnob Mini
|
||||
Planned for the future.
|
||||
|
||||
## Component Info
|
||||
|
||||
### Magnetic encoders
|
||||
#### TLV493 (Infineon)
|
||||
A decent choice, and easy to prototype with using [Adafruit's QWIIC breakout board](https://www.adafruit.com/product/4366).
|
||||
#### TLV493D (Infineon)
|
||||
A mediocre choice. Easy to prototype with using [Adafruit's QWIIC breakout board](https://www.adafruit.com/product/4366).
|
||||
|
||||
In my testing, it is a little noisy, requiring filtering/smoothing that can slow responsiveness, hurting control loop stability. Or, with less filtering, the noise
|
||||
can easily be "amplified" by the derivative component in the PID motor torque controller, causing audible (and tactile) humming/buzzing.
|
||||
|
||||
There is also apparently a somewhat common issue with the internal ADC locking up, requiring a device reset (see datasheet section 5.6). From a random sample of 4 Adafruit breakout boards, 2 of them (50%) appear to be extremely prone to this - locking up within a minute or so of use! Further testing is planned, but this may be a deal-breaker.
|
||||
There is also apparently a known silicon issue that causes the internal ADC to sometimes completely lock up, requiring a full reset and re-configuration. See section
|
||||
5.6 in the [User Manual](https://www.infineon.com/dgdl/Infineon-TLV493D-A1B6_3DMagnetic-UM-v01_03-EN.pdf?fileId=5546d46261d5e6820161e75721903ddd)
|
||||
|
||||
In the Master Controlled Mode (MCM) or the Fast Mode (FM) the ADC conversion may hang up. A hang up can
|
||||
be detected by:
|
||||
- Frame Counter (FRM) counter stucks and does not increment anymore.
|
||||
|
||||
In my experience testing 4 different Adafruit breakout boards, 2 of them (50%) regularly exhibit this lockup behavior within a minute or two of use.
|
||||
|
||||
As of 2022-02-08, there is limited availability of this IC.
|
||||
|
||||
[Datasheet](https://www.mouser.com/datasheet/2/196/Infineon_TLV493D_A1B6_DataSheet_v01_10_EN-1227967.pdf)
|
||||
|
||||
#### MT6701 (MagnTek)
|
||||
Very promising based on the datasheet and initial prototyping.
|
||||
Very promising based on the datasheet and initial tests. Seems to be less noisy than TLV493D, and more responsive (control loop is more stable) using SSI.
|
||||
|
||||
- Haven't testing in a full control loop yet, but data looks good and relatively noise-free.
|
||||
- Lots of IO options - SPI, I2C, and ABZ - should offer good response latency.
|
||||
- Lots of IO options - SSI, I2C, and ABZ - should offer good response latency
|
||||
- SSI include CRC to validate data
|
||||
- No power-down or low-power options - may not be ideal for battery-powered devices
|
||||
- Not available from US distributors (Mouser, Digi-Key)
|
||||
|
||||
@ -58,11 +67,43 @@ Highlights:
|
||||
[Product page](https://www.trinamic.com/products/integrated-circuits/details/tmc6300-la/)
|
||||
|
||||
### Motors
|
||||
TODO
|
||||
#### 32mm Rotor, Hollow Shaft, Diametric magnet
|
||||
<a href="doc/img/motors/PXL_20220121_221746595.jpg"><img src="doc/img/motors/PXL_20220121_221746595.jpg" width="200" /></a>
|
||||
<a href="doc/img/motors/PXL_20220121_221738745.jpg"><img src="doc/img/motors/PXL_20220121_221738745.jpg" width="200" /></a>
|
||||
|
||||
|
||||
- 32mm rotor
|
||||
- 15mm overall height (including magnet), 12.75mm height w/o magnet, 9mm rotor height
|
||||
- low/zero cogging - excellent for completely smooth input
|
||||
- 5.9mm hollow shaft
|
||||
- built-in diametric magnet for encoder
|
||||
- Proven option
|
||||
|
||||
This is overall the easiest motor to get started with. Low cogging and a built-in diametric magnet are great!
|
||||
|
||||
[AliExpress](https://www.aliexpress.com/item/1005001384349991.html)
|
||||
|
||||
#### ~17mm Rotor
|
||||
<a href="doc/img/motors/PXL_20220121_220530808.jpg"><img src="doc/img/motors/PXL_20220121_220530808.jpg" width="200" /></a>
|
||||
<a href="doc/img/motors/PXL_20220121_220546761.jpg"><img src="doc/img/motors/PXL_20220121_220546761.jpg" width="200" /></a>
|
||||
|
||||
- Not tested yet
|
||||
- Stepped 17.3mm and 16.3mm diameter rotor
|
||||
- 11.2mm total height, 8.6mm rotor height
|
||||
- moderate cogging - not ideal for completely smooth input
|
||||
- Rotor has threaded hole on the side that should be usable for keying a cap
|
||||
- Very little shaft accessible on bottom - may be tricky to mount a diametric magnet to it. Maybe could replace screw with something else?
|
||||
|
||||
[AliExpress](https://www.aliexpress.com/item/1005003240145615.html)
|
||||
|
||||
# Firmware
|
||||
TODO
|
||||
|
||||
# Acknowledgements
|
||||
This project was greatly inspired by Jesse Schoch's video "[haptic textures and virtual detents](https://www.youtube.com/watch?v=1gPQfDkX3BU)" and the
|
||||
corresponding [discussion in the SimpleFOC community](https://community.simplefoc.com/t/haptic-textures/301).
|
||||
|
||||
|
||||
# License
|
||||
|
||||
This project is licensed under Apache v2 (see [LICENSE.txt](LICENSE.txt)).
|
||||
|
BIN
doc/img/PXL_20220212_013249074.jpg
Normal file
After Width: | Height: | Size: 1.9 MiB |
BIN
doc/img/motors/PXL_20220121_220504138.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
doc/img/motors/PXL_20220121_220515698.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
doc/img/motors/PXL_20220121_220530808.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
doc/img/motors/PXL_20220121_220546761.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
doc/img/motors/PXL_20220121_221738745.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
doc/img/motors/PXL_20220121_221746595.jpg
Normal file
After Width: | Height: | Size: 1.0 MiB |