This is an old revision of the document!


Workshop mit dem geilen Otti

hidrc

Einrichtung

~ % 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

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
  • /var/lib/dokuwiki/data/attic/workshop/rf433ctl_workshop.1334785250.txt.gz
  • Last modified: 2012-04-18 23:40
  • by homunkoloss