Licensing your own software

MBS Plugin supports a couple of dongle.

See dongles plugin parts here: Plugin Parts

Do new Macs even have a port for dongles???
:wink:

Ok thanks all.

Hmmm dunno. I’ve been reading this post and others regarding protecting your software with much interest - well for the last 18months since I started programming my software solution.

My Software has only a small bespoke market. There are not many competitors. Well, I guess you could come up with something similar if you had Matlab (costly) and you would also have to spend considerable time. At this point my software solution is working very well.

Even if I negate my inexperience, multiplied by the hours spent, I still would never let this software go for next to nothing! There is not much out there like it.

So, I was thinking that I could have a timed trial period, then followed by a period where the user can request a dongle - which may perhaps unlock other “professional” features.

I like the idea of a dongle because it means you don’t have to worry about internet connections etc. (yuk) and you can run the software on any machine (restricted to windows in my case).

I use software/hardware at my work that uses dongles. Fair enough, these are Million dollar machines etc., Nevertheless, I don’t want my hard work being easily copied - as I’m sure we all don’t.

I like dongles :slight_smile:

I would NEVER consider purchasing software that required a dongle… in the 80’s, maybe depending on the software… today? never

how about making a raspberry pi as an ethernet software dongle ?
there is a serial number inside, make a program that acts as a dongle, via ethernet.
it won’t need any usb driver, and will cost you less than any HASP licence.

Never say Never Dave. We all don’t know the exact purposes of the other. Thanks anyway, I’ll make sure to strike you off my list of potential customers =o :stuck_out_tongue:

[quote=363274:@Jean-Yves Pochez]how about making a raspberry pi as an ethernet software dongle ?
there is a serial number inside, make a program that acts as a dongle, via ethernet.
it won’t need any usb driver, and will cost you less than any HASP licence.[/quote]

Thanks Jean-Yves, your solution is similar to how my software and hardware could work. My hardware device uses an Arduino Uno and therefore requires installing usb drivers. I could setup the software so it ONLY works with my particular hardware device, ie. X-device only works with X- software.

Originally I was going to be very strict, as in the software will only work with the hardware it was tied to (a package deal). Then I decided that it would be better for the software to be able to be used without the hardware device, because there are potential users of the software that have their own hardware devices.

What I’m developing is not an “off the shelf” product. There are no standard protocols. Also users without any hardware device should be able to import files created from who knows what device (a standard text file is the only requirement).

So I was toying with the idea of the dongle as a “pretend” hardware device. The hardware device was made a couple of years ago and is the “main game”. The Software is just an “added feature”, but I still haven’t finished it, but very close.

For me, it’s not just a simple matter of software protection, and I think the dongle concept is still worth exploring.

On this Forum, I may well be a small fish in a big pond - but I do swim in many other ponds. :wink:
Steve Kelepouris - circa 2017.

Just my 2c, as an enterprise customer that has high value software protected by dongles. We hate them with a passion. It’s usually not a deal-breaker but when we get a dongle failure that affects on-air (my day job), that is hard to explain to our customers. Although vendors will replace busted dongles, it’s an overnight issue at the very least. We have a lot of redundancy built in but rarely like to tolerate single-threaded too long.

Over the years I’ve seen dongles just fail, smashed to pieces, knocked by cables so just the “usb” pins stick out of the usb socket and somehow, people lose them (when it’s a $20k product that’s a hard pill to swallow). Most companies that use dongles now are moving to license servers (whether on-prem or cloud).

I do understand protecting your IP, we get that but don’t p*&& off your compliant customers. :slight_smile:

Ok, thanks Richard, much appreciated.

Also to Dave S, I hope I wasn’t out of line with that crack about “Never Say Never” :).

Honestly, I don’t know which way to go. The dongle idea just seems more simple than having the user verify by logging on to some website and using a key etc… To me, having the user verify online is restrictive in its own way.

I’m not a professional programmer and the potential market is very small, but I believe there is some scope for me to get some financial compensation for my efforts. Otherwise, I may as well release it for nix and just have a “please donate if you like this software”.

Although, when I think about it, perhaps in the end I’ll be saying “I’ll pay you $10 if you use my software”. :slight_smile:

There must be an in-between solution. I do understand that these things aren’t easy for all of us. With my software, I reckon a simple deterrence or incentive may be good enough.

[EDIT]
IMPORTANT: Because my market is small, I think the potential for copying between users is greatly increased.

New MacBook Pro’s have no ports for dongles. Which means you need to buy a dongle to use a dongle.

That’s weird and sort of seems wrong.

I’m Windows only. Preferably the user will run my software on an old el-cheapo laptop running WIN7 or above.

The software, device and laptop will be used “in the field” and potentially destroyed during testing. Hence the cheap laptop running WIN7. If the laptop is running WIN8.1 or 10, then it deserves to reach its ultimate fate :slight_smile:

I would NEVER put a mac under this situation.

Never say Never? :smiley:

