Soarer desparately needed!

Arakula

03 Dec 2014, 19:43

Does anybody know where he is and/or can point him here?

I'm in a rather big dilemma at the moment and would need a word with him ...

because, you see, I've reverse-engineered his converter. 100%.
I would like to publish the source and/or the binary images, because it's already at a state where it's (a) readable, (b) smaller and (c) a little bit more powerful than the original (OK, the "powerful" is an exaggeration - it can use the second LED on a Pro Micro clone to blink whenever a key stroke comes in from the keyboard. Just a little gimmick). I just can't test it under every possible condition, so I'd need beta testers as well.

As long as I keep it to myself, I'm on the safe side with the laws of my country (reverse engineering just for the fun of it isn't prohibited) - but once I upload anything, however, things start to look quite different. So I'd need Soarer's consent, or a "cease and desist, you scumbag!", or ... anything. An official word from him, anyway.

So, please, if anybody knows where to find him, let him know.

Parak

03 Dec 2014, 19:52

Unfortunately I've tried reaching him as well, but he seems to have disappeared somewhere since around.. June? Ish? No luck finding his RL contact info, either. Hopefully everything is fine with him and it's just some intentional seclusion, but it is a bit worrying. He's good people.

User avatar
beltet

03 Dec 2014, 21:03

Hope that you get in contact with him. Hope he is ok.

EDIT: On GH he was active last august:
https://geekhack.org/index.php?action=profile;u=4274

User avatar
Muirium
µ

03 Dec 2014, 21:43

I have his name and address if you'd like to try contacting him by mail. And I'm impressed to hear what you've done with his converter. Had a look at his controller at all? He was in the process of merging the projects and preparing them for open sourcing, the last he was online here.

andrewjoy

03 Dec 2014, 21:50

Hmm yes it is always tricky when people go missing and have a project, you have done the right thing asking i think. Possibly if you have the time and the will you could re-implement it without using his code. You could call it the AINS Arakula Is Not Soarer :P.

dfj

03 Dec 2014, 22:52

I've discussed the OSS of the firmware a number of times with Soarer, and it has been clear that it was not *yet* his intention to open it, though it was likely a future option.
Decompiling his firmware, modifying and redistributing it is not a polite, nor particularly legal thing in many countries. I'd suggest that you retain your personal copy until such time as the source is actually released, and apply and then fork from there.
If you have changes that you very much need to share, then expressing them as a binary patch might be one option, depending on what license Soarer uses for the distribution of his binary.
If you can automate the process of generating such a patch from your sources, and a copy of Soarer's binary, then it might be viable for you to open your own source more easily as well - hopefully he would stop you quickly and provide some way to ease the pain.
There are many dead binaries, as well as art and literature in the world which is covered by current copyright, and thus inaccessible legally. This is rationally for my own desire to see such laws changed - but as Soarer has only been away briefly, it really isn't relevant at all here, and for this reason I would instead ask that you respect his intentions for as long as possible.

my $0.02
dfj

User avatar
Muirium
µ

03 Dec 2014, 23:00

Yup. And that was my reading of Arakula's intent.

Soarer's Converter (and controller) is a much loved gem of our whole community (naturally I'm typing this through one even now!) and he's surely won our respect. His absence is disheartening, as he was usually so active, but real life can get in the way like that. Anyway, this one's Soarer's call and no one else's. I can try to hook you up.

andrewjoy

03 Dec 2014, 23:22

Oh indeed its his call what happens with his code. I do however not see anything wrong with reimplementing his idea with new code, i suck at doing code, i can rip stuff apart to get it working and fix errors but that's about it i am a support guy :)

Arakula

04 Dec 2014, 00:31

