- - - - - Delphi Tutorials TOC - - - - - - Other material for programmers
Bookmark this on Delicious
Recommend to StumbleUpon
MicroLan and 1-Wire and Delphi Programming
(and some information on hardware issues)
The distribution across my web pages of my material about the MicroLan (aka "1-Wire") has become somewhat confused... sorry!
For those who are already convinced to try 1-Wire / MicroLans, I've produced a "How do I get started" page for you, which will open in its own tab/ window.
Just before we start down the path to the "proper" use of 1-Wire chips, let me mention that they can be used in a very simple, very direct way. If you have a microprocessor, and just want to hook up to one or two 1-Wire chips, I have a page about that for you.
Still off on tangents, let me mention here that 1-Wire can be "done with" the wonderful "free Delphi" Lazarus. I've started a whole collection of pages about doing 1-Wire with Lazarus... but you should remember that most of what is here in my older "1-Wire by Delphi" pages also applies, mostly without tweaks, to using 1-Wire by Lazarus.
Back to what I was saying...
If you dig successfully, you'll find information to help you use the product. There is information is about how to write Delphi programs for that hardware. sourcecode is provided. There are general overview articles, and articles with specifics of how to access particular functions of individual chips.
There is also information about using the MicroLan for sense and control work, in particular information about sensing and recording the weather using various with MicroLan based devices products.
MicroLan and 1-Wire are registered trademarks of Dallas Semiconductor, aka Dalsemi, now part of Dallas/Maxim. I have no connection with them apart from being a happy user of their products. My use of the chips is primarily in weather logging applications, though they can be used for many things; a hamster's night-time wheel use was monitored with MicroLan chips, for instance.
There are more notes at the bottom of the page about other offerings, my editorial philosophy, how to email me, and a search engine to help you find things.
Here begins what Mr Reagan called "The Beef":
(Actually, it was Mr. Mondale, challenging Mr. Reagan. So why didn't one of you, faithful readers, challenge me on this point before I added this note? Mr. Mondale was riding the coat tails of an advertising campaign by Wendy's. While we're into trivia, did you know that Wendy was the real life daughter of the man who founded the chain?)
Stop Press (March 2011/ January 2014)
UPDATE- August 2016 Maybe a better place to start, now, is one of the following. The first is for people very new to 1-Wire, the second is for people who have some idea, and just want a "built by someone else" "hello world... read a DS18B20.
They ARE written for Lazarus... Either install it (no big deal, free), and that's the easy answer, or use your ingenuity to extract what you need for Delphi. Most of the files are plain text, after all.
Getting started- 1-Wire. Reading temperature sensor. With sourcecode. Lazarus.
Previous tutorial extended. With sourcecode. Lazarus.
Over three days in March 2011, I poured many, many hours into creating three new tutorials for you... 20,000 words, in all.
And I spent a couple of days in late 2013 in a similar venture.
The March '11 tutorials, if I say so myself, are quite fabulous. And thank you, Gentle Reader, for inspiring me. I've used 1-Wire ® chips for many years now... but didn't understand what I was doing nearly as well as I understand "everything" now... after trying to explain it all to you.
The January 2014 tutorial is an in depth, and informed by years of work in the area, at one example of using some 1-Wire temperature sensor chips. Work through that tutorial, and you will have the basis of work with many 1-Wire chips. The basic framework, the basic principles are general. The tutorial comes with sourcecode you can download.
The March '11 material starts with a hard but valuable (I hope!) essay explaining the fundamental ideas behind how Dallas 1-Wire chips and MicroLans work.
Once you have mastered, or at least struggled through, that, a second essay goes into how the TMEX API helps you make MicroLans talk to the 1-Wire chips on them, and pass messages to the host computer.
At the same time as I wrote those tutorials, I wrote a new tutorial about using the DS2423 chip. Even if you are not interested in using that chip, this new- in- March 2011 tutorial is well worth your while, not least because it avoids poor choices I made "in the old days" before I understood 1-Wire work as well as I do now!
(End of March 2011 Stop Press)
While all of the code "works", some examples are better than others, hence the "star ratings". Unless you need to use a particular chip, start with the examples with more stars.
- - - - - - - - - - - - - - - - - - -
Important and Valuable tutorial:
Where We Are Going. This was new in November 2009. I'd been doing 1-Wire... and tutorials about it.... for a long time when I wrote this. It is "language neutral", too. If you want to (or have been, or have been trying to) create applications using 1-Wire chips, then This One Is For You (babe). It does NOT tell you how to install 1-Wire. It does NOT tell you how to use it without programming. (There are other tutorials here for those topics) It DOES (try) to help you with the not inconsiderable task of getting your head around the broad outlines of what 1-Wire programmers do to make their applications work.
a Keystroke- by- keystroke guide to do some setting up your PC for 1-Wire/ MicroLan/ TMEX operations. Does the iButton viewer already work on your machine? If "Yes" then skip this else: you may need to do the setting up, and I've written this guide for you. The job isn't hard, but the guide ensures you don't miss anything out.
A word about data types.... which I commend to your attention before you try to write code.
CRC Checksums.... an important feature of the 1-Wire chips that a conscientious MicroLan programmer will want to use... but which a beginner can defer struggling with until later(!)
Now you are ready for the "fun stuff"....
Mega tutorial on using 1-Wire, DS1820 and DS18B20 temperature sensors in particular. Written January 2014. This is perhaps my most comprehensive discussion of the actual programming you need to undertake to work with 1-Wire, not just the temperature sensing chips. If you really want to get your teeth into the details of the process, this is the tutorial you want. It also describes what may be a better approach to the overall design of the program... a better design than I was using for 1-Wire work before 2014. You should study the more general notes, too, though. Probably the best tutorial on this site, unless you need the details of one of the other chips. Although the content is valuable, the editing leaves a bit to be desired. Sorry.
An older tutorial on using DS1820 temperature sensors. Written August 06, after many of the others here. Perhaps a good place to start on a first MicroLan programming exercise. This tutorial is less through, and perhaps less well informed that the "mega tutorial", also about using temperature sensors, listed in the previous paragraph. You should study the more general notes, too, though. Probably the best tutorial on this site, unless you need the details of one of the other chips. But the one in the previous paragraph, though not well edited, has more detail, and perhaps uses a better approach to the task.
Notes on various temperature sensors Do you want a DS1820? DS18B20? DS1820B? Etc.
Introduction to Dallas MicroLan... sourcecode for accessing the Dallas MicroLan, aka 1-Wire system, as used in iButtons Dallas is now part of Maxim. Has specifics relating to DS2405 and DS1820 or DS1920. (The DS1920 is just an 1820 in an enclosure.) While this only deserves one star as far as the sophistication of the code is concerned, it has important general introductory material... you should probably give it a look. For details of using a DS1820, the tutorial listed above is better.
(If you just want to access a DS2405, to read it as one bit of input, I have a .DLL you can use. (The chip is capable of being a bit of output, too, but this .DLL can't access those features.))
Dallas MicroLan Counter, DS2423, 4 star... sourcecode for accessing a DS2423 counter. A "from scratch", extensive tutorial, written in March 2011, when I had quite a few years of 1-Wire programming experience, and Many years of Delphi experience. This is a useful guide to programming for 1-Wire in general, along the way to the solving of the specific problems of the DS2423. Comes with sourcecode.
.. or see...
Dallas MicroLan Counter, DS2423, 2 star... some older sourcecode for accessing a DS2423 counter, with little text in the "tutorial", but quite a few comments in the sourcecode.
Dallas MicroLan ADC, DS2450... Two programs! One is a "Two Star", flawed program. The other works... fine... but has "extra bits" which may distract beginners, or may help them with their broader Delphi studies... There's more information on this tutorial's own page, and there's sourcecode for both programs.
Dallas MicroLan Wonder Chip: DS2438, 4 star... Information and sourcecode. Dallas designed this chip to monitor rechargeable batteries, but you and I can use it for its ADC (one channel, wide range) and high resolution temperature sensing. This program is the best MicroLan access demo I've written as of 8/30. While earlier programs work most of the time, they may include errors that I was wise enough NOT to make when I wrote this code. This program uses an approach different from that in the two-star programs on offer. The two-star programs conform more closely to the Dallas demos, but I think my approach to robustness is better... and your code does need to be robust! The MicroLan is, in general, great, but instead of designing something that never fails, the Dallas team gave us a product that fails from time to time... but does so gracefully. I have a weather monitoring application running. At the moment, there have been 12,000 cycles since the last system boot. The MicroLan has "failed" to reply correctly three times. Not a bad percentage of right answers, but you do need to write your software to handle the occasional bad read.
Dallas MicroLan PIO Chip: DS2408, 4 star... Information, help file and sourcecode. The 2408 is an 8 bit addressable switch according to Dallas. I think of it as a parallel port chip: There are 8 pins on it, and each can be an input from or output to devices in the "outside world". This software derives from the program for the DS2438, see the comments about that in the previous paragraph. See also programs in next paragraph!
Dallas MicroLan PIO Chip: DS2408, 5 star... Information, application, help file and sourcecode. You won't even have to compile the code to use this program which watches the eight inputs to a DS2408, tells you their current state with virtual LEDs, and displays a graph showing the states they have been in over the minutes or days just passed. I also offer a finished program (no sourcecode) for reading 8 inputs via a DS2408.
AAG Digital I/O using PIO Chip: TAI 8558, DS2408, 4 star...
AAG is a supplier of 1-Wire related hardware with quite a reputation for good customer support. They did a nice 4 bits in, 4 bits out digital i/o card based on the DS2408. The inputs are opto-isolator protected (AC or DC input accepted), and the outputs are via relays (Common, NormallyOpen and NormallyClosed contacts available via screw terminal.) The link at the start of this paragraph will connect you to a .PDF document discussing using a TAI8558 for a burglar alarm and heating control. The application is merely an illustration to show you about the device. You can download the relevant Delphi sourcecode by clicking here, and the exe file is available here. The latter two files are self extracting archives which will merely install some files, not interfere with your registry, etc.
Here ends da beef:
The term TMEX, if I read something correctly at 3/11, is being deprecated by Dallas. But you will see it across these pages because I think it is a more Google- friendly way to refer to the API for working with 1-Wire chips and MicroLans
Website and book:
An "ad" for another source of information on sensing the weather: Weathertoys is not only a website, but also of a book. Both discuss lots of fun things about building your own weather station, and include sourcecode. There is good coverage of using 1-Wire devices, but both the book and the site look at other answers, too. In May 2007, it was quite recently launched, but the site is not "under construction". There's lots of good stuff there.
Do you have an "always on" internet connection, e.g. DSL or broadband? (Even a basic home user account is fine. You don't need a fixed IP address.) Want to set something up that lets you check all is well at your home or business.... from any internet terminal in the world? (The terminal needs nothing more than a standard browser.) You don't have to spend anything on software, everything you need is free. You might want to dedicate an old Win98 "box" to doing the work, but you don't have to. You'll probably want to spend a little money to attach one or more 1-Wire temperature sensors to the system, but there are ways around even that expense.
Sound interesting? See the pages about my FarWatch system.
I dislike 'fancy' websites with more concern for a flashy
appearance than for good content. For a pretty picture, I can go to
an art gallery. Of course, an attractive site WITH content deserves
praise... as long as that pretty face doesn't cost download time. In
<PS.... I wrote the following before getting into the fine points of what I intended. Implementation has proved to be a pain,
and I'm experimenting with different solutions. You'll find some
tutorials are heavily infested with HTML code. Is this a problem? You
can still save the pages from a browser, and re-load them from your
hard-disc later, off-line. OpenOffice takes HTML in its stride. With
WordPerfect, you can load the .htm file, select all, copy to clipboard, start a new WordPerfect document, then paste in the text, mostly intact and cleaned of HTML. (Hard to describe, easy to do.)>
You should be able to read the tutorials on-line without
difficulty. However, you should ALSO find it easy to capture them for
off line use, including editing for your own purposes. The following
should work. I would suggest that you create a folder for the
tutorials so that you can retain my filenames with no risk of
clashes. (The following is, of course quite dated. Still works... but... unnecessary?)
On-line, use your browser to view the tutorial you want to
Use File|Save As... to save the web-page to your disc. At this
point you can log off, or visit other pages, perhaps saving them,
When you have logged off, start Notepad (or Textpad, or anything
you like, but then you're on your own <g>). Load the file you
saved. Turn word-wrap on. (Notepad: Edit|Word-wrap.)
Snip off the html header and footer. <In one 'solution', you
will also have to remove all <BR>. and
<BR>s from the text (Textpad can to this.) Sorry...
working on it!>
Re-save... you should now have the tutorial in a nice, tidy,
uncomplicated text file.
Filenames: I've tried to be organized: Names start PT or DT for
Pascal/ Delphi Tutorial. Next is a digit, for the level, then I've
used letters one after the other, e.g. DT1a, DT1b, DT1c. The letter
doesn't mean much... it just shows when I got around to that
particular topic! With the MicroLan stuff, that is getting a little confused. Files about MicroLan created after 8/03 may be prefixed DST, but that is not all of the MicroLan stuff.
BEWARE: There is stuff at my other two sites that this search won't reveal. Go to either site (see links below) and use that site's FreeFind search button.
In addition to the tutorials for which this page serves as Table of Contents, I have other sites with material you might find useful.....
Sheepdog Software homepage.
My Arunet homepage.
... and some links to specific pages within them you might want....
Main index to MicroLan stuff.
Some pages for programmers.
Using the parallel port with programs written in Delphi.
Click here if you're feeling kind! (Promotes my site via "Top100Borland")
Ad from page's editor: Yes.. I do enjoy
compiling these things for you... hope they are helpful. However..
this doesn't pay my bills!!! If you find this stuff useful, (and you
run an MS-DOS or Windows PC) please visit my freeware and shareware
page, download something, and circulate it for me? Links on your page
to this page would also be appreciated!
Click here to visit editor's freeware, shareware page.
Link to Tutorials main page
Here is how you can contact this page's author, Tom Boyd.
Page tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at validator.w3.org
If this page causes a script to run, why? Because of things like Google panels, and the code for the search button. Why do I mention scripts? Be sure you know all you need to about spyware.
....... P a g e . . . E n d s .....