Ah, good one Dave - touch :slight_smile:

Oh dear, I’m still pissing myself laughing about that one.

Let’s just say “Highly Unlikely”! and we’ll leave it at that.

If the machines experience the chance of being destroyed wouldn’t a dongle for the software be more hassle since it would experience the same risk?

Yeah that’s a good point Tim, and I have thought about it before. I probably “exaggerated” that the laptop & device could potentially be destroyed - but that risk is real. The risk or chance of catastrophic failure during testing (here I go again), I’d say would be between 5-10%.

My device and software measure the performance of pyrotechnic and amateur rocket motors. It’s aimed at the amateur to semi-professional market. The people using it are experimentalists and researchers and therefore are pushing things to the limit. When you do that, you get the odd explosion.

The device will be tethered to the laptop via a usb cable, so it’s got a 5mtr limit. The chances of the laptop being hit by shrapnel would be low and you could put a sandbag between to protect it - if it did get hit and destroyed, you could probably sift through the debri and find the dongle and perhaps extract the last recorded data if the hard-disc was still operable . However, if there was fire, then bye-bye device, laptop, recorded data and dongle.

I guess I could supply 2 dongles, but that would mean that the user could simply give the dongle and a copy of the software to someone else. Now that I think about it, this raises another issue with licensing. I want the user to be able to use my software with the “in-the-field” laptop and then be able to copy the files to maybe their desktop for analysis - so they would need to have two copies of the software anyway.

It just gets worse and worse.

Here’s an image of my device - at least this part works and makes me feel happy :slight_smile:

use an esp8266 instead of an arduino and you will be able to use wifo for the connexion ?
the program will be the same almost.

@Steve Kelepouris
You can use Smart Card to provide application locking as well.
It’s hard to make a copy of Smart Card contents so it would then fit a bit less then play with dongle and other old ways of adding protection.
Anyway for it you will need smart card reader but now days it’s very cheap and you have wide range of options with it and in different shapes and interfaces to connect to PC/MAC.

Regarding to USB cable. See if you can find LAN to USB adapter since then you can use LAN cable (up to 100m long) and to put on each end of cable LAN to USB adapter. Also there is a same thing for HDMI as well.

UPDATE for LAN/USB
Product name would be something like ‘USB UTP Extender Extension Over Single Rj45 Ethernet’

Thanks guys, appreciated.

Jean-Yves, that wifi device looks great! - I have thought about using wifi for the connection a while back, some of the devices I looked at seemed a little bit expensive but the esp8266 looks like it could provide an inexpensive solution regarding proximity.

@ Bogdan, I looked at that idea as well. It looked more expensive than the wifi option, especially with a long cable.

Nevertheless, and to bring this back on topic:

I pointed out earlier that my first inclination was to deploy the software with the device as a dedicated system which would provide the validation. Then I thought, well, that’s a big waste of my software. So I went down the path that the software can be used with other devices. So now I need a licensing scheme that is software based rather than relying on my own hardware to do the validation - or a dongle type device.

Also, now my requirement is that the user should be able to run the software on another computer. I guess ONLY two is enough.

How I get the data onto the computer isn’t as important now as to how I restrict usage. I have a subscription to MicroSoft Office and if I copy a file from my laptop to my desktop then I need to have another valid license to open the document.

Apart from “un-licensing” on that computer and then transferring to another… what a load of wasted time.

[EDIT] So what I’m saying is that with a dongle you could just plug it out of one computer and into another for the validation - is this not easier that logging on to a website?

@Steve Kelepouris

Here you go tiniest solution which is any USB mass storage and smart card device as any combo device :slight_smile:

I’m not sure since can’t refresh my brain but it’s also possible to create on USB storage part so called CD ROM (read only) partition where you can store your install app and other things which are read only and which are not changed so often. This means that then you will have regarding to storage place 2 partitions plus part where Smart Card which also can handle data and etc.

https://ibb.co/gPfRUb

PC/SC and CT API library are present for Windows, Mac and Linux

So, you could deploy (and sell) all in one usb stick to your clients a long with your hardware. Then they can use it on any pc/mac workstation.

I’m pretty sure you can size an arduino the size of an usb stick, and then make your own arduino-style dongles.
burn the fuse and it will be unreadable
use some rotating-key algorithm between the computer and the dongle, and you can give it with the software licence.
https://uge-one.com/tiny-arduino-based-on-attiny85.html

Thanks Bogdan.

I don’t want the data to be stored on the usb dongle, but just for validation. Or do I?.. I’m not sure if that’s what you meant but that could work.

My software only allows saving files to one location. To expand on that, with my software you don’t ever have to worry about where the files are saved, when you open files you are also in that same location. They are only ever small files and you can export or save backups.

Nah, maybe not, otherwise everything is only ever saved on the usb stick - could work though. Sorry, just thinking out aloud.

@ Jean-Yves. So what you are saying is I could make my own dongles rather than purchasing some other expensive solution?