Anybody wants a stepper motor analyzer?
-
@zapta Thanks! I'll change the board design and proceed on this track then. Do you think the lower sensing resolution will impact the quality of the readings?
-
@keybored, I don't expect the lower sensitivity to be significant.
Of course, I don't know for sure since I never used that IC.
-
I am trying now a new approach, a BLE Stepper Motor Analyzer. It still at an early stage, but so far looks feasible. Imagine a small widget, smaller than a matchbox, with 4 pass through stepper motor wires. The widget harvests a small amount of power from the wires (~100mw) to power a small microcontroller (Nordic NRF52832) that monitors stepper signals, extracts information such as steps/speed/waveforms, and sends it wirelessly via BLE to an app on a computer, smart phone, or even to a DWC plugin (which uses Web Bluetooth).
I don't know if it's all possible but initial tests look good. With a NRF52832 that samples two analog channels and sends the extracted data to a PC via bluetooth (max sampling rate I could get is 40Khz per channel compared to 100Khz on the Simple Stepper Analyzer). Power harvesting also looks feasible with a four phase full rectifier bridge, a small capacitor and a 5-30V -> 3.3 DC/DC converter. The energy is available as long as the stepper is energized, regardless if it moves or not and on what microstep/phase it happened to stop. Could also add a small battery rechargeable or not, if needed.
As for the client software, I am thinking of a reference python client that people can use to create desktop apps or as reference design for mobile and other clients.
As I said, it's still at an early phase and I don't know for certain that this is feasible.
Any thoughts?
-
@zapta I'll take five.
-
@oliof said in Anybody wants a stepper motor analyzer?:
@zapta I'll take five.
Will keep it in mind. My preference would be to provide it to a few developers that will build real apps (for desktop, mobile, or web bluetooth).
One challenge I hit is how to calibrate zero current if the MCU is not powered when the current is zero.
-
Had more progress with the BLE stepper probe and was able to display on a PC a real time step and speed graphs over BLE (using python/Bleak/Pyqtgraph and the PC side). Sill need to do some tests, e.g. of the energy harvesting, but it feels feasible. The MCU and the radio consumes about 3ma and the current sensors about 5ma each (all at 3.3v), for a total of ~40mw. This is the current schematic (not tested):
If anybody thinks that I am doing something terribly wrong (e.g. damaging the Duet's driver) now it's the time to speak
-
@zapta
I come from Hong Kong, I would like to order a PCB , how can I contact you and place a order? -
@rickykwongwm, PCB of what version, the one with touch screen or the experimental one with bluetooth?
-
@zapta
I prefer a set of PCB with touch screen, but experimental one only is also acceptable .
could u leave your contact to me with quotation ? -
I wonder if you have the stepper motor analyzer with touch screen. If you do, can you send me a quotation for the cost including shipping? I am from Winnipeg, Canada.
Yours sincerely,
Bruce Dewald. -
@brucedewald , sorry, I don't have any left. The goal of this project was to put a reference design in the public domain rather than actually producing them.
-
@brucedewald I still have some available from my original batch. If you're interested send me a direct message.
-
This post is deleted! -
@adamfilip I suggest you read the thread above
-
The second iteration of the Bluetooth version went out to JLCPCB. They install all the SMD parts except for the bluetooth module and the two current sensors. Still working on it but the core functionality already works. This version doesn't need external power, just connection to the stepper wires.
-
Hi.
I am planning to sell a small quantity of this analyzer in Japan for CNC users.
I found a cheap current sensor CC6920BSO-5A made in China at LCSC and tested it. LCSC Part No: #C2880430
This sensor also drive in 3.3V.
With this, the current sensor can also be mounted on the board in JLCPCB.I want to share you the test result.
There appears noises on the signal. But I think It is not a problem to get rough forms of waveform.
movies:
https://youtu.be/GVSU9TVF_7k
https://youtu.be/dTQMCF_6i5k -
@nyaru, that's very useful, especially the availability from JLCPCB. Thanks.
I have hard time downloading the datasheet from LCPCB. Do you happen to have it?
If the sensitivity of this chip is lower, e.g. 200mv/A instead of 400mv/A, it can be compensated in firmware.
Do CNC users typically need higher current range than 3D printers?
Edit: The firmware does basic signal filtering which reduces the impact of the noise. https://github.com/zapta/simple_stepper_motor_analyzer/blob/main/platformio/src/acquisition/analyzer.cpp#L323
-
I have hard time downloading the datasheet from LCPCB. Do you happen to have it?
You can see it from another current value sensor page.
https://www.lcsc.com/product-detail/Current-Sensors_Cross-chip-CC6920BSO-10A_C2880431.htmlI already changed sensitivity to 264mV/A in firmware. and it works well.
Do CNC users typically need higher current range than 3D printers?
Yes. Milling and Cutting something in CNC machine need more power than 3D printer. I used 3A stepper motor in my CNC machine.
The firmware does basic signal filtering which reduces the impact of the noise.
Thanks for telling it! This may be the reason why analyzers are less noises than oscilloscopes.
-
@nyaru, thanks for the datasheet link. It does work.
BTW, the design has some support for sensor selection using configuration resistors. May or may not be useful for you.
-
Here is a sample screenshot of a Windows/python client that talks with the experimental BLE stepper monitor and displays the data in real time. In this example the stepper runs on 12V which causes current reduction in higher speed (shown by the arrows). This is reflected in the current graph, the current vs speed histogram, and the oscilloscope view.
The Python client is here https://github.com/zapta/ble_stepper_monitor/tree/main/python . Hopefully somebody can write a similar one for mobile devices.
The probe is powered from the stepper signals and thus can be left embedded in the printer and be connected to any time. Each probe has a unique address which is shown at the upper left part of the picture.