1

I wrote an iPad app to control a proprietary "robot" (based on a 3d-printer). With respect to providing a GUI to the robot, the iPad (mini) is ideal in a way, since it avoids additional I/O devices like e.g. a mouse or a keyboard and obviously comes with a display.

The app currently interfaces with the robot via WiFi (utilising WebSockets). While this basically works, every once in a while, latency seems to be an issue. At the same time, the WiFi interface to the robot seems to be a bit of overkill, since the iPad is physically mounted to the frame of the robot with a physical distance to its motherboard of less than 3 feet. - Also, the robot can be beautifully controlled from a serial terminal over UART (e.g. from macOS). - Therefore, I would like replace the WiFi/WebSocket communication with a simple serial interface.

Unfortunately, though, "/dev/tty.iap" does not seem to be accessible on iOS/iPadOS unless you enroll in Apple's MFI program, which - in this case - also appears as overkill, since our app will only ever be used internally. redpark.com makes (expensive MFI certified serial) cables and a library, which I consider a last resort ...

Jailbreaking the iPad might also be way to go. - However, I have no experience with this and would really like to avoid bricking the iPad. On the other hand, I have no basic objections against jailbreaking my device, which is exclusively used to control the robot.

Can anyone recommend a safe (e.g. jailbreak) route towards accessing "/dev/tty.iap" for in-house apps ? Would "/dev/tty.iap" be immediately accessible on a jailbroken iPad ? - Would the iPad have to be jailbroken again, everytime it is re-booted ? What would be a suitable Jailbreak tool for my purposes (candidates are iPad mini 5 with iPadOS 15.1 or iPad mini 2 with iOS 12.5.5) ? Are there any alternative routes towards accessing "/dev/tty.iap" for in-house apps (avoiding jailbreaking or MFI) ?

Thanks!

EDIT1 one more thought: There are numerous unpublished APIs providing access to normally "hidden" iOS-features. - While employing such APIs would disqualify any app for the AppStore, in "my" case, publishing the app is not even considered. Hence, if somebody is aware of unpublished functions that provide the desired access to "/dev/tty.iap", respective hints would also be appreciated very much.

user2831473
  • 168
  • 2
  • 10
  • 1
    There are lots of inexpensive BLE modules that provide serial ports. You can write to these using Core Bluetooth. No mfi required – Paulw11 Feb 12 '22 at 21:01
  • 1
    @Paulw11 - thanks for your comment. Employing BLE would add additional complexity to the whole setup. Also, both, the iPad and the robot controller feature standard serial ports. Moving to a serial communication (from WebSocktes) would almost be trivial, if the iPad's serial port could be made usable somehow (e.g. by Jailbreaking) for at least (in-house) apps. – user2831473 Feb 13 '22 at 12:25
  • 1
    The BLE device would connect to the robot controller serial port. Your code would send data to the BLE device. I think it is much simpler than jailbreaking and creating a custom lightning cable. https://www.adafruit.com/product/2479 plus a level shifter if your controller needs true Rs-232 voltages. – Paulw11 Feb 13 '22 at 19:59
  • 1
    @Paulw11 - while appreciating your proposal, we are still hoping to learn, how "/dev/tty.iap" can be made usable to iOS apps. After all, iOS devices are still really unix computers, obviously equipped with serial-ports - "standard" lightning cables are available that will do the job e.g. Midi Cables (Lightning-to-USB-B) or camera adapters. (Porting the existing websocket-based implementation to Bluetooth® (on both, the client and the peripheral side) is not trivial at all. Also, we would like to avoid having to design a new pcb with a level shifter, etc. flying wires are no option.) – user2831473 Feb 16 '22 at 11:01
  • 1
    The peripheral wouldn't need to know anything about Bluetooth. It sees a serial port. If the device has true rs-232 voltages on its serial port then you will need level shifters even if you use lightning. If the device has a ttl serial port then you don't need level shifters. There is no serial port directly on the lightning connector; you need additional chips or adapters plus you have to jailbreak your device plus you have to work out how to use the external connectivity framework and rewrite your software to it and you can't upgrade your iPadOS until there is a new jailbreak. – Paulw11 Feb 16 '22 at 12:22
  • 1
    And if your device has a standard serial port then you don't even need to design a board if you don't want to http://www.usconverters.com/rs232-serial-bluetooth-5-smart-adapter – Paulw11 Feb 16 '22 at 12:26

0 Answers0