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.

formatting link
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.

read more and respond »

Posted 5 years ago by Dave Houston in General Home Automation

Report misuse

Image for BX24-AHT code snippet