Arduino Serial Encoding And Decoding

12/18/2017

Arduino Serial Encoding And Decoding 4,4/5 2596votes

Interfacing to my Neptune water meter. My water meter with a Neptune T 1. RF transmitter a Neptune R9. Great  Id like that data for my home monitoring system. The bottom line is here. Can I listen in Theres a cool 9. MHz utility meter monitor tool mentioned in this Hackaday post. Unfortunately, while it can receive the transmissions from an R9. Libraries for Arduino. This page includes a list of community contributed libraries for Arduino. Check out the Official Arduino Libraries or Interfacing With Hardware. Hi Jiali, within the IR stream for this remote there are only those few periods 9000, 4500, 5. The typical ways of encoding data with IR is shown in. The MSP430 is a mixedsignal microcontroller family from Texas Instruments. Built around a 16bit CPU, the MSP430 is designed for low cost and, specifically, low. A rotary encoder, also called a shaft encoder, is an electromechanical device that converts the angular position or motion of a shaft or axle to an analog or digital. THE CAR HACKERS HANDBOOK. A Guide for the Penetration Tester. Craig Smith. I sent a note to Greg at gridinsight. I could help with development of the R9. I know nothing about. Nice try.   I guess Ill have to try to eavesdrop on the data going from the meter to the transmitter. Fail To Installed Components Via Hd Audio Codec Driver. The 3 wire connection between the two seems to consist of common, data from meter to transmitter, and clockpower from transmitter to meter. The transmitter apparently polls the meter periodically by sending a string of clock pulses to it. The meter responds by putting usage data on the data line, clearly clocked out by the clock pulses from the transmitter. I can see both the clocks and the data now I just need to decode the data so my home monitoring system can use it. The encoder. The water meter seems to be cleverly designed with a separate encoder unit magnetically coupled to whatever it is that actually moves with the water flow inside the meter body. That encoder, which can be replaced on the fly, contains the clear plastic head with 6 digit odometer style counter, a big hand with a calibrated dial for the least significant reading, and an uncalibrated double ended red spinner that shows flows too small to be seen easily on the big hand. The 3 wire interface is part of that encoder. While it might be possible to harvest a little energy from the water flow, I think the encoder has no internal power. Apparently my inference the device at the other end of the cable here, the R9. Arduino Serial Encoding And Decoding In Communication' title='Arduino Serial Encoding And Decoding In Communication' />The encoder extracts enough power from the 5. V logic level clock stream to allow it to reply on the data line with the current values of the odometer counters. An interesting feature of this mechanism is that the polling device always gets the complete total usage reading not a delta. Thus the reading is essentially guaranteed to be accurate. A little more detail. From the product information on the R9. MHz spread spectrum RF burst with the latest usage data every 1. Thus the quotes.   While Id like to just be a non invasive listener, Id really like more granular data. I suspect, but havent tried yet, that if I inject a suitable series of clock pulses at times of my choosing maybe every 1. R9. 00. Of course it would be very inappropriate to impose my clock pulses on to the R9. Arduino Serial Encoding And Decoding StuartOne possibility would be to put a probably Schottky diode in series with both the R9. V lower voltage level on the clock line would still allow the encoder to respond reliably. Arduino Serial Encoding And Decoding MessagesArduino Serial Encoding And DecodingAnd then theres the interesting question of how the unsolicited data transitions caused by my clock pulses might affect the R9. I suppose if I wanted to be very polite about that I could interrupt the data line to the R9. But thats a way out yet. Decoding the data. Back when I hoped to be really non invasive never disconnecting the original wires, I made up something with spring contacts to connect to the screw heads of the 3 wire interface. That gave me a nice wire coming out with all 3 connections I could play with. I connected the wire to my USBee SX logic analyzer the first time Ive used it and set it for 1 M samples at 1 ssample lowest number and lowest rate offered. I set a trigger for lo hi edge on one of the clockdata lines I didnt know which and left it for a while. It triggered, and I looked at the data, but it didnt make any sense at all. After some head scratching, it looked like the wire Id used for common black duh was in fact one of the clock or data lines. Trying again with green as common, I got what I think to be a good capture. A nice stream of clock pulses on one line black and some kind of data on the other red. Maybe 0. I can ignore the silent times. Im home free Well, no. While the data transitions always occur right on a clock edge, some are on a rising clock edge, some on falling. Looking at a larger scale and starting right after the very first rising clock edge, the same pattern appears on the data line 6 times in a row. Picture on right is just the first instance of that pattern. Counting a clock pulse as one hi time and one low time, that pattern takes just 1. Thats a nice number. Unfortunately, looking past that initial sync pattern, there are blips I dont know any appropriate word of data between a rising and a falling edge, but not necessarily in that order that are only 12 clock pulse wide. Is that really a bit time  There are both low blips falling edge followed by rising edge and high blips rising falling. POSSIBLE CLUE it looks like all high blips occur during a high clock half cycle and all lo blips occur during a lo clock half cycle. Heres more Hmm all the one half clock pulse wide blips I could find start on a clock falling edge and end on a rising clock edge. Also, all the longer N and a half clock width blips are adjacent to a half clock blip. I dont understand the implications of all that its just some random observations. I could really use some help figuring out the protocol at least step zero to read bytes from it. If anybody wants to play, the USBee binary capture file is here water. Amateur Radio Arduino Projects collected in Technical ReferenceArduino at The DXZone. So, heres something Ive been meaning to write up for almost a year how to build an Arduinopowered interface to get data from any real. Youll need to rename the file to water. The USBee SX logic analyzer code which will run in demo mode without the USBee module plugged in can open that. You can freely download the Windows 3. Fifteen second GUI lesson leftright mouse clicks zoom inout click drag to pan leftright clicking in Cursors bar sets XO marks click something in Cursor Insta measure and mouse over the data for some tools. Update 941. 2 After staring at it for a long time I noticed a pattern  Theres always a 12 clock cycle lo blip on the low half of every 1. Ive heard people talking about base 64 encoding here and there. What is it used for It is often required to switch electrical appliances from a distance without being a direct line of sight between the transmitter and receiver. As you may. Arduino Serial Encoding And Decoding CommunicationAnd those are the ONLY instances of 12 cycle nonsense. Otherwise all data line transitions are reassuringly on hi lo clock edges. Those statements apply to both sections of the communication capture  The first 5. Whats that aboutSo the half cycle stuff is clearly some kind of frame delimiter. But with 1. More head scratching ahead. To avoid conflicts with my someday higher frequency polls and the polls from the R9. I needed to know how often the R9. I set up an Arduino to look for lo hi transitions on the clock line and timestamp them. It sleeps 1. The R9. Arctic Monkeys Do I Wanna Know Midi Download. Even more interesting is that the polls are sometimes repeated after a second or few, up to 6 times in the day or two Ive been logging. Most polls are not repeated. A first guess is that a repeat poll is sent when some kind of checksum fails. Update 961. 2 It occurred to me that my simple assumption that the reader provides a series of clock pulses and the encoder drove the data line might not be completely right. Especially in light of the change in clock duty cycle after the first 5. To see who was really driving the bus, I thought Id isolate the two sides with Schottky diodes oriented so the R9.