Friday, June 19, 2020

DJI Spark "Hopping" (erratic behavior)

My DJI drone has had this issue with my DJI Spark where, when I try to take off, it will  sort of hover, but then "hop" up and down.  It heads toward the ground and then seems to recover.  When it is heading toward the ground, the obstacle avoidance alert is going off.


Searching the internet, I found forums littered with a gazillion about "Fly Away" issues. I do NOT consider this is a FLYAWAY issue.  It seems like there are so many issues that are blanket described as "Fly Away", and while I suppose it is possible you could lose your drone as a result of this, it is most likely just going to hit the ground straight below, worst case.  I can technically fly it around, but it is fighting me the whole time.  The obstacle avoidance alert is intermittently on and off. The drone will ascend okay, but it descends VERY slowly (which is kind of scary if you get any sort of real altitude).  Also, at random it will just start heading vertically downward even though I didn't command it to.  Again the obstacle avoidance sensor beeping when the problem is occurring. Sadly I was not able to get this anomaly on video for a better description.

This issue cropped up seemingly out of nowhere. One day it flew fine, I put it away, next season I took it out, and it flew like crap.  I could occasionally get a problem-free flight out of it, but I never had any real confidence in it.  So for the last 2 years, I have been basically not flying my DJI Spark drone, due to this weird behavior.

After months of pondering (and letting my warranty lapse), I contacted DJI.  I described the issue and they recommended I send it in  to DJI for paid repair.  On the repair estimate, it said that the drone had crashed:
"After carrying out the damage assessment, we found that the unit has physical impact damage, unfortunately the damage that is not caused by product malfunction is Non- warranty repair; We'll either repair it or replace it with a product that's new or equivalent to new in both performance and reliability after payment has been received. For more information, please visit (http://www.dji.com/service/policy) - DJI North America"
The bit about impact damage was BS. I am the only one who has ever flown this thing, and I baby it.  The most I have ever done is buzzed a wall.  It has never impacted anything.  My guess is this is what they write on anything that gets shipped to them that doesn't fall under "warranty repair".  But I had no other viable options so I told them just to go ahead.

Weeks and $150 + shipping later, I got my drone back with a slip saying they replaced the vision system.  And lo, it did fly correctly... For a few (gentle!) test flights.  Then one day I took it out to fly and it started doing the hopping thing again.  I tore my hair out, ready to scrap this noisy money pit.  One last time I refocused my Google search terms to include "hopping", and that's when I hit the jackpot.  I found a handful of postings on DJI's forum of people who seemed to have the exact same problem. While there were a ton of the usual unhelpful responses (i.e. "Get rid of it! Sell it to me!"), I saw a couple of postings saying that the issue was solved by replacing the props. At first I just wrote this off.  Why would props make any sort of difference as to how the craft would fly (other than, maybe, FLY or NOT FLY)?  Okay maybe "FLY but be LOUD"...  But this post got my attention.  after a while, I realized I had the following options:
  1. Throw away drone?
  2. Buy a full set of genuine DJI props, and then throw away drone after proving it makes no difference.
So I did the latter.

And it worked.

WTF?!?!?

So naturally I now have some new questions.  How the hell is this behavior really caused?  One idea I had is that excess prop vibration somehow causes the obstacle avoidance sensor to falsely trip. 

Then there is the issue of the earlier "repair".  This was obviously the problem all along. It seems that DJI was more than happy to take my money to "fix" the craft, when the only issue was the props.  Think about it, there must be thousands of people who have experienced this problem, and I'm sure DJI customer service has enough data to recognize this as being a prop issue right off.  But either they didn't, or they chose not to tell me.  I would give them the benefit of the doubt, but then they did tell me they found "crash damage".

Anyway, lesson learned.  If your unit is out of warranty, think twice before sending it in to DJI for repair.  The only guarantee appears to be that you will pay them a hefty repair fee.






Tuesday, May 19, 2020

Defuddling JamKazam Vol. 2: Don't believe everything you read

I feel that one of the most important things to get out of the way are the truths of many, many claims and misnomers that are floating around on social media - no doubt a common issue with very rapid adoption of a complex tool.  We'll do this Snopes.com style.  Here are some, in no particular order:

Claim: "You Can't Use WiFi with JamKazam"
Status: Partly true
Explanation:
Well, you CAN use WiFi.  But it's better if you use an ethernet cable.  For starters, the nature of WiFi is that it tends to deliver packets via different physical transmission paths, which causes them to arrive in the wrong order.  On the other side, these packets have to be queuing them into a buffer (temporary holding tank for data), and reassembled into a contiguous stream.  Then they are released for you to hear. Ethernet cables require less of this action to be required, so JamKazam uses a smaller buffer, and therefore you end up with lower latency.  Now consider that most people have total shit WiFi setups at their homes, and using WiFi becomes an even worse choice.  Bottom line is, use an ethernet cable.

Claim: "You need the best internet plan available"
Status: Very unlikely
Explanation:
JamKazam is, contrary to what seems to be a rampant believe, not very bandwidth intensive.  It is the equivalent of a video conference call.  If someone is using solid audio gear, and having problems with latency or "choppiness" (which is a very vague description), it is most likely their computer or networking gear that is at fault.  It is very likely that the computer or router is on the edge of what it can handle in terms of load.

Claim: (Windows user) "You need to download ASIO4ALL"
Status: Very unlikely
Explanation:
Your audio interface hopefully has a native ASIO driver available from the manufacturer's website. This is what you should use.  If they don't, you can try ASIO4ALL, which is a third-party, lower latency wrapper for Windows' standard (high latency) WDM drivers. In some cases it works, but in most cases it doesn't seem to work very well.  It is definitely a second choice.

Claim: "A Chromebook is a viable cheap laptop option"
Status: False
Explanation:
While a Chromebook is, in fact, a laptop, Even if the processor power was enough, it does not run Windows or MacOS, which as of this writing are the only supported operating systems.  Chromebooks run ChromeOS, so, no go. If you are looking for the cheapest machine you can buy new that still has enough power, it's probably going to be a mini desktop computer, like the Intel NUC (bring your own monitor/keyboard/mouse).

Claim: "You need USB 3 (aka USB 3.1) ports"
Status: False
Explanation:
USB 2.0 max throughput = 480 Mbps
Even if you run 192KHz @ 24 bits < 10 Mbps
The latency of USB 3 is not improved over USB 2.0.
Even if you are using a 100 Mbps USB Network Adapter, JamKazam will not come close to saturating your connection.

Claim: "You need a (quad-core Intel Core i7 or other crazy CPU) if you want JamKazam to work as well as it can."
Status: False
Explanation:
You do need a real bit of processor power.  Practically speaking, I'd say, minimum dual core Core i3. Preferably a quad core Core i5 or better.  But to be fair, the amount of peak processor power you actually need for JK varies with how you are using it.  I've actually tested it with a Core 2 Duo from 2011, and it was "enough processor power to have a jam session".  Just barely.  As you add musicians, and use features like the video stream or Jam Tracks, that is when you will exceed your processor power, and when that happens, the result is NOT pretty.  Basically it's a sea of loud sparks and crackles in yours and everyone else's headphones.

Claim: "Turn off your video, it adds latency"
Status: Partially True
Explanation:
The video can have no impact, or a lot of impact, depending on a lot of factors.  The specific claim that it adds latency seems to be a little bit of a generalization, as though latency is the only evil one experiences on JK.  In fact, what it really does is add a ton more data that JamKazam has to coordinate which, if you or anyone in the session is on the edge, will very definitely result in a variety of problems - latency being only one.  Playing with the video on is more fun, but it's best to assume it is going to be a luxury and not a guarantee.  If everyone is getting good results, then congrats and enjoy - but it seems to vary with each session and the participants.

More parts coming soon!

DeFuddling JamKazam Vol 1: What you really need

Intro

This is the first installment of a series on demystifying JamKazam for newcomers.  As previously mentioned, there are video tutorials and a pretty good forum that can help you get through the setup step-by-step. You can start with those.  There is also a Facebook Group, Subreddit, etc. where people are chatting about their JamKazam experiences.  I would stay away from those for a little while - there is some helpful info, but also a lot of misinformation. Once you are up and running, you can explore those in-depth discussions, and weigh what you read with your own experience.

