added non working rf433rcv
authorrealraum <realraum@realraum.at>
Mon, 12 Dec 2011 21:46:20 +0000 (21:46 +0000)
committerrealraum <realraum@realraum.at>
Mon, 12 Dec 2011 21:46:20 +0000 (21:46 +0000)
12 files changed:
rf433rcv/Makefile
rf433rcv/WProgram.h [new file with mode: 0644]
rf433rcv/a.out [new file with mode: 0755]
rf433rcv/applet/rf433rcv.cpp [new file with mode: 0644]
rf433rcv/applet/rf433rcv.elf [new file with mode: 0755]
rf433rcv/applet/rf433rcv.hex [new file with mode: 0644]
rf433rcv/arduino [new symlink]
rf433rcv/lala [new file with mode: 0644]
rf433rcv/pc.cpp
rf433rcv/plot.py
rf433rcv/rf433rcv.cpp [new file with mode: 0644]
rf433rcv/test [new file with mode: 0644]

index 49bf913..0f51cc6 100755 (executable)
@@ -14,7 +14,7 @@ F_CPU = 16000000
 
 RESET_TTY_DIR=../reset_tty/
 RESET_TTY=$(RESET_TTY_DIR)reset_tty
-ARDUINO = $(INSTALL_DIR)/hardware/cores/arduino
+ARDUINO = $(INSTALL_DIR)/hardware/teensy/cores/teensy
 AVR_TOOLS_PATH = /usr/bin
 SRC =  $(ARDUINO)/pins_arduino.c $(ARDUINO)/wiring.c \
 $(ARDUINO)/wiring_analog.c $(ARDUINO)/wiring_digital.c \
@@ -94,7 +94,7 @@ all: applet_files build sizeafter
 
 build: elf hex 
 
-applet_files: $(TARGET).pde
+applet_files: $(TARGET).cpp
        # Here is the "preprocessing".
        # It creates a .cpp file based with the same name as the .pde file.
        # On top of the new .cpp file comes the WProgram.h header.
@@ -103,9 +103,7 @@ applet_files: $(TARGET).pde
        # refer to this new, automatically generated, file. 
        # Not the original .pde file you actually edit...
        test -d applet || mkdir applet
-       echo '#include "WProgram.h"' > applet/$(TARGET).cpp
-       cat $(TARGET).pde >> applet/$(TARGET).cpp
-       cat $(ARDUINO)/main.cxx >> applet/$(TARGET).cpp
+       cp arduino/hardware/teensy/cores/teensy/WProgram.h .
 
 elf: applet/$(TARGET).elf
 hex: applet/$(TARGET).hex
@@ -163,7 +161,7 @@ extcoff: $(TARGET).elf
        $(NM) -n $< > $@
 
        # Link: create ELF output file from library.
-applet/$(TARGET).elf: $(TARGET).pde applet/core.a 
+applet/$(TARGET).elf: $(TARGET).cpp applet/core.a 
        $(CC) $(ALL_CFLAGS) -o $@ applet/$(TARGET).cpp -L. applet/core.a $(LDFLAGS)
 
 applet/core.a: $(OBJ)
