iogear USB-C 10G Hub delivers power from iPad Pro to Raspberry Pi
First off, this is not meant to be a definitive or detailed technical document. Think of it like a fallen tree, floating down the river, for those who find it to make please with it. I am more capable than most, yet far less capable than many with all things computer related. And while I have worked in technical support before, I will not here. You are on your own as I was. I offer only the idea I had, a somewhat vague solution to a problem I am sure others want solved too. If you do not understand the words I use, or the jumps I make, or even the things I leave out, maybe this is not a project for you. Or maybe I've provided just enough of a structure for you to follow to complete the project and learn in the process. Neither is for me to determine. Proceed at your own risk/discretion.
I have been using a USB/Lighting combo device for quite a while now. I first tried the HooToo, and after that failed (approx 6 months of use) switched to the Transcend Jump Drive Go. The software had many of the same failings as the HooToo in functionality, thanks iOS, but I found it less buggy and more polished. In recent updates, some integration with the files app has been added, but it remains a fairly klunky process. BUT, the most important feature remained constant...I could access ANY file on the USB from the iPad ANYWHERE, ANYTIME without the usual iOS limitations. I could for instance share a 2GB hi-res .wav file to Ferrite, make changes, and put it back on the USB much quicker than using wireless, and WAY more reliably than using itunes and a desktop. But that all changed with the arrival of my new iPad Pro and it's USB-C connector. It broke everything! Nothing that speaks Lighning works with the new connector. I even ordered a Lighting to USB-C adapter from amazon that was meant for charging an Android phone using a Lightning cable, and a Transcend USB-C thumb drive in hopes that some brand loyalty would help the software recognize it. Both were wasted time, effort, and $$$.
If it had worked you would not be reading this. So I embarked on an epic journey of sorts to find a way to access my trusty USB drive on the new iPad. Google, uncharacteristically, did not provide. Day after day of searching for some new revelation, update, or even product that would suit my needs yielded nothing more than complaints, hyperbolizing, and resignment to an iOS 13 solution. These are all far from satisfactory. A few solutions touted were Wi-Fi harddrive/app combos. And I remembered I had a WD Passport stashed away. I quickly recalled why it was stashed away and when even after firmware updates it was SLOOOOW, and the connection was unreliable to be kind, and there was no progress indicator. And then I realized I had the solution at the far side of my desk the whole time...a RaspberryPi 3+ just sitting there, waiting for a purpose.
I downloaded and dd'd the latest raspbian-stretch image (use rdiskn, not diskn, for better speed) and proceeded to connect the Pi as a desktop to a monitor, keyboard, and mouse. I quickly discovered I needed to enable SSH, see the first link for details. With that done I set about to enable key based logins, link #2, as I already used Coda2 that way with a couple remote servers. (BTW Panic, Coda3...full files app integration? I'd buy it again even if that's all it changed.) So far, so good. Even after prohibiting usernames and passwords, connecting from Coda is working like a charm. Then I plug in the trusty USB...and get a whole lot of no writing.
Turns out it was formatted as ExFat and Raspian does not natively support it. So link #3 explains how to add additional file system support. I added them all as I will use them all. YMMV.
When plugging in the various USB devices to confirm I had read & write capabilities I kept getting a pop up to open the file manager. I do not intend to be using it in desktop mode...well ever again if I can help it. So I set out to find a quick and easy way to auto-mount anything I plug in. See link #4 for details. After setting up all of the auto-mount, I still got the same pop up. So I am not 100% it was necessary, but I was not going to roll it back to confirm.
Now for the last piece of the puzzle, turn the Pi into an access point. If I am out and about and need to connect, I am not going to trust any random Wi-Fi, nor do I expect to know the IP of the Pi if/when I do. So link #5 details how to do this. Bear in mind that the Pi WILL NOT have internet access once you set up access point mode unless you ave additional network adapters in use, either the built im LAN or external Wi-Fi. That's a plus in my book...limiting the ways to get in and requiring a key? Even without any further hardening it's already more secure than most commercial solutions. Also note, I tried to set it up for 5GHz, only to realize my Pi does not have the hardware to support it. If your Wi-Fi signal indicator (top right) turns into a pair of red X's after reboot, you may have gone a little too custom on your settings.
At this point it's all working as I expected / could have reasonably expected. But due to Coda's lack of files app integration, sure I could share to it, it just did not feel complete. After a bit of looking I decided to try FileBrowserGo since it has a 2 week trial for the paid features. After setting up a new connection with THE SAME details used in Coda, I got a cool "Authorization Failed. Incorrect credentials or missing key file" error message. Not sure why, I turned to the google brain and found a lot of uselessness. None of the solutions I found worked. Thinking that MAYBE it just needed a proper machine finger print before a key was checked, or that it was key 1 of 2(?), I re-enabled passwords for SSH, and proceeded to connect via FBG. After re-disabling passwords, I was again unable to connect via FBG. I tried a few different keys of varying strengths...no change. So for the time being, everything goes through Coda's SSH and extra steps for file management.
Ideally full file system access is granted by iOS (or even 3rd party app), and before v13 late next year. I have also reached out to FBG in hopes of supporting USB direct connected devices, and to Transcend in hopes that they would support the other end of their own device through an adapter or hub. Do I expect any of that to happen? Yes, because I asked, and no because of Murphy's Law.