Another word of warning: Unless you have a working home studio already, you are very likely going to have to spend some "real" money to get this running.  It could be $50 for a few odds and ends, or it could be around $1,000 if you just have a guitar and an internet connection.  It really depends.   If you want to jam online, listen to my advice and the things I tell you not waste time with, and forge onward my friend!

To that end,  I am here to give my perspective on some of the concepts that people seem to be missing, which help a lot.  I have been using JamKazam for many weeks now.  I have tested it on various equipment and I have assisted many musicians with getting their JK setups tweaked.  At this point pretty much every session I get into has very tolerable latency and basically no dropouts.  There are a lot of seat-of-the-pants "experts" out there who think they know what you need to have in order to make it work.  Here are some of the conclusions I have reached about what is required.

Equipment

Computer

The first thing you are going to need is a decent laptop or desktop computer running Windows or MacOS. Sorry folks - this is not going to run on your iPad, iPhone, Android, or even a netbook.  Dual core Intel Core i3 minimum.  It doesn't have to be new, but a good rule of thumb would be something made in the last 5 years.  

Ethernet Cable to Your Router/Modem

Believe it or not, this seems to be the deal breaker for a lot of JK tire kickers (I guess its a sign of how dependent we have become on WiFi). There are real reasons why using an ethernet cable will result in lower latency, and a good JK experience depends on the lowest latency possible.  Even if you are jamming fairly distant from your router, you can buy really long ethernet cables - I saw a 200' one on Amazon for around $20.  Anyway, again, we'll get into this more later, but just know that if you have to use WiFi, you may not have a good experience and end up deciding that JamKazam is not worth using.

Audio Interface

No, you can't use your computer's built-in sound for JamKazam.  An audio interface is like an advanced sound card that converts sound to/from bits that your computer can manipulate.  Even though your computer has some built-in capability already, it is not designed for the performance you need for JamKazam.  Currently, the best interface for JamKazam is the 3rd gen Focusrite Scarlett.  The "Solo" (one mic input, one instrument input) is $109 - that is, if you can get one (but of course right now they are all on backorder because everyone is buying them for online jamming).  There are certainly other audio interfaces that will work, but YMMV. We'll get into that later.

Headphones

You will want to have a good set of over-the-ear headphones.  If you are looking for a recommendation, the Audio Technica ATH-M50x is a favorite of mine. You can get by with earbuds, but if you do, I feel sorry for you. A good set of headphones can make you forget you are not in the same room together with other musicians.

Microphone

No, you can't use your computer's built-in microphone for JamKazam.  Even if you could get this to run through your proper interface (you can't), it's going to pick up all kinds of sound from your computer.  And for two, come on, that mic is going to be garbage.  A good dynamic microphone like the stalwart Shure SM-58 is probably the best option here.  In a pinch you can communicate your USB chat mic/headset, but it's going to make you sound like garbage when you are talking or singing.

Instrument DI or Microphone(s)

If you are playing guitar or bass, keys, etc., you will ideally want to use a pedal or DI box.  Having  a lot of room sound is not conducive to a good mix for you or anyone else in the session (honestly, this is the case even if you are jamming in the same room, but don't bother telling the guitarist who brings his Marshall half stack to rehearsal).   You will plug this into one of the the inputs on your audio interface. 

If you are a drummer, a popular option is to use an electronic kit.  Obviously that is not going to work for everyone.  On a real drum kit, you can use an entry level mic kit like the Samson 7-kit. These typically run about $300-$400.  You can also get by with a couple of SM-57s (see the Glyn Johns configuration). Run these into a mixer and then plug the mixer into your audio interface.

Effects (Optional)

You may wish to have some effects on your vocals or instrument(s). The best and simplest way to do this is to run an outboard effects unit before the audio interface.  Examples of this include your effect pedal chain or a rack mount processor of some sort.  Other methods, such as running effects on your computer, are technically possible but at best complicated, and at worst, induce too much additional latency and/or stealing too much CPU from JamKazam.

If you have all of the above needs met, you can move on to getting setup. In the next installment, we will discuss the concepts that make all of these specifications important.

Next Post in Series: Don't Believe Everything You Read