MobileLCD library doesn't specify license

04 Jan 2010

I'd like to hack the MobileLCD license to make an OLED driver as close as possible to the same API. I figured it would be useful to more people if it is a plug-in replacement.

The source file just says "Copyright (c) 2007/8, sford" but doesn't explicitly say what license it is under. I assume "sford" is Simon Ford so, since I couldn't find a private message facility, I'm hoping I can get this clarified via the forums.

I would like to release my own OLED driver under the MIT license to be as mbed-dev-friendly as possible when it is done.

Thanks & regards,

Simon Blandford

04 Jan 2010 . Edited: 04 Jan 2010

Hi SimonB,

I'd intend it to go under MIT. We'd like to improve the publishing to encourage marking with a license, but am waiting until we've improved the version control and also waiting to see if a good way to mark as "Public Domain" emerges (especially examples); strangely there seems very little precedent on how to do this!

Creative commons are starting to list software licenses and also have http://creativecommons.org/publicdomain/zero/1.0/ which is an attempt to be a way of marking public domain. We'll see how that develops (feels like there is a real need).

My preference for licensing code would be MIT (libraries/applications) and Public Domain (snippets/examples).

Simon

04 Jan 2010

Hi SimonF,

Thanks for the clarification. Happy new year to you!

Regards,

SimonB

05 Jan 2010

Maybe not really relevant, but I'm currently hacking Mike Sheldon's 3D Tie Fighter demo to work on a 128x64 mono DOG LCD from Electronic Assembly (it was originally made for MobileLCD). I modified his Graphics class to take a pointer to an instance of a class I named AbstractLCD. Right now I have the following functions in it:

class AbstractLCD
{
public:
    virtual ~AbstractLCD() {};
    virtual int width() = 0;
    virtual int height() = 0;
    virtual void pixel(int x, int y, int colour) = 0;
    virtual void fill(int x, int y, int width, int height, int colour) = 0;
    virtual void beginupdate() = 0;
    virtual void endupdate() = 0;
};

I think this approach works better than inheriting from MobileLCD, as different LCD implementations can be plugged in more easily.