%DASHBOARD{ section="dashboard_start" }% %DASHBOARD{ section="banner" image="%PUBURLPATH%/Cosmac/RaspiElf/raspi-elfmemcard-s.jpg" title="!RaspiElf Keypad" titlestyle="color:#F00000;" }% %DASHBOARD{ section="box_start" title="Intro" width="485" height="200"}% 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. 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. %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" title="Contents" width="460" height="200"}% %TOC% %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" width="992" height="400" }% ---+ Hardware | %IMAGE{"%PUBURLPATH%/Cosmac/RaspiElfKeypad/gal_2000_G84-4700_2_persp.jpg" type="thumb" caption="Cherry Keypad G84-4700, original key caps"}% \ | %IMAGE{"%PUBURLPATH%/Cosmac/RaspiElfDisplay/LED_module.jpg" type="thumb" caption="LTP-305 Dot Matrix Display"}% \ | %IMAGE{"%PUBURLPATH%/Cosmac/RaspiElfDisplay/Microdot_pHAT.jpg" type="thumb" caption="Microdot_pHAT on Raspberry Pi Zero"}% | %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" width="992" height="600" }% ---+ Software for the Raspberry Pi No special software needed. Keyboard drivers are already built in. * Linux Keycode Table http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlkeycodes.html * http://xahlee.info/linux/linux_keyboard_tools.html * https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes 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. <pre> pi@cosmac:~/elf/RaspiElf/tools $ <b>udevadm info /dev/input/by-path/*-usb-*-kbd</b> 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=<em>0014</em> 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=<em>046a</em> 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 </pre> showkey --scancodes evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-<modalias> File =/etc/udev/hwdb.d/10-hexkeypad.hwdb= <pre> evdev:input:b*v046ap0014* # ML4700 KEYBOARD_KEY_45=a # bind numlock to A KEYBOARD_KEY_62=b # bind / to B KEYBOARD_KEY_37=c # bind * to C KEYBOARD_KEY_01=d # bind ESC to D KEYBOARD_KEY_1d=e # bind Ctrl to E KEYBOARD_KEY_38=f # bind Alt to F </pre> <pre> pi@cosmac:~ $ <b>ls -l /dev/input/by-id/</b> total 0 lrwxrwxrwx 1 root root 9 May 14 20:23 usb-046a_0014-event-kbd -> ../event0 pi@cosmac:~ $ <b>ls -l /dev/input/by-path/</b> total 0 lrwxrwxrwx 1 root root 9 May 14 20:23 platform-3f980000.usb-usb-0:1.4:1.0-event-kbd -> ../event0 pi@cosmac:~ $ <b>ls -l /dev/input/event0</b> crw-rw---- 1 root input 13, 64 May 14 20:23 /dev/input/event0 </pre> <pre> pi@cosmac:~ $ <b>cat /dev/input/event0 | hexdump -C</b> ESC 00008010 cb d9 f9 5a cc fd 04 00 04 00 04 00 29 00 07 00 |...Z........)...| 00008020 cb d9 f9 5a cc fd 04 00 01 00 <b>01</b> 00 01 00 00 00 |...Z............| 00008030 cb d9 f9 5a cc fd 04 00 00 00 00 00 00 00 00 00 |...Z............| 00008040 cb d9 f9 5a b8 7a 05 00 04 00 04 00 29 00 07 00 |...Z.z......)...| 00008050 cb d9 f9 5a b8 7a 05 00 01 00 01 00 00 00 00 00 |...Z.z..........| 00008060 cb d9 f9 5a b8 7a 05 00 00 00 00 00 00 00 00 00 |...Z.z..........| Ctrl 00008070 cf d9 f9 5a 66 55 06 00 04 00 04 00 e0 00 07 00 |...ZfU..........| 00008080 cf d9 f9 5a 66 55 06 00 01 00 <b>1d</b> 00 01 00 00 00 |...ZfU..........| 00008090 cf d9 f9 5a 66 55 06 00 00 00 00 00 00 00 00 00 |...ZfU..........| 000080a0 cf d9 f9 5a 94 f1 06 00 04 00 04 00 e0 00 07 00 |...Z............| 000080b0 cf d9 f9 5a 94 f1 06 00 01 00 1d 00 00 00 00 00 |...Z............| 000080c0 cf d9 f9 5a 94 f1 06 00 00 00 00 00 00 00 00 00 |...Z............| </pre> %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" width="992" height="120" }% ---+ How to get and build the RaspiElf Keypad/Display Software The =elfdisplay= is part of the tools package. See RaspiElf#How_to_get_and_build_the_RaspiEl %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" width="992" height="600" }% ---+ Sample session %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="dashboard_end" }% -- %USERSIG{PeterSchmid - 2018-05-03}% ---++!! Comments
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
jpg
gal_2000_G84-4700_2_persp.jpg
r1
manage
88.8 K
2018-05-09 - 21:36
PeterSchmid
This topic: Cosmac
>
WebHome
>
RaspiElfKeypad
Topic revision: r6 - 2018-05-14 - PeterSchmid
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback