jet hub d1
Appearance

Short description
The JetHome JetHub D1 controller is designed to build home automation and monitoring systems: polling sensors, using it as a data collection and transmission device, performing PLC functions in smart home systems, direct load control. JetHome JetHub D1 can be used as a central controller in a "smart home" in conjunction with wireless (Wi-Fi, ZigBee) and wired (RS-485) devices from other manufacturers. Execution in a DIN-rail housing allows you to conveniently place the controller in the electrical panel at home.
General characteristics
- Quad-core Amlogic A113X (ARM Cortex-A53) processor up to 1.4GHz;
- RAM 512 MB or 1 GB DDR3;
- Non-volatile memory eMMC flash 8 GB, 16 GB or 32 GB.
Equipment options:
- 512MB RAM / 8GB eMMC;
- 1 GB RAM / 16 GB eMMC.
- 1 GB RAM / 32 GB eMMC.
Communications
- Integrated dual-band (2.4GHz and 5GHz) WiFi/Bluetooth AMPAK AP6255 (for 8GB and 16GB eMMC version) or AMPAK 6256 (for 32GB eMMC controller version). Supports IEEE 802.11a/b/g/n/ac WiFi standards, as well as Bluetooth 4.2 or Bluetooth 5.0 (for controller version with 32GB eMMC);
- Ethernet IEEE 802.3 10/100 Mbps;
- TI CC2538 + CC2592 or TI CC2652P1 ZigBee wireless module with output power up to 20 dBm and support for ZigBee 3.0 standard.
Interfaces
- 1 x USB 2.0 high-speed;
- 1 x 1-Wire;
- 2 x RS-485;
- 4 x discrete inputs "dry contact";
- 3 x relay outputs.
Nutrition
The controller can be powered from a DC source with a voltage of 9 to 56 V. The power consumption of the controller itself is not more than 5W (excluding external consumers connected to the USB port and the output voltage terminal 5V).
It is possible to power the controller via the Ethernet connector using Passive PoE technology with a nominal voltage of up to 48V. Power is transmitted over unused pairs of the Ethernet cable: pair 4-5 (blue, white-blue) and pair 7-8 (brown, white-brown). The polarity of the connection does not matter. There is no galvanic isolation of power supply circuits in the controller.
To power the controller, it is recommended to use a stabilized DC source with a nominal voltage of 12V to 48V and a power of at least 10W.
During firmware, the controller must be powered from an external USB port. This power supply option is intended only for the firmware mode, the regular operation of the controller when power is supplied via the USB port is impossible and may lead to controller failure. When powered by USB, the RS485 ports will not be available.
The controller can power external low-power devices (sensors) with a supply voltage of 5V. The 5V output is connected to the controller terminal. The maximum current given to the external load is 0.5A.
Dimensions and weight
- Housing dimensions: 130 x 75 x 57 mm. Case width 75mm, which is about 4.3 standard modules for a DIN rail (17.5mm);
- Possibility of fastening the case to a 35mm DIN rail;
- Weight: 180 g.
Operating conditions
- Ambient temperature: 0..+40 С;
- Relative air humidity up to 80% without moisture condensation;
- Closed explosion-proof rooms without aggressive vapors and gases.
Software
JetHome 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 http://update.jethome.ru/armbian/ (see section Controller Firmware). JetHub D1 controller requires Armbian firmware variant with "j100" suffix
Images of the Home Assistant Operating System (HassOS) operating system are also available for the controller: http://wiki.jethome.ru/hassos
The controller is not designed to perform high-load tasks in 24/7 mode, such as video processing.
Security measures
- During operation and maintenancefor maintenance of the controller, the requirements of GOST 12.3.019-80, "Rules for the operation of electrical installations of consumers" and "Rules for labor protection during the operation of electrical installations of consumers" should be observed.
- Any connections to the device and work on its maintenance should be carried out only when the power to the controller and the actuators connected to it is turned off.
- Physical access to the controller during installation and maintenance should only be allowed to qualified service personnel.
- Do not allow moisture to enter the output connectors and internal elements of the controller.
- The controller must not be used in the presence of acids, alkalis, oils and other aggressive substances in the atmosphere.
- The controller is not intended for use at facilities that potentially pose a danger to the life and health of others.
- It is not allowed to connect the device to the local Ethernet network with access to the Internet network without providing reliable firewalls.
Mounting
The controller can be installed in an electrical cabinet or other location where the controller must be protected from moisture, dirt and foreign objects, as well as vibration. For better cooling of the internal elements of the controller, the controller case must be installed in a vertical position.
To install the controller:
- Make sure that there is free space for connecting the controller and laying wires;
- Mount the controller securely on a DIN rail or vertical surface with screws.
To remove the controller from the DIN rail:
- Insert the tip of a screwdriver into the latch eye.
- Press latch down.
- Move the controller away from the DIN rail.
Connection Recommendations
To ensure the reliability of electrical connections, it is recommended to use copper stranded cables. Cable ends should be stripped and then tinned or cable lugs should be used. Cable cores should be stripped so that their bare ends, after connecting to the controller, do not protrude beyond the terminal block.
General requirements for connection lines:
- during the laying of cables, it is necessary to separate the communication lines connecting the controller with sensors or other devices into independent routes, placing them separately from power cables, as well as from cables that create high-frequency and impulse noise;
- to protect the controller inputs from the influence of electromagnetic interference, the communication lines of the controller should be shielded. Special cables with shielding braids can be used as screens;
- it is recommended to install mains noise filters in the power line of the controller;
- in the case of power equipment control, it is recommended to install spark suppression filters on the switching lines of this equipment.
Design
The controller is available in a design for mounting on a DIN rail (35 mm) or on a wall.
Appearance and elements of the controller:

