I was approached to write an application that automatically extracts and transcribes notes and audio recordings from a Livescribe pen and uploads them to a webapp when the pen is docked.
I have made some investigation and found that
My question is really two-fold: a) where do I find documentation on how to build such a pen-docker application and b) if finding the Echo SDK is a no-go, what is the best smart pen to develop custom applications for?
Neo Smartpen looked like a viable alternative without the built-in microphone. I am having no luck registering for an SDK and the date of the last post to their broken forum is 2015: http://neosmartpen.da-hosting.co.kr/forum/index.php I could fall back to syncing the pen to Evernote which has a nice API, but no way to record audio synced to the script.
I saw Anoto also has an SDK. Any other products I should consider and possibly recommend instead of the Echo? Any advice would be most welcome.
Livescribe’s original pens, the Livescribe Pulse and Livescribe Echo, used a HTTP-like protocol called OBEX over USB to transfer .aac
audio files and .stf
stroke files from the pen to the computer. The pen acts as an OBEX server, and the desktop application is an OBEX client requesting files such as lspdata?name=com.livescribe.paperreplay.PaperReplay
. For the last firmware I tried, the pen had a couple quirks that violated the OBEX specification, such as requiring a CONNECTION_ID
header in every CONTINUE
response. The STF stroke files are a custom Huffman code-based format that encode strokes as sequences of (x: u16, y: u16, t: i64).
A few people have had success writing their own clients. For example, srwalter/libsmartpen and dylanmtaylor/LibreScribe include clients and STF parser, and javispedro’s Scribui is another implementation.
Livescribe briefly released an Echo SDK, but this was for writing java-based applets that would run on the pen.
The Livescribe 3 uses a different protocol and file format over Bluetooth LE. It no longer has a microphone, so its files are much smaller. It also encodes strokes as sequences of (x: u16, y: u16, t: i64)
, but the format is an acceleration based compressed PENSTART-PENSTOPP file which is unrelated to the Echo file format.