JetHub H1



The controller is designed to solve home automation and monitoring tasks: polling sensors, collecting and transmitting data, PLC functions in smart home systems. The powerful quad-core JetHome JetHub H1 processor will allow it to be used as a central controller in smart home systems in conjunction with various Wi-Fi and ZigBee wireless sensors from other manufacturers. The controller case is made in a laconic modern design that will fit into any interior.

General characteristics

  • Amlogic S905W quad-core processor (ARM Cortex-A53) up to 1 GHz;
  • RAM 1 GB DDR3;
  • 8 or 16GB eMMC flash non-volatile memory


  • Integrated Realtek 4 dual-band (2.4GHz and 5GHz) WiFi/Bluetooth wireless module. Supports WiFi standards IEEE 802.11a/b/g/n/ac, 2x2 MIMO, and Bluetooth 5.0;
  • Ethernet IEEE 802.3 10 Mbps;
  • TI CC2538 + CC2592 or TI CC2652P1 Zigbee wireless module with up to 20 dBm output power and supports Zigbee 3.0.


  • MicroSD 2.x/3.x/ 4 DS/HS card support;
  • 2 x USB 2.0 high-speed;
  • Serial console connected to microUSB power port.


The controller is powered from a stabilized DC source +5V via the MicroUSB connector. Power consumption is not more than 5W (excluding external consumers connected to USB ports).

When powering the controller from the USB port of the computer, it should be taken into account that the standard USB 2.0 interface can limit the output current to 0.5A, which may not be enough for the controller to work normally under load.

To power the controller, it is recommended to use the power supply supplied with the controller. When powering the controller from a computer or from another device with a USB interface, as well as when using a third-party power supply, make sure that this device or power supply is capable of providing the necessary output power: up to 5W if additional devices will not be connected to the controller or up to 10W if via USB -ports of the controller will connect additional devices powered by the USB port.

Dimensions and weight

  • Dimensions: 100 x 97 x 20 mm;
  • Weight without power supply: 120 g

Operating mode

  • Operating temperature: 0..+40 C


Armbian operating system with the ability to install a large number of additional packages from the Ubuntu 20.04 repository, as well as other third-party applications. It is possible to install such popular systems for home automation as Home Assistant, openHAB, etc.

The latest JetHome Armbian firmware can be downloaded at ( see p. "Controller firmware").

The controller is not designed to perform high-load tasks in 24/7 mode, such as video processing.

General view of the controller board

The figure shows:

  • "ETHERNET" - Ethernet connector;
  • "DC 5V/CONSOLE" - MicroUSB connector for powering the controller and outputting the Linux console;
  • "USB 1" - USB connector for connecting external devices and controller firmware;
  • "USB 2" - USB connector for connecting external devices;
  • "SD-CARD" - slot for connecting MicroSD memory cards;
  • "WIFI" - Wi-Fi/Bluetooth module;
  • "WM 1" - the main module for communicating with wireless devices (Zigbee);
  • "WM 2" - additional module for communication with wireless devices (optional);
  • "DBG 1" - a connector for flashing the main wireless module;
  • "DBG 2" - a connector for flashing an additional wireless module;
  • "BOOT" - button to switch the boot mode. The button is accessed through a hole in the controller housing. Do not use sharp objectsand don't put too much pressure on the button;
  • "RESET" - controller hardware reset button;
  • "UPDATE" - contacts to disable the built-in eMMC flash memory (used when restoring the controller firmware);
  • "PWR" - green LED indicating the presence of power;
  • "STAT" - blue user LED.


The controller has two external USB 2.0 ports (USB1 and USB2. See "General view of the controller board") for connecting additional peripheral devices. When powering an external device from the USB port of the controller, the current consumed by this external device must not exceed 0.5A.

The USB1 port (located closer to the power connector) is also used for controller firmware (see "Controller firmware").

UART console

The console is connected to the Micro-USB connector (also used to power the controller) through the Silicon Labs CP2102 USB-UART interface converter installed on the board.

The driver for the USB-UART interface converter under Windows OS can be obtained from manufacturer's website . Under Linux, installation of an additional driver is usually not required.

Port configuration:

  • Speed 115200 bps;
  • Data length 8 bits;
  • Stop bit 1;
  • No parity;
  • Hardware flow control is not used.

