Announcement

Collapse
No announcement yet.

Fusion Control Centre MDX & Configurator -- Major Update 22/12/2008

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fusion Control Centre MDX & Configurator -- Major Update 22/12/2008

    MDX Version Number: 5.0.0.0
    Configurator Version Number: 1.0.0.145

    The biggest change in this update is that we are no longer using the LibUSB drivers, we are using the Microsoft WinUSB drivers again now that they have matured more.

    This means that in order to use this new update, you will need to first completely uninstall the old drivers. To do that, go to your Device Manager, right click the Fusion Brain, and uninstall. Restart your computer (yes required, dont skip). If your Fusion Brain is automatically detected and installed, that is a bad thing. It means the files are still there. So repeat uninstalling the drivers again. Restart. Again if it automatically installs, you need to keep doing this. Do this until it says that it cannot find any drivers for the Fusion Brain.

    Then and ONLY then, point Windows to the Drivers folder inside the default installation folder. There are 2 drivers in there, one for version 3 and one for version 4. Windows will automatically decide which to use based on what you have connected. If you have a version 3 and a version 4, then you will need to install drivers 2 times since they are different drivers.

    The drivers are large for drivers (what a surprise since they are provided by Microsoft!), so they will take some time to install. A full minute on some machines is normal, and on older slower machines do not be surprised if it takes up to 10 minutes. You will only need to do this one time.

    When all is said and done, you will have something similar to the following:



    The reason we are switching to this driver is for better stability. If you had problems connected MDX every other time, or outputs not turning off when closing the program, or lockups, or anything like that, this new driver should fix all that.

    On our end, we have re-written the USB communication section of both MDX and the Configurator. If you have been interfacing to the Fusion Brain via the now defunked "FusionUSB.dll", you should update your code to now use "FusionBrain_WinUSB.dll". We do not suggest leaving your code alone, it may cause problems in the future.

    Also the "FusionUSB.dll" is 2 driver revisions old, and there were reasons as to why we discontinued use of it. If you continue to use it, we are not responsible for what happens, it has known bugs and stability problems. So please switch over to the new stable "FusionBrain_WinUSB.dll".

    As with the previous version, we no longer require a hardware id in the software. The software will search out the first Fusion Brain it finds of the specified version number to meet the criteria you specify in the configuration file. If you have multiple Fusion Brains, the order should not change as long as you dont change your USB ports.

    Now that version 4 is out as well, all configuration files must be updated. Every Fusion Brain instance must have a version="#" where "#" is either "3" for version 3 or "4" for version 4. If you do not update your configuration, MDX will now assume they are version 4. The byte stream used to communicate to the actual Fusion Brain is very different in version 4 than in version 3. So if you fail to update your configuration file, things will be unpredictable. Some things that signal this include only every other output somewhat working, and none of the analogue inputs will work. So needless to say, update your configuration file!

    Both MDX and the Configurator now support version 4. So you can use the Configurator to setup the new configuration file. Open your file in the configurator. It will assume they are version 4. Double click the brain isntances on the left graphical pane. Select each of your Brain instances and double click. It will open a window to edit the brain. Replace version 4 with version 3 if that is what you are using. Leave it alone if using version 4.

    As always, MDX requires .NET 3.5 and DirectX 9.0c. To keep installer size to a minimum, these are not included in the initial download. If you do not have these, the installer will try to download them direct from Microsoft's servers. If it fails, your program will not run, but the installation will complete. So manually go to Microsoft's download section and download the .NET 3.5 and DirectX 9.0c redistributable.

    Please report all bugs you encounter either here on mp3car.com or email us at [email protected]

    Links are active on the site, so good luck and have fun!

    -- Nick
    Fusion Control Centre
    Fusion Brain Version 6 Released!
    1.9in x 2.9in -- 47mm x 73mm
    30 Digital Outputs -- Directly drive a relay
    15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
    Buy now in the MP3Car.com Store

  • #2
    The driver uninstall/reinstall went fine on my box.

    I've been using FusionUSB.dll, but I'm looking at updating the code to support the new FusionBrain_WinUSB.dll. I found the dll in the MDX install, and I was able to add it as a reference in VB2008. I see the structure is quite different. What do I need to do to connect, send/receive, and disconnect?

    Comment


    • #3
      Here is my new USB code: http://www.fusioncontrolcentre.com/M...cationClass.cs

      This is what you call to connect to a device.

      Code:
      public static Boolean FindMyDevice(int Fusion_Index, int Fusion_Version) {...}
      Fusion_Index is the n-th device you want to connect to. First brain, it is 0. Second brain it is 1, third is 2, and so on.
      Fusion_Version is either 3 for version 3 or 4 for version 4

      If it connects ok, it returns true. Otherwise it returns false.


      To send a byte array to a device use:

      Code:
      public static bool SendAndReceiveViaInterruptTransfers(ref byte[] dataBuffer, int Fusion_Index, int Fusion_Version) {...}
      dataBuffer is where the data goes. The byte[] you pass in goes to the Fusion Brain. What you get back from the Fusion Brain goes back in the same location.
      Fusion_Index is the same as the index used to find the device.
      Fusion_Version is the version of the brain to send to. 3 for version 3 and 4 for version 4




      To dispose of all brains, call this:

      Code:
      public static bool Zombie() {...}
      It disposes all FusionUSBDevice Instances currently handled by the dll



      To dispose of a single device, then call the device's method

      Code:
              public class FusionUSBDevice
              {
                  public bool Internal_Zombie() {...}
              }
      This will dispose of only that device.



      -----------------------------


      That is pretty much it. Much more simple.
      Fusion Brain Version 6 Released!
      1.9in x 2.9in -- 47mm x 73mm
      30 Digital Outputs -- Directly drive a relay
      15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
      Buy now in the MP3Car.com Store

      Comment


      • #4
        Some key things to note is that the dll takes care of all the usb handles and everything. You just give an integer index and the dll takes care of everything else. Much less work.
        Fusion Brain Version 6 Released!
        1.9in x 2.9in -- 47mm x 73mm
        30 Digital Outputs -- Directly drive a relay
        15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
        Buy now in the MP3Car.com Store

        Comment


        • #5
          you spelled center wrong.
          Installed
          Asus A7N8X-VM - AMD Mobile Athlon 2400
          512 Ram - 60GB HD - Opus 150w
          Lilliput 7" - Rikaline 6010
          [00000000000001100010-] 98% Completed

          Check Out My Install!!!

          Comment


          • #6
            Originally posted by Quattro View Post
            you spelled center wrong.
            Just depends on who taught you English.
            Fusion Brain Version 6 Released!
            1.9in x 2.9in -- 47mm x 73mm
            30 Digital Outputs -- Directly drive a relay
            15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
            Buy now in the MP3Car.com Store

            Comment


            • #7
              Wow, that was easy. I updated the FBDemo program to support the new DLL. Currently it only works with the version 3 FBs. When the v4 gets here, I'll look into adding support for it into the FBDemo program.

              -Lance

              Comment


              • #8
                What is the byte format of the data going to and from the v4 FBs?

                Comment


                • #9
                  Code:
                  *******************************
                  * FUSION BRAIN V4 BYTE STREAM *
                  *                             *
                  * Deterministic Difference:   *
                  *     PID Suffix: E           *
                  *                             *
                  *******************************
                  
                  
                  **** ID CODE ****
                  Version 3a: VID_04D8&PID_000A
                  Version 3b: VID_04D8&PID_000B
                  Version 3c: VID_04D8&PID_000C
                  Version 3d: VID_04D8&PID_000D
                  Version 4:  VID_04D8&PID_000E
                  
                  
                  **** STREAM ****
                  
                  Bytes
                    [00-31] Digital Outputs 00 through 15
                    [32-57] Analogue Inputs 00 through 12
                    [57-59] Not Used Now, Maybe in future
                    [60]    Number of Streams to Receive
                    [61]    Initialize/Watchdog byte
                    [62]    Hardware Version
                    [63]    Firmware Version
                  
                  Bits 0bMxxxxxxL | M = MSB and L = LSB
                    Digital Outputs
                      2 bytes per output
                      [PPPPPPPS][TTTTTTMM]
                        P = Value of PWM
                          ([7bit Value + 1]/128)% duty cycle
                          Details of full period to be determined later
                        S = 1bit state
                          0 = Off
                          1 = on
                        T = 6bits of Timer to shutoff --> [Evaluated Units in Seconds]
                          If 6'bTTTTTT is 0, then shut off immediately on disconnect
                          If 6'bTTTTTT is between 1 and 10 inclusive, then wait [6'bTTTTTT] seconds after disconnect
                          If 6'bTTTTTT is 11, then wait 30 seconds after disconnect
                          If 6'bTTTTTT is 12, then wait 60 seconds after disconnect
                          If 6'bTTTTTT is 13, then wait 90 seconds after disconnect
                          If 6'bTTTTTT is greater than 14, then wait ([6'bTTTTTT] * 10) seconds after disconnect
                        M = 2bit Output Mode
                          2'b00: Normal Full-Off or Full-On Operation Mode
                          2'b01: Pulse Width Modulation Operation Mode
                          2'b10: Yet to be determined
                          2'b11: Yet to be determined
                    Analogue Inputs
                      2 bytes per input
                      [index][index + 1] = [000000Mx][xxxxxxxL] | M = MSB and L = LSB
                    Number of Streams to Receive
                      1 byte
                      [NNNNNNNN] | N = Number of streams to receive
                        If [8'bNNNNNNNN] is 0 (default) then receive 1 byte and send 1 byte
                        If [8'bNNNNNNNN] is greater than 0 then receive 1 byte and send 1 byte [8'bNNNNNNNN] times
                          Each of these "extra" byte streams received may not coorespond with the details of this byte stream outline
                          Each of the "extra" byte streams sent back to the PC may not coorespond with the details of this byte stream
                    Initialize/Watchdog Byte
                      1 byte
                      [000000IF] | F = Flipping Bit and I = Initialize Bit
                        F = Instead of flipping a bit in every digital output, flip 1 bit constantly
                        I = Needs I high to turn anything on, just like default behaviour of byte[61] now
                    Hardware Version
                      [MMMMLLLL]
                        M = Major Version. Currently Version 4, so MMMM = 0100
                        L = Minor Version. Currently Version 0, so LLLL = 0000 
                    Firmware Version
                      1 byte
                      [????????]
                  Fusion Brain Version 6 Released!
                  1.9in x 2.9in -- 47mm x 73mm
                  30 Digital Outputs -- Directly drive a relay
                  15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
                  Buy now in the MP3Car.com Store

                  Comment


                  • #10
                    Well, my attempt at updating has been a giant leap backward.

                    I think I got the drivers loaded correctly since my v3 Brain doesn't show up under libUSB anymore. Its listed in Device Manager as The Fusion Brain Version 3 under Fusion Control Center.

                    When I run the Configurator, the one Brain I have connected shows up in the config file as a v3 which it is. When I go through the process of identifying it using the blinking LEDs, it works until I try to exit that at which point the configurator dies and asks if I want to send an error report.

                    When I start up FCC Uber MDX, it dies right away and asks if I want to send an error report.

                    I've completely reinstalled the sw from the FCC site (except for the updater because the installer complains it can't replace it and I don't seem to be able to get rid of it completely either).

                    Any suggestions?

                    Comment


                    • #11
                      Originally posted by Alanh View Post
                      Well, my attempt at updating has been a giant leap backward.

                      I think I got the drivers loaded correctly since my v3 Brain doesn't show up under libUSB anymore. Its listed in Device Manager as The Fusion Brain Version 3 under Fusion Control Center.

                      When I run the Configurator, the one Brain I have connected shows up in the config file as a v3 which it is. When I go through the process of identifying it using the blinking LEDs, it works until I try to exit that at which point the configurator dies and asks if I want to send an error report.

                      When I start up FCC Uber MDX, it dies right away and asks if I want to send an error report.

                      I've completely reinstalled the sw from the FCC site (except for the updater because the installer complains it can't replace it and I don't seem to be able to get rid of it completely either).

                      Any suggestions?


                      When did you last update? Meaning you came from vesion ??? to this new version?

                      Please post a screenshot of the error.
                      Fusion Brain Version 6 Released!
                      1.9in x 2.9in -- 47mm x 73mm
                      30 Digital Outputs -- Directly drive a relay
                      15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
                      Buy now in the MP3Car.com Store

                      Comment


                      • #12
                        is this update compatible with my code?? I've tired other updates and my FB stopped working.....
                        My Car!

                        Comment


                        • #13
                          Originally posted by dasaint80 View Post
                          is this update compatible with my code?? I've tired other updates and my FB stopped working.....
                          Well I dont know what your code is, so.... yes?

                          But everything is backwards compatible in the configuration file except what I have explicitly said.

                          If it didnt work, then it was probably a driver update that was needed and not followed through or something along those lines.
                          Fusion Brain Version 6 Released!
                          1.9in x 2.9in -- 47mm x 73mm
                          30 Digital Outputs -- Directly drive a relay
                          15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
                          Buy now in the MP3Car.com Store

                          Comment


                          • #14
                            I updated my driver through device manager. I used Ninja Kitty to identify the brain,copied the new "brain id", pasted it into my xml file, works fine.

                            My complaint is the auto update was yesterday and the notice, today. Last was spent trying figure out what was going on, but I went to sleep knowing the temp was in the greenhouse.

                            Good Product!

                            GadgetBandit

                            Comment


                            • #15
                              Originally posted by GadgetBandit View Post
                              I updated my driver through device manager. I used Ninja Kitty to identify the brain,copied the new "brain id", pasted it into my xml file, works fine.

                              My complaint is the auto update was yesterday and the notice, today. Last was spent trying figure out what was going on, but I went to sleep knowing the temp was in the greenhouse.

                              Good Product!

                              GadgetBandit
                              I am confused. The update went out about 3 hours after I sent an email to all customers.
                              Fusion Brain Version 6 Released!
                              1.9in x 2.9in -- 47mm x 73mm
                              30 Digital Outputs -- Directly drive a relay
                              15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
                              Buy now in the MP3Car.com Store

                              Comment

                              Working...
                              X