On the top side of the controller are:
- 1. Ethernet connector (RJ45);
- 2. 1-Wire connector;
- 3. RS485-1 port line terminator;
- 4. RS485-1 port terminals;
- 5. RS485-2 port terminals;
- 6. RS485-2 port line terminator;
- 7.USB connector;
On the front side of the controller there are indication and control elements:
- 8. Dual color user LED (STAT);
- 9. Power indicator LED (PWR);
- 10. Custom button;
- 11. Internal boot mode switching button (BOOT);
On the underside of the controller are:
- 12. Terminals for connecting the power supply;
- 13. Relay terminals 1;
- 14. Relay terminals 2;
- 15. Relay terminals 3;
- 16. Digital input terminal 1;
- 17. Digital input terminal 2;
- 18. Digital input terminal 3;
- 19. Digital input terminal 4;
- 20. Common contact terminal (GND);
- 21. +5V output terminal. It can be used to power external devices (sensors) with a current consumption of not more than 0.5A;
- 22. Connector for connecting an external antenna of the Zigbee wireless communication module.
Digital inputs
The JetHome JetHub D1 controller has 4 discrete inputs for connecting "dry" contacts with the closure of the input to the common power wire of the controller (GND).
The maximum switching frequency of the discrete input state is 400Hz.
Amlogic A11 GPIO3X used for digital inputs in the JetHome JetHub D1 controller:
Discrete input | Processor pin |
---|---|
one | GPIOA_20 |
2 | GPIOA_19 |
3 | GPIOA_18 |
4 | GPIOA_17 |
A digital input can be in one of two states:
State | logic level |
---|---|
Input open (not connected) | 0 |
Input shorted to ground (GND) | one |
ATTENTION! Discrete inputs are not designed to supply voltage to them and may fail if the voltage on them is more than 12V. Be careful during installation work.
Reading the status of a digital input from Linux
JetHome Armbian Linux GPIO numbers used for discrete inputs on the JetHome JetHub D1 controller:
Discrete input | GPIO number in Linux | Number in gpiolib |
---|---|---|
one | 472 | 46 |
2 | 471 | 45 |
3 | 470 | 44 |
4 | 469 | 43 |
An example of initializing and reading "Digital Input 1" in JetHome Armbian Linux:
Initializing the GPIO "Discrete Input 1" (by default, in JetHome Armbian, the GPIO pins are configured at system boot and no additional configuration is required):
# cd /sys/class/gpio # echo 472 > export # echo in > gpio472/direction
Reading the state of "Digital input 1":
# cat gpio472/value
It will output "0" if the input is open and "1" if the input is closed. Reading the status of other digital inputs is done in a similar way.
Relay outputs
The JetHome JetHub D1 controller has 3 independent relay outputs with the contact type "1A" (for closing). The maximum switched AC current for resistive loads is 5A at voltages up to 250V. The mechanical resource of the relay is 10,000,000 switchings.
Amlogic A113X processor GPIOs used for relay outputs in the JetHome JetHub D1 controller:
Relay number | Microprocessor output |
---|---|
one | GPIOA_4 |
2 | GPIOA_3 |
3 | GPIOA_2 |
Relay control from Linux
GPIO numbers in JetHome Armbian Linux used to control relays:
Relay number | GPIO number in Linux | Number in gpiolib |
---|---|---|
one | 456 | thirty |
2 | 455 | 29 |
3 | 454 | 28 |
An example of GPIO initialization and “Relay 1” control for the JetHome JetHub D1 controller (by default, in JetHome Armbian, GPIO pins are configured at system boot and no additional configuration is required).
Initialize GPIO "Relay 1":
# cd /sys/class/gpio # echo 456 > export # echo out > gpio456/direction
Switching on "Relay 1":
# echo 1 > gpio456/value
Switching off "Relay 1":
# echo 0 > gpio456/value
Other relays are controlled in a similar way.
ethernet
The JetHome JetHub D1 controller has one 10/100 Mbps Ethernet port, and the Ethernet physical layer controller uses an IC-Plus IP10GR chip that supports IEEE 802.3/802.3u standards. The Ethernet physical layer controller is installed on the A113 processor module, an Ethernet matching transformer and an external RJ45 connector with an indication of the connection and activity of the Ethernet network are installed on the peripheral board. To connect to the processor module A113, the following pins of the module expansion connector are used (see Description of the expansion connector of the processor module A113):
Expansion connector pin | Purpose |
---|---|
5 | ETH_TXN |
6 | ETH_TXP |
7 | ETH_RXN |
eight | ETH_RXP |
nine | ETH_LED3 |
ten | ETH_LED0 |
USB
The JetHome JetHub D1 controller has one external USB 2.0 port for connecting peripherals.
The controller's external USB port can operate in two modes:
- Main operating mode (USB host). In this mode, the external USB port is connected to the USB hub built into the controller, to which the R ports are also connected.S485.
- Controller firmware mode, when an external USB port is connected directly to the processor pins, bypassing the USB hub. This mode is used to flash the controller using the Amlogic Burning Tool utility. ATTENTION! In this mode, the RS485 ports of the controller will be unavailable.
The operating mode of the external USB port is set when the controller is turned on and depends on what source the controller was powered on. When the controller is powered from an external power terminal or when the controller is powered via Ethernet (using passive PoE technology), the main mode of operation of the USB port is set. When the controller is powered from USB, the controller firmware mode is set.
The maximum current consumed by a peripheral device connected to the controller's external USB port must not exceed 0.5A. To protect the controller from exceeding the current consumed by an external device, a resettable fuse is installed in the USB power circuit, which limits the current in the USB power circuit at a level of 0.5A.
Due to the current limitation in the USB power circuit at 0.5A, it is not recommended to power the controller from an external USB port except for flashing it.
1 wire
Starting with revision 1.5 of the controller, a 3-pin terminal with a pitch of 3.5mm is used to connect the 1-Wire bus. 1-Wire terminal pin assignment:
Contact number | Purpose | Description |
---|---|---|
one | +5V | +5V power output (for powering external 1-Wire devices) |
2 | Data | Data bus 1-Wire |
3 | GND | General Provo |
For reliable operation of 1-Wire devices, it is recommended to connect them to the controller using a three-wire circuit (powered from +5V output).
In controller revisions up to 1.5, the 1-Wire bus is routed to an external RJ22 connector (4P4C). RJ22 1-Wire connector pin assignment:

