Tuesday, August 18, 2020

Jumper R8 Notes

RCGroups thread:

Midelic Firmware thread:

STM Flasher and Tutorial

For STM STM32CubeProg on Mac:
Double clicking the installed app just bonces the icon in the dock once and then quits . You can get it to run by right clicking on the installed package (STM32CubeProgrammer.app), selecting 'Show package contents' and navigating to Contents/MacOs/bin/STM32CubeProgrammer and right clicking 'open'.

  • STM32 F103C8T6 6Q25E 1193
 LED colors

  • steady green: signal good
  • blinking green: signal bad
  • solid red: signal low
  • blinking green: signal bad
  • solid red: signal lost

Jumper Manual R8

Flashing new firmware on Jumper R8 connections.

  • Use STlink V2 programmer.
  • connect STLink device ,press Target/connect.
  • If you receive "Read out protection" enabled warning, go into "Option bytes" and disable it.
  • Press "Erase/Chip" after that press "Program&verify" load the binary file to be flashed.
a12967115-35-Jumper_R8_1.png (1916×928)a12967117-191-Jumper_R8_2.jpg (3264×2448)

Monday, August 10, 2020

Powered Solder Sucker Notes

 Some good tips from the Amazon page.

  • BIT/DESOL3 is the replacement tip. Look at the other answers, they say it has a 2.1mm opening.
  • This isn't made to be used like a pencil like the non-heating ones. The button is near the back! The way you hold it is (to explain in words here) by opening your (right) hand and placing it in your palm with the plunger push-down at the same side of your palm as your thumb. Wrap your hands around it. Your thumb is now right on the release button! Hold it like you are stabbing the pc board. Place perpendicular to the board, wait maybe 3 secs, then use thumb to press the button. No shifting, jerking, momentum issues, etc. Just lightly tinned holes/pads after you are done.
  • For cleaning, Seller is wrong. Very cleanable. Instructions on pkg, but there is even a better way... Look closely at the housing/base where the plunger rod goes into the black end of the yellow tube. You can see the bigger outer housing you hold has a little partition at the top of the suction tube. The yellow tube is cradled in the outer tube. Use a small flat screwdriver and lever it slightly and it pops out - the whole tube. It comes apart for cleaning. An old toothbrush cleans the plunger well. It seems to all gather at the end of the plunger. It has a light coating of grease, probably silicone paste, so if you remove it by washing you may need to re-apply...
  • Properly tin the tip the very first time you heat it up, and treat it like a soldering iron!--ie: keep the tip wet with fresh solder while you work. *Adding* solder to a joint you want to *desolder* is a "secret" well-known by the experts because it keeps the joint fresh and flowing rather than brittle and plasticized so that the solder flows well and the joint is cleaned nicely when you press the vacuum button. Also be sure to hold the iron vertical to get good suction when sucking. And let me repeat: if you say the iron is not hot enough you are WRONG! (in 98% of the cases). What you need to do instead is *add fresh flux-core solder* to the iron tip--get it all up inside the tip even, then place the tip over your through-hole leg to desolder and now the fresh solder will flow the heat right into the joint--press the vacuum sucker button and voila! You've just cleaned that joint perfectly!

  • https://www.youtube.com/watch?v=UdGB7vD8ey0

Monday, August 3, 2020

HobbyKing Rarebear 620

AKA AngleWings RareBear

Wing Span: 620mm
Length: 535mm
Flying weight: 345g
Prop: 5.5x4.5 (3pc Included)
Motor: 2825-1950kv Brushless outrunner motor
ESC: 20A [Upgraded True 4S]
Servo: 3 x 8gram
850mAh 3~4S 20C Lipoly Battery

motor mount parts-2.jpg (1024×519)

Thursday, July 2, 2020

Ultrix CG: some random RCG

As they come a 600 lipo gets the COG just fine, its not that fussy but take the weight off the rear end.. its responsive enough even when nose heavy...

Do the bind inverted using the polystyrene brace from the box on a level surface

For flight switch the TX on, then the model.. then place the model down on some flat ground and wait for it to sort itself out..

Trimming is done in as3x mode, not safe... I adjust the push rod bends to raise both elevons by a tiny amount, I set mine with them raised by the thickness of the wing at the trailing edge..

With it set like that mine flies fine.. battery just stuffed anywhere in the nose.

I think its angle at bind affects its level flight so its worth rebinding, inverted, with the rear end raised a touch, so when its the correct way up the nose has effectively been raised and trying again..
Mine was going down at launch, not flat, this was initially sorted with TX trim.. and later rebinding.