The console is connected to the UART_AO_A port of the Amlogic S905W processor:

Processor pin Function Description

Zigbee wireless module

The JetHome JetHub H1 controller uses a Zigbee wireless communication module based on a TI CC2538 + CC2592 or TI CC2652P1 chip. See module description: JetHome Zigbee module ZB3CX v. 1 (CC2538+CC2592) or JetHome Zigbee module ZB6C v. 1 (CC2652P1)

The module is connected to the UART_AO_B port of the processor (the device is displayed in the system as /dev/ttyAML2), hardware transmit/receive control (RTS and CTS lines) is not used. It is possible to control the hardware reset of the wireless module (RESET line) and control its boot mode (BOOT line) using the GPIO processor.

To flash the module using JTAG, a 2x5 connector with a pin pitch of 1.27mm is installed on the board:

Module connection:

Processor output Function Description
GPIOAO_6 GPIOAO_6 Module hardware reset management
GPIOAO_9 GPIOAO_9 Module loading mode control

Wireless module control from Linux

Controlling the RESET line of a Linux module

GPIO initialization:

# cd /sys/class/gpio
# echo 507 > export
# echo out > gpio507/direction

Enabling hardware reset mode:

# echo 1 > gpio507/value

Disabling the hardware reset mode (working mode):

# echo 0 > gpio507/value

Controlling the BOOT line of a Linux module

GPIO initialization:

# cd /sys/class/gpio
# echo 510 > export
# echo out > gpio510/direction

How to enable bootloader mode may depend on the type of module and its firmware. For JetHome CC2538 ZigBee modules, the bootloader mode is entered by a low logic level on the BOOT line:

# echo 0 > gpio510/value

User LED

Two LEDs are installed on the controller board: one to indicate the presence of supply voltage (green LED), the second blue custom LED is connected to the GPIODV_24 output of the Amlogic S905W processor.

Linux LED control

GPIO initialization:

# cd /sys/class/gpio
# echo 474 > export
# echo out > gpio474/direction

Turning on the LED:

# echo 1 > gpio474/value

LED off:

# echo 0 > gpio474/value

LED control from Home Assistant

command_on: "echo 1 > /sys/class/gpio/gpio474/value"
command_off: "echo 0 > /sys/class/gpio/gpio474/value"
command_state: "cat /sys/class/gpio/gpio474/value"
value_template: '{{ value == "1" }}'
friendly_name: Blue LED

Controller Firmware

The latest firmware can be downloaded from the server: JetHome firmware storage

The standard way to install the system for the latest firmware versions (if you have updated to the latest firmware version) is to boot the system from the SD card and start copying the system from the SD card to the controller's built-in memory.

To update the system using an SD card:

  • Download the Armbian firmware image for the SD card from the server
  • Burn the image to an SD card using Rufus, balenaEtcher
  • Boot from the SD card (keep holding down the "BOOT" button while powering on/hard resetting)
  • After the system boots, set the root password as usual, set the time zone, and optionally create a new user account. All this data will be transferred to the built-in eMMC memory during installation.
  • In the console, run armbian-config, select the System menu, then Install, and in the menu that opens, select Boot from eMMC - System on eMMC), select ext4 as the file system.
  • After the system is migrated to eMMC onboard memory, reboot the system using the reboot command.

To reinstall the system using the Burning Tool for new firmware, you need to open the case and close the UPDATE jumper on the board near the battery (see instructions below)

Flashing from Windows using Amlogic Burning Tool

To correctly detect the controller during flashing via USB, you need to install the driver CP210x USB to UART Bridge.

You can use the Amlogic Burning Tool to flash the software image. See Instructions for using the Burning Tool.

The latest JetHome Armbian firmware can be downloaded from

In order to flash with the USB Burning Tool, you need the Armbian firmware version with the “burn” suffix

The firmware is carried out through the USB1 port of the controller (see General view of the controller board).

To switch the controller to the firmware bootloader mode, you must:

  • Power off the controller (MicroUSB connector on the back of the case). Further, during the firmware process, you do not need to connect it;
  • Open the controller case to access the board;
  • Short the “Update” pin contacts located on the controller board near the battery;
  • Connect the controller with a USB A to USB A cable to the computer. Make sure the Burning Tool has detected a connection to the controller;
  • Open "Update" pin contacts (Important!);
  • After that, start the process of flashing the controller.

