Writing

[Java Ring] 03. Depend upon Search

Even if it does not seem immediately useful, attempting a web search may yet yield something illuminating.

[Java Ring] 03. Stuck but Hopeful

In the previous article, we confirmed that the Java Ring is recognised as a 1-Wire device.

However, using OneWireViewer only revealed the device address and type of the device. It was unclear how to interact with its contents beyond that point.

Temporarily at an Impasse#

The screenshot in Macnica's article showed useful debugging items, but my OneWireViewer does not display them.

In other words, while I confirmed that the Java Ring is present on the 1-Wire bus, there are no clear methods for further communication with it.

Hmm, why? Perhaps the Java Ring doesn't actually communicate via OneWire. For now, I'm at an impasse.

What to Look For#

Since progress isn't being made by looking at my tools, I decided to narrow down my search criteria.

The original purpose of the Java Ring was to record participant information and coffee preferences for use during events like JavaOne. Therefore, there might be something on the web (ideally with source code) that writes this information to a Java Ring.

Internet Watch's article from back then shows an input form used at "Java Developer Conference 98 Tokyo." I'll use the text in these screenshots as search terms.

Input Form for Java Developer Conference 98 Tokyo

Personalize your JavaTM Ring by entering the information below.

Old documents like this often get buried when searching with individual words. So, I will perform an exact match search using the quoted text.

BusinessCard.java#

During my search, I found what seems to be a relevant Java Card applet source code file.

BusinessCard.java

The file is called BusinessCard.java, and its comments mention "personal information storage and retrieval," along with descriptions related to coffee preferences. This aligns well with the known uses of the Java Ring.

Looking further within the repository, I see references to terms like iButton and OneWire. These likely represent either the actual implementation of the Java Ring or very close samples.

This is a significant step forward. Let's download it locally and try running it.

It Doesn't Work#

...It didn't work.

Load Error

The workspace failed to load from iButton53.jar within the ZIP file. Hmm.

Some files in the archive seem corrupted, possibly due to a bulk line ending conversion when moving from SVN to Git (as evidenced by CRLF appearing in all binaries).

I thought I had found promising leads, but they are unusable as is.

Let's Organise#

Here’s what we've learned so far:

  1. The Java Ring appears to be a type of device called a Java-powered iButton.
  2. iButtons communicate using the 1-Wire protocol.
  3. A relevant BusinessCard.java Java Card applet exists for storing personal information, similar to the known uses of the Java Ring.
  4. However, the found development environment and archives are corrupted and cannot be used directly.

Discovering iB-IDE#

Further investigation revealed an integrated development environment (iB-IDE) for iButtons. However, the download link is via FTP and was not archived by Web Archive.

I found information about iB-IDE on a Chinese forum at https://bbs.kanxue.com/thread-19243-6.htm.

It seems that http://www.ee.usyd.edu.au/~mattb/2003/project/ibutton once hosted iB-IDE. Though the link is broken now, it might be preserved in Web Archive.

Web Archive Web Archive

Amazingly! It's there. Let’s download this and test it next time!

Conclusion#

What do you think?

Through extensive searching, I found source code for a Java Card applet relevant to the uses of the Java Ring. Additionally, traces of an iButton-specific integrated development environment (iB-IDE) were discovered.

Next time, we will obtain this iB-IDE and proceed with further verification.

Until then!

Previous: 【Java Ring】02. Initial Analysis
Next: 【Java Ring】04. Running iB-IDE