As you can see from the video it was still going down slightly when the power/throttle was set lower, on the first launch.. but when the power was set higher it remained flat.. this was a nose heavy flight.. note the first launch was downwind, and this also makes a big difference....lol


Both mine are balanced 1/16" ahead of those holes and fly perfect upright, inverted and everywhere inbetween, even in howling wind. If it's too nose heavy inverted requires too much down elevator.

Finger tips are not very accurate on tiny models. I use two short lengths of bamboo skewer that are rounder off and held in a vice.

I use 500 and 650 batteries with the mounting location marked inside the fuse. The 500 mounted as shown in the instructions and the 650 towards the rear with the use of velcro.

A few CG silly millimeters make a HUGE difference in this tiny wonder.

Also, made sure the elevon TE match the wing using the wire pushrod 'U' as the reflex seems to be built into the airfoil.


CG check .................. https://www.rcgroups.com/forums/show...&postcount=129

May not work in safe mode.


The real CG test is trying both upright and inverted flight. If correct, the transition from one to the other will be smooth and predictable, both will fly straight and lev

I didn't quite know what to think of my Ultrix after the maiden the other day. It was amazingly twitchy, and quite unstable in normal flight but a delight to 3D. I only had the one battery, so couldn't experiment too much. I fully expect to burn through several batteries finding the correct CG and mechanically trimming when setting up a new model.

I read through most of this thread, but still haven't finished yet, but I see people saying battery position doesn't matter, cg doesn't really matter, some mechanically trim a bit of up elevon and others trim them neutral. In my experience, even at this small scale CG can make a big difference.

I spent last night messing with my 500 & 600 batteries to get the CG at the recommended location. The 500 was mid way back, and the 600 was fully back against the receiver. I had 3 batteries charged today and thought things would go better since I definitely knew where place the batteries to be close on CG. First two batteries I kept flying and then mechanically trimming, flying and mechanically trimming, repeat. It was still very unstable. Also, at 2/3 throttle in level flight it would dive when going to full throttle. It just acted tail heavy. I had one 600mah nanotech left and decided to just shove it as far forward as it would go and move back as needed. WOW! What a difference! It flew amazingly stable and predictable! I had to mechanically trim about a wing-width of up trim in. And absolutely NO nose over at full throttle!! Now that this thing is dialed in it feels absolutely locked-in! Love this plane! Still 3D's awesome as well! Three flights at a park and one in my backyard already! 


A forward location for the battery works best. That has been my experience. The 600mAh helps in this case too versus the stock 500 mAh.

Wednesday, June 17, 2020

RC Groups - View Single Post - FRSKY Taranis "How to" Thread

Capturing a double-pull of a momentary switch

Thought I'd share this snippet for capturing a double-pull of a momentary switch. Applications include anywhere a 'safe' switch is required, for example for arming a motor or u/c operation.


Pull SH twice within a 1.5 second window. The second pull is captured as an edge in L3.


L1 Edge(L02, [0:instant]) Duration(1.5s)
L2 ( Edge(SH-down, [0:instant]) )
L3 L01 AND L02

How it works
  • Pulling SH generates an edge in L2, which cascades to L1 a clock tick later.
  • Because an edge is true for just a single clock tick, L3 is true only from the second pull. This must be within the time period set in L1.Duration (1.5 secs).

Simple demo - each double-pull toggles a sticky switch:

L4 Sticky(L03, L03)

Tuesday, June 16, 2020

Sunday, June 14, 2020

FrSky SxR Gains

Mike Blandford confirms:
In auto-level mode, the individual gains set using the script affect the amount of servo movement output to get to level. The channel 9 gain affects the speed of the servo response..

Tuesday, June 9, 2020

Viewing Wyze Cam on Computer

tl;dr: Wyze supports RTSP with a bit of effort.

Directions and download here:

  • Download the firmware
  • Boot Cam with firmware on SD card.  It will take 3-4 minutes to install.
  • In your phone app, Settings / Advanced Settings / RTSP
  • Turn on RTSP toggle
  • Set name and password, click Generate URL
  • Watch with VLC

Sunday, June 7, 2020

Reference: Geekcreit® 375pcs 3MM 5MM LED


Current : 20mA
Voltage: 3V
Total Quantity: 375pcs
Packed in a box
             375pcs Five Colors 3mm,5mm Round Bright Light LED Assortment Kit
Lens Color

Reference: TTGO ESP32 1.14 Inch LCD LILYGO

On Banggood.
Demo: https://github.com/Xinyuan-LilyGO/TTGO-T-Display

