Firmware upgrade with Linux?

demcanulty
Posts: 97
Joined: Thu Jun 16, 2011 11:24 am

Re: Firmware upgrade with Linux?

Postby demcanulty » Wed Nov 28, 2012 1:38 pm

I'm psyched to see all the interest! I'm uploading a zip with some javascript code that will take a preset file and generate a sysex. I'm also including a folder with firmware and some instructions for how to upload the different things to the device.

This should be enough to get started at least, and you can poke around the JSON file and modify things if you want to. Eventually, hopefully, I can try to spend some time describing what things in the JSON do in more detail. But for now, give this a shot and let me know if it's helpful or what would be needed to make more sense of it.
Attachments
sysexCompiler_1.1.x_ForumRelease.zip
(201.96 KiB) Downloaded 214 times
jrussell
Posts: 70
Joined: Tue Nov 27, 2012 9:16 pm

Re: Firmware upgrade with Linux?

Postby jrussell » Fri Nov 30, 2012 11:31 pm

Definitely looks like enough info here to at least create a preset editor and uploader for Linux.. Looked around a bit, I can run the js program and it generates (presumably usable) syx files.

Just got my QuNeo today, so after I play with it a bit and the code, will see if there are any gaping pieces of knowledge needed.

Thanks!
jrussell
Posts: 70
Joined: Tue Nov 27, 2012 9:16 pm

Re: Firmware upgrade with Linux?

Postby jrussell » Sat Dec 01, 2012 2:17 am

Minor succes just to prove the pieces work.
Start QuNeo windows preset editor under wine.
Modify Preset 1
run javascript script supplied here against Quneo.json created by preset editor
use Renoise SysexLibrarian to send presetSysex.syx and sysexCommands/loadPreset/loadPreset0.syx to QuNeo
verify, values sent by QuNeo match altered preset in editor.

So verified that
A: the js code supplied can compile the sysex file correctly under linux
B: the sysex files can be transmitted to QuNeo via standard Linux based Sysex tools.
demcanulty
Posts: 97
Joined: Thu Jun 16, 2011 11:24 am

Re: Firmware upgrade with Linux?

Postby demcanulty » Sat Dec 01, 2012 8:49 pm

Coooool, it's neat to see people actually trying out the code! : )
User avatar
slinky
Posts: 20
Joined: Wed Sep 12, 2012 11:32 am

Re: Firmware upgrade with Linux?

Postby slinky » Tue Dec 04, 2012 12:02 pm

demcanulty wrote:Hi slinky, this is Dan in hardware/firmware dev.


Hi Dan, and thank you for sharing the code!
jrussell
Posts: 70
Joined: Tue Nov 27, 2012 9:16 pm

Re: Firmware upgrade with Linux?

Postby jrussell » Thu Dec 06, 2012 12:03 pm

Absolutely thanks for sharing - I had originally thought I would just reverse engineer the protocol from the windows software, but now that I can deduce the protocol from code, I DOUBT I would have pulled it off just from wire sniffing.

My progress has been slow only due to lack of time. My long term plan is a complete cross platform preset editor and updater very similar to the KMI supplied windows/mac app (in functonality, not look and feel.), and compatible with the KMI .quneopreset / .json files as long as that is practical.

But I will build this in steps:
1 - command line tool that can update a QuNeo from JSON files in the KMI editor's format. This will allow using the stock app under wine to create presets and a simple command line to drop them on your quneo.

2 - documentation of the json format and SysEx preset messages

3 - Simple preset editor with embedded updater

4 - ever increasing functionality in the preset editor GUI..

And somewhere in there updating to 1.2 if/when it is released.

I will also place all in open source as soon as the code is viable and shareable :)
demcanulty
Posts: 97
Joined: Thu Jun 16, 2011 11:24 am

Re: Firmware upgrade with Linux?

Postby demcanulty » Thu Dec 06, 2012 6:04 pm

That sounds awesome, and I'll be happy to help document the json and such. There will definitely be some changes in 1.2, added variables to send down to the board mostly, but we'll have those out and available fairly soon. Test installers went out to a few testers today, and we'll have software out to signed up beta testers tomorrow I think. Once you get started and get a conceptual framework, maybe we can start to document the json, and by next week it should be possible to incorporate the 1.2 structure.
wolfbiter
Posts: 20
Joined: Wed Sep 19, 2012 4:27 pm

Re: Firmware upgrade with Linux?

Postby wolfbiter » Fri Dec 07, 2012 2:03 am

+1, I just want to voice my support for this.

I am also a Linux-only user, and more than once have been upset that I can't update my QuNeo without the help of windows!
User avatar
slinky
Posts: 20
Joined: Wed Sep 12, 2012 11:32 am

Re: Firmware upgrade with Linux?

Postby slinky » Sun Dec 09, 2012 2:55 pm

Hi all,

there's now a simple stand-alone command line tool written in Python at Github:

http://github.com/jnurmine/quneo-linux

Thanks to Dan's JavaScript json-to-sysex converter it was quite easy to write a converter in Python. (I thought Python would be better overall going forward.) The tool can write exported presets directly to QuNeo by using the ALSA MIDI device (--device option), or it can write to a file (default). There's also a simple MIDI-scanner to check what kind of messages QuNeo sends back for the pads, buttons, etc.

It's very basic but works on my QuNeo from what I can tell :) Please test it, have fun, and if something doesn't work, please write patches and/or file bugs. Let's make a proper editor for Linux!

Note: only 1.1 firmware is supported at the moment. Please see the README file.

Dan, would it be possible to please document the response messages for the device-inquiry.syx and queryPresetNumber.syx? Or at least the former.

PS. Dan, I noticed that the SysEx generated by the .js tool will add extra 0x0d to the (beginning of the) Globals-section of the preset. I did not figure out from the JavaScript code why exactly that happens. Are those needed? The Python tool does not currently write them.
demcanulty
Posts: 97
Joined: Thu Jun 16, 2011 11:24 am

Re: Firmware upgrade with Linux?

Postby demcanulty » Sun Dec 09, 2012 4:17 pm

Hi Slinky, it's probably important, if the bytes get offset in the globals then you might get some periodically weird behavior, but I'll have to look more closely at it. My python is a little rusty, but I should be able to figure it out. Pretty awesome work, thanks for putting the time into this!

Return to “QuNeo General Discussion”

Who is online

Users browsing this forum: No registered users and 3 guests

cron