Home AMX User Forum Duet/Cafe Duet

Is anyone still using Duet?

Just curious - is anyone actually using Duet on a regular basis? Earlier this year someone from AMX said here on the forums that we should see an update to Duet "later this year", though the year is about to end.

I *really* want to use this, but 1) it seems like a novelty / supplement to an actual system & 2) the price is outrageous - has it changed at all?



  • PhreaKPhreaK Posts: 966
    All non maintenance dev I'm doing now is almost exclusively Duet based. If I had to guess I'd say the update referred to would be a new SDK + upgraded Eclipse version (I would hope) to match a newer VM on a v4 NI firmware.

    Also, all the client side RMS Enterprise guff is Duet so I very much doubt it will be disappearing anytime soon.
  • the8thstthe8thst Posts: 470
    A few AMX engineers have told me that programs that reside entirely in Duet will run several orders of magnitude faster than a comparable Netlinx system. This of course means you are eliminating the SNAPI router layer as that slows everything down quite a bit.

    I am only vaguely familiar with developing in a Java environment so I have spent much time with Duet yet, but it is definitely on my to-do list.
  • TurnipTruckTurnipTruck Posts: 1,485
    For someone who is fluent in Netlinx and able to get the job done, what would be the upside to Duet from an AMX programming perspective?
  • John NagyJohn Nagy Posts: 1,702
    Duet supposedly can perform processes at 20 times the speed of the C-like NetLinx code. It is supposed to be more easily portable between projects. It was originally supposed to be run-time pluggable, that is, your code could ask for a module to load or not based on a need at the time, meaning memory management could be a big value, but this last item never did materialize.
  • jjamesjjames Posts: 2,906
    For sake of testing, I had the Nuvo tuner Duet module running, and every five seconds (or so) the CPU would spike to 50% just because it was querying the device. I replaced it with my own code and CPU remained below 10%. Whether or not this is a testament to the low quality of the module or that it's doing a ton of other stuff I don't approve of, I'm not quite sure.
  • Spire_JeffSpire_Jeff Posts: 1,917
    The key to making the Duet stuff run faster is that you have to use only Duet code. I am not sure how this plays out when using Duet modules, but the speed is lost as soon as you have to route things through the SNAPI. If you create a block of code like (As I recall from Duet training):
      [dvRelay,1] = ![dvRelay,1];

    Code needs to be modified slightly for duet to execute I think.

    You will see (and hear) a remarkable difference in the execution speed between NetLinx and Duet.

    If this doesn't translate to your test, I am guessing that there is something else involved. Maybe someone more familiar with duet could write a little something to illustrate the differences?

  • ericmedleyericmedley Posts: 4,177
    Most of the chatter about moving to Duet still seems to be just that: chatter. I still don't really see AMX making any formal moves toward implementing it on a 'full-on' basis. If it does indeed mean a 20-some fold improvement in performance I'd love to use it.
  • John NagyJohn Nagy Posts: 1,702
    AMX exec's have told us they'd go 100% JAVA for the speed but the programmers (customers) are pretty universally against any change.
  • ericmedleyericmedley Posts: 4,177
    Well, if there's no difference in hardware then why not have a JAVA only NI master and an NI Classic version for Netlinx? Let the market decide. If JAVA fails, just brick the JAVA NIs and resell them as normal boxes.
  • jjamesjjames Posts: 2,906
    I'd be all over a .net version, specifically something that'd run C#. There's change I'm willing to accept.
  • PhreaKPhreaK Posts: 966
    I would kill for a Java only firmware.

    If you are writing Duet modules then you will be instantiating all the classes required for SNAPI to function (via inheritance) and incurring the associate performance penalty. However to handle the modules the masters use the Oscar OSGi framework so it is technically possible to create and instantiate generic Oscar modules.

    As far as advantages go there a number of other threads covering this already but dominant ones are:
    1. It's a 'standard' / 'real world' language - new developers only need to learn how to interact with an SDK, rather than a full language which can be extremely useful in decreasing bus factor.
    2. With this comes a much, much, much larger developer community.
    3. Which in turn comes with much more mature development tools and a lot of established libraries that allow you to connect with other pieces of tech (cryptography, JSON / XML parsers et al).
  • John NagyJohn Nagy Posts: 1,702
    "Just do both" presumes unlimited resources, ideal but not realistic. And a company that has major commercial and government customers can't just try something like a programming environment and then ditch it if the uptake isn't to their liking.
  • Spire_JeffSpire_Jeff Posts: 1,917
    If they feel that JAVA is the right direction for their product to move, they need to just do it. There will always be resistance to change unless the current situation is severely flawed (then change can't come fast enough ... regardless of the benefit :) ). Most dealers won't make the change until they are forced. Once they make the change, they will most likely follow these steps:
    1. They will ***** and moan about how the old way was better.
    2. They will accept the fact that the new way is here to stay.
    3. They will figure out how to do what they used to do.
    4. They will (hopefully) find some cool new features.
    5. They will share these cool new features on the forum and proclaim that the new way is a huge improvement and anyone still doing it the old way is stoopid and newbish.

    At least, that is the way it will go if the new way is really better :) As far as duet is concerned, I would love to get that push that forces me to change. I have been teetering on the edge for a few years now and I truly believe that Duet is a better platform as we move toward the future.


    At least
  • jjamesjjames Posts: 2,906
    The sentiment I'm gathering is: "If I had to, I would." or "It'd be cool" - but only one person who's responded said they ARE using Duet. I'd probably use it too if I had a license - but in saying that, it puts me in the category of those who currently don't use it.
  • TurnipTruckTurnipTruck Posts: 1,485
    With sooooooooo many existing systems around the world running Netlinx code, it would seem impossible to support them if the only way to modify, repair or replace them is to rewrite with Duet.

    I just turned 40, had a child, and don't care to learn a new language. It will take big machine to move this stick around in the mud.
  • jjames wrote: »
    The sentiment I'm gathering is: "If I had to, I would." or "It'd be cool" - but only one person who's responded said they ARE using Duet. I'd probably use it too if I had a license - but in saying that, it puts me in the category of those who currently don't use it.


    I'd love to use it, but I don't see any way I'd be able to persuade my boss to shell out over a grand for it.

  • I guarantee we'd see an enormous increase in interest if they would make it free for fk sake.
  • John NagyJohn Nagy Posts: 1,702
    The reason for the cost is at least partially for the support and training they have to do to make it useful. AMX invests weeks of support time into each programmer who seriously gets into Duet. The fees are to try to break even, and also to deflect users who really don't intend to learn it, only dabble, and waste a lot of training and support time in the process. There may be a royalty load that AMX must pay per copy to the original software authors, that would be quite likely but I have no personal knowledge if it is the case here.

    I am only describing how it is and why they do it. I'm not defending or endorsing this manner of support. I'm not sure I would do it exactly this way, but I don't have all the numbers to review.
  • jjamesjjames Posts: 2,906
    If that's the case, which I don't doubt, I'd be fine with an added support fee. If you need the support, pay the cost of the license - otherwise, no official technical support. Given the nature of this forum, you would probably see an increase in posts asking for Duet help, and in the same token more responses of help from users who've dabbled or use it frequently. Isn't that what forums are kind of all about? Unofficial support mechanisms and idea factories.

    I thought I had read / heard somewhere that the cost of the license was to actually cover (at least) the licensing costs they had to pay and I wouldn't doubt the R&D spent. Since I admit that I'm not familiar with specific licenses I have no idea how true this is. [EDIT - John beat me to the punch on this.]
  • viningvining Posts: 4,368
    I wonder how many licenses have been sold to date and if this current policy has actually had the opposite affect of what they intended.

    I don't seem to recall paying for P1, 2 or 3 and back in the day there was no TS fees. Now, long time, experienced dealer appear to be moving on to Savant and other platforms so I wonder if these current policies are not just bad for the DUET movement but AMX's interests in general.

    If I desired to learn and program in java the duet fee would be somewhat an insignificant additional expense to the existing expense of being an AMX dealer. However if it were free I'd be more likely to try it, dabble, if you will but the forum would be be my avenue for TS after attending classes.
  • champchamp Posts: 261

    I would love to try it however the return on investment is questionable

    It costs over a thousand dollars, will take a month or so of time to learn how to do what i can already do in Netlinx (even though i am already ok at Java) then years to eventually rewrite all my existing modules and code, it is only J2ME so i don't get all the nice J2SE libraries, then i may decide it's easier not to bother and shelve it.

    If it cost a hundred dollars i would buy it myself and hopefully prove myself wrong.
  • AuserAuser Posts: 506
    So far everyone seems to be talking about Duet from the individual's perspective. Consider companies with a dozen or more programmers. It's difficult for management to justify spending $1k per seat when a free tool allows code to be written almost as quickly with almost as much functionality.

    I have access to a copy of Duet, but can't currently unleash it as the other programmers in the company can't support my work. I have no concerns that other staff could make the leap to using Duet, and can see a number of advantages, but for the time being it remains a novelty.
  • PhreaKPhreaK Posts: 966
    I just turned 40, had a child, and don't care to learn a new language.
    Never stop learning. This is an extremely dangerous thing to do regardless of industry.

    I definitely agree with the sentiment the price point is way to high for what it offers. It does open you up to be able to do far more than what is possible within the bounds of NetLinx and definitely provides the ability to have much more maintainable code, however to say the documentation is lacking (well at least what I've been able to obtain) is somewhat of an understatement.

    However, consider the scenario of inducting a new programmer into the world of AMX. If you needed to fill a seat it is much easier to find someone who is already proficient in java as opposed to NetLinx. The cost of training this person in programming a new language will well exceed the cost involved in providing them with the time involved to familiarize themselves with an SDK in a language for which they may already have years of experience.

    jjames's proposal of separating the product and the support fees would be an ideal implementation in my mind. If they were to license the SDK for a small fee (< $100), or have it free with the initial course (which could fall under the same pricing setup as other AMX training - ie sell our stuff and we'll show you how to make it work) then provide the ability to purchase support via yearly contracts it could be provided to those that require it, without spreading the cost to those who don't.
  • KurtKurt Posts: 16
    Using DUET modules

    I regularly use DUET modules from AMX. I have taken the class for writting them but have not done any so far. When I need to make a module Netlinx coded modules take care of things, at least for the type of things I have done. In my case a module might be for a projector, RS232 controlled DVD player or other device.
    Sometimes figuring out how to implement the module takes a bit of experimentation. I almost always use the DUET comm module but make my own UI to drive it. Many of the example UI modules just don't do thing the way I want them done. If I have a choice between a DUET module for a device and a Netlinx module I will use the Netlinx module. They seem to have less overhead on the processor than the DUET versions. I have never used the dynamic discovery part of DUET, just static versions.

    Kurt Elfers
  • A few of my clients with large campus intsllations have instituted manditory Duet communications module policies - mostly due to my recommendations (full SNAPI compatibility and RMS Enterprise integration being a few of the reasons), but the technology departments also "get it" and immediatley saw the benefits.
  • annuelloannuello Posts: 294
    I'm looking forward to learning Duet so I can migrate one of my modules from HTTP to HTTPS. I've written SHA1 hashing in NetLinx which wasn't much fun, and I really don't want to roll my own Blowfish/AES algorithm.

    Roger McLean
    Swinburne University
  • I just attended the Cafe Duet class in Dallas and they provided a copy of Cafe Duet with the course.

    I definitely see the value in using Java with AMX systems.

    Although I am new to the world of Java and Cafe Duet, I have found that the learning curve is tough, but even for a 52 year old guy, it is definitely do-able.

    I just finished my ACE certification last month and I agree with Phreak, never stop learning!

    Sent from my iPad using Tapatalk HD
  • sonnysonny Posts: 208
    champ wrote: »
    It costs over a thousand dollars, will take a month or so of time to learn how to do what i can already do in Netlinx (even though i am already ok at Java) then years to eventually rewrite all my existing modules and code, it is only J2ME so i don't get all the nice J2SE libraries, then i may decide it's easier not to bother and shelve it.

    One thing of note, the 4.x firmware has a different JVM that appears to be 1.6SE, although the libraries that you need for Cafe Duet haven't been updated. You're right about the lack of ability to use newer libraries and code constructs. It's still not a great Java environment, but there is a ton of cool stuff you can do that would be difficult in Netlinx code. From the hints I've gotten from AMX, they're looking at expanding the capabilities of Java in their next-gen processors, but I have no idea what that will entail.
  • AMXJeffAMXJeff Posts: 450
    I am using duet alot, really helps with complex issues.
  • JasonSJasonS Posts: 229
    I just started using Duet and I will dispute the month to learn it, and I didn't take the class. I have not done a ton of java in the past just a little bit. Once I was able to get a hold of some decent examples I was up and running in a couple days. The support is miserable so I hope that the $1k is all for licensing fees. There is a huge increase in code execution speed if you stay within Java. I implemented AES256 encryption in Netlinx code, it take more than a minute to Encrypt or Decrypt one block of data (16 bytes), java does Encryption in 66 ms! This doesn't even count the time it takes to create the lookup tables on the Netlinx side!
Sign In or Register to comment.