Random notes for the BG page:

IPS ST7789V 1.14 Inch has 135x240 pixel
Display has 340x240 pixel resolution
LCD resolution 240x135

Driver ST7789 (uncomment #define ST7789_DRIVER in User_Setup.h)
Color order Blue-Green-Red (uncomment #define TFT_RGB_ORDER TFT_BGR in User_Setup.h)
Device TTGO_T_Display (uncomment #include in User_Setup_Select.h)

the display seems to require its own graphic library, on github:

Q:Is the SPI bus accessible for other sensors (other than the display)?
A :  VSPI default pins are connected to display and are not available on the headers. HSPI by default uses GPIO 12 to 15. Unfortunately GPIO14 (CLK) is apparently also used by the display BL function. So I assume you will need to remap 14 to another pin to get CLK. (I have not tried this).

Seems to be a difference in this regard between version 1.0 and 1.1. The board I received says V1.1 in silkscreen. According to the pin-out for this version on GitHub GPIO4 (not GPIO14 as indicated above) is used for BL.


Use this library for the display: github Bodmer TFT_eSPI
Look on github for Tetris Clock and "TTGO_example", you will find a library and example I wrote for this board. It has an explanation page that shows how the board looks when running it.

What pins provide me with access to the serial port? TX / RX?
A: A "standard" ESP32 has more pins, the default pins are 3 (Rx) and 1 (Tx) for Serial(0), 9 (Rx) and 10 (Tx) for Serial1, and 16 (Rx) and 17 (Tx) for Serial2. As you can see, with the limited number of pins on this TTGO board, none of them are there. But the good news is that the "Serial.begin" function has an option to change the pins! By using "Serial2.begin(9600, SERIAL_8N1, 25, 26);" you have the Serial2 port on pins 25 (Rx) and 26 (Tx). I tested this today, it's working like a charm!. It's NOT working on pins 37 and 38 (and maybe other pins), but it IS working on pins 25, 26, 27 !!!

This board is an 'ESP32 dev board' and it can be used with the arduino IDE but because it isn't an arduino you'll need to configure the IDE with the new board by adding an 'additional board manager url' to arduino preferences.
Some details of how to do this are here:  youtube mBaS3YnqDaU

The board comes loaded with the arduino sketch from here:
Search github Xinyuan-LilyGO TTGO-T-Display

There is a good youtube vid explaining it a little here: youtube qj9dN-Ginxc
The above is a great intro into how to use the 320x240 display and even makes use of the two buttons near the usb port to show voltage and scan for wifi networks.



Arduino / Preferences  / Board manager url: https://dl.espressif.com/dl/package_esp32_index.json
Library / Boards / Board manager: esp32
Tools / Board / TTGO Lora32-OLED V1
File / Examples / ESP32 / ChipID / ChipID     ESP32 Chip ID = FCB5F9AB6224
Tools / Manage Libraries... / install tft_eSPI by bodmer
edit libraries/TFT_eSPI/User_Setup_Select.h
    //#include <User_Setup.h>           // Default setup is root library folder
    #include <User_Setups/Setup25_TTGO_T_Display.h>    // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT
File / Examples/ TFT_eSPI/examples/Generic/alphaBlend_Test
(base) ArduinoBase $ mkdir tools
(base) ArduinoBase $ mv ~/Downloads/ESP32FS tools
restart Arduino
Tools / ESP32DataUploader
Tools / Manage Libraries... / jpegdecoder by bodmer
File / Examples / JPEG Decoder / Other_Libraries / SPIFFS_Jpeg
Tools / ESP32DataUploader

Using the Tiltmeter

  • Be sure you have run the self-test to set level and stick travel.
  • Depending on servo installation, pitch may be reversed.  That's indicated in parentheses below.
  • Set gain to maximum, it will make for largest pitch variation.

  • Ailerons
  • Moving stick to left is correction for roll right.  Left aileron moves up.
  • Move stick to left.   Note audio-pitch goes up (or down).
  • Hold plane, twitch right wing down. You should hear audio-pitch up (or down).
  • Twitch left wing down.  You should hear audio-pitch down (or up).

  • Rudder
  • Moving stick to left is correction for yaw right.  Rudder moves left.
  • Move stick to left.   Note audio-pitch goes up (or down).
  • Hold plane, twitch noseto right. You should hear audio-pitch up (or down).
  • Twitch nose to left.  You should hear pitch down (or up).

  • Elevator
  • Moving stick back is correction for pitch up.  Elevator moves down.
  • Move stick down.   Note audio-pitch goes up (or down).
  • Hold plane, twitch nose down. You should hear audio-pitch up (or down).
  • Twitch nose up.  You should hear audio-pitch down (or up).
  • (note) I typed the above because my brain gets confused when I tune planes with servos reversed.  Maybe I should add a reversing button to the tiltmeter so that I can match my brain thinking, which is
  • Pitch up = Left aileron up
  • Pitch up = Elevator up
  • Pitch up = Rudder left
  • Friday, June 5, 2020

    OctoPrint: Turning on an LED during printhead heating

    I do this so I can more easily inspect the printhead for ooze, etc.

    Install OctoPrint plugin "GCODE System Commands"

    Configure Plugin

    OCTO 21 /home/pi/scripts/led-on
    OCTO 22 /home/pi/scripts/led-off

    Use This Code

    $ cd /home/pi/scripts
    $ cat led-on.c
    void main()
      system("echo 23 >/sys/class/gpio/export");
      system("echo out >/sys/class/gpio/gpio23/direction");
      system("echo 1 >/sys/class/gpio/gpio23/value");
    $ cat led-off.c
    void main()
      system("echo 0 >/sys/class/gpio/gpio23/value");
      system("echo 23 >/sys/class/gpio/unexport");

    $ make led-on led-off
    (ignore warnings)

    $ sudo chown pi.gpio led-off led-on
    $ls -l led-on led-off
    -rwxr-xr-x 1 pi gpio 7984 Jun  5 20:33 led-off
    -rwxr-xr-x 1 pi gpio 7984 Jun  5 20:33 led-on

    Add OCTO commands to to your slicer gcode template

    (for Prusa-Slicer, in Printer Settings/Custom Gcode/Start GCode).
    Mine looks like this:

    G28 W ; home all without mesh bed level
    OCTO21 ; turn on external light
    G1 Z30 ; raise printhead for visual inspection
    M109 S[first_layer_temperature] ; wait for extruder temp
    M190 S[first_layer_bed_temperature] ; wait for bed temp
    OCTO22 ; turn off external light

    Thursday, June 4, 2020

    Raspberry Pi Blink in shell


    # release the pin on exit
    trap 'echo 0 >/sys/class/gpio/gpio23/value;echo 23 >/sys/class/gpio/unexport' 0

    echo 23 >/sys/class/gpio/export
    echo out >/sys/class/gpio/gpio23/direction

    while true; do
      echo 1 >/sys/class/gpio/gpio23/value
      sleep 1
      echo 0 >/sys/class/gpio/gpio23/value
      sleep 1

    # for input:
    #  echo 23 >/sys/class/gpio/export
    #  echo in >/sys/class/gpio/gpio23/direction
    # read value:
    #  cat /sys/class/gpio/gpio23/value
    # release a pin
    #  echo 23 >/sys/class/gpio/unexport

    Troubleshooting SiLabs Driver on Mac notes


    • 99% chance it's a USB cable problem.
    • If you're a manufacturer, blah blah major and minor device numbers

    Looking for this device;

    • /dev/SLAB_USBtoUART

    Do you have the driver software installed?

    • find /Library/Extensions/SiLabsUSBDriver.kext

    Is the driver loaded?

    • kextstat | grep -i silabs

    Loadin the driver:

    • sudo kextload /Library/Extensions/SiLabsUSBDriver.kext

    This does something:

    • ioreg -p IOUSB -l

    watch console.app and plug device in.

    Sunday, May 24, 2020

    Kilrah's Excellent Banggood Post

     Really BG is basic. They've got a product on the site, you place an order, you'll eventually get it when they have some, end of story.  
    If you expect any kind of handholding, estimate or "reassuring" from your dealer or believe the "customer is king" mentality you don't go there, period.
    RC Groups - View Single Post - RadioMaster - TX16S 16Ch 2.4ghz Multi-Protocol OpenTX Radio System

    Primitive DIY Tx

    Attach to an Arduino:

    •  two gimbals (4 pots)
    • two switches
    • external Tx module
    Write control loop
    • read values from pots and switches
    • send PPM signal to module
    • done!

    Arduino based SmartPort voltage meter

    LiPo Voltage metering with Arduino

    DIY lipo voltage checker (arduino) - YouTube
    1S-6S Battery Voltage Monitor (ROS) : 7 Steps (with Pictures) - Instructables

    Building & Testing the Circuit

    Programming the Arduino

    Arduino SmartPort

    marhar/arduino-frskysp: FrSky SmartPort protocol library for Arduino
    arduino-frskysp/FrskySP_sensor_demo.ino at master · marhar/arduino-frskysp
    FrskySP: Main Page
    FrSky S-Port telemetry library - easy to use and configurable - RC Groups
    Google Code Archive - Long-term storage for Google Code Project Hosting.

    This seems the best one:
    Dakkaron/MinimalSPORTVoltmeter: Arduino Voltmeter compatible to FrSky SPort Telemetry with minimal additional hardware

    Install Notes for Dakkaron FrSkySportTelemetry

    #install FrSkySportTelemetry
    cd arduino lib directory

    # install Dakkaron
    cd github place
    git clone git@github.com:marhar/MinimalSPORTVoltmeter.git

    Details on Maximum Current

    Mike Blandford responds to my query:
    I'd use 5V as the maximum for the SPort signal, assuming you are using standard FrSky hardware. The SPort input is via a transistor buffer with a 1K resistor in series with the base.
    The SPort output is driven by a SN74LVC1G126 powered from 3.3V. When not driving the SPort signal, this has an absolute maximum voltage rating of 6.5V. 
    When driving the bus, the voltage rating is (VCC+0.5) so 3.8V. 
    However, the output signal passes through a 51 ohm resistor, so as long as the current is limited to 50mA the device is safe. 50mA through 51 ohms is 2.55V, so the limit is 3.8+2.55 = 6.35V. 
    All values taken from the TI datasheet for the SN74LVC1G126.
    RC Groups - View Single Post - FRSKY Taranis "How to" Thread

    Battery Charger protection circuit

    - Designed for 18650 batteries
    - Up to 1,000 mA charging current
    - Based on TP4056 Chipset
    - Battery protection circuit
    - Charging status LED's

    - Input voltage : 4.35 - 6 V, 5 V recommended
    - Charge cut-off voltage: 4.2 V + / - 1%
    - Maximum charging current output: 1000 ma
    - The battery overcharge protection voltage: 4.28 V
    - Battery overcharge lifting voltage: 4.00 V
    - Battery discharge protection voltage: 3.0 V
    - Battery discharge termination voltage: 3.2 V
    - Battery: over-current protection current 3 a
    - Board size: about 2.5 * 1.65 CM
    - Status LED
    - Standby : Dimly lit, Charging : Red and Charge Complete : Green

    Wednesday, May 20, 2020

    My Moderation Philosopy

    Here's a note I wrote for the Moderators' group at DIY drones. The nice words are at the beginning are by Chris Anderson who founded the site.

    Our Culture and Values:
    Mark Harrison, one of our star moderators, articulated our culture and policies best with this post, which I'll just quote verbatim:

    Here's my general feeling about a lot of things on this site; in fact, it's pretty much my general philosophy for large parts of my life:

    "It's more important to enable good things than prevent bad things"
    For diydrones, this generally means:

    -- Be generous in accepting blog posts. We're not at a point where there are more submissions than can be confortably digested in a day. Likewise, the term "drone" is evolving at such a fast rate it's hard to pin down exactly what it means for everyone. So, I'm happy to lump in quadcopters, FPV, gimbals, RC, artistic aerial videos, electronics, radios... all kinds of stuff that meets my nebulous criterion of "generally interesting to the diy drone community."

    Now of course it can be protested, "what if we're flooded by dozens or hundreds of posts on marginally related topic X?" And my response would be, "let's wait until that happens; we'll have tons more context and it will be easier to make a specific decision then than make some globally encompassing set of rules now. We may all even be a little bit smarter and a little bit wiser!"

    -- Be generous in approving users. Lots of people aren't comfortable with revealing too much information about themselves, or may not have a particularly cogent reason for joining a site. I'm somewhat of an exception to this case... "Are you asking what I'm interested in? Let's talk about me, it's one of the most interesting topics we can discuss, don't you agree?" But for a lot of people, they may interested in the topic, but not interested in telling you why.

    -- Feel free to make mistakes, and be nice when other people are making mistakes. Sometimes the most interesting things happen when things go awry. For better or worse, sometimes the most education things as well!

    I think this is pretty much in agreement with how the site has been run historically. It's a site for amateurs, by amateurs (keeping in mind the defintion of "amateur"... from the French "lover of"), and as such has had a pretty wide-ranging scope of what's acceptable. That's served the site well, enabling it to be as relevant (or even more!) in 2013 as it was when it was founded.

    Of course there are big exceptions to this "don't sweat the bad stuff" philosophy -- brain surgery, rocket launches, and skydiving come to mind -- but I think it's a useful guideline for a site such as ours.