Jump to content

Canada's top-tier Telescopes & Accessories
Be as specific as possible when reporting issues and *ALWAYS* include the full version number of the application you are using and your exact *CAMERA MODEL*
  • 0
tzaranek

ASCOM 64bit only driver

Question

I'm trying to launch the auto focuser from BackyardEOS 3.1.17 (focuser is Sesto Senso though I think that's irrelevant).  Ascom Focuser Chooser pops up, I select the Sesto Senso from the drop down and it gives me a "This is a 64 bit driver only and is not compatible with this 32 bit application."  If I launch the ASCOM Diagnostics it comes up in 64bit mode and I'm able to choose and connect with the focuser just fine.  So it seems like BYE is launching the ASCOM Focuser Chooser in 32bit mode? If so can I make it do 64bit? I'm running under Windows 10 64bit mode.

Anyone has experience with this?

Tom

BYE-ASCOMFocuserChooser.jpg

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0
Quote

So it seems like BYE is launching the ASCOM Focuser Chooser in 32bit mode? 

Of course it does, BYE is a 32 bits application.  You need to install the 32 bits ASCOM driver for your device.  Looks like you may have only installed the 64 bits ASCOM driver for your focuser.

Share this post


Link to post
Share on other sites
  • 0

How old is the driver? .NET-based ASCOM drivers can be built for "Any CPU". This means that they will work with either a 32-bit or a 64-bit app.

64-bit only drivers are very rare because most astronomy applications are still 32-bit.

BYE must be a 32-bit application, because it uses the Canon SDK which is a 32-bit unmanaged DLL.

The following from the Sesto Senso Focuser manual indicates that there is a 32-bit version of their driver.

NOTE:   SESTO SENSO comes with both 32 and 64 bit version of ASCOM drivers. You have to choose the version based on your Windows operative system and the third party software you want to use. For example, if you have Windows 64 bit we suggest 64 bit versions but some softwares, like MaximDL, request the use of 32 bit version ASCOM driver. If you have problems connecting SESTO SENSO to your third party software, please install the other version of ASCOM driver.

Share this post


Link to post
Share on other sites
  • 0

Ok thanks to both of you.  I just installed the 32bit driver and it picked the right drivers automatically.  I didn't realize that BYE was 32bit and launching ASCOM in 32bit - useful to know this for next time with other drivers as well. 

Share this post


Link to post
Share on other sites
  • 0

I would offer a slight correction to your statement...BYE does not "launch" ASCOM like one program can launch another program. The ASCOM Platform is referenced by and used within BYE.

The Windows "bitness" rules are somewhat confusing. Here is a summary:

A 64-bit version of Windows can run both 32-bit and 64-bit applications, but a 32-bit version of Windows can only run 32-bit applications. This works because 64-bit versions of Windows include a 32-bit subsystem. There is no 64-bit subsystem for 32-bit versions of Windows.

A 32-bit application can only use 32-bit DLLs and a 64-bit application can only use 64-bit DLLs; with one qualification....NET code (applications and libraries) are interpreted. This type of code is built into and distributed as "intermediate language". This code is then converted from intermediate language to machine language when the code is executed. This means that if .NET DLLs are correctly built, they can be loaded into and run from either 32-bit or 64-bit applications. This is accomplished by building them for "Any CPU". The DLLs that make up the ASCOM Platform are built for Any CPU. This allows the ASCOM development team to distribute only a single version of each DLL with each release. There is no such thing as a 32-bit version of ASCOM or a 64-bit version of ASCOM.

ASCOM drivers different from the ASCOM Platform. That said, some drivers are distributed with the ASCOM Platform, but most are distributed separately, by equipment vendors or independent driver authors. The bitness of drivers is a function of how the driver author created them. Some drivers are DLLs and some are EXEs. The DLLs load into the memory space of the application that is consuming them. Therefore they must be capable of cooperating with that application's bitness. BYE is a 32-bit application. It must be so because it uses the Canon SDK which is a 32-bit unmanaged (non-.NET) DLL. This works for the ASCOM Platform because it is built for Any CPU and is perfectly happy to work as part of a 32-bit program. ASCOM DLL-based drivers that are 32-bit only will work fine with BYE. ASCOM DLL-based drivers that use .NET and are built for Any CPU will work fine with BYE. Only ASCOM DLL-based drivers that are built only for 64-bit will not work with BYE.

That said, if BYE were a 64-bit application, the ASCOM Platform would continue to work well with it and the Sesto Senso 64-bit driver would also work with it, but the 32-bit driver would not work with it.

EXE-based ASCOM drivers run as separate processes from ASCOM client programs like BYE. This means that they can have different bitnesses. If, for example, the 64-bit version Sesto Senso driver was designed, built and distributed as an EXE file, BYE would easily be able to interoperate with it. Also, if the Sesto Senso driver were developed from one of the skeleton project templates that are provided by the ASCOM Initiative it could have been built for Any CPU and therefore the same DLL would work on either 32-bit or 64-bit versions of Windows and under 64-bit Windows would work with either 32-bit or 64-bit applications. This would eliminate the need to distribute multiple versions of the driver.

Here is a problem with the Sesto Senso driver that you may encounter at some point in the future...What if you need both the 32-bit version of the driver to work with BYE AND the 64-bit version of the driver to work with some other 64-bit application. Unless the two versions of the driver are designed to operate side-by-side, you would have to choose which version is more important to you. This would be inconvenient for you, but addressable by the authors of the driver in a couple of ways. They could either convert the driver to .NET and release it for Any CPU or they could convert the DLL to an EXE and release a 32-bit only version that would work with either a 32-bit or a 64-bit client application.

There are two main benefits for a 64-bit version versus a 32-bit version of an application. One is performance and the other is size. A 32-bit application has a 2 GB memory limit that is eliminated for a 64-bit application. However, I would be extremely surprised if a focuser driver needed either the performance or size increase that a 64-bit version provides.

I hope this helps.

 

 

Share this post


Link to post
Share on other sites
  • 0

Rick, thanks for the super detailed (and a complete overkill for my question) :). Definitely an interesting read that can be applied to any ASCOM drivers in the future. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

This site uses cookies to offer your a better browsing experience. You can adjust your cookie settings. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies, our Privacy Policy, and our Terms of Use