Contact number | Purpose | Description |
---|---|---|
one | +5V | +5V power output (for powering external 1-Wire devices) |
2 | GND | Common power wire |
3 | 1-wire data | Data bus 1-Wire |
4 | 1-Wire GND | Common 1-Wire |
When connecting passively powered 1-Wire devices, use pins 3 and 4 of this connector.
Starting with revision 1.8 of the JetHome JetHub D1 controller, GPIOA_14 of the Amlogic A113X processor is used to implement the 1-Wire bus.
In revisions of the JetHome JetHub D1 controller up to 1.8, a 1-Wire DS2483S-100 chip is used to implement the 1-Wire bus, connected to the I2C bus of the processor module (in Linux, the i2c-0 bus). I2C controller address 1-Wire 0x18.
Expansion connector pins used to connect to the 1-Wire controller (see A113 Processor Module Expansion Connector Description):
Expansion connector pin | Purpose | Processor Port |
---|---|---|
17 | I2C_SCK | GPIOAO_10/I2C_SCK_AO |
eighteen | I2C_SDA | GPIOAO_11/I2C_SDA_AO |
An example of working with 1-Wire from Linux
A description of working with 1-wire devices in Linux can be found, for example, here .
To initialize the 1-Wire DS2482 driver (on a controller of revision up to 1.8), you must execute the following commands (by default, in JetHome Armbian, the 1-Wire bus is configured at system boot and this operation is not required):
# sudo modprobe ds2482 # sudo sh -c "echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-0/new_device"
1-wire devices connected to the bus will be available in the /sys/bus/w1/devices/ directory. For example:
# ls /sys/bus/w1/devices/ 28-000007430c40 w1_bus_master1
In this example, one temperature sensor DS18B20 (28-000007430c40) is connected to the bus. Reading data from a temperature sensor:
# cat /sys/bus/w1/devices/28-000007430c40/w1_slave 8f 01 4b 46 7f ff 01 10 14 : crc=14 YES 8f 01 4b 46 7f ff 01 10 14 t=24937
RS-485
The JetHome JetHub D1 controller has two RS-485 ports implemented using Silicon Labs CP2104 USB-UART interface converter chips. In the operating system, these devices are displayed as /dev/ttyUSB0;and /dev/ttyUSB1 .
The ends of the RS-485 bus must be terminated with 120 ohm resistors at both ends. To simplify installation, the controller has built-in terminators connected to the RS-485 lines using jumpers (jumpers) located next to the RS-485 terminals.
Working with Modbus Protocol in Linux
To work with devices via the Modbus protocol, you can use the console python utility modbus-cli .
Installing the utility:
# sudo apt install python3-pip # sudo pip3 install modbus_cli
An example of working with a voltage and current sensor PZEM-016 . Reading the register (Input Register) 0 containing the current value of the AC voltage (speed 9600 bps, device address 7):
# modbus -b 9600 -s 7 -v /dev/ttyUSB0 i@0 07 04 00 00 00 01 31 ac Read 1 registers: [2235] 0:2235 0x8bb
Zigbee wireless module
The JetHome JetHub D1 controller has a Zigbee wireless communication module based on the 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 UARTAO_B port of the processor (the device is displayed in the system as /dev/ttyAML2, in some cases as /dev/ttyAML1), hardware receive/transmit 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.
Connecting the Zigbee module to the processor (see Description of the expansion connector of the processor module A113):
Expansion connector pin | Zigbee module output | Purpose |
---|---|---|
fifteen | RESET | Module hardware reset control line |
sixteen | RX | Data line from processor to module |
17 | TX | Data line from module to processor |
20 | BOOT | Module loading mode switching line |
Amlogic A113X GPIOs used to control the Zigbee module:
Zigbee module output | Microprocessor output |
---|---|
RESET | GPIOA_15 |
BOOT | GPIOA_10 |
To flash the module, a two-row 10-pin connector (2x5) with a pin pitch of 1.27mm (WM DBG) is installed on the board, designed for debugging and flashing the wireless module using the JTAG interface:

Connecting the pins of the "WM DBG" connector to the wireless module:
Connector pin | Purpose | Module Output | Description |
---|---|---|---|
one | +3.3V | thirteen | +3.3V power bus of the wireless module of the module |
2 | TMS/SWDIO | 2 | JTAG TMS |
3 | GND | 9.14 | GND |
4 | TCK/SWCLK | one | JTAG TCK |
5 | GND | 9.14 | GND |
6 | TDO/SWO | 3 | JTAG TDO |
7 | NC | Not used | |
eight | TDI | 4 | JTAG TDI |
nine | GND | 9.14 | GND |
ten | RESET | fifteen | RESET |
Wireless module control from Linux
CPU GPIOs used to control Zigbee module in Linux:
Zigbee module output | Processor pin | GPIO number in Linux | Number in gpiolib |
---|---|---|---|
RESET | GPIOA_15 | 467 | 41 |
BOOT | GPIOA_10 | 462 | 36 |
Initializing and Controlling the RESET Pin
GPIO initialization (by default, in JetHome Armbian, GPIO pins are configured at system boot and no additional configuration is required):
# cd /sys/class/gpio # echo 467 > export # echo out > gpio467/direction
A hardware reset of the wireless module is done by writing logic level 1 to GPIO 467:
# echo 1 > gpio467/value
Return to operating mode is carried out by writing a logicallevel 0 on GPIO 467:
# echo 0 > gpio467/value
Initializing and Manipulating the BOOT Pin
GPIO initialization (by default, in JetHome Armbian, GPIO pins are configured at system boot and no additional configuration is required):
# cd /sys/class/gpio # echo 462 > export # echo out > gpio462/direction
Boot mode is controlled by writing 0 or 1 to GPIO 462. For the Zigbee JetHome CC2538 wireless module, bootloader mode is entered at logic level 0 on the BOOT pin:
# echo 0 > gpio462/value
and the operating mode is set at logic level 1 on the BOOT pin:
# echo 1 > gpio462/value
Switching modes occurs when the module is turned on or hardware reset. Therefore, after changing the logic level at the BOOT pin of the module, it is necessary to perform a hardware reset of the module (see the paragraph “Initialization and control of the RESET pin” above).
Module firmware
To flash the ZigBee CC2538 module, you can use the cc2538-bsl python utility. See the instruction Flashing TI CC2538/CC2652 Modules and Sticks Using the cc2538-bsl Utility
For recommended firmware, see TI CC2538-based module software or TI CC2652P1 -based stick and module software
Procedure for firmware:
Switch the module to SBL (serial bootloader) mode:
# echo 0 > /sys/class/gpio/gpio462/value # echo 1 > /sys/class/gpio/gpio467/value # echo 0 > /sys/class/gpio/gpio467/value
Example command for firmware:
# python3 cc2538-bsl/cc2538-bsl.py -p /dev/ttyAML2 -e -w JH_2538_2592_ZNP_UART_20201010.bin
Reload the module into "working" mode:
# echo 1 > /sys/class/gpio/gpio462/value # echo 1 > /sys/class/gpio/gpio467/value # echo 0 > /sys/class/gpio/gpio467/value
LEDs
The front panel of the controller has two LEDs: one to indicate the presence of supply voltage, the second - a user two-color LED.
Controlling LEDs from Linux
Linux GPIO numbers to which custom LEDs are connected:
Light-emitting diode | Processor pin | GPIO number in Linux | Number in gpiolib | Active Low |
---|---|---|---|---|
Red | GPIOA_0 | 452 | 26 | 1 (YES) |
Green | GPIOA_1 | 453 | 27 | 1 (YES) |
The LEDs are turned on by a low logic level on the processor pin.
An example of initialization and control of the red LED.
GPIO initialization (by default, in JetHome Armbian, GPIO pins are configured at system boot and no additional configuration is required):
# cd /sys/class/gpio # echo 452 > export # echo out > gpio452/direction # echo 1 > gpio452/active_low
Turning the LED on and off (0 - turn off the LED, 1 - turn on the LED):
# echo 1 > gpio452/value # echo 0 > gpio452/value
The green LED is configured and controlled in the same way.
Custom button
There is one user button on the front panel of the controller.
Reading the state of a custom button from Linux
GPIO number in Linux to which the button is connected:
Button | Processor pin | GPIO number in Linux | Number in gpiolib |
---|---|---|---|
Custom | GPIOZ_10 | 436 | ten |
GPIO pin and button status:
Button state | Processor output state |
---|---|
Not pressed | one |
pressed | 0 |
An example of initializing and reading the state of a custom button.
GPIO initialization (by default, in JetHome Armbian, GPIO pins are configured at system boot and no additional configuration is required):
# cd /sys/class/gpio # echo 436 > export # echo in > gpio436/direction # echo 1 > gpio436/active_low
Reading button state:
# cat gpio436/value 0
Command output in case the input is configured as "active_low" (by default inJetHome Armbian system): 0 - the button is not pressed, 1 - the button is pressed.
Real time clock (RTC)
The real-time clock (RTC) uses a PCF8563 chip connected to the internal I2C bus of the A113 processor module (processor I2C_B bus).
To power the RTC, a 3 V lithium battery of CR1220 standard size is installed on the processor module.
Working with RTC from Linux
Reading information from RTC:
# hwclock -r 2020-09-01 15:36:17.381590+03:00
or
#timedatectl Local time: Tue 2020-09-01 15:35:48 MSK Universal time: Tue 2020-09-01 12:35:48 UTC RTC time: Tue 2020-09-01 12:35:49 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no
ATTENTION! On a new controller, the time and date information may not yet be stored in the RTC chip. Therefore, when trying to read data from it, an error message will be displayed. To fix this error, you need to write the date and time information to the RTC chip.
Writing information about the current system date and time to the RTC is performed by the command:
# hwclock --systohc
The system time must be set correctly beforehand. The controller is configured to synchronize time over the Internet using the NTP protocol. If the controller has Internet access and the correct time zone is set, then nothing needs to be configured.
If the controller does not have Internet access, then you can set the time zone with the command:
# timedatectl set-timezone Europe/Moscow
(the list of available time zones can be viewed with the “timedatectl list-timezones” command), and the date and time with the command:
# timedatectl set-time '2020-09-01 15:35:48'
CPU expansion slot
As an expansion connector, a pin connector with a pin pitch of 1.27mm, the number of pins is 40.
Signals output to the expansion connector:
- Ethernet (x4 PHY lines);
- Ethernet LED (x2 lines);
- USB (x2 lines);
- SPI (x4 lines);
- I2C (x2 lines);
- x2 UART (x4 lines);
- x11 GPIOs;
- CPU RESET;
- +5V.
Expansion connector pin assignment
Connector pin | Connector pin assignment | Microprocessor output/peripheral | Controller function |
---|---|---|---|
one | +5.0V | ||
2 | +5.0V | ||
3 | GND | ||
4 | GND | ||
5 | ETH_TXN | ||
6 | ETH_TXP | ||
7 | ETH_RXN | ||
eight | ETH_RXP | ||
nine | ETH_LED3 | ||
ten | ETH_LED0 | ||
eleven | GND | ||
12 | SPI_MOSI | GPIOX_17/SPI_MOSI_B | |
thirteen | GPIO0 | GPIOX_16/SPI_SS0_B | |
fourteen | SPI_MISO | GPIOX_18/SPI_MISO_B | |
fifteen | SPI_CLK | GPIOX_19/SPI_CLK_B | |
sixteen | GND | ||
17 | I2C_SCK | GPIOAO_10/I2C_SCK_AO | |
eighteen | I2C_SDA | GPIOAO_11/I2C_SDA_AO | |
nineteen | GND | ||
20 | UART1_RX | GPIOAO_1/UART_RX_AO_A | Linux_console RX |
21 | UART1_TX | GPIOAO_0/UART_TX_AO_A | Linux_console TX |
22 | UART2_TX | GPIOAO_4/UART_TX_AO_B | |
23 | UART2_RX | GPIOAO_5/UART_RX_AO_B | |
24 | GND | ||
25 | GPIO1 | GPIOA_14 | |
26 | GPIO2 | GPIOA_16 | |
27 | GND | ||
28 | GPIO3 | GPIOA_19 | Discrete input 2 |
29 | GPIO4 | GPIOA_18 | Discrete input 3 |
thirty | GPIO5 | GPIOA_20 | Discrete input 1 |
31 | GPIO6 | GPIOA_15 | Zigbee module reset |
32 | GPIO7 | GPIOA_17 | Discrete input 4 |
33 | GPIO8 | GPIOA_3 | Relay 2 |
34 | GPIO9 | GPIOA_4 | Relay 1 |
35 | GPIO10 | GPIOA_10 | Zigbee module boot |
36 | GPIO11 | GPIOA_2 | Relay 3 |
37 | CPU_RESET | ||
38 | GND | ||
39 | USB_DN | USB_DN | USB data- |
40 | USB_DP | USB_DP | USB data + |

