A place to put your YouTube video that is ESP8266 related.
User avatar
By HermannSW
#78562 Yesterday all seemed to be fine, everything mounted to drone and transmitter, MicroPython software side OK. I wanted to test drone flights with payload drops. Unfortunately the servo motor superglued to drone did only make noise, but did not move. That was frustrating.

Today I first tested the spare SG37 3.7g servo motor I have, 3.3V and 5V voltages from MB102 power supply module, another ESP01s plugged into ESP01 DHT11 module for using its 2x4 connector. The new servo worked as expected:
Image


Next I removed the ESP01s from the connectors superglued to drone back and did connect 5V, GND and signal to the drone SG37 servo. Connection to 5V on step-down converter in drone and GPIO0 of ESP01s in DHT11 module was done easily with logic analyzer hook clips. Unfortunately this test confirms that the servo is broken:
Image


I will have to cut the 3 cables superglued to drone somewhere, and connect the new servo. Most importantly I will have to avoid the same issue, as the last animations proved the servo worked fine BEFORE it was superglued to drone. Mayby some superglue got inside the servo -- I once lost a DC motor as I superglued a wheel on its shaft and was not careful enough to avoid superglue getting into the motor [after I realized it, I immediately connected 12V to the motor to get it rotating at maximal speed, but superglue won as motor got slower and slower until stopping completely :) ].

P.S:
The reason I did not try the SG17 (1.7g) servo seen in 1st photo is that I cannot find a datasheet. From SG37 information provided by the suppliers I know its input voltage range is 4.8-6.0V. For the SG17 I only know that its "low voltage" servo, and that 3.7V and 4.2V are valid inputs, but no information on valid input voltage range.
User avatar
By HermannSW
#78580
HermannSW wrote:P.S:
The reason I did not try the SG17 (1.7g) servo seen in 1st photo is that I cannot find a datasheet. From SG37 information provided by the suppliers I know its input voltage range is 4.8-6.0V. For the SG17 I only know that its "low voltage" servo, and that 3.7V and 4.2V are valid inputs, but no information on valid input voltage range.

I was totally wrong with that statement, the more lightweight SG17 servo does better fit, because the two voltages
Code: Select allVoltage   Torque               Speed
3.7V      0.065±0.01Kg·cm      0.07±0.01S/60°
4.2V      0.075±0.01Kg·cm      0.05±0.01S/60°

perfectly fit that the servo gets powered directly from lipo, while SG37 4.8-6.0V voltage range is a bit outside of what even fully loaded lipo can provide (4.2V, but that worked). Since I will go with SG17 from now on, I just ordered a spare SG17 in Germany, only a bit more expensive than from China, but will be here in 5-6 days.

The SG17 is too small that 4 cubes can fit on it, not even 3. So I did superglue D, R and P cubes on small piece of plastic 4x1 area of a cubes side. Then I superglued that plastic onto the SG17. After calibrating I did some stress testing with this simple MicroPython code on the ESP01s controlling the servo:
Code: Select all>>> while True:
...     pwm0.duty(42)
...     time.sleep(0.2)
...     pwm0.duty(90)
...     time.sleep(0.2)
...     


Again I took a 180fps 640x480 video from the scene with Raspberry v2 camera. This is animated .gif created from youtube video at same speed (youtube video assumes 25fps for raw .h264 upload, so it is played 180/25=7.2 times slower than real):
Image

I did single frame step from start of drop until the O cube would be completely free and start to fall, only 12 frames. Therefore payload.drop() will take 12/180=67ms in total.

And last, but not least, the servo payload drop mechanism weight is now reduced by 2.0g, which can be added to drop payload that still allows drone to fly.
User avatar
By HermannSW
#78583 After soldering the three servo cables from drone and SG17 servo together and having superglued SG17 to drone downside I wanted to do first remote payload drop. I connected Android to drone AP, started E52 app and saw live video from drone camera on smartphone, partially hidden by payload. Then I started recording of drone camera video and did "payload.drop()" on the ESP01s -- nothing happened.

I did remove the isolation I had done to the servo cables, connected VCC, GND and signal to separate ESP01s from yesterday and tested again -- nothing. Then I removed the ESP01s attached to drone after I realized that it was powered as well, tested again and -- nothing (see photo below).

I thought how I could have destroyed the SG17 servo, and had a last idea. I disconnected the drone servo cables and servo cables, and then did try again -- now SG17 servo worked as expected.

I will have to understand what from my drone diagram posted before avoids servo to function, since lipo and ESP01s were not present, the only candidate seems to be the 3.3V step-down converter ...

Then I took the replaced servo from yesterday and tested again, without connection to any drone parts -- it is still dead.

Image
User avatar
By HermannSW
#78603 I did replicate what I had attached to drone and should correspond to my 2nd diagram with completely new set of components (see photo). I had to Dremel away some plastic to make the ESP01s fit onto 5x5 mini breadboard. Surprisingly this setup worked.

Next I did solder together the 3 servo cables with 3 cables from drone reaching state from yesterday that did not work. Now it works ...

Interestingly the software side on the transmitter attached ESP01s MicroPython does not want to do what I want, although I have proven earlier that its possible (remote control ESP01s attached to drone). This is work in progress, but doing remote shell (webrepl_client.py) into drone ESP01s now allows to drop payload by "payload.drop()".

Image