[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

BX24-AHT code snippet



I've been accused of basing the BX24-AHT design on Tom Laureanno's Basic
Stamp code project.

I think Tom's code is still on his web site. I think Dan Lanciani also has
some BX24 code on his website. The code I used in the BX24-AHT to capture
the X-10 RF is below. I don't think anyone will find any similarities. The
data Tom referred to on Ed Cheung's web site is inaccurate. I had to work
out the protocol details myself (I published an accurate description of the
protocol on my web page. There is also a link on my web page to an NEC
datasheet for the chip that X-10 used in the older keychain remotes which
details the protocol.) There was some discussion with Dan Lanciani (via
email) that was mostly about how much he disliked the BX24 compiler and
about the bits added by the RF repeater which I've never had. I published a
BX24 routine (using the BasicX InputCapture function) for capturing and
decoding the protocol a day or two before Dan published his code. Tom
Laureanno purchased a BX24 of his own after I published my code.

Gerber drawings for the BX24-AHT board have long been available on my web
page. All it will take is a glance at those and the other documentation
there to see there are no elements of Tom's design in the BX24-AHT design. I
don't believe Tom supported pressure and humidity sensors nor had additional
serial ports for other things like Ocelot's, LCDs, keypads, etc. He used a
TW523 (in output mode only) while I supported the CM11A, Ocelot, Leopard and
a web device that did X-10.

     http://www.mbx-usa.com/files.htm

I did ask in CHA for input about extending the protocol for preset dim,
extended dim, digital and analog inputs as I thought that was a case where
the more heads the better, but got no suggestions. So, I created extensions
for all of these on my own. The extensions can be sent by programmable RF
remotes (e.g. Pronto) and I later designed a battery powered generic ADC
module that can drive an IR or RF transmitter that is 'understood' by the
BX24-AHT as well as by the MR26 modified with a replacement PIC for which I
created the firmware.

    'In the main loop, this code looks for a start pulse and
    'calls GetRF() to capture the 32 bit code that follows it
    PulseWidth = 0
    If (GetPin(11) = InMode) Then 'InMode=1 for RF input, 0 for IR input
      Register.TCCR1A = 0         'reset Timer1
      Register.TCNT1H = 0
      Register.TCNT1L = 0
      Register.TIFR = TOV1
      Register.TCCR1B = 2         'start Timer1
      If (InMode = 1) Then
        level = GetADC(13)        'read linear output amplitude
      End If
      Do
      Loop Until (GetPin(11) = 0)
      LoByte = Register.TCNT1L    'read Timer1
      HiByte = Register.TCNT1H
      PulseWidth = CInt(HiByte) * 256 + CInt(LoByte)
      If (InMode = 1) Then
        n = GetADC(13)            'read linear output amplitude (RSSI)
        If n > level Then
          level = n - level
        Else
          level = level - n
        End If
      End If
    End If

Sub GetRF()

  For n = 0 To 32
    Register.TCCR1A = 0                     'reset Timer1
    Register.TCNT1H = 0
    Register.TCNT1L = 0
    Register.TIFR = TOV1
    Register.TCCR1B = 2                     'start Timer1
    Call WaitForInterrupt(bxPinRisingEdge)
    LoByte = Register.TCNT1L                'read Timer1
    HiByte = Register.TCNT1H
    PulseTrain(n) = CInt(HiByte) * 256 + CInt(LoByte)
  Next

End Sub

Hult's claims are really ludicrous. It looks like the only way to stop this
endless litany of lies is to file a lawsuit.


comp.home.automation Main Index | comp.home.automation Thread Index | comp.home.automation Home | Archives Home