This is an old revision of the document!
Workshop mit dem geilen Otti
hidrc
Einrichtung
Kommandos lernen
~ % sudo apt-get install subversion gcc-avr avr-libc build-essential avrdude binutils-avr libusb-dev python-matplotlib ~ % mkdir teensy_workshop ~ % cd teensy_workshop ~/teensy_workshop % svn checkout https://krypta.wirdorange.org/svn/hidrc/trunk hidrc A hidrc/usb_keyboard_debug.c A hidrc/hid_listen A hidrc/hid_listen/rawhid.c A hidrc/hid_listen/gpl3.txt A hidrc/hid_listen/hid_listen.c A hidrc/hid_listen/rawhid.h A hidrc/hid_listen/Makefile A hidrc/print.h A hidrc/teensy_loader_cli A hidrc/teensy_loader_cli/gpl3.txt A hidrc/teensy_loader_cli/Makefile.bsd A hidrc/teensy_loader_cli/teensy_loader_cli.c A hidrc/teensy_loader_cli/Makefile A hidrc/usb_keyboard_debug.h A hidrc/keymap_example.h A hidrc/udev-rules A hidrc/udev-rules/49-teensy.rules A hidrc/example.c A hidrc/Makefile A hidrc/print.c U hidrc Ausgecheckt, Revision 16. ~/teensy_workshop % cd hidrc ~/teensy_workshop/hidrc (svn)-[trunk:16] % make -------- begin -------- avr-gcc (GCC) 4.3.5 Copyright (C) 2008 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. Compiling C: example.c avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./example.lst -std=gnu99 -MMD -MP -MF .dep/example.o.d example.c -o example.o example.c:38:20: Fehler: keymap.h: Datei oder Verzeichnis nicht gefunden example.c: In Funktion »__vector_23«: example.c:110: Fehler: »mapping« nicht deklariert (erste Benutzung in dieser Funktion) example.c:110: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt example.c:110: Fehler: für jede Funktion in der er auftritt.) make: *** [example.o] Fehler 1 2 ~/teensy_workshop/hidrc (svn)-[trunk:16] % cp keymap_example.h keymap.h ~/teensy_workshop/hidrc (svn)-[trunk:16] % make -------- begin -------- avr-gcc (GCC) 4.3.5 Copyright (C) 2008 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. Compiling C: example.c avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./example.lst -std=gnu99 -MMD -MP -MF .dep/example.o.d example.c -o example.o Compiling C: usb_keyboard_debug.c avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./usb_keyboard_debug.lst -std=gnu99 -MMD -MP -MF .dep/usb_keyboard_debug.o.d usb_keyboard_debug.c -o usb_keyboard_debug.o Compiling C: print.c avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./print.lst -std=gnu99 -MMD -MP -MF .dep/print.o.d print.c -o print.o Linking: example.elf avr-gcc -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=example.o -std=gnu99 -MMD -MP -MF .dep/example.elf.d example.o usb_keyboard_debug.o print.o --output example.elf -Wl,-Map=example.map,--cref -Wl,--relax -Wl,--gc-sections -lm Creating load file for Flash: example.hex avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature example.elf example.hex Creating load file for EEPROM: example.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 --no-change-warnings -O ihex example.elf example.eep || exit 0 Creating Extended Listing: example.lss avr-objdump -h -S -z example.elf > example.lss Creating Symbol Table: example.sym avr-nm -n example.elf > example.sym Size after: text data bss dec hex filename 2600 34 26 2660 a64 example.elf -------- end -------- ~/teensy_workshop/hidrc (svn)-[trunk:16] % cd teensy_loader_cli ...eensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % make cc -O2 -Wall -s -DUSE_LIBUSB -o teensy_loader_cli teensy_loader_cli.c -lusb ...eensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % cd .. ~/teensy_workshop/hidrc (svn)-[trunk:16] % cd hid_listen ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % make gcc -O2 -Wall -DLINUX -c -o hid_listen.o hid_listen.c gcc -O2 -Wall -DLINUX -c -o rawhid.o rawhid.c rawhid.c:53:45: warning: assertions are a deprecated extension gcc -o hid_listen hid_listen.o rawhid.o strip hid_listen ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % cd .. ~/teensy_workshop/hidrc (svn)-[trunk:16] % sudo cp udev-rules/49-teensy.rules /etc/udev/rules.d/49-teensy.rules ~/teensy_workshop/hidrc (svn)-[trunk:16] % sudo /etc/init.d/udev reload Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service udev reload Since the script you are attempting to invoke has been converted to an Upstart job, you may also use the reload(8) utility, e.g. reload udev ~/teensy_workshop/hidrc (svn)-[trunk:16] % make program ./teensy_loader_cli/teensy_loader_cli -mmcu=atmega32u4 -w example.hex ~/teensy_workshop/hidrc (svn)-[trunk:16] % cd hid_listen ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % ./hid_listen Waiting for device: Listening: start 722EEDD1 722EEDD1 722EEDD1 722EEDD1 722EEDD1 ^C 130 ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % vim ../keymap.h Keycode eintragen 722EEDD1 -> 0x72,0x2E,0xED,0xD1 0x72,0x2E,0xED,0xD1,//Key//, //Modifier//, z.B.: 0x72,0x2E,0xED,0xD1, KEY_DELETE, KEY_ALT | KEY_CTRL, Gültige Werte für //Key// und //Modifier// stehen in der Datei **usb_keyboard_debug.h**
Pinbelegung
TSOP1838: D3: Data Gesamter Port D ist als Input konfiguriert. PC7 = VCC PC6 = GND
Ansicht von vorne (Runde empfänger Teil sichtbar)
_________ | | | O | | | --------- | | | | | | D Gnd Vcc
rf433ctl
homunkoloss@vidar ~/teensy_workshop % svn checkout https://svn.spreadspace.org/realraum/rf433rcv/ A rf433rcv/pc A rf433rcv/pc/uncompress.c A rf433rcv/pc/decode2.pl A rf433rcv/pc/plot_bin.sh A rf433rcv/pc/autotaste.sh A rf433rcv/pc/swap.pl A rf433rcv/pc/hid.h A rf433rcv/pc/codes A rf433rcv/pc/decode.pl A rf433rcv/pc/rawhid_test.c A rf433rcv/pc/hid_MACOSX.c A rf433rcv/pc/hid_WINDOWS.c A rf433rcv/pc/realraum_codes.pl A rf433rcv/pc/send.sh A rf433rcv/pc/reset.c A rf433rcv/pc/hid_LINUX.c A rf433rcv/pc/plot.py A rf433rcv/pc/data2sample.pl A rf433rcv/pc/sample2data.pl A rf433rcv/pc/testdata A rf433rcv/pc/testdata/11111_d_bin A rf433rcv/pc/testdata/sw2on_bin A rf433rcv/pc/testdata/11111_a_bin_off A rf433rcv/pc/testdata/11111_b_bin_off A rf433rcv/pc/testdata/11111_c_bin_off A rf433rcv/pc/testdata/11111_d_bin_off A rf433rcv/pc/testdata/11111_a_bin A rf433rcv/pc/testdata/11111_b_bin A rf433rcv/pc/testdata/11111_c_bin A rf433rcv/pc/compress.c A rf433rcv/pc/Makefile A rf433rcv/teensy A rf433rcv/teensy/usb_rawhid.c A rf433rcv/teensy/example.c A rf433rcv/teensy/Makefile A rf433rcv/teensy/usb_rawhid.h Ausgecheckt, Revision 516. homunkoloss@vidar ~/teensy_workshop % ll insgesamt 8 drwxr-xr-x 7 homunkoloss homunkoloss 4096 2012-04-18 23:35 hidrc/ drwxr-xr-x 5 homunkoloss homunkoloss 4096 2012-04-18 23:37 rf433rcv/ homunkoloss@vidar ~/teensy_workshop % cd rf433rcv homunkoloss@vidar ~/teensy_workshop/rf433rcv (svn)-[rf433rcv:516] % ll insgesamt 8 drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-04-18 23:37 pc/ drwxr-xr-x 3 homunkoloss homunkoloss 4096 2012-04-18 23:37 teensy/ homunkoloss@vidar ~/teensy_workshop/rf433rcv (svn)-[rf433rcv:516] % cd pc homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % make gcc -Wall -O2 -DOS_LINUX -c -o rawhid_test.o rawhid_test.c gcc -Wall -O2 -DOS_LINUX -c -o hid.o hid_LINUX.c gcc -o rawhid_test rawhid_test.o hid.o -lusb strip rawhid_test gcc -o compress compress.c gcc -o uncompress uncompress.c gcc -Wall -O2 -DOS_LINUX -c -o reset.o reset.c gcc -o reset reset.o hid.o -lusb strip reset homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % vim Makefile homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cd ~ homunkoloss@vidar ~ % ln -s teensy_workshop/hidrc/teensy_loader_cli homunkoloss@vidar ~ % ll insgesamt 756 -rw-r--r-- 1 homunkoloss homunkoloss 33809 2011-10-18 19:22 Adressbuch.vcf drwxr-xr-x 6 homunkoloss homunkoloss 4096 2012-04-18 22:36 Arbeitsfläche/ drwxr-xr-x 2 homunkoloss homunkoloss 4096 2012-01-29 17:30 Audiobooks/ drwxr-xr-x 7 homunkoloss homunkoloss 4096 2012-04-15 12:25 Bilder/ drwxr-xr-x 15 homunkoloss homunkoloss 4096 2012-04-18 08:16 Dokumente/ drwxr-xr-x 15 homunkoloss homunkoloss 12288 2012-04-18 22:44 Downloads/ drwx------ 5 homunkoloss homunkoloss 4096 2012-04-18 22:31 Dropbox/ drwxr-xr-x 2 homunkoloss homunkoloss 4096 2011-08-30 18:24 install/ -rw-r--r-- 1 homunkoloss homunkoloss 18179 2011-09-02 20:11 Installation.odt -rw-r--r-- 1 homunkoloss homunkoloss 404 2011-09-02 19:55 install.sh -rw-r--r-- 1 homunkoloss homunkoloss 173 2012-02-13 23:07 Leseempfehlung_gimpf.txt drwxr-xr-x 5 homunkoloss homunkoloss 4096 2012-03-30 15:06 Musik/ drwxr-xr-x 2 homunkoloss homunkoloss 4096 2011-08-28 22:17 Öffentlich/ drwx------ 2 homunkoloss homunkoloss 4096 2012-03-28 15:26 PDF/ drwxr-xr-x 2 homunkoloss homunkoloss 4096 2012-01-29 17:30 Podcasts/ -rw-r--r-- 1 homunkoloss homunkoloss 502977 2011-10-04 22:07 Protokoll\ 24.1.2011.docx drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-03-23 12:23 QualtingerLiestMeinKampf/ -rw-r--r-- 1 homunkoloss homunkoloss 42165 2012-03-03 15:43 realraum_flyer.sla drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-01-24 18:36 share.ffgraz.net:8080/ drwxr-xr-x 2 homunkoloss homunkoloss 4096 2011-12-09 15:28 sketchbook/ lrwxrwxrwx 1 homunkoloss homunkoloss 39 2012-04-18 23:39 teensy_loader_cli -> teensy_workshop/hidrc/teensy_loader_cli/ drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-04-18 23:37 teensy_workshop/ drwxrwxr-x 2 homunkoloss homunkoloss 4096 2012-01-29 16:14 Ubuntu\ One/ drwxr-xr-x 5 homunkoloss homunkoloss 4096 2012-04-18 23:11 Videos/ drwxr-xr-x 5 homunkoloss homunkoloss 4096 2012-03-27 22:50 VirtualBox\ VMs/ drwxr-xr-x 2 homunkoloss homunkoloss 4096 2011-08-28 22:17 Vorlagen/ -rw-r--r-- 1 homunkoloss homunkoloss 10775 2012-01-02 12:50 Weihnachtsferien.mm homunkoloss@vidar ~ % cd - ~/teensy_workshop/rf433rcv/pc homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ll insgesamt 376 -rwxr-xr-x 1 homunkoloss homunkoloss 261 2012-04-18 23:37 autotaste.sh* -rw-r--r-- 1 homunkoloss homunkoloss 762 2012-04-18 23:37 codes -rwxr-xr-x 1 homunkoloss homunkoloss 7332 2012-04-18 23:37 compress* -rw-r--r-- 1 homunkoloss homunkoloss 640 2012-04-18 23:37 compress.c -rwxr-xr-x 1 homunkoloss homunkoloss 274 2012-04-18 23:37 data2sample.pl* -rwxr-xr-x 1 homunkoloss homunkoloss 182 2012-04-18 23:37 decode2.pl* -rwxr-xr-x 1 homunkoloss homunkoloss 1173 2012-04-18 23:37 decode.pl* -rw-r--r-- 1 homunkoloss homunkoloss 219 2012-04-18 23:37 hid.h -rw-r--r-- 1 homunkoloss homunkoloss 11445 2012-04-18 23:37 hid_LINUX.c -rw-r--r-- 1 homunkoloss homunkoloss 11770 2012-04-18 23:37 hid_MACOSX.c -rw-r--r-- 1 homunkoloss homunkoloss 3660 2012-04-18 23:37 hid.o -rw-r--r-- 1 homunkoloss homunkoloss 8537 2012-04-18 23:37 hid_WINDOWS.c -rw-r--r-- 1 homunkoloss homunkoloss 1485 2012-04-18 23:37 Makefile -rwxr-xr-x 1 homunkoloss homunkoloss 41 2012-04-18 23:37 plot_bin.sh* -rwxr-xr-x 1 homunkoloss homunkoloss 258 2012-04-18 23:37 plot.py* -rwxr-xr-x 1 homunkoloss homunkoloss 9688 2012-04-18 23:37 rawhid_test* -rw-r--r-- 1 homunkoloss homunkoloss 2426 2012-04-18 23:37 rawhid_test.c -rw-r--r-- 1 homunkoloss homunkoloss 2904 2012-04-18 23:37 rawhid_test.o -rwxr-xr-x 1 homunkoloss homunkoloss 2263 2012-04-18 23:37 realraum_codes.pl* -rwxr-xr-x 1 homunkoloss homunkoloss 9668 2012-04-18 23:37 reset* -rw-r--r-- 1 homunkoloss homunkoloss 869 2012-04-18 23:37 reset.c -rw-r--r-- 1 homunkoloss homunkoloss 1344 2012-04-18 23:37 reset.o -rwxr-xr-x 1 homunkoloss homunkoloss 458 2012-04-18 23:37 sample2data.pl* -rwxr-xr-x 1 homunkoloss homunkoloss 48 2012-04-18 23:37 send.sh* -rwxr-xr-x 1 homunkoloss homunkoloss 73 2012-04-18 23:37 swap.pl* drwxr-xr-x 3 homunkoloss homunkoloss 4096 2012-04-18 23:37 testdata/ -rwxr-xr-x 1 homunkoloss homunkoloss 7336 2012-04-18 23:37 uncompress* -rw-r--r-- 1 homunkoloss homunkoloss 518 2012-04-18 23:37 uncompress.c homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cd ../teensy homunkoloss@vidar ~/teensy_workshop/rf433rcv/teensy (svn)-[rf433rcv:516] % ll insgesamt 88 -rw-r--r-- 1 homunkoloss homunkoloss 6462 2012-04-18 23:37 example.c -rw-r--r-- 1 homunkoloss homunkoloss 16964 2012-04-18 23:37 Makefile -rw-r--r-- 1 homunkoloss homunkoloss 23192 2012-04-18 23:37 usb_rawhid.c -rw-r--r-- 1 homunkoloss homunkoloss 2627 2012-04-18 23:37 usb_rawhid.h homunkoloss@vidar ~/teensy_workshop/rf433rcv/teensy (svn)-[rf433rcv:516] % make -------- begin -------- avr-gcc (GCC) 4.3.5 Copyright (C) 2008 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. Compiling C: example.c avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./example.lst -std=gnu99 -MMD -MP -MF .dep/example.o.d example.c -o example.o example.c:52: Warnung: Funktionsdeklaration ist kein Prototyp Compiling C: usb_rawhid.c avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./usb_rawhid.lst -std=gnu99 -MMD -MP -MF .dep/usb_rawhid.o.d usb_rawhid.c -o usb_rawhid.o Linking: example.elf avr-gcc -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=example.o -std=gnu99 -MMD -MP -MF .dep/example.elf.d example.o usb_rawhid.o --output example.elf -Wl,-Map=example.map,--cref -Wl,--relax -Wl,--gc-sections -lm Creating load file for Flash: example.hex avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature example.elf example.hex Creating load file for EEPROM: example.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 --no-change-warnings -O ihex example.elf example.eep || exit 0 Creating Extended Listing: example.lss avr-objdump -h -S -z example.elf > example.lss Creating Symbol Table: example.sym avr-nm -n example.elf > example.sym Size after: text data bss dec hex filename 3604 0 710 4314 10da example.elf -------- end -------- homunkoloss@vidar ~/teensy_workshop/rf433rcv/teensy (svn)-[rf433rcv:516] % make program ../pc/reset || true ~/teensy_loader_cli/teensy_loader_cli -mmcu=atmega32u4 -w example.hex
realraum Graz, Brockmanngasse 15, 8010 Graz, realraum - Verein für Technik in Kultur und Gesellschaft