The Single Board Computer Database
Contributing to the database
HackerBoards (Board-DB) database is open source, and external contributions help sustain the quality of its content. The approval of new boards, or changes to existing records, will go through GitLab "merge requests".
License and disclaimer
The HackerBoards database is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License
(CC BY-SA 4.0). Restricted usage is permitted but explicit attribution and linking to the original source is required.
We accept no responsibility or liability for any omissions or inaccuracies in the database, and we reserve the right to remove or modify any content at any time.
In general, the principle of "use at your own risk" holds true in all parts and subprojects of HackerBoards.
How to help
The HackerBoards database is a community effort, and we welcome contributions from everyone. Also minor corrections (e.g. single incorrect specifications) are very welcome.
To add a new board:
-
Fork the database from GitLab (https://gitlab.com/hackerboards/database):
git clone https://gitlab.com/hackerboards/database.git
-
Download the
new-board.yaml
file from this link if you wish to use it as a starting point for the new board. -
Move the template file to the target folder, that is, following the
dataset/{manufacturer}/{product}.yaml
structure of the repository.
If a manufacturer does not exist, feel free to create a new folder for it, as well as its corresponding record indataset/manufacturer.yaml
. - Populate the columns and fulfill any relationships needed. In a finished file, no default or "TODO" columns should remain. (check out the Glossary of YAML fields below)
-
If there are ambiguous specifications that the schema can't address, and that are not solved in the Merge Request thread, use the
_notes
field to add comments. This can be a multi-line field for readability. -
Remove all remaining guidelines and comments (lines starting with
#
) from the file after you are done populating it. -
Stage all new file (or files) to the database, and create a new commit.
The name of the commit should be either
{manufacturer}/{product}: new board
for new insertions, or{manufacturer}/{product}: {...}
for updates or corrections. If you are adding multiple boards, you can use wildcards in the{manufacturer}
or{product}
parts as long as they are readable, e.g.pine64/star64-*: fix wireless specs
-
Proofread all changes, and try to make sure your YAML fields and commit follow the conventions of existing entries.
In case you get something wrong, correct your commit through the conventional
git commit --amend
procedure. - If you are editing or correcting a board entry, please make sure to link to the original source of the information (e.g. datasheet with the right specification). This avoids doing the same research twice.
- Finally, create a merge request 🎉 . Please try to provide as much information as possible, to avoid too many lengthy rounds of review, and double-check before committing.
Discontinuing old boards
To keep the database clean while remaining available as an archive and resource of past products, there is a deprecated
flag to indicate boards that are not commercially available or supported anymore.
If you are deprecating a board, please use the deprecated
flag in the YAML file, and a commit message of the form
{manufacturer}/{product}: mark as discontinued
Relationships between boards
If relationships between fields exist (see the Relation column in the glossary below), they should be fulfilled in the respective linked file (e.g.dataset/manufacturer.yaml
for new manufacturer entries).
This is often as easy as entering the value of the field in the linked YAML, and its respective details, only if that entry does not exist already.
YAML fields glossary
Finally, here is a brief reference of all fields in the YAML schema.
Field | Type | Default | Unit | Relation | Description |
---|---|---|---|---|---|
name
|
string
|
|
Name of the board (e.g. Raspberry Pi 3 Model B) | ||
manufacturer
|
reference
|
null
|
manufacturer.yaml
|
Manufacturer | |
_date_added
|
date
|
False
|
When this board has been added to the database. (So far, this is not strict, but should be as close as possible to the MR date) | ||
_deprecated
|
boolean
|
false
|
Board is discontinued or no longer supported by manufacturer | ||
_description
|
string
|
null
|
Long description of the board (ideally 3-5 sentences) | ||
_links
|
json
|
[]
|
Links - TODO | ||
_notes
|
string
|
|
Internal notes - for maintainers and future contributors, e.g. about some bus or connector which is not yet supported by the schema | ||
_slug
|
string
|
|
Board identifier for URL, in the form of {manufacturer}-{name}. Letters should be lowercase, numbers and dashes should be used as separators. Look at the existing boards for examples. | ||
_price
|
integer
|
0
|
USD | Board official (retail / catalog) price | |
_url
|
string
|
|
Board official URL. Permalink, please link to the official product page and remove any tracking parameters | ||
_visibility
|
boolean
|
true
|
Visibility of the board. 0 = hidden, 1 = visible | ||
audio_i2s
|
integer
|
0
|
count | I2S audio channels | |
audio_line_in
|
integer
|
0
|
count | Line-in audio channels | |
audio_mic_in
|
integer
|
0
|
count | Microphone audio channels | |
audio_mic_onboard
|
integer
|
0
|
count | Onboard microphone audio channels | |
audio_outputs
|
integer
|
0
|
count | Audio analog output channels | |
audio_spdif_in
|
integer
|
0
|
count | SPDIF audio input channels | |
audio_spdif_out
|
integer
|
0
|
count | SPDIF audio output channels | |
camera_count
|
integer
|
0
|
count | Camera inputs (all types) | |
camera_mipi
|
integer
|
0
|
count | Camera inputs (MIPI CSI) | |
camera_parallel
|
integer
|
0
|
count | Camera inputs (parallel) | |
certs
|
json
|
null
|
Certifications | ||
cpu_architecture
|
reference
|
null
|
architecture.yaml
|
CPU architecture | |
cpu_board_mcu
|
reference
|
null
|
mcu.yaml
|
On-board MCU (Microcontroller Unit) model | |
cpu_board_mcu_count
|
integer
|
0
|
count | On-board MCU (Microcontroller Unit) | |
cpu_cluster1_core
|
reference
|
null
|
core.yaml
|
CPU - Primary cluster - core type | |
cpu_cluster1_count
|
integer
|
0
|
count | CPU - Primary cluster - core count | |
cpu_cluster1_speed
|
integer
|
0
|
MHz | CPU - Primary cluster - core speed in MHz | |
cpu_cluster2_core
|
reference
|
null
|
core.yaml
|
CPU - Secondary cluster - core type | |
cpu_cluster2_count
|
integer
|
null
|
count | CPU - Secondary cluster - core count | |
cpu_cluster2_speed
|
integer
|
null
|
MHz | CPU - Secondary cluster - core speed in MHz | |
cpu_cluster3_core
|
reference
|
null
|
core.yaml
|
CPU - Tertiary cluster - core type | |
cpu_cluster3_count
|
integer
|
null
|
count | CPU - Tertiary cluster - core count | |
cpu_cluster3_speed
|
integer
|
null
|
MHz | CPU - Tertiary cluster - core speed in MHz | |
cpu_embedded_mcu
|
reference
|
null
|
mcu.yaml
|
Embedded MCU (inside the SoC) - model | |
cpu_embedded_mcu_count
|
integer
|
0
|
count | Embedded MCUs (inside the SoC) | |
cpu_fpga
|
reference
|
null
|
fpga.yaml
|
FPGA - model | |
cpu_fpga_count
|
integer
|
0
|
count | FPGAs | |
cpu_npu
|
reference
|
null
|
npu.yaml
|
Neural Processing Unit (NPU) | |
cpu_npu_count
|
integer
|
0
|
count | Neural Processing Units (NPUs) | |
cpu_soc
|
reference
|
null
|
soc.yaml
|
System on Chip (SoC) | |
ethernet_count
|
integer
|
0
|
count | Ethernet ports (all, with SFP) | |
ethernet_100
|
integer
|
0
|
count | Ethernet ports - 100 Mbps support | |
ethernet_1000
|
integer
|
0
|
count | Ethernet ports - 1000 Mbps / Gigabit support | |
ethernet_10000
|
integer
|
0
|
count | Ethernet ports - 10000 Mbps / 10 Gigabit support | |
ethernet_40000
|
integer
|
0
|
count | Ethernet ports - 40000 Mbps / 40 Gigabit support | |
ethernet_100000
|
integer
|
0
|
count | Ethernet ports - 100000 Mbps / 100 Gigabit support | |
ethernet_200000
|
integer
|
0
|
count | Ethernet ports - 100000 Mbps / 100 Gigabit support | |
ethernet_2500
|
integer
|
0
|
count | Ethernet ports - 2500 Mbps / 2.5 Gigabit support | |
ethernet_5000
|
integer
|
0
|
count | Ethernet ports - 5000 Mbps / 5 Gigabit support | |
ethernet_400000
|
integer
|
0
|
count | Ethernet ports - 400000 Mbps / 400 Gigabit support | |
ethernet_bootable
|
boolean
|
false
|
Ethernet ports - The board can boot over ethernet using PXE | ||
ethernet_copper
|
integer
|
0
|
Ethernet ports - Number of copper ports | ||
ethernet_poe_active
|
boolean
|
false
|
Ethernet ports - PoE (Power over Ethernet) - active | ||
ethernet_poe_passive
|
boolean
|
false
|
Ethernet ports - PoE (Power over Ethernet) - passive | ||
ethernet_sfp
|
integer
|
0
|
count | Ethernet ports - SFP (Small Form-factor Pluggable) support | |
ethernet_slots
|
integer
|
0
|
count | Ethernet slots - TODO | |
ethernet_wol
|
boolean
|
false
|
Ethernet ports - Wake-on-LAN (WOL) support | ||
formfactor
|
reference
|
null
|
formfactor.yaml
|
Form factor | |
gpio_adc_count
|
integer
|
0
|
count | ADC (Analog to Digital Converters) pins | |
gpio_can_count
|
integer
|
0
|
count | CAN bus channels | |
gpio_compatible_hat
|
boolean
|
false
|
Pin header - compatibility with Raspberry Pi HAT | ||
gpio_compatible_shield
|
boolean
|
false
|
Pin header - compatibility with Arduino shield | ||
gpio_dac_count
|
integer
|
0
|
count | Analog-to-digital converters | |
gpio_count
|
integer
|
0
|
count | General-purpose input/output (GPIO) pins EXCLUDING power pins | |
gpio_i2c_count
|
integer
|
0
|
count | I/O - Inter-Integrated Circuit (I2C) interfaces | |
gpio_pwm_count
|
integer
|
0
|
count | I/O - PWM (Pulse Width Modulation) interfaces | |
gpio_spi_count
|
integer
|
0
|
count | SPI interfaces (not counting the ones used for flash) | |
gpio_uart_count
|
integer
|
0
|
count | UART interfaces | |
gpu
|
reference
|
null
|
gpu.yaml
|
GPU - model | |
gpu_count
|
integer
|
0
|
count | GPUs core count | |
gpu_speed
|
integer
|
0
|
MHz | GPU - speed | |
ir_receiver
|
boolean
|
false
|
Infrared (IR) receiver | ||
ir_transmitter
|
boolean
|
false
|
Infrared (IR) transmitter | ||
memory_ddr
|
boolean
|
false
|
Memory - DDR (first generation) | ||
memory_ddr2
|
boolean
|
false
|
Memory - DDR2 | ||
memory_ddr3
|
boolean
|
false
|
Memory - DDR3 | ||
memory_ddr3l
|
boolean
|
false
|
Memory - DDR3L | ||
memory_ddr4
|
boolean
|
false
|
Memory - DDR4 | ||
memory_ddr4lp
|
boolean
|
false
|
Memory - DDR4LP | ||
memory_ddr5
|
boolean
|
false
|
Memory - DDR5 | ||
memory_ecc
|
boolean
|
false
|
Memory - Error Correction Code (ECC) support | ||
memory_max
|
integer
|
0
|
B | Memory - maximum supported (or installed, if soldered) | |
memory_slots
|
integer
|
0
|
count | Physical DIMM slots for removable memory | |
memory_sodimm
|
boolean
|
false
|
Memory - SODIMM (Small Outline Dual Inline Memory Module) | ||
memory_speed
|
integer
|
0
|
MHz | Memory - speed | |
mounting_holes
|
boolean
|
false
|
Mounting holes | ||
pmic
|
string
|
|
Power Management IC (PMIC) | ||
power_battery_connector
|
boolean
|
false
|
Battery connector | ||
power_battery_type
|
reference
|
null
|
Battery type | ||
power_input_current_max
|
float
|
0
|
A | Input current - maximum / peak consumption | |
power_input_current_min
|
float
|
0
|
A | Input current - minimum / idle consumption | |
power_input_voltage_max
|
float
|
0
|
V | Input voltage - maximum | |
power_input_voltage_min
|
float
|
0
|
V | Input voltage - minimum | |
rtc
|
boolean
|
false
|
Real Time Clock (RTC) onboard | ||
sata_bootable
|
boolean
|
false
|
SATA - bootable | ||
sata_count
|
integer
|
0
|
count | SATA - interfaces | |
sata_revision
|
integer
|
0
|
revision | SATA - revision (e.g. 3) | |
sata_slots
|
integer
|
0
|
count | SATA - slots | |
sata_m2_slots
|
integer
|
0
|
count | SATA - M.2 slots | |
sd_bootable
|
boolean
|
false
|
SD(IO) - bootable | ||
sd_count
|
integer
|
0
|
count | SD(IO) - interfaces | |
sd_interface
|
reference
|
null
|
storageinterface.yaml
|
SD(IO) - interface type | |
sd_slots
|
integer
|
0
|
count | SD(IO) - slots | |
size_depth
|
integer
|
0
|
mm | Board dimensions - Depth | |
size_width
|
integer
|
0
|
mm | Board dimensions - width | |
size_height
|
integer
|
0
|
mm | Board dimensions - height | |
software_android
|
string
|
|
Software - Android support (version, if any) | ||
software_linux
|
boolean
|
false
|
Software - Linux support | ||
software_linux_distros
|
string
|
|
Software - Linux distributions supported (comma-separated list) | ||
software_linux_mainline
|
boolean
|
false
|
Software - Linux mainline support | ||
software_operating_systems
|
array
|
[]
|
operatingsystem.yaml
|
Software - Operating systems supported (e.g. Linux distros) | |
software_other
|
string
|
|
Software - Other operating systems supported (comma-separated list) | ||
software_windows
|
string
|
|
Software - Windows support (version, if any) | ||
storage_emmc_bootable
|
boolean
|
false
|
Storage - Embedded MultiMediaCard (eMMC) - bootable | ||
storage_emmc_count
|
integer
|
0
|
count | Storage - Embedded MultiMediaCard (eMMC) | |
storage_emmc_interface
|
reference
|
null
|
storageinterface.yaml
|
Storage - Embedded MultiMediaCard (eMMC) - interface type | |
storage_emmc_size
|
integer
|
0
|
MB | Storage - Embedded MultiMediaCard (eMMC) - size | |
storage_emmc_slotted
|
boolean
|
false
|
Storage - Embedded MultiMediaCard (eMMC) - slotted | ||
storage_spiflash_bootable
|
boolean
|
false
|
SPI flash - bootable | ||
storage_spiflash_size
|
integer
|
0
|
MiB | SPI flash - size | |
temperature_max
|
integer
|
null
|
Celsius degrees | Operating temperature - maximum (of range) | |
temperature_min
|
integer
|
null
|
Celsius degrees | Operating temperature - minimum (of range) | |
usb_bootable
|
boolean
|
false
|
USB - bootable | ||
usb_count
|
integer
|
0
|
count | USB - interfaces (total) | |
usb_device
|
integer
|
0
|
USB - device (client) interfaces | ||
usb_hosts
|
integer
|
0
|
count | USB - host (server) supported interfaces | |
usb_otg
|
integer
|
0
|
count | USB - OTG-supported interfaces | |
usb_slots
|
integer
|
0
|
count | USB - slots | |
usb_superspeed
|
integer
|
0
|
count | USB - SuperSpeed (3.x / 4.x) supported interfaces | |
usb_typec
|
integer
|
0
|
count | USB - Type-C supported interfaces | |
display_count
|
integer
|
0
|
count | Display outputs (all types) - TODO | |
video_composite_count
|
integer
|
0
|
count | Composite (CVBS) video outputs | |
video_composite_slots
|
integer
|
0
|
count | TODO | |
video_displayport_connector
|
reference
|
null
|
displayconnector.yaml
|
Display outputs - connector | |
video_displayport_count
|
integer
|
0
|
count | DisplayPort outputs | |
video_displayport_slots
|
integer
|
0
|
count | DisplayPort slots | |
video_displayport_standard
|
reference
|
null
|
displayinterface.yaml
|
Display outputs - interface standard | |
video_dpi_count
|
integer
|
0
|
count | Display outputs - parallel interface (DPI) | |
video_dpi_standard
|
reference
|
null
|
displayinterface.yaml
|
Display outputs - parallel interface (DPI) - standard | |
video_dsi_count
|
integer
|
0
|
count | Display outputs - DSI | |
video_dsi_standard
|
reference
|
null
|
displayinterface.yaml
|
Display outputs - DSI - standard | |
video_hdmi_connector
|
reference
|
null
|
displayconnector.yaml
|
Display - HDMI - connector type | |
video_hdmi_count
|
integer
|
0
|
count | Display - HDMI | |
video_hdmi_slots
|
integer
|
0
|
count | Display - HDMI - slots | |
video_hdmi_standard
|
reference
|
null
|
displayinterface.yaml
|
Display - HDMI - standard | |
video_lvds_count
|
integer
|
0
|
count | Display - Low Voltage Differential Signaling (LVDS) - interfaces | |
video_lvds_standard
|
reference
|
null
|
displayinterface.yaml
|
Display - Low Voltage Differential Signaling (LVDS) - standard type | |
video_svideo_count
|
integer
|
0
|
count | S-Video interfaces | |
video_svideo_slots
|
integer
|
0
|
count | S-Video slots | |
video_vga_connector
|
reference
|
null
|
displayconnector.yaml
|
VGA - connector type | |
video_vga_count
|
integer
|
0
|
count | VGA - interfaces | |
video_vga_slots
|
integer
|
0
|
count | VGA - slots | |
wireless_bluetooth_audio
|
boolean
|
false
|
Bluetooth audio support | ||
wireless_bluetooth_ble
|
boolean
|
false
|
Bluetooth BLE support | ||
wireless_bluetooth_onboard
|
boolean
|
false
|
Onboard Bluetooth support | ||
wireless_bluetooth_version
|
string
|
null
|
Bluetooth version (max, major.minor, e.g. 4.2) | ||
wireless_lora_onboard
|
boolean
|
false
|
Wireless - Onboard LoRa (Long Range) modem | ||
wireless_mobile_modem_onboard
|
boolean
|
false
|
Wireless - Onboard mobile broadband (cellular) modem | ||
wireless_wifi_2g_level
|
integer
|
0
|
level | WiFi - 2.4 GHz support. 0 = no support, 1 = b, 2 = g, 3 = n, 4 = ac | |
wireless_wifi_5g_level
|
integer
|
0
|
level | WiFi - 5 GHz support. 0 = no support, 1 = a, 2 = n, 3 = ac, 4 = ax | |
wireless_wifi_chains
|
integer
|
0
|
count | WiFi - number of chains (TODO) | |
wireless_wifi_external_antenna
|
boolean
|
false
|
WiFi - external antenna connector | ||
wireless_wifi_onboard
|
boolean
|
false
|
Wireless - Onboard WiFi |