
H616 devboard
Bogdan8266/h616-board
8-layer Allwinner H616/618 SBC with DDR3, USB, Wi-Fi/BT and battery power support, designed for embedded Linux.

Runtime directories are created by the installers under /var/lib/rustyjack: loot/ (Wireless, Ethernet, reports), wifi/profiles/, DNSSpoof/captures/, and guiconf.json (pins, colors, settings).
Rustyjack h616 is an open-source printed circuit board by Iwan-Teague, from the Iwan-Teague/Rustyjack repository on GitHub. It is a 4-layer board of 26.5 × 72.5 mm with 125 parts on 264 nets, routed with 3,122 tracks and 406 vias.
It is built around the H616, AXP305B and SP0502BAHTG. Its parts include 69 capacitors, 26 resistors, 5 inductors, 4 ICs and 4 diodes.
Portable Raspberry Pi Zero 2 W network toolkit with a Waveshare 1.44" LCD + joystick UI. Written in Rust, shipped as an unprivileged UI service backed by a privileged daemon. Additional documentation is in
logs/done/ (current) and logs/outdated/ (historical).
Authorized testing and education only. Verify permissions before running any operation.
crates/rustyjack-ui/src/main.rs); designed for a Pi Zero 2 W with an Ethernet HAT.rustyjack-ui.service (unprivileged) with RUSTYJACK_DISPLAY_ROTATION=landscape by default.iptables binary dependency).crates/rustyjack-ui/ LCD UI: menus, rendering, GPIO buttons, dashboards
crates/rustyjack-core/ Orchestrator CLI: Wi-Fi/Ethernet ops, hotspot, MITM, loot, autopilot, system update, anti-forensics
crates/rustyjack-wireless/ Native wireless ops (nl80211 monitor/injection, deauth, PMKID, karma, evil twin, hotspot, cracking helpers)
crates/rustyjack-evasion/ MAC/hostname evasion, vendor-aware MAC generation, TX power/passive helpers
crates/rustyjack-ethernet/ LAN discovery, TCP port scan, banner grabs, inventory helpers
crates/rustyjack-netlink/ Pure Rust networking: interfaces, routes, DHCP, DNS, ARP, rfkill, nf_tables
crates/rustyjack-ipc/ IPC protocol types and endpoints
crates/rustyjack-daemon/ Privileged daemon with IPC dispatch
crates/rustyjack-client/ Unix socket client library
crates/rustyjack-portal/ Captive portal HTTP server (Axum-based)
crates/rustyjack-wpa/ WPA/WPA2 handshake processing (PBKDF2, HMAC-SHA1)
crates/rustyjack-encryption/ AES-GCM encryption for loot
crates/rustyjack-commands/ CLI/IPC command definitions
DNSSpoof/ Captive portal templates (not a Rust crate - HTML/JS templates)
scripts/ Wi-Fi driver installer, USB hotplug helper, FDE scripts (udev rule included)
wordlists/ Bundled password lists for handshake cracking
img/ Splash assets for the LCD (`rustyjack.png`)
services/rustyjack-ui.service Systemd unit (unprivileged UI, sets display backend/rotation and RUSTYJACK_ROOT)
services/rustyjackd.service Systemd unit (root daemon, privileged operations + IPC)
services/rustyjack-portal.service Systemd unit (captive portal server, unprivileged)
install_rustyjack*.sh Production/dev/prebuilt installers for Pi OS targetsRuntime directories are created by the installers under /var/lib/rustyjack:
loot/ (Wireless, Ethernet, reports), wifi/profiles/, DNSSpoof/captures/, and gui_conf.json (pins, colors, settings).
Anti-Forensics (crates/rustyjack-core/src/anti_forensics.rs):
Physical Access (crates/rustyjack-core/src/physical_access.rs):
USB Operations (crates/rustyjack-core/src/mount.rs):
Full Disk Encryption (scripts/fde_*.sh):
Process Management:
RUSTYJACK_DISPLAY_ROTATION=landscape (default); set to portrait to rotate back.gpioset gpiochip0 24=1./boot/firmware/config.txt (or /boot/config.txt): gpio=6,19,5,26,13,21,20,16=pu.Display pins (from crates/rustyjack-ui/src/display.rs):
| Signal | BCM GPIO | Notes |
|---|---|---|
| DC | 25 | Data/command select |
| RST | 27 | Reset (active low) |
| BL | 24 | Backlight control |
| SPI | spidev0.0 (SCLK 11, MOSI 10, CS 8) |
Input pins (defaults from crates/rustyjack-ui/src/config.rs):
| Control | BCM GPIO | Purpose |
|---|---|---|
| UP | 6 | Joystick up |
| DOWN | 19 | Joystick down |
| LEFT | 5 | Back |
| RIGHT | 26. | Select/forward |
| PRESS | 13 | Center press (select) |
| KEY1 | 21 | Refresh/redraw |
| KEY2 | 20 | Cancel (no-op in menus; cancels dialogs/ops) |
| KEY3 | 16 | Reboot confirmation dialog |
Pins and colors can be customized in gui_conf.json; defaults are created automatically.
| Button | Action in UI |
|---|---|
| Up / Down | Move selection |
| Left | Back/exit dialog |
| Right / Center press | Select/confirm |
| Key1 | Refresh current view |
| Key2 | Cancel (no-op in menus; cancels dialogs/ops) |
| Key3 | Open reboot confirmation (requires explicit confirm) |
detect backend -> query capabilities -> calibrate only when needed -> cache effective geometry.128x128 is the lowest supported layout target.128x128 are allowed in best-effort mode and emit UNSUPPORTED_DISPLAY_SIZE warnings.Settings -> Display.override (env/config) > backend detected mode > backend profile.Runtime warnings/events:
DISPLAY_MODE_MISMATCHDISPLAY_UNVERIFIED_GEOMETRYUNSUPPORTED_DISPLAY_SIZErustyjack-ui currently renders through the ST7735 path by default (RUSTYJACK_DISPLAY_BACKEND=st7735) and keeps that path fully functional for Pi Zero 2 W + Waveshare HAT.
Use Settings -> Display -> Run Display Calibration.
Workflow:
LEFTTOPRIGHTBOTTOMControls:
LEFT, RIGHT): LEFT/RIGHT adjusts by 1 pxTOP, BOTTOM): UP/DOWN adjusts by 1 pxSelect: confirm current edgeKey1: reset current edge to profile defaultKey2: cancel calibration and keep previous saved valuesSaved values include calibrated edges, completion flags, effective geometry, backend/rotation, offsets, and profile fingerprint in gui_conf.json.
Deep-dive reference: docs/display_dynamic_resolution.md.
Settings -> Display supports manual discovery/calibration reruns, cache/calibration reset, and diagnostics inspection.RUSTYJACK_LOGS_DISABLED; Purge Logs removes log files under loot.scripts/wifi_driver_installer.sh, detecting USB chipsets and installing/compiling drivers; progress is shown in the UI (/var/log/rustyjack_wifi_driver.log).AP:<mode> while running.eth*, wlan*, usb*, etc.) with type, state, IP, and rfkill status.Are you sure?) and then runs a blocking progress screen.Select/Right exits back to menu; otherwise use Retry/Reboot, and Back is allowed only in a safe all-down state.gui_conf.json only after successful transition.wifi/profiles/*.json (connect or delete). The UI does not create new profiles; edit JSON or use the core CLI to add them.loot/Wireless/<target>/.loot/Wireless; dictionaries include quick (common + SSID-derived), SSID patterns only, and bundled wordlists/wifi_common.txt + wordlists/common_top.txt.loot/Wireless/<target>/pipelines/<timestamp>/ for artifacts created after the start time.rustyjack_wireless::random_*). Status view shows running SSID/password and lets you turn it off.rustyjack-evasion vendor table), Restore MAC (uses saved original or hardware address).SystemCommand::RandomizeHostname).rustyjack-netlink).loot/Ethernet/<label>/; optional DNS spoof using DNSSpoof/sites/<site> templates; shows victim counts/pcap paths. MITM Status tracks visit/credential logs for the chosen site; Stop MITM/DNS tears down both.loot/Wireless and loot/Ethernet targets, drill into folders, and view files with a scrollable viewer.loot/reports/<network>/report_<ts>.txt (summaries, insights, next steps, artifact sweep, MAC usage notes).loot/ and loot/reports/ into a temp archive and posts to the webhook in discord_webhook.txt.Rustyjack_Loot on the first writable USB block device mount..log files and log-like artifacts under loot.rustyjack-core)The following features exist in the core CLI but are not exposed as LCD menu items:
DNS Spoof (DnsSpoofCommand):
DNSSpoof/sites/Reverse Shell (ReverseCommand::Launch):
Transparent Bridge (BridgeCommand):
Secure Operations:
Loot Management:
Data Protection:
Requirements
Steps
sudo su -.git clone https://github.com/Iwan-Teague/Rusty-Jack.git Rustyjack && cd Rustyjack.chmod +x install_rustyjack.sh && ./install_rustyjack.sh
wpa_supplicant, git, i2c-tools, curl; firmware for Realtek/Atheros/Ralink as available). Prebuilt/USB installs also include hostapd, dnsmasq, isc-dhcp-client, rfkill. Source builds add build toolchain (build-essential, pkg-config, libssl-dev, DKMS toolchain) and kernel headers when available./var/lib/rustyjack/logs/install/<installer>_<timestamp>.log and updates /var/lib/rustyjack/logs/install/install_latest.log.apt-get purge network-manager to completely remove NetworkManager from the system (not just disabled).dtoverlay=spi0-2cs, and GPIO pull-ups for all buttons.rustyjack-ui (release), installs to /usr/local/bin/./var/lib/rustyjack/loot/{Wireless,Ethernet,reports}, /var/lib/rustyjack/wifi/profiles/sample.json, and keeps WLAN interfaces up.RUSTYJACK_ROOT=/var/lib/rustyjack, installs/enables systemd units (typically rustyjackd.service + rustyjack-ui.service; prebuilt may use rustyjackd.socket), starts services, and reboots unless SKIP_REBOOT=1 or NO_REBOOT=1./etc/resolv.conf: Symlinks to /var/lib/rustyjack/resolv.conf and disables competing DNS managers (systemd-resolved, dhcpcd, resolvconf if present). NetworkManager is completely removed to prevent DNS conflicts./ read-write if needed on fresh images to allow installs/edits.scripts/rj_run_tests.sh copies installer logs into each run under <results_root>/install_logs/; those files are included in Discord artifact uploads and the consolidated rustyjack_<run_id>_results.zip.systemctl status rustyjack-ui.install_rustyjack_dev.sh is available for development setups and follows the same dependency/build steps.
install_rustyjack.sh and install_rustyjack_dev.sh now compile on-device, then hand off to install_rustyjack_prebuilt.sh for final provisioning so service setup/runtime layout remain identical across installers (USB prebuilt discovery is bypassed when PREBUILT_DIR is injected by source/dev installers).
Configuration Files:
gui_conf.json (auto-created): pins, colors, active interface, target SSID/BSSID/channel, MAC/hostname/passive toggles, hotspot credentials, log/Discord toggles.discord_webhook.txt: webhook URL for Discord uploads.wifi/profiles/*.json: saved Wi-Fi profiles used by Connect Known Network (sample provided); directory is 770 and files are 660 for UI access.Loot Directories:
loot/: wireless, Ethernet, and scan captures; pipelines are under loot/Wireless/<target>/pipelines/; reports live in loot/reports/.logs/: UI/daemon logs under /var/lib/rustyjack/logs (owned by rustyjack-ui:rustyjack).loot/Scan/: Rust-native scan reports from rustyjack-core scan run.DNSSpoof/sites/: portal templates for DNS spoof/MITM; captures go to DNSSpoof/captures/.Environment Variables:
RUSTYJACK_ROOT=/var/lib/rustyjack - Root directory for all runtime dataRUSTYJACK_DISPLAY_BACKEND={st7735|framebuffer|drm} - Backend preference (default service value: st7735)RUSTYJACK_DISPLAY_ROTATION={landscape|portrait} - LCD display orientation (default: landscape)RUSTYJACK_DISPLAY_WIDTH=<px> - Optional explicit width overrideRUSTYJACK_DISPLAY_HEIGHT=<px> - Optional explicit height overrideRUSTYJACK_DISPLAY_OFFSET_X=<px> - Optional panel offset X overrideRUSTYJACK_DISPLAY_OFFSET_Y=<px> - Optional panel offset Y overrideRUSTYJACK_LOGS_DISABLED - When set, disables logging globallyRUSTYJACKD_SOCKET=/run/rustyjack/rustyjackd.sock - Daemon IPC socket pathRUSTYJACKD_ALLOW_CORE_DISPATCH=true - Enables IPC command dispatch (required)RUSTYJACKD_DANGEROUS_OPS=true - Enables system update operations (commented out by default)RUSTYJACK_NFTABLES_LOG=1 - Optional flag to log nf_tables packet matches in journalctl with [NFTABLE] prefixesSystemd Services:
rustyjackd.service - Privileged daemon (root) with CAP_NET_ADMIN, CAP_NET_RAW, CAP_SYS_ADMIN capabilitiesrustyjackd.socket - Daemon socket (used for socket activation in some installs)rustyjack-ui.service - Unprivileged LCD UI service (rustyjack-ui user, supplementary groups: gpio, spi, rustyjack)rustyjack-wpa_supplicant@wlan0.service - WiFi client authentication servicerustyjack-portal.service - Captive portal HTTP server (rustyjack-portal user, port 3000)rustyjack.service - Alias for rustyjack-ui.serviceOther Assets:
img/rustyjack.png (shown on boot)DNSSpoof/sites; pick a site before launching the DNS spoof add-on.handshake_export_*.json).RUSTYJACK_NFTABLES_LOG=1 to log nf_tables packet matches to journalctl with a [NFTABLE] prefix.Display & Hardware:
/dev/spidev0.0 exists and dtparam=spi=on + dtoverlay=spi0-2cs are in /boot/firmware/config.txt; reboot after installer changes.gpio and the pull-up line gpio=6,19,5,26,13,21,20,16=pu exists in config.txt.Wireless Operations:
Network & DNS:
/etc/resolv.conf is a symlink to /var/lib/rustyjack/resolv.conf and verify NetworkManager is purged with dpkg -s network-manager (should show "not installed").sudo apt-get purge network-manager && sudo apt-get autoremove.USB & Storage:
/var/lib/rustyjack/mounts/, and ensure you selected the correct mount mode (ReadOnly/ReadWrite).FDE Operations:
Service & Logs:
journalctl -u rustyjack-ui -f and systemctl status rustyjack-ui.systemctl status rustyjackd and verify socket exists: ls -l /run/rustyjack/rustyjackd.sock.Use only for authorized testing, research, and education. The authors assume no liability for misuse, damage, or legal consequences. You are responsible for complying with all applicable laws.
Rustyjack is licensed under the PolyForm Noncommercial 1.0.0. You are free to use, study, modify, and redistribute it for noncommercial purposes. Commercial use requires a separate licence from the copyright holder.
Contributions are assumed to be made under the same terms.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 24 | 10u | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C15, C16, C17, C18, C19, C20, C23, C24, C25, C26, C27, C28, C29, C30, C31, C32 +8 |
| 14 | 2.2u | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C40, C41, C42, C43, C44, C45, C46, C47, C48, C49, C50, C52, C53, C56 |
| 13 | 1u | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C3, C4, C5, C6, C8, C9, C10, C11, C12, C13, C14, C22, C57 |
| 13 | TestPoint | TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mm | TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13 |
| 6 | 2k | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R1, R2, R15, R16, R17, R18 |
| 5 | 1,5uH | Inductor_SMD:L_Changjiang_FNR252010S | L1, L2, L3, L4, L5 |
| 5 | 100n | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C1, C2, C58, C61, C62 |
| 5 | 10k | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R12, R13, R20, R25, R26 |
| 3 | 240R | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R3, R5, R6 |
| 3 | 4.7u | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C21, C65, C68 |
| 3 | 47u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C66, C67, C69 |
| 2 | 0R | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R7, R9 |
| 2 | 18p | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C59, C60 |
| 2 | 22k | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R23, R24 |
| 2 | 470n | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C54, C55 |
| 2 | 5.1k | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R21, R22 |
| 2 | LED | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D1, D2 |
| 2 | USB_C_Receptacle_USB2.0 | Connector_USB:USB_C_Receptacle_Palconn_UTC16-G | J2, J3 |
| 1 | 100R | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R4 |
| 1 | 150k | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R19 |
| 1 | 1R | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R10 |
| 1 | 1k | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R14 |
| 1 | 1n | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C64 |
| 1 | 2.2p | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C7 |
| 1 | 220n | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C63 |
| 1 | 24MHz | Crystal:Crystal_SMD_2520-4Pin_2.5x2.0mm | Y1 |
| 1 | 33R | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R11 |
| 1 | AXP305 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP4x4mm_ThermalVias | U3 |
| 1 | CP2102N-Axx-xQFN28 | Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm | U4 |
| 1 | D_Schottky | Diode_SMD:D_SOD-323_HandSoldering | D4 |
| 1 | H616 | projectlib:H616_TFBGA284 | U1 |
| 1 | K4B8G1646D | Package_BGA:BGA-96_9.0x13.0mm_Layout2x3x16_P0.8mm | U2 |
| 1 | Micro_SD_Card_Det2 | Connector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5 | J1 |
| 1 | NC | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R8 |
| 1 | SP0502BAHT | Package_TO_SOT_SMD:SOT-23 | D3 |
It measures 26.5 × 72.5 mm and has 4 copper layers, 0.55 mm thick.
125 parts, built around the H616, AXP305B and SP0502BAHTG. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Iwan-Teague/Rustyjack repository on GitHub, at the commit this page was made from: the board is pcb/actual pcb design/rustyjack-h616/rustyjack-h616.kicad_pcb and its schematic pcb/actual pcb design/rustyjack-h616/dram.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Iwan-Teague before reusing the design.

Bogdan8266/h616-board
8-layer Allwinner H616/618 SBC with DDR3, USB, Wi-Fi/BT and battery power support, designed for embedded Linux.

Madjogger1202/Sodimm-force
Implementation of Orange Pi Zero 2W in sodimm form-factor with H616

martinribelotta/h730duino
STM32H7 Arduino form factor and software compatible board



MR-DOS/MWGEN-G1
12.5 MHz - 6400 MHz (LMX2572) or even up to 20 GHz (LMX2595) generator board with int./ext. reference.

windnerd-labs/Windnerd-Core
WindNerd Core Wind Sensor Board - Hardware, software and documentation
