From 3dd363874cc677b1403c7c86bb582707821b61cc Mon Sep 17 00:00:00 2001 From: realraum Date: Mon, 12 Dec 2011 21:46:20 +0000 Subject: [PATCH] added non working rf433rcv --- rf433rcv/Makefile | 10 +- rf433rcv/WProgram.h | 62 +++++++++ rf433rcv/a.out | Bin 0 -> 9104 bytes rf433rcv/applet/rf433rcv.cpp | 198 ++++++++++++++++++++++++++ rf433rcv/applet/rf433rcv.elf | Bin 0 -> 34032 bytes rf433rcv/applet/rf433rcv.hex | 313 ++++++++++++++++++++++++++++++++++++++++++ rf433rcv/arduino | 1 + rf433rcv/lala | 1 + rf433rcv/pc.cpp | 5 +- rf433rcv/plot.py | 1 + rf433rcv/rf433rcv.cpp | 209 ++++++++++++++++++++++++++++ rf433rcv/test | Bin 0 -> 421 bytes 12 files changed, 792 insertions(+), 8 deletions(-) create mode 100644 rf433rcv/WProgram.h create mode 100755 rf433rcv/a.out create mode 100644 rf433rcv/applet/rf433rcv.cpp create mode 100755 rf433rcv/applet/rf433rcv.elf create mode 100644 rf433rcv/applet/rf433rcv.hex create mode 120000 rf433rcv/arduino create mode 100644 rf433rcv/lala create mode 100644 rf433rcv/rf433rcv.cpp create mode 100644 rf433rcv/test diff --git a/rf433rcv/Makefile b/rf433rcv/Makefile index 49bf913..0f51cc6 100755 --- a/rf433rcv/Makefile +++ b/rf433rcv/Makefile @@ -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 index 0000000..13e473d --- /dev/null +++ b/rf433rcv/WProgram.h @@ -0,0 +1,62 @@ +#ifndef WProgram_h +#define WProgram_h + +#include +#include +#include + +#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 +#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 index 0000000000000000000000000000000000000000..eea06b03e9ed35f8c6d0e56bccee4d6e22eda1d7 GIT binary patch literal 9104 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 literal 0 HcmV?d00001 diff --git a/rf433rcv/applet/rf433rcv.cpp b/rf433rcv/applet/rf433rcv.cpp new file mode 100644 index 0000000..e2f7397 --- /dev/null +++ b/rf433rcv/applet/rf433rcv.cpp @@ -0,0 +1,198 @@ +#include "WProgram.h" +#include +#include +#include + +#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< 0.08ms @ 16 MHz -> 1*alpha +// OCR1A = 207; // (1+207)*8 = 1664 -> 0.104ms @ 16 MHz -> 1*alpha + TCNT1 = 0; // reseting timer + TIMSK1 = 1< 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 index 0000000000000000000000000000000000000000..63d5533664790b12d5f97a5eca2059f142d773d0 GIT binary patch literal 34032 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 LbTv5iT?qXjEo?gW literal 0 HcmV?d00001 diff --git a/rf433rcv/applet/rf433rcv.hex b/rf433rcv/applet/rf433rcv.hex new file mode 100644 index 0000000..197d61f --- /dev/null +++ b/rf433rcv/applet/rf433rcv.hex @@ -0,0 +1,313 @@ +:100000000C9462000C948A000C948A000C948A0070 +:100010000C948A000C948A000C948A000C948A0038 +:100020000C948A000C948A000C948A000C94CD00E5 +:100030000C948A000C948A000C948A000C948A0018 +:100040000C948C010C948A000C9463030C948A0029 +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C948A000C948A000000000024002700F1 +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C0000000C00411241FBECFEFD8E0DEBFCDBFBB +:1000D00011E0A0E0B1E0EEE3F3E102C005900D9283 +:1000E000A633B107D9F711E0A6E3B1E001C01D9234 +:1000F000A73EB107E1F710E0C4ECD0E004C02297BE +:10010000FE010E949909C23CD107C9F70E94C800AC +:100110000C949D090C940000109280008AE080935A +:1001200081008FE990E0909389008093880010927D +:1001300085001092840082E080936F0008951092F1 +:10014000810010926F000895089580E060E00E94A1 +:10015000A70280E060E00E94C70285ED91E040E0E8 +:1001600051EE60E070E00E94FC03109280008AE093 +:10017000809381008FE990E09093890080938800BC +:10018000109285001092840082E080936F000895A1 +:100190000E946D020E94A500FFCF1F920F920FB622 +:1001A0000F9211241F932F933F934F935F936F935D +:1001B0007F938F939F93AF93BF93EF93FF9380E0D1 +:1001C0000E941403182F80914201811709F483C003 +:1001D000113009F088C090914101892F83508330FC +:1001E000A0F4809140018B3080F08E3070F48091CB +:1001F0003C0190913D01A0913E01B0913F01880FDB +:10020000991FAA1FBB1F816017C0809140018350B6 +:10021000833008F04FC09B3008F44CC09E30F0F49F +:1002200080913C0190913D01A0913E01B0913F0130 +:10023000880F991FAA1FBB1F80933C0190933D011B +:10024000A0933E01B0933F018091430190914401FE +:100250000196909344018093430138C0993750F13F +:1002600097FD28C08091430190914401489714F173 +:1002700040913C0150E060E070E085ED91E020E0CD +:1002800030E00E94660640913D0150E060E070E081 +:1002900085ED91E020E030E00E94660640913E014D +:1002A00050E060E070E085ED91E020E030E00E94F9 +:1002B00066060CC0109244011092430110923C015A +:1002C00010923D0110923E0110923F0110924001A8 +:1002D0001092410102C0113031F4809140018F5FD2 +:1002E0008093400105C0809141018F5F809341015F +:1002F00010934201FF91EF91BF91AF919F918F9128 +:100300007F916F915F914F913F912F911F910F902E +:100310000FBE0F901F9018951F920F920FB60F925D +:1003200011242F938F939F93AF93BF938091450197 +:1003300090914601A0914701B09148010196A11DFD +:10034000B11D8093450190934601A0934701B0935E +:1003500048018091490190914A01A0914B01B091CF +:100360004C018050904CAF4FBF4F80934901909308 +:100370004A01A0934B01B0934C0127C080914901E1 +:1003800090914A01A0914B01B0914C0180589E433D +:10039000A040B0408093490190934A01A0934B0143 +:1003A000B0934C0180914D0190914E01A0914F016D +:1003B000B09150010196A11DB11D80934D01909304 +:1003C0004E01A0934F01B09350018091490190914B +:1003D0004A01A0914B01B0914C0181589E43A0402D +:1003E000B04060F6BF91AF919F918F912F910F9088 +:1003F0000FBE0F901F9018958FB7F89420914D0164 +:1004000030914E0140914F01509150018FBFB90181 +:10041000CA0108956FB7F89486B590E0A0E0B0E007 +:10042000A89B08C00097A105B10521F480E091E0E8 +:10043000A0E0B0E020914501309146014091470194 +:10044000509148016FBF542F432F322F2227280F7E +:10045000391F4A1F5B1F82E0220F331F441F551FA5 +:100460008A95D1F7B901CA010895EF92FF920F93CF +:100470001F937B018C018FB7F89440914D015091EF +:100480004E0160914F01709150018FBF2FB7F894CA +:1004900080914D0190914E01A0914F01B09150017A +:1004A0002FBF841B950BA60BB70BE816F9060A079E +:1004B0001B0760F71F910F91FF90EF900895019730 +:1004C00059F0FC01EE0FFF1FEE0FFF1F32978FB7A1 +:1004D000F8943197F1F78FBF0895789484B58260CE +:1004E00084BD84B5816084BD85B5826085BD85B5D8 +:1004F000816085BDEEE6F0E0808181608083E1E887 +:10050000F0E0808182608083808181608083E0E888 +:10051000F0E0808181608083E1EBF0E080818460A5 +:100520008083E0EBF0E0808181608083EAE7F0E0A7 +:10053000808184608083808182608083808181600B +:1005400080838081806880831092C1000895282F65 +:1005500030E0C90186569F4FFC0194912A573F4FC6 +:10056000F9018491882391F0E82FF0E0EE0FFF1F4E +:10057000E859FF4FA591B491662329F48C91909589 +:1005800089238C9308958C91892B8C930895482FFF +:1005900050E0CA0182559F4FFC012491CA01865642 +:1005A0009F4FFC0194914A575F4FFA0134913323D6 +:1005B000D1F1222331F1233021F4809180008F7713 +:1005C00005C0243031F4809180008F7D80938000BD +:1005D00018C0213019F484B58F7704C0223021F47B +:1005E00084B58F7D84BD0DC0263021F48091B0008C +:1005F0008F7705C0273029F48091B0008F7D8093DC +:10060000B000E32FF0E0EE0FFF1FEE58FF4FA59173 +:10061000B491662329F48C91909589238C93089545 +:100620008C91892B8C930895682F70E0CB018255B3 +:100630009F4FFC012491CB0186569F4FFC014491B2 +:100640006A577F4FFB019491992319F420E030E021 +:1006500038C0222331F1233021F4809180008F773C +:1006600005C0243031F4809180008F7D809380001C +:1006700018C0213019F484B58F7704C0223021F4DA +:1006800084B58F7D84BD0DC0263021F48091B000EB +:100690008F7705C0273029F48091B0008F7D80933B +:1006A000B000892F90E0880F991F84589F4FFC015C +:1006B000A591B4918C9120E030E0842311F021E0E9 +:1006C00030E0C90108951F920F920FB60F921124C6 +:1006D0002F933F934F935F936F937F938F939F934A +:1006E000AF93BF93EF93FF934091C600E091D10188 +:1006F000F091D201CF01019660E870E00E943309C9 +:100700009C018091D3019091D4012817390739F0C9 +:10071000EF5AFE4F40833093D2012093D101FF91D5 +:10072000EF91BF91AF919F918F917F916F915F9169 +:100730004F913F912F910F900FBE0F901F901895E2 +:100740008F92AF92CF92DF92EF92FF920F931F930F +:10075000DF93CF93CDB7DEB7FC0181E391E09183C6 +:100760008083738362835583448337832683118711 +:100770000087F386E286D586C486A68687868D8521 +:10078000808B8E85818BCF91DF911F910F91FF9090 +:10079000EF90DF90CF90AF908F9008958F92AF92AF +:1007A000CF92DF92EF92FF920F931F93DF93CF933D +:1007B000CDB7DEB7FC0181E391E091838083738341 +:1007C0006283558344833783268311870087F386AA +:1007D000E286D586C486A68687868D85808B8E85A3 +:1007E000818BCF91DF911F910F91FF90EF90DF9060 +:1007F000CF90AF908F900895AF92BF92CF92DF923B +:10080000EF92FF920F931F93CF93DF936C017A01C6 +:100810008B01DC011496AD90BC901597CB01BA0109 +:1008200022E030E040E050E00E946809205C3D4B4F +:10083000404F5F4FCA01B901A80197010E946809A2 +:10084000C901DA010197A109B109292F3A2F4B2FCC +:10085000552747FD5A950196A11DB11DE501288335 +:10086000E601EE81FF8181508083EA85FB8520814E +:1008700041E050E0CA010E8402C0880F991F0A941B +:10088000E2F7282B2083EA85FB852081CA010F84AB +:1008900002C0880F991F0A94E2F7282B2083EA856B +:1008A000FB858081088802C0440F551F0A94E2F737 +:1008B000842B8083DF91CF911F910F91FF90EF9058 +:1008C000DF90CF90BF90AF900895DC011296ED912C +:1008D000FC911397E058FF4F8191919180589F4F61 +:1008E00020813181821B930B60E870E00E94330904 +:1008F0000895CF93DF93DC011296ED91FC9113974D +:10090000EF01CE57DF4F48815981E058FF4F80817A +:100910009181E058F0408417950719F42FEF3FEFCD +:100920000CC0E40FF51F2081CA01019660E870E059 +:100930000E9433099983888330E0C901DF91CF9108 +:100940000895DC011296ED91FC911397EE57FF4F3D +:1009500080819181929382930895FC01A085B18555 +:1009600021898C9190E0022E02C0959587950A947A +:10097000E2F780FFF6CF0484F585E02D60830895CB +:1009800081E391E09093D6018093D50181E591E0D8 +:100990009093D8018093D70185EC90E09093DA0191 +:1009A0008093D90184EC90E09093DC018093DB018B +:1009B00080EC90E09093DE018093DD0181EC90E08B +:1009C0009093E0018093DF0186EC90E09093E20148 +:1009D0008093E10184E08093E30183E08093E4016C +:1009E00087E08093E50185E08093E6010895DC01CE +:1009F000ED91FC910190F081E02D09950895DC01C5 +:100A0000ED91FC910190F081E02D099508950F93EF +:100A10001F93CF93DF938C01EB0109C02196D8017E +:100A2000ED91FC910190F081E02DC801099568815C +:100A30006623A1F7DF91CF911F910F9108950F9336 +:100A40001F938C01DC01ED91FC910190F081E02D70 +:100A50006DE00995D801ED91FC910190F081E02DB8 +:100A6000C8016AE009951F910F9108950F931F9394 +:100A70008C01DC01ED91FC910190F081E02D099554 +:100A8000C8010E941F051F910F9108950F931F9396 +:100A90008C010E940705C8010E941F051F910F913C +:100AA00008950F931F938C01DC01ED91FC9101904F +:100AB000F081E02D0995C8010E941F051F910F913B +:100AC00008952F923F924F925F926F927F928F92F2 +:100AD0009F92AF92BF92CF92DF92EF92FF920F93CD +:100AE0001F93DF93CF93CDB7DEB7A0970FB6F894DF +:100AF000DEBF0FBECDBF1C016A017B014115510550 +:100B00006105710549F4DC01ED91FC910190F081E2 +:100B1000E02D60E3099554C0882499245401422EA5 +:100B200055246624772401E010E00C0F1D1F080DEA +:100B3000191DC701B601A30192010E944609F801DF +:100B400060830894811C911CA11CB11CC701B601D3 +:100B5000A30192010E944609C901DA016C017D01DD +:100B6000C114D104E104F104F1F681E0E82EF12C86 +:100B7000EC0EFD1EE80CF91C3E010894611C711C72 +:100B8000D501C4010197A109B1096C01C818D908A0 +:100B900014C0F601EE0DFF1D60816A3010F4605D37 +:100BA00001C0695CD101ED91FC910190F081E02DD3 +:100BB000C10109950894E108F1086E147F0449F712 +:100BC000A0960FB6F894DEBF0FBECDBFCF91DF91D8 +:100BD0001F910F91FF90EF90DF90CF90BF90AF905B +:100BE0009F908F907F906F905F904F903F902F904D +:100BF00008952AE00E94610508950F931F938C01C8 +:100C00000E94F905C8010E941F051F910F910895C8 +:100C1000AB0160E070E00E94F90508950F931F9307 +:100C20008C01AB0160E070E00E94F905C8010E94F0 +:100C30001F051F910F910895EF92FF920F931F933D +:100C4000CF93DF93EC017A018B0177FF0FC0E8812E +:100C5000F9810190F081E02D6DE2099510950095E4 +:100C6000F094E094E11CF11C011D111DCE01B801AE +:100C7000A7012AE00E946105DF91CF911F910F919A +:100C8000FF90EF9008950F931F938C010E941C0614 +:100C9000C8010E941F051F910F910895AB0166279F +:100CA00057FD6095762F0E941C0608950F931F93A1 +:100CB0008C01AB01662757FD6095762F0E941C06BC +:100CC000C8010E941F051F910F910895DC01211595 +:100CD000310541F4ED91FC910190F081E02D642FFC +:100CE000099508952A30310519F40E941C060895CB +:100CF0000E94610508950F931F938C010E94660660 +:100D0000C8010E941F051F910F9108959F92AF92F5 +:100D1000BF92CF92DF92EF92FF920F931F93CF93E8 +:100D2000DF93EC017A018B01922ECB01BA0120E016 +:100D300030E040E050E00E948107882364F4E881BD +:100D4000F9810190F081E02DCE016DE2099517FB4C +:100D5000109517F9109520E030E040E05FE3AA24F9 +:100D60000BC0CA01B90120E030E040E251E40E942A +:100D700085079B01AC01A394A91498F3C801B7019E +:100D80000E941D075B016C010E94F2077B018C0130 +:100D9000CE01B801A7010E94F905992029F0CE01E2 +:100DA00063E371E00E940705C801B7010E941E08B5 +:100DB0009B01AC01C601B5010E941C0720C020E0C8 +:100DC00030E040E251E40E94D0087B018C010E9497 +:100DD000ED075B016C01CC24B7FCC094DC2CCE0188 +:100DE000B601A5010E941C06C601B5010E9420089B +:100DF0009B01AC01C801B7010E941C079A9499207D +:100E0000F1F6DF91CF911F910F91FF90EF90DF905E +:100E1000CF90BF90AF909F90089522E00E948606E9 +:100E200008950F931F938C010E940D07C8010E9423 +:100E30001F051F910F9108955058BB27AA270ED068 +:100E400075C166D130F06BD120F031F49F3F11F4C1 +:100E50001EF45BC10EF4E095E7FB51C1E92F77D199 +:100E600080F3BA17620773078407950718F071F4C7 +:100E70009EF58FC10EF4E0950B2EBA2FA02D0B011D +:100E8000B90190010C01CA01A0011124FF27591BCF +:100E900099F0593F50F4503E68F11A16F040A22FD5 +:100EA000232F342F4427585FF3CF46953795279546 +:100EB000A795F0405395C9F77EF41F16BA0B620B45 +:100EC000730B840BBAF09150A1F0FF0FBB1F661F8C +:100ED000771F881FC2F70EC0BA0F621F731F841FCF +:100EE00048F4879577956795B795F7959E3F08F0F5 +:100EF000B3CF9395880F08F09927EE0F97958795B4 +:100F00000895D9D008F481E008950CD00FC107D11D +:100F100040F0FED030F021F45F3F19F0F0C05111E5 +:100F200039C1F3C014D198F39923C9F35523B1F310 +:100F3000951B550BBB27AA2762177307840738F048 +:100F40009F5F5F4F220F331F441FAA1FA9F333D0A7 +:100F50000E2E3AF0E0E830D091505040E695001C5B +:100F6000CAF729D0FE2F27D0660F771F881FBB1F17 +:100F7000261737074807AB07B0E809F0BB0B802DF1 +:100F8000BF01FF2793585F4F2AF09E3F510568F03D +:100F9000B6C000C15F3FECF3983EDCF386957795D1 +:100FA0006795B795F7959F5FC9F7880F911D96953F +:100FB000879597F90895E1E0660F771F881FBB1F9B +:100FC000621773078407BA0720F0621B730B840B48 +:100FD000BA0BEE1F88F7E095089504D06894B1111C +:100FE000D9C00895BCD088F09F5790F0B92F9927A9 +:100FF000B751A0F0D1F0660F771F881F991F1AF024 +:10100000BA95C9F712C0B13081F0C3D0B1E00895EC +:10101000C0C0672F782F8827B85F39F0B93FCCF36D +:10102000869577956795B395D9F73EF49095809519 +:10103000709561957F4F8F4F9F4F0895E89409C039 +:1010400097FB3EF490958095709561957F4F8F4FFB +:101050009F4F9923A9F0F92F96E9BB279395F69511 +:10106000879577956795B795F111F8CFFAF4BB0F8F +:1010700011F460FF1BC06F5F7F4F8F4F9F4F16C0F3 +:10108000882311F096E911C0772321F09EE8872F7D +:10109000762F05C0662371F096E8862F70E060E039 +:1010A0002AF09A95660F771F881FDAF7880F9695B2 +:1010B000879597F90895990F0008550FAA0BE0E856 +:1010C000FEEF16161706E807F907C0F0121613060A +:1010D000E407F50798F0621B730B840B950B39F44A +:1010E0000A2661F0232B242B252B21F408950A26B0 +:1010F00009F4A140A6958FEF811D811D089597F9F0 +:101100009F6780E870E060E008959FEF80EC0895AD +:1011100000240A94161617061806090608950024D6 +:101120000A9412161306140605060895092E039450 +:10113000000C11F4882352F0BB0F40F4BF2B11F4C4 +:1011400060FF04C06F5F7F4F8F4F9F4F089557FD23 +:101150009058440F551F59F05F3F71F04795880F25 +:1011600097FB991F61F09F3F79F0879508951216BC +:1011700013061406551FF2CF4695F1DF08C0161668 +:1011800017061806991FF1CF869571056105089419 +:101190000895E894BB2766277727CB0197F9089530 +:1011A0000BD0C4CFB5DF28F0BADF18F0952309F0D3 +:1011B000A6CFABCF1124EECFCADFA0F3959FD1F31A +:1011C000950F50E0551F629FF001729FBB27F00DF5 +:1011D000B11D639FAA27F00DB11DAA1F649F66274A +:1011E000B00DA11D661F829F2227B00DA11D621F99 +:1011F000739FB00DA11D621F839FA00D611D221F53 +:10120000749F3327A00D611D231F849F600D211D36 +:10121000822F762F6A2F11249F5750408AF0E1F0D9 +:1012200088234AF0EE0FFF1FBB1F661F771F881F22 +:1012300091505040A9F79E3F510570F060CFAACF62 +:101240005F3FECF3983EDCF3869577956795B7950D +:10125000F795E7959F5FC1F7FE2B880F911D969537 +:10126000879597F9089597FB092E07260AD077FDF1 +:1012700004D049D006D000201AF4709561957F4FB4 +:101280000895F6F7909581959F4F0895A1E21A2E43 +:10129000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F1A +:1012A000A217B307E407F50720F0A21BB30BE40B6A +:1012B000F50B661F771F881F991F1A9469F76095B1 +:1012C0007095809590959B01AC01BD01CF0108956B +:1012D00097FB092E05260ED057FD04D0D7DF0AD084 +:1012E000001C38F450954095309521953F4F4F4F55 +:1012F0005F4F0895F6F790958095709561957F4FB3 +:101300008F4F9F4F0895AA1BBB1B51E107C0AA1F17 +:10131000BB1FA617B70710F0A61BB70B881F991F96 +:101320005A95A9F780959095BC01CD010895EE0FCF +:0E133000FF1F0590F491E02D0994F894FFCF73 +:10133E00090113011D0127010104011000140120F0 +:10134E000000000C0110001C012000000004011020 +:10135E00001C0120000000040180000000000000BD +:06136E0000AD042E00009A +:00000001FF diff --git a/rf433rcv/arduino b/rf433rcv/arduino new file mode 120000 index 0000000..3e9ad92 --- /dev/null +++ b/rf433rcv/arduino @@ -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 index 0000000..8d61242 --- /dev/null +++ b/rf433rcv/lala @@ -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 diff --git a/rf433rcv/pc.cpp b/rf433rcv/pc.cpp index 6f43deb..34392c3 100644 --- a/rf433rcv/pc.cpp +++ b/rf433rcv/pc.cpp @@ -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); diff --git a/rf433rcv/plot.py b/rf433rcv/plot.py index 350c40a..7afae9c 100755 --- a/rf433rcv/plot.py +++ b/rf433rcv/plot.py @@ -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 index 0000000..3e05fec --- /dev/null +++ b/rf433rcv/rf433rcv.cpp @@ -0,0 +1,209 @@ +#include +#include +#include +#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< 0.08ms @ 16 MHz -> 1*alpha +// OCR1A = 207; // (1+207)*8 = 1664 -> 0.104ms @ 16 MHz -> 1*alpha + TCNT1 = 0; // reseting timer + TIMSK1 = 1< 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 index 0000000000000000000000000000000000000000..49e103ea68c12d77a8ca50f8c84862a042db6927 GIT binary patch literal 421 zcmX}o!Art$6bJC1A!wKE9|&abKS)SQ(!&qkDf%-yNe59+G9hvvoNY(zXEp;nbrOv2 zkf^wuw1f`EDlKqAn+j4wX#IW)9lw0ud%X9Gn}fw~Zoas^`V2H~k}7-bO7-_^zHN0p zC_JTW2?slNrQZCu)5Gvd@xx#9IoO#iHMwXg)1!H()Z~ON4FK>|TRC0!G8rTV0a)An zNB0VOj6sYz0gNW@bP8Pxr~4K$$ZhrA0N9jD!qiGlCi6l}QF%S@gB+@_EIQIk*TIZV z#wcprEbKxCJrX;=i&|Ra8gfhfDYr&Qwli6+i0x92MtU6yI_DzpdoHOK%F~cv8j`)S zp(fcGQ(ysDf5n(BP;g^%hD%Y`7dNyz4K0FB{k{B^LlPYt63psy+!#JkFp?sOfAP&D z(H%Aj;