The main purpose of otter is to allow embedded devices to communicate with a POSIX client using binary packets instead of a character-by-character TTY. The benefits of this may be obvious to any embedded engineer:
1. Reduce interrupt load by using packets & DMA
2. No need to do costly encode/decode on the embedded device -- you can just send raw binary data over the otter tty.
3. Use structured protocols for unlimited extensibility
4. CRC checks and encryption
The downside is that the device driver gets slightly more complex. otter uses the "mpipe" protocol as a wrapper, which is implemented as open source in the OpenTag project.
Other cool features:
- otter uses pthreads, so it's completely non blocking and runs efficiently
- Deployed as an XCode project for easy targeting to mac, but very easy to build with regular old autotools on Linux or most Unixes.
- It's scriptable. Pipe received packets to Python or y