diff --git a/rf433rcv/WProgram.h b/rf433rcv/WProgram.h
new file mode 100644 (file)
index 0000000..13e473d
--- /dev/null
@@ -0,0 +1,62 @@
+#ifndef WProgram_h
+#define WProgram_h
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#ifdef GCC_VERSION
+#if (GCC_VERSION < 40300)
+#warning "Your avr-gcc and avr-libc are too old, please upgrade"
+#endif
+#if (GCC_VERSION >= 40300) && (GCC_VERSION < 40302)
+// gcc 4.3.0 fails to save context for some interrupt routines - very ugly
+#warning "Buggy GCC 4.3.0 compiler, please upgrade!"
+#endif
+#endif
+
+#include <avr/interrupt.h>
+#include "wiring.h"
+
+#ifdef __cplusplus
+#include "usb_api.h"
+#include "WCharacter.h"
+#include "WString.h"
+#include "HardwareSerial.h"
+
+uint16_t makeWord(uint16_t w);
+uint16_t makeWord(byte h, byte l);
+
+#define word(...) makeWord(__VA_ARGS__)
+
+unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
+
+void tone(uint8_t pin, uint16_t frequency, uint32_t duration = 0);
+void noTone(uint8_t pin);
+
+// WMath prototypes
+long random(long);
+long random(long, long);
+void randomSeed(unsigned int);
+long map(long, long, long, long, long);
+
+#if defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
+const static uint8_t A0 = CORE_ANALOG0_PIN;
+const static uint8_t A1 = CORE_ANALOG1_PIN;
+const static uint8_t A2 = CORE_ANALOG2_PIN;
+const static uint8_t A3 = CORE_ANALOG3_PIN;
+const static uint8_t A4 = CORE_ANALOG4_PIN;
+const static uint8_t A5 = CORE_ANALOG5_PIN;
+const static uint8_t A6 = CORE_ANALOG6_PIN;
+const static uint8_t A7 = CORE_ANALOG7_PIN;
+#if defined(__AVR_ATmega32U4__)
+const static uint8_t A8 = CORE_ANALOG8_PIN;
+const static uint8_t A9 = CORE_ANALOG9_PIN;
+const static uint8_t A10 = 10;
+const static uint8_t A11 = CORE_ANALOG11_PIN;
+#endif
+#endif
+
+#endif // __cplusplus
+
+#endif // WProgram_h
diff --git a/rf433rcv/a.out b/rf433rcv/a.out
new file mode 100755 (executable)
index 0000000..eea06b0
Binary files /dev/null and b/rf433rcv/a.out differ
diff --git a/rf433rcv/applet/rf433rcv.cpp b/rf433rcv/applet/rf433rcv.cpp
new file mode 100644 (file)
index 0000000..e2f7397
--- /dev/null
@@ -0,0 +1,198 @@
+#include "WProgram.h"
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <inttypes.h>
+
+#define RF433_PIN 0
+//********************************************************************//
+
+typedef unsigned char byte;
+
+typedef struct {
+  byte offset;
+  byte state;
+} rf_bit_t;
+
+// offset is number of alphas (0.08ms)
+
+const rf_bit_t zero_bit[] = { {  4, 1 },
+                              { 16, 0 },
+                              { 20, 1 },
+                              { 32, 0 },
+                              {  0, 0 } };
+
+const rf_bit_t one_bit[] = { { 12, 1 },
+                             { 16, 0 },
+                             { 28, 1 },
+                             { 32, 0 },
+                             {  0, 0 } };
+
+const rf_bit_t float_bit[] = { {  4, 1 },
+                               { 16, 0 },
+                               { 28, 1 },
+                               { 32, 0 },
+                               {  0, 0 } };
+
+const rf_bit_t sync_bit[] = { {   4, 1 },
+                              { 128, 0 },
+                              {   0, 0 } };
+
+typedef enum { ZERO = 0, ONE , FLOAT , SYNC } adbit_t;
+typedef byte ad_bit_t;
+#define WORD_LEN 13
+typedef ad_bit_t word_t[WORD_LEN];
+
+const rf_bit_t* bit_defs[] = { zero_bit, one_bit, float_bit, sync_bit };
+
+byte alpha_cnt = 0;
+byte bit_cnt = 0;
+byte chunk_cnt = 0;
+byte word_cnt = 0;
+const ad_bit_t* current_word;
+byte volatile frame_finished = 1;
+
+#define FRAME_LEN 8
+
+#define A1_ON  0
+#define A1_OFF 1
+#define A2_ON  2
+#define A2_OFF 3
+
+#define B1_ON  4
+#define B1_OFF 5
+#define B2_ON  6
+#define B2_OFF 7
+
+#define C1_ON  8
+#define C1_OFF 9
+#define C2_ON  10
+#define C2_OFF 11
+
+#define D1_ON  12
+#define D1_OFF 13
+#define D2_ON  14
+#define D2_OFF 15
+
+const word_t words[]  = { 
+{ ZERO,  ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // A1_ON
+{ ZERO,  ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // A1_OFF
+{ ZERO,  ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // A2_ON
+{ ZERO,  ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // A2_OFF
+
+{ FLOAT, ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // B1_ON
+{ FLOAT, ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // B1_OFF
+{ FLOAT, ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // B2_ON
+{ FLOAT, ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // B2_OFF
+
+{ ZERO,  FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // C1_ON
+{ ZERO,  FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // C1_OFF
+{ ZERO,  FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // C2_ON
+{ ZERO,  FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // C2_OFF
+
+{ FLOAT, FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // D1_ON
+{ FLOAT, FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // D1_OFF
+{ FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // D2_ON
+{ FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }  // D2_OFF
+};
+
+
+//********************************************************************//
+
+void start_timer()
+{
+  // timer 1: 2 ms
+  TCCR1A = 0;                    // prescaler 1:8, WGM = 4 (CTC)
+  TCCR1B = 1<<WGM12 | 1<<CS11;   // 
+  OCR1A = 159;        // (1+159)*8 = 1280 -> 0.08ms @ 16 MHz -> 1*alpha
+//  OCR1A = 207;        // (1+207)*8 = 1664 -> 0.104ms @ 16 MHz -> 1*alpha
+  TCNT1 = 0;          // reseting timer
+  TIMSK1 = 1<<OCIE1A; // enable Interrupt
+}
+
+void stop_timer() // stop the timer
+{
+  // timer1
+  TCCR1B = 0; // no clock source
+  TIMSK1 = 0; // disable timer interrupt
+}
+
+union {
+  byte uint8[4];
+  uint32_t uint32;
+} rf433_data;
+byte rf433_hi_cnt=0;
+byte rf433_lo_cnt=0;
+byte last_sample=0;
+int valid=0;
+ISR(TIMER1_COMPA_vect)
+{
+  byte sample = digitalRead(RF433_PIN);
+  if (last_sample!=sample && sample==HIGH)
+  {
+    if ( rf433_lo_cnt > 2 && rf433_lo_cnt<6 && rf433_hi_cnt>10 && rf433_hi_cnt < 14)
+    {
+      rf433_data.uint32<<=1;
+      rf433_data.uint32|=1;
+      valid++;
+    } else if (rf433_hi_cnt > 2 && rf433_hi_cnt<6 && rf433_lo_cnt>10 && rf433_lo_cnt < 14) {
+      rf433_data.uint32<<=1;
+      valid++;
+    } else if (rf433_hi_cnt > 2 && rf433_hi_cnt<6 && rf433_lo_cnt>120 && rf433_lo_cnt < 128 && valid >=24) {
+      //rf433_data.uint8[3]=0;
+      //Serial.print(rf433_data.uint32);
+      Serial.print(rf433_data.uint8[0],BYTE);
+      Serial.print(rf433_data.uint8[1],BYTE);
+      Serial.print(rf433_data.uint8[2],BYTE);
+      //Serial.print(rf433_data.uint8[3],BYTE);
+    } else {
+      valid=0;
+      rf433_data.uint32=0;
+    }
+    rf433_hi_cnt=0;
+    rf433_lo_cnt=0;
+  }
+  if (sample == HIGH)
+    rf433_hi_cnt++;
+  else 
+    rf433_lo_cnt++;
+  last_sample=sample;
+}
+
+//unsigned long wm_start_[3]={0,0,0};
+//bool wait_millis(unsigned long *start_time, unsigned long ms)
+//{
+//  if (ms == 0)
+//    return false;
+//  else if (*start_time > 0)
+//  {
+//    if (millis() < *start_time || millis() > (*start_time) + ms)
+//    {
+//      *start_time = 0;
+//      return false;
+//    }
+//    else
+//      return true;
+//  }
+//  else
+//  {
+//    *start_time=millis();
+//    return true;
+//  }
+//}
+
+//********************************************************************//
+
+void setup()
+{
+  pinMode(RF433_PIN, INPUT);      // set pin to input
+  digitalWrite(RF433_PIN, LOW);  // turn of pullup resistors 
+
+  Serial.begin(57600);
+//  Serial.println("starting timer");
+  start_timer();
+}
+
+
+void loop()
+{
+}
diff --git a/rf433rcv/applet/rf433rcv.elf b/rf433rcv/applet/rf433rcv.elf
new file mode 100755 (executable)
index 0000000..63d5533
Binary files /dev/null and b/rf433rcv/applet/rf433rcv.elf differ
diff --git a/rf433rcv/applet/rf433rcv.hex b/rf433rcv/applet/rf433rcv.hex
new file mode 100644 (file)
index 0000000..197d61f
--- /dev/null
@@ -0,0 +1,313 @@
+:100000000C9462000C948A000C948A000C948A0070\r
+:100010000C948A000C948A000C948A000C948A0038\r
+:100020000C948A000C948A000C948A000C94CD00E5\r
+:100030000C948A000C948A000C948A000C948A0018\r
+:100040000C948C010C948A000C9463030C948A0029\r
+:100050000C948A000C948A000C948A000C948A00F8\r
+:100060000C948A000C948A000000000024002700F1\r
+:100070002A0000000000250028002B0000000000DE\r
+:1000800023002600290004040404040404040202DA\r
+:100090000202020203030303030301020408102007\r
+:1000A0004080010204081020010204081020000012\r
+:1000B0000007000201000003040600000000000029\r
+:1000C0000000C00411241FBECFEFD8E0DEBFCDBFBB\r
+:1000D00011E0A0E0B1E0EEE3F3E102C005900D9283\r
+:1000E000A633B107D9F711E0A6E3B1E001C01D9234\r
+:1000F000A73EB107E1F710E0C4ECD0E004C02297BE\r
+:10010000FE010E949909C23CD107C9F70E94C800AC\r
+:100110000C949D090C940000109280008AE080935A\r
+:1001200081008FE990E0909389008093880010927D\r
+:1001300085001092840082E080936F0008951092F1\r
+:10014000810010926F000895089580E060E00E94A1\r
+:10015000A70280E060E00E94C70285ED91E040E0E8\r
+:1001600051EE60E070E00E94FC03109280008AE093\r
+:10017000809381008FE990E09093890080938800BC\r
+:10018000109285001092840082E080936F000895A1\r
+:100190000E946D020E94A500FFCF1F920F920FB622\r
+:1001A0000F9211241F932F933F934F935F936F935D\r
+:1001B0007F938F939F93AF93BF93EF93FF9380E0D1\r
+:1001C0000E941403182F80914201811709F483C003\r
+:1001D000113009F088C090914101892F83508330FC\r
+:1001E000A0F4809140018B3080F08E3070F48091CB\r
+:1001F0003C0190913D01A0913E01B0913F01880FDB\r
+:10020000991FAA1FBB1F816017C0809140018350B6\r
+:10021000833008F04FC09B3008F44CC09E30F0F49F\r
+:1002200080913C0190913D01A0913E01B0913F0130\r
+:10023000880F991FAA1FBB1F80933C0190933D011B\r
+:10024000A0933E01B0933F018091430190914401FE\r
+:100250000196909344018093430138C0993750F13F\r
+:1002600097FD28C08091430190914401489714F173\r
+:1002700040913C0150E060E070E085ED91E020E0CD\r
+:1002800030E00E94660640913D0150E060E070E081\r
+:1002900085ED91E020E030E00E94660640913E014D\r
+:1002A00050E060E070E085ED91E020E030E00E94F9\r
+:1002B00066060CC0109244011092430110923C015A\r
+:1002C00010923D0110923E0110923F0110924001A8\r
+:1002D0001092410102C0113031F4809140018F5FD2\r
+:1002E0008093400105C0809141018F5F809341015F\r
+:1002F00010934201FF91EF91BF91AF919F918F9128\r
+:100300007F916F915F914F913F912F911F910F902E\r
+:100310000FBE0F901F9018951F920F920FB60F925D\r
+:1003200011242F938F939F93AF93BF938091450197\r
+:1003300090914601A0914701B09148010196A11DFD\r
+:10034000B11D8093450190934601A0934701B0935E\r
+:1003500048018091490190914A01A0914B01B091CF\r
+:100360004C018050904CAF4FBF4F80934901909308\r
+:100370004A01A0934B01B0934C0127C080914901E1\r
+:1003800090914A01A0914B01B0914C0180589E433D\r
+:10039000A040B0408093490190934A01A0934B0143\r
+:1003A000B0934C0180914D0190914E01A0914F016D\r
+:1003B000B09150010196A11DB11D80934D01909304\r
+:1003C0004E01A0934F01B09350018091490190914B\r
+:1003D0004A01A0914B01B0914C0181589E43A0402D\r
+:1003E000B04060F6BF91AF919F918F912F910F9088\r
+:1003F0000FBE0F901F9018958FB7F89420914D0164\r
+:1004000030914E0140914F01509150018FBFB90181\r
+:10041000CA0108956FB7F89486B590E0A0E0B0E007\r
+:10042000A89B08C00097A105B10521F480E091E0E8\r
+:10043000A0E0B0E020914501309146014091470194\r
+:10044000509148016FBF542F432F322F2227280F7E\r
+:10045000391F4A1F5B1F82E0220F331F441F551FA5\r
+:100460008A95D1F7B901CA010895EF92FF920F93CF\r
+:100470001F937B018C018FB7F89440914D015091EF\r
+:100480004E0160914F01709150018FBF2FB7F894CA\r
+:1004900080914D0190914E01A0914F01B09150017A\r
+:1004A0002FBF841B950BA60BB70BE816F9060A079E\r
+:1004B0001B0760F71F910F91FF90EF900895019730\r
+:1004C00059F0FC01EE0FFF1FEE0FFF1F32978FB7A1\r
+:1004D000F8943197F1F78FBF0895789484B58260CE\r
+:1004E00084BD84B5816084BD85B5826085BD85B5D8\r
+:1004F000816085BDEEE6F0E0808181608083E1E887\r
+:10050000F0E0808182608083808181608083E0E888\r
+:10051000F0E0808181608083E1EBF0E080818460A5\r
+:100520008083E0EBF0E0808181608083EAE7F0E0A7\r
+:10053000808184608083808182608083808181600B\r
+:1005400080838081806880831092C1000895282F65\r
+:1005500030E0C90186569F4FFC0194912A573F4FC6\r
+:10056000F9018491882391F0E82FF0E0EE0FFF1F4E\r
+:10057000E859FF4FA591B491662329F48C91909589\r
+:1005800089238C9308958C91892B8C930895482FFF\r
+:1005900050E0CA0182559F4FFC012491CA01865642\r
+:1005A0009F4FFC0194914A575F4FFA0134913323D6\r
+:1005B000D1F1222331F1233021F4809180008F7713\r
+:1005C00005C0243031F4809180008F7D80938000BD\r
+:1005D00018C0213019F484B58F7704C0223021F47B\r
+:1005E00084B58F7D84BD0DC0263021F48091B0008C\r
+:1005F0008F7705C0273029F48091B0008F7D8093DC\r
+:10060000B000E32FF0E0EE0FFF1FEE58FF4FA59173\r
+:10061000B491662329F48C91909589238C93089545\r
+:100620008C91892B8C930895682F70E0CB018255B3\r
+:100630009F4FFC012491CB0186569F4FFC014491B2\r
+:100640006A577F4FFB019491992319F420E030E021\r
+:1006500038C0222331F1233021F4809180008F773C\r
+:1006600005C0243031F4809180008F7D809380001C\r
+:1006700018C0213019F484B58F7704C0223021F4DA\r
+:1006800084B58F7D84BD0DC0263021F48091B000EB\r
+:100690008F7705C0273029F48091B0008F7D80933B\r
+:1006A000B000892F90E0880F991F84589F4FFC015C\r
+:1006B000A591B4918C9120E030E0842311F021E0E9\r
+:1006C00030E0C90108951F920F920FB60F921124C6\r
+:1006D0002F933F934F935F936F937F938F939F934A\r
+:1006E000AF93BF93EF93FF934091C600E091D10188\r
+:1006F000F091D201CF01019660E870E00E943309C9\r
+:100700009C018091D3019091D4012817390739F0C9\r
+:10071000EF5AFE4F40833093D2012093D101FF91D5\r
+:10072000EF91BF91AF919F918F917F916F915F9169\r
+:100730004F913F912F910F900FBE0F901F901895E2\r
+:100740008F92AF92CF92DF92EF92FF920F931F930F\r
+:10075000DF93CF93CDB7DEB7FC0181E391E09183C6\r
+:100760008083738362835583448337832683118711\r
+:100770000087F386E286D586C486A68687868D8521\r
+:10078000808B8E85818BCF91DF911F910F91FF9090\r
+:10079000EF90DF90CF90AF908F9008958F92AF92AF\r
+:1007A000CF92DF92EF92FF920F931F93DF93CF933D\r
+:1007B000CDB7DEB7FC0181E391E091838083738341\r
+:1007C0006283558344833783268311870087F386AA\r
+:1007D000E286D586C486A68687868D85808B8E85A3\r
+:1007E000818BCF91DF911F910F91FF90EF90DF9060\r
+:1007F000CF90AF908F900895AF92BF92CF92DF923B\r
+:10080000EF92FF920F931F93CF93DF936C017A01C6\r
+:100810008B01DC011496AD90BC901597CB01BA0109\r
+:1008200022E030E040E050E00E946809205C3D4B4F\r
+:10083000404F5F4FCA01B901A80197010E946809A2\r
+:10084000C901DA010197A109B109292F3A2F4B2FCC\r
+:10085000552747FD5A950196A11DB11DE501288335\r
+:10086000E601EE81FF8181508083EA85FB8520814E\r
+:1008700041E050E0CA010E8402C0880F991F0A941B\r
+:10088000E2F7282B2083EA85FB852081CA010F84AB\r
+:1008900002C0880F991F0A94E2F7282B2083EA856B\r
+:1008A000FB858081088802C0440F551F0A94E2F737\r
+:1008B000842B8083DF91CF911F910F91FF90EF9058\r
+:1008C000DF90CF90BF90AF900895DC011296ED912C\r
+:1008D000FC911397E058FF4F8191919180589F4F61\r
+:1008E00020813181821B930B60E870E00E94330904\r
+:1008F0000895CF93DF93DC011296ED91FC9113974D\r
+:10090000EF01CE57DF4F48815981E058FF4F80817A\r
+:100910009181E058F0408417950719F42FEF3FEFCD\r
+:100920000CC0E40FF51F2081CA01019660E870E059\r
+:100930000E9433099983888330E0C901DF91CF9108\r
+:100940000895DC011296ED91FC911397EE57FF4F3D\r
+:1009500080819181929382930895FC01A085B18555\r
+:1009600021898C9190E0022E02C0959587950A947A\r
+:10097000E2F780FFF6CF0484F585E02D60830895CB\r
+:1009800081E391E09093D6018093D50181E591E0D8\r
+:100990009093D8018093D70185EC90E09093DA0191\r
+:1009A0008093D90184EC90E09093DC018093DB018B\r
+:1009B00080EC90E09093DE018093DD0181EC90E08B\r
+:1009C0009093E0018093DF0186EC90E09093E20148\r
+:1009D0008093E10184E08093E30183E08093E4016C\r
+:1009E00087E08093E50185E08093E6010895DC01CE\r
+:1009F000ED91FC910190F081E02D09950895DC01C5\r
+:100A0000ED91FC910190F081E02D099508950F93EF\r
+:100A10001F93CF93DF938C01EB0109C02196D8017E\r
+:100A2000ED91FC910190F081E02DC801099568815C\r
+:100A30006623A1F7DF91CF911F910F9108950F9336\r
+:100A40001F938C01DC01ED91FC910190F081E02D70\r
+:100A50006DE00995D801ED91FC910190F081E02DB8\r
+:100A6000C8016AE009951F910F9108950F931F9394\r
+:100A70008C01DC01ED91FC910190F081E02D099554\r
+:100A8000C8010E941F051F910F9108950F931F9396\r
+:100A90008C010E940705C8010E941F051F910F913C\r
+:100AA00008950F931F938C01DC01ED91FC9101904F\r
+:100AB000F081E02D0995C8010E941F051F910F913B\r
+:100AC00008952F923F924F925F926F927F928F92F2\r
+:100AD0009F92AF92BF92CF92DF92EF92FF920F93CD\r
+:100AE0001F93DF93CF93CDB7DEB7A0970FB6F894DF\r
+:100AF000DEBF0FBECDBF1C016A017B014115510550\r
+:100B00006105710549F4DC01ED91FC910190F081E2\r
+:100B1000E02D60E3099554C0882499245401422EA5\r
+:100B200055246624772401E010E00C0F1D1F080DEA\r
+:100B3000191DC701B601A30192010E944609F801DF\r
+:100B400060830894811C911CA11CB11CC701B601D3\r
+:100B5000A30192010E944609C901DA016C017D01DD\r
+:100B6000C114D104E104F104F1F681E0E82EF12C86\r
+:100B7000EC0EFD1EE80CF91C3E010894611C711C72\r
+:100B8000D501C4010197A109B1096C01C818D908A0\r
+:100B900014C0F601EE0DFF1D60816A3010F4605D37\r
+:100BA00001C0695CD101ED91FC910190F081E02DD3\r
+:100BB000C10109950894E108F1086E147F0449F712\r
+:100BC000A0960FB6F894DEBF0FBECDBFCF91DF91D8\r
+:100BD0001F910F91FF90EF90DF90CF90BF90AF905B\r
+:100BE0009F908F907F906F905F904F903F902F904D\r
+:100BF00008952AE00E94610508950F931F938C01C8\r
+:100C00000E94F905C8010E941F051F910F910895C8\r
+:100C1000AB0160E070E00E94F90508950F931F9307\r
+:100C20008C01AB0160E070E00E94F905C8010E94F0\r
+:100C30001F051F910F910895EF92FF920F931F933D\r
+:100C4000CF93DF93EC017A018B0177FF0FC0E8812E\r
+:100C5000F9810190F081E02D6DE2099510950095E4\r
+:100C6000F094E094E11CF11C011D111DCE01B801AE\r
+:100C7000A7012AE00E946105DF91CF911F910F919A\r
+:100C8000FF90EF9008950F931F938C010E941C0614\r
+:100C9000C8010E941F051F910F910895AB0166279F\r
+:100CA00057FD6095762F0E941C0608950F931F93A1\r
+:100CB0008C01AB01662757FD6095762F0E941C06BC\r
+:100CC000C8010E941F051F910F910895DC01211595\r
+:100CD000310541F4ED91FC910190F081E02D642FFC\r
+:100CE000099508952A30310519F40E941C060895CB\r
+:100CF0000E94610508950F931F938C010E94660660\r
+:100D0000C8010E941F051F910F9108959F92AF92F5\r
+:100D1000BF92CF92DF92EF92FF920F931F93CF93E8\r
+:100D2000DF93EC017A018B01922ECB01BA0120E016\r
+:100D300030E040E050E00E948107882364F4E881BD\r
+:100D4000F9810190F081E02DCE016DE2099517FB4C\r
+:100D5000109517F9109520E030E040E05FE3AA24F9\r
+:100D60000BC0CA01B90120E030E040E251E40E942A\r
+:100D700085079B01AC01A394A91498F3C801B7019E\r
+:100D80000E941D075B016C010E94F2077B018C0130\r
+:100D9000CE01B801A7010E94F905992029F0CE01E2\r
+:100DA00063E371E00E940705C801B7010E941E08B5\r
+:100DB0009B01AC01C601B5010E941C0720C020E0C8\r
+:100DC00030E040E251E40E94D0087B018C010E9497\r
+:100DD000ED075B016C01CC24B7FCC094DC2CCE0188\r
+:100DE000B601A5010E941C06C601B5010E9420089B\r
+:100DF0009B01AC01C801B7010E941C079A9499207D\r
+:100E0000F1F6DF91CF911F910F91FF90EF90DF905E\r
+:100E1000CF90BF90AF909F90089522E00E948606E9\r
+:100E200008950F931F938C010E940D07C8010E9423\r
+:100E30001F051F910F9108955058BB27AA270ED068\r
+:100E400075C166D130F06BD120F031F49F3F11F4C1\r
+:100E50001EF45BC10EF4E095E7FB51C1E92F77D199\r
+:100E600080F3BA17620773078407950718F071F4C7\r
+:100E70009EF58FC10EF4E0950B2EBA2FA02D0B011D\r
+:100E8000B90190010C01CA01A0011124FF27591BCF\r
+:100E900099F0593F50F4503E68F11A16F040A22FD5\r
+:100EA000232F342F4427585FF3CF46953795279546\r
+:100EB000A795F0405395C9F77EF41F16BA0B620B45\r
+:100EC000730B840BBAF09150A1F0FF0FBB1F661F8C\r
+:100ED000771F881FC2F70EC0BA0F621F731F841FCF\r
+:100EE00048F4879577956795B795F7959E3F08F0F5\r
+:100EF000B3CF9395880F08F09927EE0F97958795B4\r
+:100F00000895D9D008F481E008950CD00FC107D11D\r
+:100F100040F0FED030F021F45F3F19F0F0C05111E5\r
+:100F200039C1F3C014D198F39923C9F35523B1F310\r
+:100F3000951B550BBB27AA2762177307840738F048\r
+:100F40009F5F5F4F220F331F441FAA1FA9F333D0A7\r
+:100F50000E2E3AF0E0E830D091505040E695001C5B\r
+:100F6000CAF729D0FE2F27D0660F771F881FBB1F17\r
+:100F7000261737074807AB07B0E809F0BB0B802DF1\r
+:100F8000BF01FF2793585F4F2AF09E3F510568F03D\r
+:100F9000B6C000C15F3FECF3983EDCF386957795D1\r
+:100FA0006795B795F7959F5FC9F7880F911D96953F\r
+:100FB000879597F90895E1E0660F771F881FBB1F9B\r
+:100FC000621773078407BA0720F0621B730B840B48\r
+:100FD000BA0BEE1F88F7E095089504D06894B1111C\r
+:100FE000D9C00895BCD088F09F5790F0B92F9927A9\r
+:100FF000B751A0F0D1F0660F771F881F991F1AF024\r
+:10100000BA95C9F712C0B13081F0C3D0B1E00895EC\r
+:10101000C0C0672F782F8827B85F39F0B93FCCF36D\r
+:10102000869577956795B395D9F73EF49095809519\r
+:10103000709561957F4F8F4F9F4F0895E89409C039\r
+:1010400097FB3EF490958095709561957F4F8F4FFB\r
+:101050009F4F9923A9F0F92F96E9BB279395F69511\r
+:10106000879577956795B795F111F8CFFAF4BB0F8F\r
+:1010700011F460FF1BC06F5F7F4F8F4F9F4F16C0F3\r
+:10108000882311F096E911C0772321F09EE8872F7D\r
+:10109000762F05C0662371F096E8862F70E060E039\r
+:1010A0002AF09A95660F771F881FDAF7880F9695B2\r
+:1010B000879597F90895990F0008550FAA0BE0E856\r
+:1010C000FEEF16161706E807F907C0F0121613060A\r
+:1010D000E407F50798F0621B730B840B950B39F44A\r
+:1010E0000A2661F0232B242B252B21F408950A26B0\r
+:1010F00009F4A140A6958FEF811D811D089597F9F0\r
+:101100009F6780E870E060E008959FEF80EC0895AD\r
+:1011100000240A94161617061806090608950024D6\r
+:101120000A9412161306140605060895092E039450\r
+:10113000000C11F4882352F0BB0F40F4BF2B11F4C4\r
+:1011400060FF04C06F5F7F4F8F4F9F4F089557FD23\r
+:101150009058440F551F59F05F3F71F04795880F25\r
+:1011600097FB991F61F09F3F79F0879508951216BC\r
+:1011700013061406551FF2CF4695F1DF08C0161668\r
+:1011800017061806991FF1CF869571056105089419\r
+:101190000895E894BB2766277727CB0197F9089530\r
+:1011A0000BD0C4CFB5DF28F0BADF18F0952309F0D3\r
+:1011B000A6CFABCF1124EECFCADFA0F3959FD1F31A\r
+:1011C000950F50E0551F629FF001729FBB27F00DF5\r
+:1011D000B11D639FAA27F00DB11DAA1F649F66274A\r
+:1011E000B00DA11D661F829F2227B00DA11D621F99\r
+:1011F000739FB00DA11D621F839FA00D611D221F53\r
+:10120000749F3327A00D611D231F849F600D211D36\r
+:10121000822F762F6A2F11249F5750408AF0E1F0D9\r
+:1012200088234AF0EE0FFF1FBB1F661F771F881F22\r
+:1012300091505040A9F79E3F510570F060CFAACF62\r
+:101240005F3FECF3983EDCF3869577956795B7950D\r
+:10125000F795E7959F5FC1F7FE2B880F911D969537\r
+:10126000879597F9089597FB092E07260AD077FDF1\r
+:1012700004D049D006D000201AF4709561957F4FB4\r
+:101280000895F6F7909581959F4F0895A1E21A2E43\r
+:10129000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F1A\r
+:1012A000A217B307E407F50720F0A21BB30BE40B6A\r
+:1012B000F50B661F771F881F991F1A9469F76095B1\r
+:1012C0007095809590959B01AC01BD01CF0108956B\r
+:1012D00097FB092E05260ED057FD04D0D7DF0AD084\r
+:1012E000001C38F450954095309521953F4F4F4F55\r
+:1012F0005F4F0895F6F790958095709561957F4FB3\r
+:101300008F4F9F4F0895AA1BBB1B51E107C0AA1F17\r
+:10131000BB1FA617B70710F0A61BB70B881F991F96\r
+:101320005A95A9F780959095BC01CD010895EE0FCF\r
+:0E133000FF1F0590F491E02D0994F894FFCF73\r
+:10133E00090113011D0127010104011000140120F0\r
+:10134E000000000C0110001C012000000004011020\r
+:10135E00001C0120000000040180000000000000BD\r
+:06136E0000AD042E00009A\r
+:00000001FF\r
diff --git a/rf433rcv/arduino b/rf433rcv/arduino
new file mode 120000 (symlink)
index 0000000..3e9ad92
--- /dev/null
@@ -0,0 +1 @@
+/home/realraum/arduino-0022
\ No newline at end of file
diff --git a/rf433rcv/lala b/rf433rcv/lala
new file mode 100644 (file)
index 0000000..8d61242
--- /dev/null
@@ -0,0 +1 @@
+1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,0,
\ No newline at end of file
index 6f43deb..34392c3 100644 (file)
@@ -5,9 +5,10 @@ int main()
   unsigned char c =0;
   unsigned char sym =0;
   int counter = 1000;
-  while( counter--)
+//  while( counter--)
+//  {
+  while(  std::cin >> c)
   {
-    std::cin >> c;
     for(int i = 0; i<8; i++)
     {
       sym = c & (1<<7);
index 350c40a..7afae9c 100755 (executable)
@@ -5,6 +5,7 @@ import numpy
 import pylab
 
 for line in fileinput.input():
+  line = line[0:-1]
   data = numpy.array(line.split(","))
   pylab.plot(range(len(data)),data)
   pylab.show()
diff --git a/rf433rcv/rf433rcv.cpp b/rf433rcv/rf433rcv.cpp
new file mode 100644 (file)
index 0000000..3e05fec
--- /dev/null
@@ -0,0 +1,209 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <inttypes.h>
+#define RF433_PIN 0
+//********************************************************************//
+
+typedef unsigned char byte;
+
+typedef struct {
+  byte offset;
+  byte state;
+} rf_bit_t;
+
+// offset is number of alphas (0.08ms)
+
+const rf_bit_t zero_bit[] = { {  4, 1 },
+                              { 16, 0 },
+                              { 20, 1 },
+                              { 32, 0 },
+                              {  0, 0 } };
+
+const rf_bit_t one_bit[] = { { 12, 1 },
+                             { 16, 0 },
+                             { 28, 1 },
+                             { 32, 0 },
+                             {  0, 0 } };
+
+const rf_bit_t float_bit[] = { {  4, 1 },
+                               { 16, 0 },
+                               { 28, 1 },
+                               { 32, 0 },
+                               {  0, 0 } };
+
+const rf_bit_t sync_bit[] = { {   4, 1 },
+                              { 128, 0 },
+                              {   0, 0 } };
+
+typedef enum { ZERO = 0, ONE , FLOAT , SYNC } adbit_t;
+typedef byte ad_bit_t;
+#define WORD_LEN 13
+typedef ad_bit_t word_t[WORD_LEN];
+
+const rf_bit_t* bit_defs[] = { zero_bit, one_bit, float_bit, sync_bit };
+
+byte alpha_cnt = 0;
+byte bit_cnt = 0;
+byte chunk_cnt = 0;
+byte word_cnt = 0;
+const ad_bit_t* current_word;
+byte volatile frame_finished = 1;
+
+#define FRAME_LEN 8
+
+#define A1_ON  0
+#define A1_OFF 1
+#define A2_ON  2
+#define A2_OFF 3
+
+#define B1_ON  4
+#define B1_OFF 5
+#define B2_ON  6
+#define B2_OFF 7
+
+#define C1_ON  8
+#define C1_OFF 9
+#define C2_ON  10
+#define C2_OFF 11
+
+#define D1_ON  12
+#define D1_OFF 13
+#define D2_ON  14
+#define D2_OFF 15
+
+const word_t words[]  = { 
+{ ZERO,  ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // A1_ON
+{ ZERO,  ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // A1_OFF
+{ ZERO,  ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // A2_ON
+{ ZERO,  ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // A2_OFF
+
+{ FLOAT, ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // B1_ON
+{ FLOAT, ZERO,  FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // B1_OFF
+{ FLOAT, ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // B2_ON
+{ FLOAT, ZERO,  FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // B2_OFF
+
+{ ZERO,  FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // C1_ON
+{ ZERO,  FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // C1_OFF
+{ ZERO,  FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // C2_ON
+{ ZERO,  FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // C2_OFF
+
+{ FLOAT, FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // D1_ON
+{ FLOAT, FLOAT, FLOAT, FLOAT, ZERO,  ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }, // D1_OFF
+{ FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // D2_ON
+{ FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO,  SYNC }  // D2_OFF
+};
+
+
+//********************************************************************//
+
+void start_timer()
+{
+  // timer 1: 2 ms
+  TCCR1A = 0;                    // prescaler 1:8, WGM = 4 (CTC)
+  TCCR1B = 1<<WGM12 | 1<<CS11;   // 
+  OCR1A = 159;        // (1+159)*8 = 1280 -> 0.08ms @ 16 MHz -> 1*alpha
+//  OCR1A = 207;        // (1+207)*8 = 1664 -> 0.104ms @ 16 MHz -> 1*alpha
+  TCNT1 = 0;          // reseting timer
+  TIMSK1 = 1<<OCIE1A; // enable Interrupt
+}
+
+void stop_timer() // stop the timer
+{
+  // timer1
+  TCCR1B = 0; // no clock source
+  TIMSK1 = 0; // disable timer interrupt
+}
+
+union {
+  byte uint8[4];
+  uint32_t uint32;
+} rf433_data;
+byte rf433_hi_cnt=0;
+byte rf433_lo_cnt=0;
+byte last_sample=0;
+int valid=0;
+ISR(TIMER1_COMPA_vect)
+{
+  byte sample = digitalRead(RF433_PIN);
+  if (last_sample!=sample && sample==HIGH)
+  {
+    if ( rf433_lo_cnt > 2 && rf433_lo_cnt<6 && rf433_hi_cnt>10 && rf433_hi_cnt < 14)
+    {
+      rf433_data.uint32<<=1;
+      rf433_data.uint32|=1;
+      valid++;
+    } else if (rf433_hi_cnt > 2 && rf433_hi_cnt<6 && rf433_lo_cnt>10 && rf433_lo_cnt < 14) {
+      rf433_data.uint32<<=1;
+      valid++;
+    } else if (rf433_hi_cnt > 2 && rf433_hi_cnt<6 && rf433_lo_cnt>120 && rf433_lo_cnt < 128 && valid >=24) {
+      //rf433_data.uint8[3]=0;
+      //Serial.print(rf433_data.uint32);
+      Serial.print(rf433_data.uint8[0],BYTE);
+      Serial.print(rf433_data.uint8[1],BYTE);
+      Serial.print(rf433_data.uint8[2],BYTE);
+      //Serial.print(rf433_data.uint8[3],BYTE);
+    } else {
+      valid=0;
+      rf433_data.uint32=0;
+    }
+    rf433_hi_cnt=0;
+    rf433_lo_cnt=0;
+  }
+  if (sample == HIGH)
+    rf433_hi_cnt++;
+  else 
+    rf433_lo_cnt++;
+  last_sample=sample;
+}
+
+//unsigned long wm_start_[3]={0,0,0};
+//bool wait_millis(unsigned long *start_time, unsigned long ms)
+//{
+//  if (ms == 0)
+//    return false;
+//  else if (*start_time > 0)
+//  {
+//    if (millis() < *start_time || millis() > (*start_time) + ms)
+//    {
+//      *start_time = 0;
+//      return false;
+//    }
+//    else
+//      return true;
+//  }
+//  else
+//  {
+//    *start_time=millis();
+//    return true;
+//  }
+//}
+
+//********************************************************************//
+
+void setup()
+{
+  pinMode(RF433_PIN, INPUT);      // set pin to input
+  digitalWrite(RF433_PIN, LOW);  // turn of pullup resistors 
+
+  Serial.begin(57600);
+//  Serial.println("starting timer");
+  start_timer();
+}
+
+
+void loop()
+{
+}
+
+int main(void)
+{
+  init();
+
+  setup();
+
+  for (;;)
+    loop();
+
+  return 0;
+}
+
diff --git a/rf433rcv/test b/rf433rcv/test
new file mode 100644 (file)
index 0000000..49e103e
Binary files /dev/null and b/rf433rcv/test differ