Computer
General
- https://en.wikipedia.org/wiki/PC_System_Design_Guide - also known as the PC 97, PC 98, PC 99, or PC 2001 specification, is a series of hardware design requirements and recommendations for IBM PC compatible personal computers, compiled by Microsoft and Intel Corporation during 1997–2001. They were aimed at helping manufacturers provide hardware that made the best use of the capabilities of the Microsoft Windows operating system, and to simplify setup and use of such computers. Every part of a standard computer and the most common kinds of peripheral devices are defined with specific requirements. Systems and devices that meet the specification should be automatically recognized and configured by the operating system.
- http://archive.is/4fJsx- computer diagram
- HDT (stands for Hardware Detection Tool) is a Syslinux com32 module that displays low-level information for any x86 compatible system. It provides both a command line interface and a semi-graphical menu mode for browsing.
Resources
News and reviews
Shopping
Comparison
- http://www.cnet.com/
- hard drive size filter (was?) 1Tb max
Notes
- Core I7-4790K 4-Core 4.0GHz
- 2x PCI-E 3.0
Linux / UNIX
See *nix, *nix#Hardware
cat /proc/cpuinfo lspci lsusb dmidecode
Form factor
- Portable Hardware Locality (hwloc) - provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs.
Case
Mainframes
- https://en.wikipedia.org/wiki/Mainframe_computer - or mainframes (colloquially referred to as "big iron") are computers used primarily by large organizations for critical applications; bulk data processing, such as census, industry and consumer statistics, enterprise resource planning; and transaction processing. They are larger and have more processing power than some other classes of computers: minicomputers, servers, workstations, and personal computers.The term originally referred to the large cabinets called "main frames" that housed the central processing unit and main memory of early computers. Later, the term was used to distinguish high-end commercial machines from less powerful units. Most large-scale computer system architectures were established in the 1960s, but continue to evolve. Mainframe computers are often used as servers.
Minicomputer
PC / ATX
Mini ATX
Small
Intel NUC
- Intel NUC - a powerful 4x4-inch mini PC with entertainment, gaming, and productivity features, including a customizable board that is ready to accept the memory, storage, and operating systems that you want.
Zotac
UDOO x86 Advanced Plus
- YouTube: UDOO x86 Advanced Plus
Single-board computer
See also Network#Hardware 2
- 96Boards - a range of specifications with boards and peripherals offering different performance levels and features in a standard footprint.
- Board-DB.org - by rating, descending
Arduino
Raspberry Pi
- https://github.com/joan2937/pigpio - a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO).
BeagleBoard
- BeagleBone - Explore the high-performance, low-power world with the tiny, affordable, open-source Beagles. Putting Android, Ubuntu and other Linux flavors at your fingertips, the Beagle family revs as high as 1GHz with flexible peripheral interfaces and a proven ecosystem of feature-rich "Cape" plug-in boards.
Banana Pi
Orange Pi
- Orange Pi Pc Plus - It’s an open-source single-board computer. It can run Android 4.4, Ubuntu, Debian, Raspbian Image. It uses the AllWinner H3 SoC, and has 1GB DDR3 SDRAM.
ODROID
- ODROID - ODROID-XU4, ODROID-C2, ODROID-C1+, N2, etc.
- Turris Omnia - With powerful hardware, Turris Omnia can handle gigabit traffic and still be able to do much more. You can use it as a home server, NAS, printserver and it even has a virtual server built-in. [4]
Asus Tinker Board
ROCK64
- ROCK64 - RPi 3 like
- YouTube: ROCK64 4K USB 3.0 SBC - ExplainingComputers
C.H.I.P.
- C.H.I.P. - WiFi B/G/N Built-in! Plug C.H.I.P. in and hop on the internet in 60 seconds flat. 1GHz Processor C.H.I.P.'s R8 processor allows C.H.I.P. to be small and powerful enough to handle any task you can throw at it. 4GB of High-speed Storage C.H.I.P. comes with storage onboard, so there’s no need to purchase an SD card. C.H.I.P. is ready to go. 512MB of RAM C.H.I.P. comes with enough RAM to start your projects right away. Bluetooth 4.0 Wirelessly connect keyboards, mice, and controllers to C.H.I.P. With a few clicks and an old stereo, turn C.H.I.P. into an AirPlay or Bluetooth speaker. C.H.I.P. Works with ANY Display
- C.H.I.P. Pro - 1GHz ARMv7-A, 256MB/512MB DDR3/SLC NAND, I2S Audio Dual Mics, WiFi B/G/N & BT4.2, Fully Certified, Open Source HW, OS, No NDAs!
Marvell ESPRESSObin
MiBox
Intel Galileo
Intel Compute Stick
- Intel Compute Stick - Intel Compute Stick is a device the size of a pack of gum that turns any HDMI display into a fully functional computer: same operating system, same high quality graphics, and same wireless connectivity. All this in a PC on a stick that measures 4.5 inches from end to end, and is ready to compute right out of the box.
Intel Quark
- Intel Quark - Based on the Intel Quark microcontroller D2000, this kit is used to develop and prototype low-power solutions for the Internet of Things (IoT). The kit includes a developer board with sensors and hardware interface shields, a software IDE, and an open-source board support package.
HummingBoard
CuBOX
VoCore
- VoCore - open hardware and runs OpenWrt/LEDE. It has WIFI, USB, UART, 20+ GPIOs but is only one inch square. It will help you to make a smart house, study embedded system or even make the tiniest router in the world.
Tinyduino
Single-board microcontroller
- PlatformIO - A new generation ecosystem for embedded development. Cross-platform PlatformIO IDE and Unified Debugger; Static Code Analyzer and Remote Unit Testing; Multi-platform and Multi-architecture Build System; Firmware File Explorer and Memory Inspection
Teensy
- Teensy USB Development Board - a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port.
- Teensy Audio Library - high quality sound processing in Arduino sketches on Teensy 3.1
- https://github.com/PaulStoffregen/Audio - A toolkit for building streaming audio projects, featuring Polyphonic Playback, Recording, Synthesis, Analysis, Effects, Filtering, Mixing, Multiple Simultaneous Inputs & Outputs, and Flexible Internal Signal Routing.
BBC micro:bit
ESP32
- ESP32 - Created by Espressif Systems, ESP32 is a low-cost, low-power system on a chip (SoC) series with Wi-Fi & dual-mode Bluetooth capabilities! The ESP32 family includes the chips ESP32-D0WDQ6 (and ESP32-D0WD), ESP32-D2WD, ESP32-S0WD, and the system in package (SiP) ESP32-PICO-D4. At its heart, there's a dual-core or single-core Tensilica Xtensa LX6 microprocessor with a clock rate of up to 240 MHz. ESP32 is highly integrated with built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power management modules. Engineered for mobile devices, wearable electronics, and IoT applications, ESP32 achieves ultra-low power consumption through power saving features including fine resolution clock gating, multiple power modes, and dynamic power scaling.
ESP8266
- https://en.wikipedia.org/wiki/ESP8266 - a low-cost Wi-Fi microchip with full TCP/IP stack and microcontroller capability produced by Shanghai-based Chinese manufacturer, Espressif Systems.
- https://github.com/arendst/Tasmota - Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX
WISP
- WISP - the Wireless Identification and Sensing Platform, is a family of sensors that are powered and read by UHF RFID readers. WISPs do not require batteries since they harvest their power from the RF signal generated by the reader. The WISP is an open source, open architecture EPC Class 1 Generation 2 RFID tag that includes a fully programmable 16 bit microcontroller, as well as arbitrary sensors. Unlike the WISP, conventional RFID tags are black boxes that cannot execute arbitrary computer programs, and do not support sensors. We have given WISPs to collaborators around the world. Many of the applications have been sensing related, but we were also surprised to find many applications in the areas of cryptography and security, enabled by WISPs programmability. [6]
PSoC
Other
- https://github.com/chris408/digispark-usbkey-board - a super small Arduino compatible device that can be used for lots of different projects. This document and code helps you set one up as a virtual keyboard that will send characters of your choice to the host system.
Allwinner
- http://linux-sunxi.org/Main_Page - Welcome to the wiki of the linux-sunxi community, an open source software community dedicated to providing open source operating system support for Allwinner SoC based devices. sunxi represents the family of ARM SoCs from Allwinner Technology, a Chinese fabless semiconductor company. Their best known products are the sunxi SoC series, such as the A10 (sun4i), A13 (sun5i) and A20 (sun7i) chips, which were very successful in the low-budget tablet market. See Allwinner SoC Family for more information on the different Allwinner chips.
Secure
Power
- 600w +
UPS
APCUPSD
- apcupsd - can be used for power mangement and controlling most of APC’s UPS models on Unix and Windows machines. Apcupsd works with most of APC’s Smart-UPS models as well as most simple signalling models such a Back-UPS, and BackUPS-Office. During a power failure, apcupsd will inform the users about the power failure and that a shutdown may occur. If power is not restored, a system shutdown will follow when the battery is exhausted, a timeout (seconds) expires, or runtime expires based on internal APC calculations determined by power consumption rates. Apcupsd is licensed under the GPL version 2.
Mainboard
- https://en.wikipedia.org/wiki/Motherboard - (sometimes alternatively known as the mainboard, system board, baseboard, planar board or logic board, or colloquially, a mobo) is the main printed circuit board (PCB) found in general purpose microcomputers and other expandable systems. It holds and allows communication between many of the crucial electronic components of a system, such as the central processing unit (CPU) and memory, and provides connectors for other peripherals. Unlike a backplane, a motherboard usually contains significant sub-systems such as the central processor, the chipset's input/output and memory controllers, interface connectors, and other components integrated for general purpose use.
Motherboard specifically refers to a PCB with expansion capability and as the name suggests, this board is often referred to as the "mother" of all components attached to it, which often include peripherals, interface cards, and daughtercards: sound cards, video cards, network cards, hard drives, or other forms of persistent storage; TV tuner cards, cards providing extra USB or FireWire slots and a variety of other custom components. Similarly, the term mainboard is applied to devices with a single board and no additional expansions or capability, such as controlling boards in laser printers, televisions, washing machines and other embedded systems with limited expansion abilities.
BIOS
- Booting to the Boot Menu and BIOS - This document is an overview of the keys that allow you to boot to a system BIOS and boot menu on various systems.
- Computer POST and beep codes - The computer POST (power-on self-test) checks a computer's internal hardware for compatibility and connection before starting the remainder of the boot process. If the computer passes the POST, the computer may give a single beep (some computers may beep twice) as it starts and continue to boot. However, if the computer fails the POST, the computer will either not beep or generate a beep code that tells the user the source of the problem.
- dmidecode - reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard (see a sample output). This information typically includes system manufacturer, model name, serial number, BIOS version, asset tag as well as a lot of other details of varying level of interest and reliability depending on the manufacturer. This will often include usage status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the list of I/O ports (e.g. serial, parallel, USB).
Updating
- https://github.com/dell/biosdisk - Flashing Dell BIOS images on Linux systems
- flashrom - a utility for identifying, reading, writing, verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices.
Coreboot
to sort
- Booting a Self-signed Linux Kernel - Now that The Linux Foundation is a member of the UEFI.org group, I’ve been working on the procedures for how to boot a self-signed Linux kernel on a platform so that you do not have to rely on any external signing authority. After digging through the documentation out there, it turns out to be relatively simple in the end, so here’s a recipe for how I did this, and how you can duplicate it yourself on your own machine.
- https://github.com/Goldfish64/AudioPkg - a set of drivers/applications for supporting audio (currently only Intel HD audio) under UEFI.
CPU
See Computing
Memory
Bus /interface
- AllPinouts - a Web-based free content project to list cable and connectors pin-outs.
- https://github.com/BlokasLabs/libserialport - a minimal library written in C that is intended to take careof the OS-specific details when writing software that uses serial ports.By writing your serial code to use libserialport, you enable it to worktransparently on any platform supported by the library.The operations that are supported are:- Port enumeration (obtaining a list of serial ports on the system).- Obtaining port metadata (USB device information, Bluetooth address, etc).- Opening and closing ports.- Setting port parameters (baud rate, parity, etc).- Reading, writing and flushing data.- Obtaining error information.
RS232
I²C
- https://en.wikipedia.org/wiki/I²C - pronounced I-squared-C, is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial computer bus invented in 1982 by Philips Semiconductor (now NXP Semiconductors). It is widely used for attaching lower-speed peripheral ICs to processors and microcontrollers in short-distance, intra-board communication. Alternatively I²C is spelled I2C (pronounced I-two-C) or IIC (pronounced I-I-C). Since October 10, 2006, no licensing fees are required to implement the I²C protocol. However, fees are required to obtain I²C slave addresses allocated by NXP. Several competitors, such as Siemens AG (later Infineon Technologies AG, now Intel mobile communications), NEC, Texas Instruments, STMicroelectronics (formerly SGS-Thomson), Motorola (later Freescale, now merged with NXP), Nordic Semiconductor and Intersil, have introduced compatible I²C products to the market since the mid-1990s.
- lines: A user's guide to i2c
- https://en.wikipedia.org/wiki/System_Management_Bus - SMBus, defined by Intel in 1995, is a subset of I²C, defining a stricter usage. One purpose of SMBus is to promote robustness and interoperability. Accordingly, modern I²C systems incorporate some policies and rules from SMBus, sometimes supporting both I²C and SMBus, requiring only minimal reconfiguration either by commanding or output pin use.
SPI
- https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus - SPI, is a synchronous serial communication interface specification used for short distance communication, primarily in embedded systems. The interface was developed by Motorola in the mid 1980s and has become a de facto standard. Typical applications include Secure Digital cards and liquid crystal displays. SPI devices communicate in full duplex mode using a master-slave architecture with a single master. The master device originates the frame for reading and writing. Multiple slave devices are supported through selection with individual slave select (SS) lines.
Sometimes SPI is called a four-wire serial bus, contrasting with three-, two-, and one-wire serial buses. The SPI may be accurately described as a synchronous serial interface, but it is different from the Synchronous Serial Interface (SSI) protocol, which is also a four-wire synchronous serial communication protocol. SSI Protocol employs differential signaling and provides only a single simplex communication channel.
GPIO / pinctrl
- https://en.wikipedia.org/wiki/General-purpose_input/output - an uncommitted digital signal pin on an integrated circuit or electronic circuit board whose behavior—including whether it acts as input or output—is controllable by the user at run time. GPIOs have no predefined purpose and are unused by default. If used, the purpose and behavior of a GPIO is defined and implemented by the designer of higher assembly-level circuitry: the circuit board designer in the case of integrated circuit GPIOs, or system integrator in the case of board-level GPIOs.
- https://github.com/nettings/gpioctl - Control the ALSA mixer or generate JACK MIDI or OSC messages from rotary encoders and switches connected to GPIOs.
UART
- https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter - a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. The electric signaling levels and methods are handled by a driver circuit external to the UART. A UART is usually an individual (or part of an) integrated circuit (IC) used for serial communications over a computer or peripheral device serial port. One or more UART peripherals are commonly integrated in microcontroller chips. A related device, the universal synchronous and asynchronous receiver-transmitter (USART) also supports synchronous operation.
SCSI
/dev/bsg
PATA
SATA
PCI
- lspci is a utility for displaying information about PCI buses in the system and devices connected to them.
BNC
- https://en.wikipedia.org/wiki/BNC_connector - a miniature quick connect/disconnect radio frequency connector used for coaxial cable. It features two bayonet lugs on the female connector; mating is fully achieved with a quarter turn of the coupling nut. BNC connectors are used with miniature-to-subminiature coaxial cable in radio, television, and other radio-frequency electronic equipment, test instruments, and video signals. The BNC was commonly used for early computer networks, including ARCnet, the IBM PC Network, and the 10BASE2 variant of Ethernet. BNC connectors are made to match the characteristic impedance of cable at either 50 ohms or 75 ohms. They are usually applied for frequencies below 4 GHz and voltages below 500 volts
USB
- USB in a NutShell - Starting out new with USB can be quite daunting. With the USB 2.0 specification at 650 pages one could easily be put off just by the sheer size of the standard. This is only the beginning of a long list of associated standards for USB. There are USB Class Standards such as the HID Class Specification which details the common operation of devices (keyboards, mice etc) falling under the HID (Human Interface Devices) Class - only another 97 pages. If you are designing a USB Host, then you have three Host Controller Interface Standards to choose from. None of these are detailed in the USB 2.0 Spec.The good news is you don’t even need to bother reading the entire USB standard. Some chapters were churned out by marketing, others aimed at the lower link layer normally taken care off by your USB controller IC and a couple aimed at host and hub developers. Lets take a little journey through the various chapters of the USB 2.0 specification and briefly introduce the key points.
- pid.codes - a registry of USB PID codes for open source hardware projects. You can see a list of PID assignments, or learn how to get your own. [11]
- YouTube: William Light - Linux USB HID Interfacing in Userspace - wrl
- Electrical Engineering Stack Exchange connector - Why was Mini USB deprecated in favor of Micro USB?
- serialusb - a cheap USB proxy for input devices.This tool can act as a USB proxy using the well-known DIY USB adapter. Combined with usbmon and wireshark, it allows to generate and inspect USB captures. [13]
- GIMX - free software that allows to use a computer as a hub for your gaming devices. It works on Windows® and GNU/Linux platforms. It is compatible with Playstation® and Xbox® gaming consoles, and with gaming computers. The connection between the computer and the gaming platform is performed using a USB adapter – get one on the GIMX shop! – or a Bluetooth® dongle (PS3/PS4 only). The capabilities depend on the platform, the connection method, and the gaming platform.
- https://github.com/wcooley/usbrevue - a suite of tools for reverse-engineering USB devices.
Devices
- LUFA - Lightweight USB Framework for AVRs, formerly known as MyUSB, is my first foray into the world of USB. It is an open-source complete USB stack for the USB-enabled Atmel AVR8 and (some of the) AVR32 microcontroller series, released under the permissive MIT License (see documentation or project source for full license details). The complete line of Atmel USB AVRs and USB AVR boards are supported by the library, as are any custom user boards, via custom board hardware drivers supplied by the user.
- https://github.com/KernelEquinox/Teensyterpreter - A Teensy script to open up a reverse TCP shell on Windows machines in as little time as possible.
- https://github.com/hak5darren/USB-Rubber-Ducky - a Human Interface Device programmable with a simple scripting language allowing penetration testers to quickly and easily craft and deploy security auditing payloads that mimic human keyboard input. The source is written in C and requires the AVR Studio 5 IDE from atmel.com/avrstudio. Hardware is commercially available at hakshop.com. Tools and payloads can be found at usbrubberducky.com. Quack!
- Teensy USB - a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port.
- Hackaday: Plug Into USB, Get a Reverse Shell
- USBdriveby - a device you stylishly wear around your neck which can quickly and covertly install a backdoor and override DNS settings on an unlocked machine via USB in a matter of seconds. It does this by emulating a keyboard and mouse, blindly typing controlled commands, flailing the mouse pointer around and weaponizing mouse clicks.In this project, we'll learn how to exploit a system's blind trust in USB devices, and learn how a $20 Teensy microcontroller can evade various security settings on a real system, open a permanent backdoor, disable a firewall, control the flow of network traffic, and all within a few seconds and permanently, even after the device has been removed. [14]
- PICJUG - an open source replacement for the FT232 USB chip from FTDI. I designed it because I find that I often need a serial port, JTAG port and a couple of outputs when talking to an embedded system and didn’t like connecting multiple devices to achieve this result. Ultimately, I wanted to drop a single inexpensive part in to a design to achieve these goals. PICJUG is named after what it does. It’s a PIC J TAG, U ART and G PIO device.
Power
- YouTube: (12) Playing with USB Power Delivery
Linux
- https://www.kernel.org/doc/Documentation/usb/usbmon.txt - a facility in kernel which is used to collect traces of I/O on the USB bus. This function is analogous to a packet socket used by network monitoring tools such as tcpdump(1) or Ethereal. Similarly, it is expected that a tool such as usbdump or USBMon (with uppercase letters) is used to examine raw traces produced by usbmon.
- https://github.com/swetland/usbmon - commandline linux usbmon interface
- https://github.com/mvp/uhubctl - USB hub per-port power control
Security
- SyncStop / USB Condom - prevents accidental data exchange when your device is plugged into someone else’s computer or a public charging station. SyncStop achieves this by blocking the data pins on any USB cable and allowing only power to flow through. This minimizes opportunities to steal your data or install malware on your mobile device.SyncStop is the 'cased' version of the original USB Condom. We listened and spent some time designing and manufacturing our own enclosure. [16]
- USBGuard - software framework helps to protect your computer against rogue USB devices (a.k.a. BadUSB) by implementing basic whitelisting and blacklisting capabilities based on device attributes.
MTP
USB3
Hub
- https://github.com/dilshan/usb2-power-hub - 4-Port High Power USB 2.0 Hub [17]
IEEE 1394 / Firewire
lsmod | egrep 'firewire|1394'
- dvgrab is a program that captures DV video and audio data from digital camcorders via an IEEE1394 link. The DV data is stored in one or several files and can later be processed by video editing software. dvgrab can remote control the camcorder but it does not show the video's content on screen.
dvgrab --size 500 --autosplit <filename>
interactive mode;
dvgrab -i
live view;
dvgrab - | mplayer -
Thunderbolt
Bluetooth
See Radio#Bluetooth
M.2
InfiniBand
- https://en.wikipedia.org/wiki/InfiniBand - abbreviated IB, is a computer-networking communications standard used in high-performance computing that features very high throughput and very low latency. It is used for data interconnect both among and within computers. InfiniBand is also used as either a direct or switched interconnect between servers and storage systems, as well as an interconnect between storage systems.
Fibre Channel
- https://en.wikipedia.org/wiki/Fibre_Channel - or FC, is a high-speed network technology (commonly running at 1, 2, 4, 8, 16, 32, and 128 gigabit per second rates) primarily used to connect computer data storage to servers. Fibre Channel is mainly used in storage area networks (SAN) in commercial data centers. Fibre Channel networks form a switched fabric because they operate in unison as one big switch. Fibre Channel typically runs on optical fiber cables within and between data centers, but can also run on copper cabling.
Gen-Z
- https://en.wikipedia.org/wiki/Gen-Z - woeful article
D-sub
PCMCIA / PC Card
- https://en.wikipedia.org/wiki/PC_Card - a configuration for computer parallel communication peripheral interface, designed for laptop computers. Originally introduced as PCMCIA, the PC Card standard as well as its successors like CardBus were defined and developed by the Personal Computer Memory Card International Association (PCMCIA).
Input
- deskthority wiki - dedicated to mechanical keyboards, mice and other human interface devices. The main focus is everything regarding quality (mechanical) keyboards. In the nature of a wiki, the content will be frequently and constantly under construction. Want to share your knowledge and help us create the best input device wiki? This wiki is part of the deskthority forum - sign in with your forum account and start editing!
- MOUSEJACK - Wireless Mouse Hacks & Network Security Protection | Mousejack - a class of vulnerabilities that affects the vast majority of wireless, non-Bluetooth keyboards and mice. These peripherals are 'connected' to a host computer using a radio transceiver, commonly a small USB dongle. Since the connection is wireless, and mouse movements and keystrokes are sent over the air, it is possible to compromise a victim's computer by transmitting specially-crafted radio signals using a device which costs as little as $15.
- https://github.com/insecurityofthings/jackit - a partial implementation of Bastille's MouseJack exploit
Mouse
- https://github.com/cdobrich/btnx - a daemon that enables rerouting of mouse button events through uinput as keyboard and other mouse button combinations. btnx requires btnx-config, a configuration tool for btnx. See cdobrich/btnx-config for more details.
Trackpad
Scanner
Infrared
- http://www.usb.org/developers/hidpage/ - pdf
- http://www.freebsddiary.org/APC/usb_hid_usages.php - hex
- http://www.kvazi-k700i.narod.ru/info_hid.html - hex and decimal
Flirc
- https://flirc.tv - Flirc USB learns from any remote control, not caring about different vendor protocols. Just walk through the super simple setup - pairing individual remote buttons with 'Media Centre Buttons' and you're done. It's basically a universal IR receiver, so can be used with any remote you choose, old, new or Universal! The best part about FLIRC is that it can be used to mimic a keyboard so every media center application understands it without any drivers. FLIRC runs across all platforms, Mac, Linux, and Windows.
- irplus - Irdroid - free application for the Android Operating System which aims to reproduce infrared signals of various remote controls exactly as they are sent from the original remote. This is achieved by supporting widely-known representation formats for infrared codes like LIRC, PRONTO, RAW or proprietary formats found in some specification of manufacturers. Furthermore each layout of a remote-set can be customized with nearly endless possibilities via importable and exportable XML files. Codesets for remote controls can be gathered by following the guide i have provided under the "New codes" section. Irplus comes with minimal permissions required.
- https://github.com/yolanother/android-lircd - Android port of lircd
Wii Remote
- https://en.wikipedia.org/wiki/Wii_Remote - known colloquially as the Wiimote, is the primary controller for Nintendo's Wii console. A main feature of the Wii Remote is its motion sensing capability, which allows the user to interact with and manipulate items on screen via gesture recognition and pointing through the use of accelerometer and optical sensor technology. Another feature is its expandability through the use of attachments. The attachment bundled with the Wii console is the Nunchuk, which complements the Wii Remote by providing functions similar to those in gamepad controllers.
Gesture
- The Wekinator - free, open source software originally created in 2009 by Rebecca Fiebrink. It allows anyone to use machine learning to build new musical instruments, gestural game controllers, computer vision or computer listening systems, and more. The Wekinator allows users to build new interactive systems by demonstrating human actions and computer responses, instead of writing programming code.
Breath
- https://github.com/jasonwebb/openSipPuff - Simple, low-cost "sip and puff" USB interface for expressive interactions, enabling breath-based control of keypresses, mouse actions and much more using USB HID.
Output
See also *nix#Printing
Video card
- https://www.notebookcheck.net/Comparison-of-Laptop-Graphics-Cards.130.0.html
- https://www.notebookcheck.net/Mobile-Graphics-Cards-Benchmark-List.844.0.html
- https://github.com/mntmn/amiga2000-gfxcard - MNT VA2000, an Open Source Amiga Graphics Card (Zorro II/III), written in Verilog [22]
- http://www.free3d.org - 3D Graphics hardware performance using Free Software drivers (X.Org DRI)
https://github.com/klogg/fl2000_drm - Linux kernel FL2000DX/IT66121FN dongle DRM driver
Connectors
Display
- https://en.wikipedia.org/wiki/Display_device - an output device for presentation of information in visual[1] or tactile form (the latter used for example in tactile electronic displays for blind people). When the input information that is supplied has an electrical signal the display is called an electronic display.Common applications for electronic visual displays are television sets or computer monitors.
- * https://en.wikipedia.org/wiki/VESA_Display_Power_Management_Signaling - or DPMS, is a standard from the VESA consortium for power management of video monitors. Example usage includes turning off, or putting the monitor into standby after a period of idle time to save power. Some commercial displays also incorporate this technology. VESA issued DPMS 1.0 in 1993, basing their work on the United States Environmental Protection Agency's (EPA) earlier Energy Star power management specifications. Subsequent revisions were included in future VESA BIOS Extensions.
- https://en.wikipedia.org/wiki/Display_Data_Channel - or DDC, is a collection of protocols for digital communication between a computer display and a graphics adapter that enable the display to communicate its supported display modes to the adapter and that enable the computer host to adjust monitor parameters, such as brightness and contrast.The standard was created by the Video Electronics Standards Association (VESA). The DDC suite of standards aims to provide a "plug and play" experience for computer displays. DDC1 and DDC2B/Ab/B+/Bi protocols are a physical link between a monitor and a video card, which was originally carried on either two or three pins in a 15-pin analog VGA connector.
Enhanced Display Data Channel (E-DDC) is the most recent revision of the DDC standard. Version 1 was introduced in September 1999 and featured the addition of a segment pointer which allowed up to 32 Kbytes of display information storage for use by the Enhanced EDID (E-EDID) standard. Earlier DDC implementations used simple 8-bit data offset when communicating with the EDID memory in the monitor, limiting the storage size to 28 bytes = 256 bytes, but allowing the use of cheap 2-Kbit EEPROMs. In E-DDC, a special I²C addressing scheme was introduced, in which multiple 256-byte segments could be selected. To do this, a single 8-bit segment index is passed to the display via the I²C address 30h. (Because this access is always a write, the first I²C octet will always be 60h.) Data from the selected segment is then immediately read via the regular DDC2 address using a repeated I²C 'START' signal. However, VESA specification defines the segment index value range as 00h to 7Fh, so this only allows addressing 128 segments × 256 bytes = 32 KiB. The segment index register is volatile, defaulting to zero and automatically resetting to zero after each NACK or STOP. Therefore, it must be set every time access to data above the first 256-byte segment is performed. The auto-reset mechanism is to provide for backward compatibility to, for example, DDC2B hosts, otherwise they may be stuck at a segment other than 00h in some rare cases.
Other important changes were removal of the DDC1 and DDC2Ab protocols, deprecation of separate VESA P&D and FPDI device addresses, and clarifications to the DDC power requirements. E-DDC Version 1.1, approved March 2004, featured support for HDMI and consumer electronics. E-DDC Version 1.2, approved December 2007, introduced support for DisplayPort (which has no dedicated DDC2B links and uses its bidirectional auxiliary channel for EDID and MCCS communication) and DisplayID standards. E-DDC Version 1.3 from September 2017 contains corrections for errata and minor clarifications.
- ddcutil - a Linux program for managing monitor settings, such as brightness, color levels, and input source. Generally speaking, any settings that can be changed by pressing buttons on the monitor can be modified by ddcutil.ddcutil primarily uses DDC/CI (Display Data Channel Command Interface) to communicate with monitors implementing MCCS (Monitor Control Command Set) over I2C. Normally, the video driver for the monitor exposes the I2C channel as devices named /dev/i2c-n. Alternatively, there is support for monitors (such as Eizo ColorEdge displays) that implement MCCS using a USB connection. See USB Connected Monitors.A particular use case for ddcutil, and the one that inspired its development, is as part of color profile management. Monitor calibration is relative to the monitor color settings currently in effect, e.g. red gain. ddcutil allows color related settings to be saved at the time a monitor is calibrated, and then restored when the calibration is applied.
- https://en.wikipedia.org/wiki/Extended_display_identification_data - EDID, is a companion standard; it defines a compact binary file format describing the monitor's capabilities and supported graphics modes, stored in a read-only memory (EEPROM) chip programmed by the manufacturer of the monitor. The format uses a description block containing 128 bytes of data, with optional extension blocks to provide additional information. The most current version is Enhanced EDID (E-EDID) Release A, v2.0. The first version of the DDC standard was adopted in August 1994. It included the EDID 1.0 format and specified DDC1, DDC2B and DDC2Ab physical links. DDC version 2, introduced in April 1996, split EDID into a separate standard and introduced the DDC2B+ protocol. DDC version 3, December 1997, introduced the DDC2Bi protocol and support for VESA Plug and Display and Flat Panel Display Interface on separate device addresses, requiring them to comply with EDID 2.0. The DDC standard has been superseded by E-DDC in 1999.
- read-edid - a pair of tools (originally by John Fremlin) for reading the EDID from a monitor. It should work with most monitors made since 1996, assuming the video card supports the standard read commands (most do). read-edid is a set of two tools - get-edid, which gets the raw edid information from the monitor, and parse-edid, which turns the raw binary information into a xorg.conf-compatible monitor section (Modelines also compatible with xrandr). As of read-edid version 2.0.0, the lrmi code has been replaced by libx86 code - same syntax, but allows for use on many more architectures. For powerpc, there is a /proc interface, /proc/device-tree/pci/{video-card}/EDID, which you can pipe to parse-edid. Some architectures, AFAIK, may be stuck with only parse-edid. As of read-edid version 3.0.0, there have been significant code rewrites, including a new I²C-based interface that tends to work much better and in many more cases than the old interface (still included). If you had problems before, this will likely fix them.
- Pective - display the actual size of any item right on your monitor. All you have to do is specify your monitor size, and Pective will display the image life-size!
Display
- http://en.wikipedia.org/wiki/Fourteen-segment_display
- http://en.wikipedia.org/wiki/Sixteen-segment_display
- http://www.youtube.com/watch?v=LT7nj2Rl4kU
- http://www.youtube.com/watch?v=dqehSmfWK1o
- http://www.youtube.com/watch?v=CMBtZh7suvU
- http://www.youtube.com/watch?v=tS8tK9AS6WE - cgi
diy;
- http://blog.makezine.com/2012/07/18/super-fast-electromagnetic-flip-dot-display/
- http://forums.adafruit.com/viewtopic.php?f=8&p=113228
- http://www.designboom.com/technology/interactive-high-speed-flip-dot-display-by-breakfast/
vga to d-tv;
- https://en.wikipedia.org/wiki/FreeSync - an adaptive sync technology initially developed by AMD in response to NVidia's G-Sync for LCD displays that reduces screen tearing. FreeSync is royalty-free, free to use, and has no performance penalty. As of 2015, VESA has adopted FreeSync as an optional component of the DisplayPort 1.2a specification. FreeSync has a dynamic refresh rate range of 9-240Hz.
Laser
3D printing
Media
See also Audio, Video, Streaming
pcskr
Laptop
Mobile
Dasher
- Dasher - an information-efficient text-entry interface, driven by natural continuous pointing gestures. Dasher is a competitive text-entry system wherever a full-size keyboard cannot be used - for example: when operating a computer one-handed, by joystick, touchscreen, trackball, or mouse; when operating a computer with zero hands (i.e., by head-mouse or by eyetracker); on a palmtop computer; on a wearable computer. The eyetracking version of Dasher allows an experienced user to write text as fast as normal handwriting - 29 words per minute; using a mouse, experienced users can write at 39 words per minute. Dasher can be used to write efficiently in any language. Dasher is fast and fun to learn.
Opengazer
- Opengazer - an open source application that uses an ordinary webcam to estimate the direction of your gaze. This information can then be passed to other applications. For example, used in conjunction with Dasher, opengazer allows you to write with your eyes. Opengazer aims to be a low-cost software alternative to commercial hardware-based eye trackers.
Wearable
"People love exclusivity, but with an air of egalitarianism."
- https://news.ycombinator.com/item?id=17214986 - haptic phonemes
- https://github.com/Foaly/UltrasonicHearing - Ultrasonic hearing for the Teensy 3.6
Mirror
MagicMirror
- MagicMirror² - an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant.
Smart-Mirror
AI-Smart-Mirror
Smart Mirror
- Smart Mirror - A voice controlled life automation hub, most commonly powered by the Raspberry Pi.
Sensor
- psensor - a graphical hardware temperature monitor for Linux.
- Waggle - An Open Platform for Edge Computing and Intelligent Sensors
Multicoptor
- ArduPilot - the most advanced, full-featured and reliable open source autopilot software available. It has been developed over 5+ years by a team of diverse professional engineers and computer scientists. It is the only autopilot software capable of controlling any vehicle system imaginable, from conventional airplanes, multirotors, and helicopters, to boats and even submarines. And now being expanded to feature support for new emerging vehicle types such as quad-planes and compound helicopters.