Posts tagged Maxim

OW.Net

So, it’s been a few days since I last posted that I would stick to my own 1-Wire library and things have changed since then. I’ve put my project on hold to help out with the Open Source C# 1-Wire project initiated by Ralph Maas.

You can find the project here.

Open Source 1-Wire discussion

Another post in English, just to please the larger audience.

I just finished an interesting discussion with another developer, about starting an Open Source 1-Wire project to convert the existing Java 1-Wire classes provided by Dallas/Maxim to C#. We’ll see what this ends in, sounds promising.

Update: After having a look at the code that was provided (which is based on the alpha release of the “Pure C#”-code by Dallas), I’ve come to the conclusion that I’m going to stick to my own 1-Wire library for the time being. Although using the code-base from Dallas might give some benefits – it is the official C# library after all – I also see benefits of using my own implementation. The biggest advantage to use their code-base is obviously the device containers that comes with it; I’ll have to implement those I need in my library. On the other hand, there are very few devices for which I need support; it’s just temperature sensors (Family 0×10), switches (0×05) and a third party LCD driver.

Support for temperature sensors are already implemented and judging by the data sheet for DS2405, implementing support for that switch doesn’t look very hard. The same goes for the LCD driver. So, until someone convinces me otherwise, I will continue to develop my own library.

Oh, for those who wonders: I’ve not decided if I shall release my library as Open Source or not yet. I’m still thinking about it.

TMEX.Net = 1-Wire in pure C#

Here’s another post in english, to please the larger audience.

As the title suggests, I’m busying myself with 1-Wire mixed with C# again. I’m not sure if all this is good or bad idea, but it is fun, and that’s enough to keep me going :)

So, what’s this all about then? Well, almost a year ago – to the day actually – I expressed my disappointment in that Maxim/Dallas still hadn’t released their Pure C# 1-Wire library. They still haven’t, and they’re not giving any indication on when they will provide a finished library. The last time they said anything about this was on Nov 29th, 2007:

Brian Hindman:
Hi. We hope to come out with a OneWireLinkLayer dll compiled for .NET 2.0. The plan is to include it in the next revision of the 1-Wire SDK for Windows. Look for it at the end of the year. I’m afraid it won’t have any advanced features than what is available now. We have not ported over any 1-Wire Containers or MemoryBanks yet, as we have been short-staffed for quite some time. We hope to remedy this and get back on track soon.

In the latest release (currently 4.01) of their TMEX drivers they included a OneWireAPI.NET.dll, but it is Java-based, and as such it requires you to install the J# redistributable on all computes where you want to run the application in which you use the dll, and it also requires you to mix Java with C# in your application. Not a solution I’m very fond of.

What can be done about this? Well, you could wait for them to release their Pure C# 1-Wire libary, or you can do like me: write your own implementation in C#! Yes, you read that right – I am writing my own 1-Wire library, in C#. Below are some details (subject to change) about the library:

  • Pure C#
  • Uses the TMEX drivers
  • Likely supports all port adapters, currently DS9490 and DS9097E have been tested.
  • Device support:
    • Support for DS1920/DS18S20 is nearly complete.
    • Support for the LSD 1-Wire slave device by Louis Swart will be implemented
    • Support for any 1-Wire device can be implemented, provided that a specification is available.

Back to coding!