Not what the author is doing here, but you can also connect them over standard Ethernet. Any standard USB-C to Ethernet adapter will work with the iPad automatically.
Came as a surprise to me a few years ago when I first ran a that it.
It's so convenient to have USB-c power, audio, storage & network on a single cable. iPadOS can't detect headphones that are unplugged from 3.5mm audio jack on a dock, so it's better to connect headphones to dock via USB, to enable quick switch to speakers. There are right-angle and U/180 degree USB-c adapters to keep the cable out of the way.
Android apparently (AFAIK, still) uses a poorly crafted regex to identify ethernet adapters, so most usb ethernet adapters don't work on Android, despite having drivers, etc.
Nice article on how to configure a RasPi into USB Ethernet gadget mode… doesn't really have anything to do with iPads. I guess it's good to know it works with iPads? It'll also work with Android devices, and plain old PCs… anything that accepts USB CDC Ethernet…
In case you're like me and were wondering how IP addresses are being assigned, apparently the NetworkManager's 'shared' IPv4 method starts dnsmasq, which acts as a DHCP server.
(It also enables masquerading (NAT) and IP forwarding, but of course that's not relevant in this context.)
This is kind of the best way to do software development using an iPad. You can SSH or VNC into the Pi and then use all the tools available to the system. I've thought more than once about gluing a Pi to the back of my iPad so I can just take one device on longer travels and not have to take the iPad and the Mac (reason for the bringing the iPad is that all big streaming services typically have an iPad app that allows downloads, but no macOS app. I like having downloads for no / bad wifi situations).
While I like the iPad's screen (pretty great for reading pdfs), I'd much prefer something like the Starlite [0] for a more versatile usage. The iPad has nice app, but they're too constrained both by the platform and Apple's policy.
This looks great but god I cringe anytime I seed micro-HDMI being used for anything but a case study of a pointless, terrible port. I’d rather not have any display-out at all vs a port that is probably going to fail right when I need it to, if I can remember the stupid adapter.
Should’ve just been another USB-C port. Let me break it out to what I need, since I’m gonna need a dongle anyways.
I bought one of those for this reason. I really like starlabs and want to support them, but the keyboard cover for that device is .. not great. If it had a keyboard similar to the apple ipad keyboard (the expensive one with backlighting - I forget their name for it), the starlite would be a much more compelling device. At this point mine just sits in a desk drawer and may find its way to eBay.
I don’t have much hope for these types of keyboards and for the price of a Magic Keyboard, i’d prefer a better keyboard (not a high bar there) and some kind of stand even though a bit more cumbersome.
Pretty interesting. The Turtlebot 4 educational robot also uses this approach to power/ethernet interface the Pi 4 and the microROS controllers that run on the roomba. Before seeing that a while back I would've never imagined it possible.
Ha yes, definitely better in that regard. Also they now have a lidar too so navigation is trivial, but the M0 controllers and the Pi 4 are all really underpowered for ROS 2 so... there are still various issues lol.
I don't really get the iPad + RPi combo. I see it a lot, but why not simply run a web server on the iPad itself? Do that many people use the Pi's GPIO pins in combination with web dev?
I should have been more specific. I mean user-friendly in the sense that I give my RPi to a family member, they take it home, attach it to their iPad and open the web-page.
Raspberrypi.local normally works; (using the bonjour/avahi protocol for local DNS on both sides, which is set up by default on raspbian). Might be more tricky to get a proper certificate for https
As one-time-setup you’ll need to serve the ROOTCA.pem from the Pi and download and install it on the iPad, but once you’ve done this once, any certs you generate on the Pi will be accepted by the iPad.
mkcert has enabled so many crazy setups and workflows for me over the years, it’s truly fantastic.
This is thanks to USB On-The-Go support, really handy feature - can also use it to get a serial connection: https://trac.gateworks.com/wiki/linux/OTG
This is core to how pikvm / tinypilot work as well!
Not what the author is doing here, but you can also connect them over standard Ethernet. Any standard USB-C to Ethernet adapter will work with the iPad automatically.
Came as a surprise to me a few years ago when I first ran a that it.
Makes sense, I had simply never considered it.
It's so convenient to have USB-c power, audio, storage & network on a single cable. iPadOS can't detect headphones that are unplugged from 3.5mm audio jack on a dock, so it's better to connect headphones to dock via USB, to enable quick switch to speakers. There are right-angle and U/180 degree USB-c adapters to keep the cable out of the way.
RPi 400 keyboard + iPad VNC also works, or HDMI-to-USBc via iPad app, https://www.reddit.com/r/ipad/comments/utvfcu/my_ipad_mini_r...
That's fine if you have a USB DAC lying around, I guess.
Required to connect a headphone directly to a USB-c iPad or iPhone.
I thought this was about some kind of dock...
The author is plugging a USB-C to USB-C cable between an ipad and an RPi, and having them speak Ethernet.
Android apparently (AFAIK, still) uses a poorly crafted regex to identify ethernet adapters, so most usb ethernet adapters don't work on Android, despite having drivers, etc.
I thought this was because Google don't build the kernel with many USB ethernet drivers?
CyanogenMod used to (I assume LineageOS still does). I recall being able to use a USB ethernet adaptor on my phone with CM because of this.
I haven't tested this in a long time. Perhaps I should!
Nice article on how to configure a RasPi into USB Ethernet gadget mode… doesn't really have anything to do with iPads. I guess it's good to know it works with iPads? It'll also work with Android devices, and plain old PCs… anything that accepts USB CDC Ethernet…
In case you're like me and were wondering how IP addresses are being assigned, apparently the NetworkManager's 'shared' IPv4 method starts dnsmasq, which acts as a DHCP server.
(It also enables masquerading (NAT) and IP forwarding, but of course that's not relevant in this context.)
Tech Craft: My Favourite iPad Pro Accessory: The Raspberry Pi 4 (November 2019) https://www.youtube.com/watch?v=IR6sDcKo3V8
This is kind of the best way to do software development using an iPad. You can SSH or VNC into the Pi and then use all the tools available to the system. I've thought more than once about gluing a Pi to the back of my iPad so I can just take one device on longer travels and not have to take the iPad and the Mac (reason for the bringing the iPad is that all big streaming services typically have an iPad app that allows downloads, but no macOS app. I like having downloads for no / bad wifi situations).
While I like the iPad's screen (pretty great for reading pdfs), I'd much prefer something like the Starlite [0] for a more versatile usage. The iPad has nice app, but they're too constrained both by the platform and Apple's policy.
[0]: https://us.starlabs.systems/pages/starlite
This looks great but god I cringe anytime I seed micro-HDMI being used for anything but a case study of a pointless, terrible port. I’d rather not have any display-out at all vs a port that is probably going to fail right when I need it to, if I can remember the stupid adapter.
Should’ve just been another USB-C port. Let me break it out to what I need, since I’m gonna need a dongle anyways.
and then there is mini-hdmi as well
It will. Micro-HDMI is insufferable shit that should be called out and rejected unless it's a life-saving last resort.
I bought one of those for this reason. I really like starlabs and want to support them, but the keyboard cover for that device is .. not great. If it had a keyboard similar to the apple ipad keyboard (the expensive one with backlighting - I forget their name for it), the starlite would be a much more compelling device. At this point mine just sits in a desk drawer and may find its way to eBay.
I don’t have much hope for these types of keyboards and for the price of a Magic Keyboard, i’d prefer a better keyboard (not a high bar there) and some kind of stand even though a bit more cumbersome.
but that doesn't run the official Netflix, Disney+, Apple+ etc apps, does it? Or via something like Waydroid?
It can run Windows 11. Presumably you could also dual-boot.
What kind of software development? Is the iPad just serving as a keyboard and monitor? I don't understand why this combo is useful, unless that's it.
I’ve done this for years via Bluetooth PAN or USB Ethernet. Notes here for both methods: https://taoofmac.com/space/blog/2023/09/09/1820
Pretty interesting. The Turtlebot 4 educational robot also uses this approach to power/ethernet interface the Pi 4 and the microROS controllers that run on the roomba. Before seeing that a while back I would've never imagined it possible.
Sounds much better than what they used to do which was glue an eePC to a roomba via a terrifying number of dongles
Ha yes, definitely better in that regard. Also they now have a lidar too so navigation is trivial, but the M0 controllers and the Pi 4 are all really underpowered for ROS 2 so... there are still various issues lol.
I don't really get the iPad + RPi combo. I see it a lot, but why not simply run a web server on the iPad itself? Do that many people use the Pi's GPIO pins in combination with web dev?
Apple doesn't allow much beyond static web pages on iOS.
Wait a minute. I thought the USB-C port on the Raspberry Pi 4 was only for power input. Is it also useable as a data port?
Nice. Is there a user-friendly way to open a webpage that is running on the RPi? (I.e. without bothering the user with IP-addresses and such)
I have all my devices in a Tailscale network with MagicDNS enabled. This way you can just open http://RPI:8080 and that should just work.
(I am not affiliated with Tailscale in any way.)
I should have been more specific. I mean user-friendly in the sense that I give my RPi to a family member, they take it home, attach it to their iPad and open the web-page.
Raspberrypi.local normally works; (using the bonjour/avahi protocol for local DNS on both sides, which is set up by default on raspbian). Might be more tricky to get a proper certificate for https
mkcert can help with this! https://github.com/FiloSottile/mkcert
As one-time-setup you’ll need to serve the ROOTCA.pem from the Pi and download and install it on the iPad, but once you’ve done this once, any certs you generate on the Pi will be accepted by the iPad.
mkcert has enabled so many crazy setups and workflows for me over the years, it’s truly fantastic.