Open hardware

From Endrov and VWB

Jump to: navigation, search

What hardware can you expect to be supported by Endrov and other open source programs? I have found this hard to communicate and instead there is now the Endrov Open Lab Hardware Certification. Refer your hardware vendor to this site to find out the level of compliance. It is in your interest to get compliant hardware even if you do not yet plan to use any open source programs. It will safe-guard your big investment from becoming a very expensive paper weight as the field of microscopy is progressing.

If any vendor wants us to list their hardware here, just get in contact with Johan.

Contents

In short

The more letters, the better. ABCD is the minimum level we think you should require, or at the very least ABC. You will be able to live with just A but expect a lot more hassle. It is possible for the community to improve compliance to ABCD if there is either ABC, D or E, so in these cases you can actually do something about it. If you think the community is too slow then you can hire someone or try to get it as part of your support contract.

Details

Compliance is stated as an alphabetic list of characters. The most mature open source API is Micro-manager so it is emphasized in the certification levels.

Terminology: A Micro-manager (Device) adapter is the module in Micro-manager that is specific for a device. A driver is any vendor specific code that is used to communicate with the hardware but not part of Micro-manager.

  • A. Some kind of Micro-manager adapter exists

This means that somehow you can get hold of an adapter for Micro-manager. You can run Endrov with it but might have to go through special installation steps to get it to work. There is no guarantee that your hardware will continue to work with future versions of Endrov or Micro-manager.

  • B. The micro-manager adapter is open source and freely redistributable

AB increases the chance that the hardware will work out of the box with Micro-manager, that certain bugs can be fixed and that it can still work with some upgrades in the future. Special installation steps will likely be required.

  • C. The driver is open source and freely redistributable

ABC together means the code is not encumbered by NDAs and can be handled as any open source software. It guarantees that

  • The hardware will run with future software if anyone wants to
  • Maintenance can be made such as fixing bugs
  • Hardware will work with out-of-the-box software, no special installation steps will be needed

We think this should be the minimum requirement to ensure that you get the most out of your equipment.

  • D. Driver runs on all major operating systems.

Much equipment is restricted to either just work on Mac or Windows which means one really important decision is taken from you. Compliance requires that the driver works on Windows XP and onward, MacOSX 10.5 and onward, and any distribution on Linux with kernel 2.6.18+. It's very simple to support multiple operating systems and if these are supported, chance is the driver will also work on BSD and Solaris, but these are not required.

Any programmer can improve an ABC-compliant driver into one that is also D.

  • E. Open Source SDK for the hardware is provided by the manufacturer

E is implied by ABC but not the opposite. This compliance alone means there is a way of accessing the hardware but it need not be connected to Micro-manager. Any programmer can add a Micro-manager adapter on top and hence make it ABC-compliant. If no SDK is needed then this requirement is trivially fulfilled (because more letters should mean better).

  • F. NDA-free interface protocol specification exists

Any programmer can with some work add ABCDE-compliance if there is F. It might not push the hardware to the limit but should do a very good job in general.

  • G. NDA-free hardware internals and limitations specification exists

This means a programmer will know exactly how to operate the hardware to get the most out of it. For example, on some stages it might be better to always use relative movements rather than absolute; this is not clear from just having an F-compliance.

On NDAs

NDA means Non-Disclosure Agreement. By signing it you have to give up some of your rights to protect company secrets. Sometimes they are understandable, blueprints need to be kept secret to stop competitors from stealing a design. They are however also used to effectively stop Open Source software from being developed so NDAs are a problem. In particular NDAs on the serial port commands to drive the hardware are problematic but at the same time the company secret is useless; it is a trivial part of the system which is as easy to design from scratch as to copy. Hence we consider these to be nothing but a market block and want to get rid of them.

We understand that NDAs are still needed and we have clearly separated openness of source (ABCD) from openness of hardware (EF). We want all hardware to be ABC, if companies want to collaborate further then the additional letters are already reserved.

Making non-compliant hardware work

It is possible to make hardware work against the companies will but you have to invest some of your time for this. The method is called Reverse engineering. We have experience of it and can tell you more if you are interested. You need to know computers rather well to pull it off.

Reverse engineering is legal if done right. You are not allowed to have signed an NDA first. EU law states that reverse engineering can be done for the purpose of interoperability. You may not use debug dumps of any software in this particular case.

It is usually simple enough to check what is sent on the serial port, use for example portmon [1] for windows.

If you want to be water-tight then it would be optimal if you could figure out your equipment, write a specification, and then have someone else write the driver. Also get a lawyer.

Compliant hardware

This list might be out of date or inaccurate. Always ask your vendor.

Microscopes (stand only)

  • Zeiss
    • CAN/CAN29-bus driven stands - ABCDE
  • Leica
    • DMI microscope stands - ABCDE
  • Nikon
    • AZ100 stand - A
    • TI stand - AB
    • TE2000 stand - ABCDE
  • Olympus - A

Cameras

  • Andor - AB. Also runs on linux.
  • ABS - AB
  • All IIDC1394 firewire cameras - ABCEF (no MM windows support yet, can be added)
  • Hamamatsu DCAM cameras - AB
  • Photometrics - ABD
  • PCO - ABD
  • QImaging - AB
  • Stanford photonics - AB

Stages, filter wheels, shutters

  • ASI - ABCDE
  • Ludl - ABCDE
  • Mad City Labs (stages) - AB
  • Nikon (Z-drive, TIRF shutter and IntensiLight shutter) - ABCDE
  • Physik Instrumente (stages) - ABCDE
  • Prior (stages, shutters, filter wheels) - ABCDE
  • Marzhauser (stages) - AB (windows only)
  • Sutter - ABCDE
  • Vincent - ABCDE

I/O

  • Arduino (I/O board) - ABCDEFG
  • Data Translation - AB (windows only)
  • Velleman (I/O board) - ABCDE

Other

  • NEOS AOTF - ABC (windows only)
  • Conix Filter Changer - ABCDE
  • Yokogawa - ABCDE
  • Spectral LMM5 - ABCDE
  • Pecon Incubation System - ABCDE
Personal tools