RCS TX10-B X10 Thermostat Protocol

A little over 10 years ago, I bought an open-box RCS TX10-B thermostat control unit to replace a TX10 unit.  “Open Box” means it came without any documentation, but it should, in theory, be a drop-in replacement for the TX10 — the “B” designator indicates that it’s capable of reporting status and temperature, unlike the TX10.

Unfortunately, “open box” means it came without any documentation whatsoever.  On the plus side, the wiring is similar to the TX10 (with the additional feature of a physical connection for a “setback switch”) but without knowing the X10 protocol it required, I was left without any means to actually get status reports from the unit.

3039bdgmUsing the Internet Wayback Machine to go back to 1998, I located a nifty diagram of the system from Smart Home, from whom I originally purchased the unit.  Ten years ago, it was in the process of being replaced by the TX15-B, a more modern-looking unit — and the only one mentioned on the web site of the manufacturer.

Some experimentation demonstrated that the TX10-B substantially uses the same procotol as the TX15-B, which is documented here.  It doesn’t seem to support the “autosend” feature, nor does it respond to requests for the outdoor temperature, but otherwise, the document appears to be accurate.

The unit uses the venerable TW-523 to communicate, and I was mildly surprised to discover that my TW-523 was capable of receiving, but not sending.  Since the TX10 it was connected to wasn’t capable of sending, either, it may have been defective on the day I bought it, and I’d never have known.

(Yes, it took me 10 years to get around to this project, but now all that’s left to do is the software…)


The Fujitsu Stylistic 3500 Tablet, Linux and Xubuntu

I have an old Fujistu Stylistic 3500 Tablet that I picked up cheap as hospital surplus, which usually sits in its cradle in the kitchen, handy for looking up recipes and playing music.  It came with Windows 2000 preloaded (and as surplus, ravaged by viruses) which it ran until last week, when I finally decided I have had enough of the venerable operating system, and decided to switch to something both more modern (unsurprisingly, a growing number of applications and updates refuse to run under Windows 2000 at all) and better able to make use of its aging hardware: a 500 Mhz Celeron with 256M of RAM.

Fujitsu Stylistic 3500

Fujitsu Stylistic 3500

In addition to upgrading the operating system, I decided to replace the hard drive with an IDE-SSD drive that I found on special.  This made an intuitive kind of sense, since if anything went wrong, I could just put the old hard drive back in.  On the minus side, this meant I had to install an operating system from scratch.

Hurdle #1:  Booting

The tablet is capable of booting from a grand total of two things:  the internal hard drive, and an external floppy drive on a proprietary port.  That’s it.  I do happen to have the Fujitsu floppy drive, so I figured all I have to do is boot a Linux installer from a floppy drive, and I’m all set.

Easier said than done, I guess.  The tablet has one USB port, and the tablet itself needs software to drive the pen interface, so a USB hub and keyboard are necessary, plus a mouse for virtually any operating system’s installer these days.  After some trial-and-error, I burned Xubuntu’s installer to a physical CD, and attached a CD-ROM drive to a USB->IDE interface on the same hub.

It looked like a DOS boot disk was the way to go, since the tablet couldn’t directly boot from the CD-ROM drive, and Xubuntu doesn’t seem to have a ready-made boot floppy.  Naturally, this would require keyboard, mouse, and CD-ROM to first be available to DOS.

However, certain USB drivers would disable the mouse and keyboard when they loaded — which put a damper on being able to actually do anything once they located the CD-ROM drive.  I finally located a combination of drivers that allowed my mouse and keyboard to keep working while mounting the CD-ROM drive (rather oddly, as C:, since there were no recognizable partitions on the IDE-SSD drive, it didn’t show up at all.  No problem, though, the Linux kernel will sort it out.)

Once DOS booted and I could see the CD-ROM, I used lnload97.com to actually boot the kernel from the CD-ROM.

For those wishing to follow a similar path, I present the Fujitsu Stylistic 3500 boot diskette:  [Stylistic-3500.zip]

This is based on a USB driver diskette I located and updated; if your CD-ROM doesn’t show up as C:, or you’re installing a Linux distribution other than Xubuntu 9.10, you’ll need to edit “bootl.bat” before you run it — it should be pretty straightforward.

And the first hurdle is cleared as the Xubuntu installer is able to install Xubuntu on the tablet’s new SSD hard drive.  However, I’m not out of the woods yet.

Hurdle #2:  Networking

I decided to get the network working first, because experience has shown that everything is simpler when a computer can connect to the network.  I have a PCMCIA card for connecting to the wireless network, a Netgear WN511B, that frankly was a little flaky under Windows.  Xubuntu recognizes it, sort of, but can’t communicate to it.

First, I tried ndiswrapper to load the Windows drivers, which worked in the sense that it looked like I had a wireless card, but wpa_supplicant proved unable to connect to my WPA2-encypted network.  I also tried bcm43xx-fwcutter, which failed even more dismally.

The output of my lspci led me to seek a new path:

01:00.0 Network controller: Broadcom Corporation BCM43XG (rev 01)

As it turns out, Broadcom released a proprietary driver for BCM43?? chipsets, and although the BCM43XG isn’t specifically listed on the driver’s page, it works beautifully, at full n- speeds.

The driver’s page is here:  [802.11 Linux STA driver]

Aside from everything in the README.txt listed on that page, I added “lib80211” and “wl” to /etc/modules in order to have the driver loaded on boot.  Upon booting, the card was recognized, the wireless lan came up, and … it asked for my keyring password.

On a side note, I got the driver onto the Xubuntu tablet in the first place by loading it onto a USB flash drive; Xubuntu recognized the drive right away, and it was a simple matter of copying over the file.

Hurdle #3:  Keyring Password

With a keyboard, typing a keyring password isn’t really a big deal, as I did the first time I connected to my wireless network.  Without a keyboard, this is a considerable chore, if not outright impossible.

This is pretty easy to fix — go to ~user/.gnome2/keyrings and delete the keyring, then reboot, and next time, don’t enter a keyring password at all.  While this is less secure (the keys are stored in plaintext) it does have the advantage of not having to enter the password each time.

At this point, I installed sshd, so I could log in to it remotely, and make my life a little easier.

sudo aptitude update
sudo aptitude install openssh-server

Hurdle #4:  The Touchscreen

The touchscreen on a Stylistic 3500 shows up as a serial device, and some kind soul has already written a driver for X.

sudo aptitude install xserver-xorg-input-fpit setserial

The serial device needs to be set up, too, which can be done by creating a file called “/etc/serial.conf” and adding:

/dev/ttyS1 uart 16450 port 0xfd68 irq 5 low_latency baud_base 115200 spd_normal skip_test

The next step is to add the driver to xorg.conf … except that Xubuntu, like a lot of modern Linux distributions, doesn’t actually provide or ship with xorg.conf at all, instead relying on autodetection.  So in order to get the stylus to work, one must first create an xorg.conf.  This is most easily accomplished by killing X — Xubuntu helpfully tries to respawn X, so I took the hack-ish but expedient route of putting a junk file into /etc/X11/xorg.conf (I simply wrote the word “sampo” in it, which is not a valid configuration, which keeps X from respawning) then issued a kill command to the pid running X.  Then:

X -configure

Generated an xorg.conf that I could edit to add in the touchscreen bits.  (Parts already there are in red, my additions are in black.)

Section "ServerLayout"
 Identifier     "X.org Configured"
 Screen      0  "Screen0" 0 0
 InputDevice    "Touchscreen"
 InputDevice    "Mouse0" "CorePointer"
 InputDevice    "Keyboard0" "CoreKeyboard"

Section "InputDevice"
 Identifier "Touchscreen"
 Driver "fpit"
 Option "Device" "/dev/ttyS1"
 Option "BaudRate" "9600"
 Option "Passive"
 Option "CorePointer"
 Option "SendCoreEvents"
 Option "MinimumXPosition" "0"
 Option "MinimumYPosition" "0"
 Option "TrackRandR"      "on"

And I now have a working stylus.  I spent a surprising amount of time fooling around before I discovered the “TrackRandR” configuration parameter — during which my stylus worked on a postage-stamp sized corner of the tablet while the pointer shot everywhere.

Hurdle #5: remote Administration

I can administer the tablet via sshd already, but it’s handy to have remote console access, since a lot of settings are much easier to set via a GUI than by poking around the command line.  So, to provide VNC-capability for the console:

sudo aptitude install xinetd x11vnc

I considered it a good idea to set a password:

x11vnc -storepasswd

Then created a file called /etc/xinetd.d/x11vnc to launch it on demand:

service x11vnc
 port            = 5900
 type            = UNLISTED
 socket_type     = stream
 protocol        = tcp
 wait            = no
 user            = root
 server          = /usr/bin/x11vnc
 server_args     = -inetd -o /var/log/x11vnc.log -display :0 -auth /var/lib/gdm/:0.Xauth -many -bg -rfbauth /root/.vnc/passwd
 disable         = no

Hurdle #6:  gksudo and an on-screen keyboard

I used Applications->Add/Remove to add Matchbox, an on-screen keyboard, and immediately gksu popped up to request administrative rights…  which greyed out the rest of the screen, making it impossible to actually use an on-screen keyboard to enter a password.  Luckily, this is just a setting in gksudo called “Disable-grab.”  Since I could already VNC into the tablet, this actually wasn’t much of a hurdle.


Between the IDE-SSD drive and Xubuntu, the tablet is dramatically faster than it ever was under Windows 2000.  A lot of the tablet’s use is surfing the net via Firefox, which launches and renders faster than it ever did.

Surprisingly, wireless networking is also much improved: Windows 2000 would often have trouble reconnecting to the network after rebooting, and despite being an “n” wireless card, seemed slow.  Now it’s quite stable, and runs at a full 130mbps.