Muirium wrote: Had a look at his controller at all?
No, not yet.
dfj wrote: Decompiling his firmware, modifying and redistributing it is not a polite, nor particularly legal thing in many countries. I'd suggest that you retain your personal copy until such time as the source is actually released, and apply and then fork from there.
Unless I get a "go" from him, that's all I can do.
dfj wrote: If you have changes that you very much need to share, then expressing them as a binary patch might be one option,
I have already done that here and here, for the Pro Micro. 10 bytes changed in total.
The rebuild I've finished now, however, does not produce the same binary as the original; far from it. I've improved some things, changed others, and my dear friend avr-gcc reorders functions as it sees fit anyway (apart from the fact that I didn't even try to get the exact same binary code). A binary patch, in this case, is practically impossible.
dfj wrote: depending on what license Soarer uses for the distribution of his binary.
As far as I can see - none. There's no license in the documentation, nor in the .zip files. I haven't seen any in the monster threads here and on GH, either. I can't read his mind, of course, but I think that was one of the last things he'd think about when he did the converter.
dfj wrote: I would instead ask that you respect his intentions for as long as possible.
That's my intention.
Last edited by Arakula on 04 Dec 2014, 01:13, edited 3 times in total.

Arakula

04 Dec 2014, 00:37

Muirium wrote: I can try to hook you up.
That would be great; thank you.

User avatar
fohat
Elder Messenger

05 Dec 2014, 04:45

Soarer set wheels (an entire movement!) in motion that has been lovingly and enthusiastically embraced by what, hundreds, at least, thousands, perhaps, of keyboard lovers around the world?

This is not a trivial backwater, my life has been impacted by his work every day for 3 years and I am one of many many.

He (and are we even really sure that Soarer is male?) resisted releasing his code for personal reasons that are not hard to understand.

Clearly, my respect and admiration for Soarer is at the highest level.

Having said all that, this juggernaut will have to move forward, eventually. Everything changes, including each iteration of each OS. If he is not available to shepherd the thing, it will have to fall on someone else's shoulders.

Please, Soarer, phone home!

User avatar
beltet

10 Jan 2015, 19:34

Any news?

Arakula

10 Jan 2015, 20:01

Nothing that would have reached me.

andrewjoy

13 Jan 2015, 00:02

I think if its not possible to contact him its ok to disassemble the code and do what's needed.

User avatar
Muirium
µ

13 Jan 2015, 01:19

I wrote to him, via snail mail. I'll update if I hear anything.

User avatar
Muirium
µ

19 Feb 2015, 13:42

A month later: nothing to report. I included my return address, and email, so I should have heard something by now. I'm guessing he's okay but wants to stay quiet. Or my letter should have bounced.

I'd say go ahead with your project. Especially if it means layer locks…

andrewjoy

19 Feb 2015, 14:03

i agree , i think we have been more than fair trying to contact the dev i would treat it as abandonware now. Go ahead and do your thing .

User avatar
XMIT
[ XMIT ]

19 Feb 2015, 16:01

Yep, I can't find the source anywhere. That's disappointing. I assume Soarer had some reason.

Please consider a permissive license with your keyboard controller source such as MIT, BSD, or GPL/LGPL. For reference:
https://en.wikipedia.org/wiki/Compariso ... e_licenses

Or maybe we can write a replacement from scratch. :-D

Arakula

20 Feb 2015, 07:57

Too bad that he simply vanished.
Well, so be it ...

For now, I can see the following possibilities:
  • Simply upload what I did to GitHub or another repository (personally, I prefer Subversion-based ones, but that's merely because I've used and adapted that to nonstandard environments for over a decade now). Would have to decide on a license scheme in this case. Tricky... and also a little bit of a legal minefield, since this is in most areas a complete clone of the original. "Absent" isn't the same as "gone"; Soarer might still reappear, and I most certainly wouldn't want a personal or legal quarrel with him.
  • adding the core logic to Hasu's tmk build tree. That's basically a complete rewrite, which only mimics the following characteristics of the original:
    • use Soarer's USB device ID and protocol that handles transfer of EPROM data and status information/updates from/to the PC
    • use that EPROM data to act on key information already processed by tmk
    while using the rest (LUFA, PS/2 and/or matrix handling and translation to HID key codes) from tmk. This might take quite some time, but I think it's a safer route.
  • ... anything else you can come up with. Inputs?

User avatar
Halvar

20 Feb 2015, 09:09

So in what form is your source code now, Arakula? Assembler code with a few symbolic but mostly auto-generated labels, I'd guess? I don't fully understand what you did yet.

Arakula

20 Feb 2015, 09:56

Hehehe - you're challenging my professional pride a bit :D
... no. If I say "reverse-engineered", I don't mean "disassembled" 8-)

100% C (except for some assembler macros where absolutely necessary). Including comments, descriptive function and variable names. Original PJRC and avr-gcc library functions, macros and bit names identified and used. For most functions, the output from avr-gcc has been painstakingly matched to the original to make sure it's compatible. I.e., it's the closest you can get to the original source code without having any symbolic information.

User avatar
Muirium
µ

20 Feb 2015, 12:15

Speaking as someone who only hazily understands what any of that means, but uses Soarer's Converter and Controller a lot, here's my input:

I'd like something I can drop straight in, essentially an updated Soarer's, and still use the same tools (scas, scwr) where appropriate. Or, more ambitiously: if you could update it with new functionality (layer locks and layer LEDs please!) or compatibility (Teensy 3.1 or NRF wireless module! Hell, even the Bluetooth EZkey!!) that would be absolutely brilliant. I'd love to put my ADB boards through the converter too, or something similarly code-less.

Hasu's TMK is great work, but almost literally useless to me as a non-coder. I only managed to get it working once, and I broke it soon afterwards, while making trivial layout edits, which I never could fix. Source code is great to have but, for many of us, horrible to *need*. I'm not completely clueless (I hacked the make files for Soarer's utilities to build on PowerPC Macs and on Yosemite) but I'm not good enough to walk through TMK like the keyboard builder's guides assume everyone can. That's why I always use Soarer's. And why I advise newbs to do likewise. Even if it is closed source: it works so well.

Xwhatsit's controller (which is a replacement controller for IBM Model Fs and Beamsprings if anyone hasn't heard of it) has an excellent GUI for defining and editing layouts, layers and macros. If we could go there with an XT/AT/PS/2 converter, all the better!

Soarer said many times that he was rewriting his controller, readying it for release as open source. I don't think he'll be upset with someone doing the assiduous work that you have! Perhaps the best move is to simply give it a new name and if he does reappear, there's potential to merge the projects.

User avatar
XMIT
[ XMIT ]

20 Feb 2015, 12:38

If you've written a from scratch replacement that ends up being binary compatible I think that is fair game. But as you said above your goal was not binary compatibility, it was functional compatibility.

There are only so many ways to implement a keyboard controller or converter. In the former, some microcontroller must have a main loop to poll the inputs, must have some way of knowing which keys are depressed, must have a table of scan codes, and must have some way of serializing key switch events down a wire. In the latter, it is just a fairly stateless parser that listens to a bus, interprets signals as key presses, and re-emits them in some form.

There was a high profile court case here in the US between Google and Oracle regarding Java. The key argument of the case hinged on whether or not an API is copyrightable. Google uses their own Java VM for the Android OS.

Just to be on the safe side I would say things like, "this does not aim to be a replacement to Soarer's work", "I wrote this from scratch but aimed for functional compatibility", and "these features are unique". I would also release it under a very permissive license that did not force license terms on anyone using it. That may not be ideal for you but maybe it also removes some liability?

I also like the idea of sending something in writing (which you did through Mu). If you want to be really sure you can send a certified letter to Soarer with your intentions, and give a month to respond.

IANAL. Talk to one if you're really worried about this.

User avatar
Halvar

20 Feb 2015, 13:40

For converting or controlling a keyboard, Soarer's software as it is is really good, and we can use it.

For everything that goes beyond that, from my perspective I know that I would not be willing to base any of my own work on code that was not released as "free to use" by its original author. Even though Arakula must have put a lot of brilliant work into this to get a commented C source code, as of now, it is totally unclear if Soarer would be ok with sharing it or not. Any release based on this code without his approval would forever have legal uncertainties attached as well as, more importantly, the smell that it was based on code stolen from a most productive, helpful and active member of the community.

We have GPL'd code available in form of hasu's and his contributor's code as well as xwhatsit's and other code, so IMO that should be the sustainable base of further development.

The best solution for everyone of course would be to get Soarer to comment on this.

User avatar
fohat
Elder Messenger

20 Feb 2015, 14:51

Muirium wrote:
Speaking as someone who only hazily understands what any of that means, but uses Soarer's Converter and Controller a lot, here's my input:

I'd like something I can drop straight in, essentially an updated Soarer's, and still use the same tools (scas, scwr) where appropriate.

I'd love to put my ADB boards through the converter too, or something similarly code-less.

Hasu's TMK is great work, but almost literally useless to me as a non-coder. Source code is great to have but, for many of us, horrible to *need*. I'm not completely clueless but I'm not good enough to walk through TMK like the keyboard builder's guides assume everyone can.

That's why I always use Soarer's. And why I advise newbs to do likewise. Even if it is closed source: it works so well.

Soarer said many times that he was rewriting his controller, readying it for release as open source.

Perhaps the best move is to simply give it a new name and if he does reappear, there's potential to merge the projects.
My edit of Muirium's excellent observations and I find myself in approximately the same boat.

For nearly a year users both here and on Geekhack have been asking Soarer for some sign or acknowledgement, with zero response.

If he were willing, and/or able, I feel certain that he would have given somebody, somewhere, on one of these forums, a signal.

User avatar
Halvar

20 Feb 2015, 15:20

fohat wrote: If he were willing, and/or able, I feel certain that he would have given somebody, somewhere, on one of these forums, a signal.
And the fact that he wasn't "willing and/or able to give a signal" means what? It means that we can't "free" his software, unfortunately.

User avatar
bhtooefr

20 Feb 2015, 15:25

Yeah, we don't get the right to use his stuff outside of Soarer's terms until (at best - in some countries (like the US) it's longer) 50 years after his death, unless he explicitly releases it for this use.

User avatar
Muirium
µ

20 Feb 2015, 15:27

Hmm…

Arakula: reckon you've learned enough that you could write your own, distinct, equivalent of Soarer's converter and controller? It couldn't be a clean room implementation thanks to how deep you've gone with the original, but as I (eventually) said earlier: we don't really need a Soarer clone so much as something just as fiddling-in-source-code-free that can do the job, and then some. Soarer's will keep working for years, as long as there are Teensies and we have PS/2 boards to convert, but it's stuck there now. What we need is something maintainable and extendable.

I'd really like something we can build a GUI for, with support for sharing layouts online, and that can run on more diverse hardware.

User avatar
7bit

20 Feb 2015, 15:33

If you have access to the source code, just rewrite the whole thing.
:?

Can't be too difficult.
:evilgeek:

Edit:
Now I know what you mean. Only hex binaries.
:cry: :mad:

User avatar
Muirium
µ

20 Feb 2015, 16:06

No, Arakula's pieced together the source code from the HEX. But the true hex here is the murky lack of licence…

Better refactor and make something new!

Post Reply

Return to “Workshop”