Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
%DASHBOARD{ section="banner" | ||||||||
Line: 7 to 7 | ||||||||
titlestyle="color:#F00000;"
}%
Intro
| ||||||||
Added: | ||||||||
> > | The Elf Membership Card has 8 data switches, 3 mode switches, and a IN push button on its front panel. The data is displayed on 8 LEDs (binary). It is a error prone but educational task to "switch in" in (load) the program. | |||||||
Added: | ||||||||
> > | I have an old external keypad because my old notebook did not have a numeric keypad. The keys looks similar to those old Elf hex keypads, why not use this spare keypad for the Elf Membership Card? It is a Cherry keyboard and I have other Cherry keyboard with the same key caps. | |||||||
Line: 21 to 23 | ||||||||
Added: | ||||||||
> > | No special software needed. Keyboard drivers are already built in. | |||||||
Added: | ||||||||
> > | ||||||||
Changed: | ||||||||
< < |
How to get and build the RaspiElf Keypad Software | |||||||
> > | Mapping scancodes to keycodes is universal and not specific to Linux console or Xorg, which means that changes to this mapping will be effective in both. | |||||||
Deleted: | ||||||||
< < | Get the source from the GIT repository![]() sudo apt-get install git ), type only the bold text after the $ sign: | |||||||
Changed: | ||||||||
< < | pi@cosmac:~/elf $ git clone https://github.com/spyren/RaspiElf![]() | |||||||
> > | pi@cosmac:~/elf/RaspiElf/tools $ udevadm info /dev/input/by-path/*-usb-*-kbd
P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:046A:0014.0002/input/input1/event0
N: input/event0
S: input/by-id/usb-046a_0014-event-kbd
S: input/by-path/platform-3f980000.usb-usb-0:1.2:1.0-event-kbd
E: BACKSPACE=guess
E: DEVLINKS=/dev/input/by-id/usb-046a_0014-event-kbd /dev/input/by-path/platform-3f980000.usb-usb-0:1.2:1.0-event-kbd
E: DEVNAME=/dev/input/event0
E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:046A:0014.0002/input/input1/event0
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_MODEL=0014
E: ID_MODEL_ENC=0014
E: ID_MODEL_ID=0014
E: ID_PATH=platform-3f980000.usb-usb-0:1.2:1.0
E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_2_1_0
E: ID_REVISION=0100
E: ID_SERIAL=046a_0014
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=046a
E: ID_VENDOR_ENC=046a
E: ID_VENDOR_ID=046a
E: MAJOR=13
E: MINOR=64
E: SUBSYSTEM=input
E: USEC_INITIALIZED=69042133468
E: XKBLAYOUT=gb
E: XKBMODEL=pc105
evdev:input:bevdev:input:b*v046ap0014* # ML4700 KEYBOARD_KEY_70039=leftalt # bind numlock to A KEYBOARD_KEY_70039=leftalt # bind numlock to B KEYBOARD_KEY_70039=leftalt # bind numlock to C KEYBOARD_KEY_700e2=leftctrl # bind ESC to D KEYBOARD_KEY_700e2=leftctrl # bind Ctrl to E KEYBOARD_KEY_700e2=leftctrl # bind Alt to F | |||||||
Deleted: | ||||||||
< < | Build (compile) from the sources:
pi@cosmac:~/elf $ cd RaspiElf pi@cosmac:~/elf/RaspiElf $ cd tools/ pi@cosmac:~/elf/RaspiElf/tools $ make cc -g -c elf2bin.c cc -g -c raspi_gpio.c cc -g -o elf2bin -lwiringPi elf2bin.o raspi_gpio.o cc -g -c bin2elf.c cc -g -o bin2elf -lwiringPi bin2elf.o raspi_gpio.o cc -g -c elf.c cc -g -o elf -lwiringPi elf.o raspi_gpio.o pi@cosmac:~/elf/RaspiElf/tools $ | |||||||
Deleted: | ||||||||
< < | Install the binaries into /usr/local/bin
pi@cosmac:~/elf/RaspiElf/tools $ sudo make install install -m 557 elf2bin bin2elf elf /usr/local/bin | |||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Changed: | ||||||||
< < | Initialise the Elf memory with 00H (32 Kib):
pi@cosmac:~/elf/RaspiElf/chase $ bin2elf -e 7fff </dev/zero 0x8000 bytes written | |||||||
> > | How to get and build the RaspiElf Keypad/Display SoftwareTheelfdisplay is part of the tools package. See RaspiElf#How_to_get_and_build_the_RaspiEl | |||||||
Deleted: | ||||||||
< < | Upload and run the chase lighting program (details see ChaseLighting):
pi@cosmac:~/elf/RaspiElf/chase $ bin2elf -w -r chase.bin 0x002d bytes writtenStop the program an go into the load state: pi@cosmac:~/elf/RaspiElf/chase $ elf load 01 1 0 0 1 1 0 0c | |||||||
Changed: | ||||||||
< < | Hexdump the Elf memory until address 0x3f (hexdump is standard UNIX tool and is included in Raspbian and other GNU/Linux'):
pi@cosmac:~/elf/RaspiElf/chase $ elf2bin -e 3f | hexdump -C 0x0040 bytes read 00000000 c0 00 03 e3 90 b3 f8 30 a3 f8 01 53 64 6c 23 fa |.......0...Sdl#.| 00000010 fe 3a 1a f0 f6 c7 f8 80 30 1f f0 fe c7 f8 01 53 |.:......0......S| 00000020 f8 14 b2 22 92 3a 23 c5 7a 38 7b 30 0c 00 00 00 |...".:#.z8{0....| 00000030 04 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040Get the mode and the data (LEDs and swiches) pi@cosmac:~/elf/RaspiElf/chase $ elf 02 1 1 0 1 1 1 ff pi@cosmac:~/elf/RaspiElf/chase $ elf -v LED:01 Q:1 Rx:1 IN:0 WAIT:1 CLR:1 READ:0 SWITCH:0cWrite enable (not READ) pi@cosmac:~/elf/RaspiElf/chase $ elf -n read 02 1 1 0 1 1 0 ffRun mode (starts the chase lighting again) pi@cosmac:~/elf/RaspiElf/chase $ elf runPut 0000'0000B to the switches (chase LEDs from right to left) pi@cosmac:~/elf/RaspiElf/chase $ elf put 0 40 1 1 0 0 0 0 00Put 1000'0000B to the switches (chase LEDs from left to right) pi@cosmac:~/elf/RaspiElf/chase $ elf put 80 10 1 1 0 0 0 0 80 | |||||||
> > | ||||||||
Deleted: | ||||||||
< < | Get the mode and data while the program is running (LEDs and Q are changing)
pi@cosmac:~/elf/RaspiElf/chase $ elf -v LED:40 Q:1 Rx:1 IN:0 WAIT:0 CLR:0 READ:0 SWITCH:80 pi@cosmac:~/elf/RaspiElf/chase $ elf -v LED:02 Q:0 Rx:1 IN:0 WAIT:0 CLR:0 READ:0 SWITCH:80 | |||||||