UART console
The UART console is routed to a 3-pin male connector located on the controller's peripheral board and labeled "CONSOLE". The pin assignment of the connector is also printed on the controller board.
The controller cover must be opened to access the connector. To connect to a computer, you can use any USB-UART interface converter:

Port configuration:
- Speed 115200 bps;
- Data length 8 bits;
- Stop bit 1;
- No parity is used;
- Hardware flow control is not used.
Controller Firmware
Flashing from Windows using Amlogic Burning Tool
To flash the software image, you can use the Amlogic Burning Tool program (see Instructions for using the Burning Tool ).
The latest JetHome Armbian firmware can be downloaded at http://update.jethome.ru/armbian/
JetHub D1 controller requires Armbian firmware variant with "j100" and "burn" suffixes
The controller firmware is performed in the following order:
- Install and prepare the USB Burning Tool;
- In the Burning Tool program, open the menu "File" - "Import image" and select the firmware file (for D1 controllers, the firmware file must be with the j100 suffix);
- Power off the controller;
- Press and hold down the "BOOT" button on the front panel of the controller (the button is accessed through a hole on the front panel of the controller);
- While holding down the "BOOT" button, connect the controller with a USB cable to a computer running the USB Burning Tool;
- In the window of the running Burning Tool program, when the bootloader built into the controller is successfully launched and the controller is connected to the computer, the inscription “Connect” will be displayed;
- Release the "BOOT" button;
- Press the "Start" button in the Burning Tool;
- The firmware procedure will begin, which may take a long time;
- Upon completion of the firmware procedure, press the "Stop" button in the program;
- Disconnect the USB cable from the controller.
Firmware from Ubuntu Linux
For flashing from Linux, you can use the burn-tool utility from the repository https://github.com/khadas/utils
Documentation for using the utility https://docs.khadas.com/vim1/UpgradeViaUSBCable.html#Upgrade-On-Ubuntu
To install the utility, run the following commands:
$ git clone https://github.com/khadas/utils khadas-utils $ cd khadas-utils $ ./INSTALL
To flash the controller, put it into bootloader mode using the method described above. Next, run the command:
burn tool -i
where
Sample program output:
$ burn-tool -i ~/firmware/D1/JetHome_1.0.14_Armbian_20.08_Arm-64_focal_current_5.7.16_j100.img Try to burn Amlogic image... Burning image '/home/ak/firmware/D1/JetHome_1.0.14_Armbian_20.08_Arm-64_focal_current_5.7.16_j100.img' for 'VIM1/VIM2' to eMMC... 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: 9 minute(s). Done!
Possible problems with controller firmware
The USB Burning Tool does not detect the connected controller.
- Make sure that the "BOOT" button is pressed when connecting the USB cable. It is not recommended to use sharp objects for this (needles, etc.), use objects with a blunt end (paper clips, etc.);
- Connect the USB cable quickly and all the way. The USB connector is designed so that when you connect the cable, the power contacts are connected first, then the contacts fordata achi. In this case, a situation may arise when, when the power is turned on, the boot process has already begun, and the USB data lines have not yet been connected;
- Use a USB 2.0 cable instead of a USB 3.0 cable.
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;
- Through the 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 to the computer using any USB-UART converter (see p. "UART console").
The default password for the "root" user is "1234".
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, the time zone, system language and keyboard layout will be automatically determined;
- Next, you will be asked to register a new user in the system and set a password for him (it is recommended to do this). User data entry can be skipped by pressing the Enter key when prompted for the user's full name.
Download from USB Flash Drive
If the firmware in the eMMC controller is version 22.02 or newer, then to boot from the USB Flash Drive, you must hold down the Fn button while powering up the controller.
In older firmware versions, you must connect the UART console and follow the instructions during the initial boot process.
More information: Firmware the controller using a USB flash drive .