With Armbian 20.11 and HAOS 6.x firmware installed, it is possible to switch the controller to bootloader mode using alternative methods:

  • Power off the controller (MicroUSB connector on the back of the case). While holding down the BOOT button (through the hole on the back of the case), connect the controller with a USB A - USB A cable to the computer.
  • Having connected the console to the controller, stop the system from booting during u-boot startup (for example, by pressing the Enter key at the very beginning of the system boot). Enter the command update.
  • in the u-boot command line

Attention! To prevent mechanical damage to the BOOT button, when accessing the button through the hole in the controller case, do not use sharp objects or apply much force when pressing the button.

Firmware from Ubuntu Linux

For flashing from Linux, you can use the burn-tool utility from the repository

Utility documentation

To install the utility, run the following commands:

$ git clone khadas-utils
$ cd khadas-utils

To flash the controller, put it into bootloader mode in any way described above. Next, run the command:

burn-tool -i 

where firmware_image_file is the firmware file

Sample program output:

$ burn-tool -i ~/firmware/H1/JetHome_1.0.12_Armbian_20.08_Arm-64_focal_current_5.7.16_j80.img
Try to burn Amlogic image...
Burning image '/home/ak/firmware/H1/JetHome_1.0.12_Armbian_20.08_Arm-64_focal_current_5.7.16_j80.img' for 'VIM1/VIM2' to eMMC...
Rebooting the board........[OK]
Unpacking image [OK]
Initializing ddr ........[OK]
Running u-boot........[OK]
Create partitions [OK]
Writing device tree [OK]
Writing bootloader [OK]
Wiping data partition [OK]
Wiping cache partition [OK]
Write boot partition [OK]
Writing rootfs partition [OK]
Resetting board [OK]
Time elapsed: 6 minute(s).

Firmware using a USB flash drive

It is possible to flash the controller using a USB flash drive. See instructions Flashing the controller using a USB flash drive (only with installed firmware Armbian 20.11/HAOS 6.x)

First launch of JetHome Armbian

Setting up the controller at its first start or after flashing it can be done in the following ways:

  • Over an Ethernet network;
  • Via UART console.

To configure the controller over Ethernet, connect the controller to a local area network with a configured and running DHCP server. Determine the new IP address of the controller (the MAC address of the controller is located on the bottom of the controller case). For example, in Mikrotik routers, this can be done in the menu IP → DHCP Server → Leases. Next, connect to the controller using any ssh client, for example, Putty under Windows OS.

To connect via the UART console, connect the controller with a MicroUSB cable to the computer (see p. "UART console"). The speed of the interface is 115200 Kbps.

The default password for the "root" user is "1234", but in older firmware it was "jethome80100".

On first launch, you will be prompted for:

  • Set a new password for the root user;
  • If the controller is connected to a network with Internet access, then the time zone, system language and keyboard layout will be automatically determined;
  • Next, you will be prompted to register a new user in the system and set a password for him (it is recommended to do this). You can skip entering user data by pressing the Enter key when prompted for the user's full name.

WiFi setup in JetHome Armbian

To configure the connection to the WiFi network, you can use the standard console utility armbian-config. After running this utility, select the "Network" menu, then "WiFi".

Embedded Zigbee Module Firmware

To flash the Zigbee module, you can use the python utility cc2538-bsl. See Firmware TI CC2538/CC2652 modules and sticks using cc2538-bsl

For recommended firmware, see TI CC2538 based module software or Software for sticks and modules based on the TI CC2652P1 chip

Procedure for flashing:

Switch the module to SBL (serial bootloader) mode:

# echo 0 > /sys/class/gpio/gpio510/value
# echo 1 > /sys/class/gpio/gpio507/value
# echo 0 > /sys/class/gpio/gpio507/value

Example command for firmware:

# python3 cc2538-bsl/ -p /dev/ttyAML2 -e -w JH_2538_2592_ZNP_UART_20201010.bin

Reload the module into "working" mode:

# echo 1 > /sys/class/gpio/gpio510/value
# echo 1 > /sys/class/gpio/gpio507/value
# echo 0 > /sys/class/gpio/gpio507/value