Significant LibreScribe Progress Made

As you may have noticed, I took a break from working on LibreScribe for a while, and the project looked as though it was abandoned. Well, it isn’t, and I’ve got tons of good news! Since the last time I wrote an update about LibreScribe, in late May, I made several incredibly significant changes. Some of these may not seem that exciting, but they are absolutely crucial in order to further develop the program. Some of these new features (such as retrieving and changing the name of the device) didn’t exist in libSmartpen at all, so implementing them required me to capture packets sent over USB and do a bit of reverse engineering. At first, I used the trial version of USBTrace, but I quickly realized that it wasn’t the tool for the job when I got notifications that I used more than my 256K data limit just by opening LiveScribe Desktop. To make it even less appealing, it costs $195 USD for a single license! That’s ridiculous! So of course, I did a bit of searching, and I found busdog, which does the same job (although using unsigned filter drivers that require modifying windows settings and rebooting several times) for free! Although getting it setup was significantly more frustrating than getting USBTrace working, it was well worth not paying $195, and it does everything I need it to, albeit without as nice of an interface. Anyways, here’s a list of significant changes I made:

  • LibreScribe no longer crashes when retrieving the list of applications installed on the device. This was incredibly frustrating when I was trying to develop it. It also filters out the LiveScribe Connect and System files, so that they are not listed if they are present on the device.
  • Instead of displaying a hard-coded list of notebooks, LibreScribe now retrieves the names of all of the notebooks actually in use on the device.
  • When a device is not present on the system, or LibreScribe can’t find it, the page tree now shows a “No Smartpen Detected” item, along with an brand new icon that indicates that no device is connected instead of the regular pen icon.
  • I added context menu event handlers to the page tree, so now when you right click or press the menu button, LibreScribe can display a menu of options relevant to the item you clicked. More work on this still needs to be done, but if you click the root element (the smartpen itself, or the placeholder when one isn’t connected), you will now see a new menu allowing you to rename the device, refresh the connection, or display information about the device.
  • When the device is unplugged or plugged in, the page tree and the applications/audio lists will now automatically refresh themselves.
  • LibreScribe now retrieves the name of the smartpen from the device, rather than defaulting to “My LiveScribe Smartpen”. It can also set the name of the pen, but this feature is still a little bit buggy (it won’t brick your device, so it’s safe to test). Interesting discovery: In the LiveScribe desktop software, you can set the name of the pen to anything up to 50 characters. This does not mean that the device doesn’t allow more than that, it’s just a ‘soft’ limit in the LiveScribe desktop software. There probably is an actual limit, but I was able to set the device name to almost a paragraph of text, including every symbol you can type on a standard US keyboard, and retrieving it from the pen worked perfectly. The pen stored the entire thing, and returned it when I checked the name, although it did not display the entire string when I turned the device on, just the first part of it. The string of text I tested was “~`!@#$%^&*()-_+={}[]:;”‘<>?/,.\ Testing the maximum name length for a LiveScribe Smartpen… I wonder if I could fit a paragraph in here…? You have got to be kidding me… I typed this much and it STILL works? That’s incredible. There’s virtually no limit to how long the smartpen’s name is. I can’t believe I can set and receive values this long! I’m speechless…“. Needless to say, you can store almost anything in the name of the Smartpen. I wonder how the LiveScribe desktop software would react if it tried to retrieve this string.
  • I added a dialog box to rename the device, as well as another dialog box to confirm the new name.
  • LiveScribe no longer crashes when removing or connecting a smartpen while the program is running.
  • I merged in the inline functions written by Luis Pedro Coelho on his fork of LibreScribe, which are a better implementation of device type checking than I had
  • Tons of new debugging output was added. You can see this output on the console. This makes figuring out what went wrong in a crash so much easier.

Remember, LibreScribe is still alpha quality and should not be used in a production environment. If you have any issues or suggestions, feel free to file a bug report. Or, if you’re skilled enough, I’d appreciate it if you fixed the bug yourself, and submitted a patch. Ah, the benefits of open source coding! This is only just the beginning. Expect tons of new enhancements and bug fixes over the next several months.

9 Responses to Significant LibreScribe Progress Made

  1. Stephan Gromer says:

    Like or Dislike: Thumb up 0 Thumb down 0

    Hey, it’s me again.
    Do you think it would help if I (and presumably others) would write an email to Livescribe asking them to support you with more detailed information on the device. Listening to the USB-port and trying to figure out what the device talks about is very time consuming I assume.

    Thank you for your work!

    • Dylan Taylor says:

      Like or Dislike: Thumb up 0 Thumb down 0

      Honestly, I doubt they would be willing to help, but go ahead and ask them if you’d like. Having extensive documentation on the pen would certainly help.

  2. ABS says:

    Like or Dislike: Thumb up 0 Thumb down 0

    Hi Dylan.

    I’ve just seen a screenshot of librescrive at: http://dylanmtaylor.com/?attachment_id=1026
    What currently works on librescribe?
    Do you have a DEB file for any version of Ubuntu?

    Keep up the good work.

    Andres

  3. eve says:

    Like or Dislike: Thumb up 0 Thumb down 0

    Hi Dylan, great work. I’m writing a thesis that utilize livescribe and your project will be very useful. Do you have by any chance livescribe SDK and API docs? Unfortunately I bought my pulse after they quit dev program. I spent countless hours googling without any luck. And it’s crucial for my thesis actually. If you don’t mind sharing it I would be glad to contact me: fergusoneve2 -at- gmail . com.

  4. Rafi says:

    Like or Dislike: Thumb up 0 Thumb down 0

    If you haven’t done so already, I suggest you try wireshark. I think it can do post mortems on the raw capture. I’ve mostly used it for live analysis from a linux host with windows running in virtualbox.

    Actually I did a lot of analysis using the usbmon stuff in debugfs, before I noticed the new usb features in wireshark :)

    I haven’t tried librescribe for almost a year. Looking forward to testing your improvements. Thanks for working on this.

  5. Karsten says:

    Like or Dislike: Thumb up 0 Thumb down 0

    Hi,

    in LibreScribe.cbp I had to change

    56c56
    <

    >

    in order to get a clean compile…
    Don’t know why to put it there, but I get a bunch of “undefined reference to” otherwise.

    thank you for your work

  6. John says:

    Like or Dislike: Thumb up 0 Thumb down 0

    Please continue working on this!!! :D I just got a smartpen, and don’t wanna have to go back to Windoze, and so far your software is the closest thing to complete I’ve seen online.

    I really want to try this software out, but don’t want to have to install the huge dev environment to run it. Let me know if you make any progress!!

    Thanks so much for your work so far…

  7. Like or Dislike: Thumb up 0 Thumb down 0

    Hi, I am thinking of getting a livescribe pulse or echo.
    I am impressed with what these pens can do, but I use linux and I do not want to use windows.
    What is the level of useability of your softwar at the moment?
    The screenshot looks impressive enough:
    http://www.dylanmtaylor.com/?attachment_id=1026
    I know I could test, but a pen is about 150$ and I would like to know how well it might work before buying.
    Thanks!
    /bjorn

  8. Björn says:

    Like or Dislike: Thumb up 0 Thumb down 0

    Does librescribe work with the new sky wifi smartpen?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>