Warning Cookies are used on this site to provide the best user experience. If you continue, we assume that you agree to receive cookies from this site. OK

jet hub d1


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.


  • 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.


  • 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.


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.


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.


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.


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

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.


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
eight ETH_RXP
nine ETH_LED3
ten ETH_LED0


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
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


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

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
3 GND 9.14 GND
5 GND 9.14 GND
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


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

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


               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;
  • +5V.

Expansion connector pin assignment

Connector pin Connector pin assignment Microprocessor output/peripheral Controller function
one +5.0V
2 +5.0V
eight ETH_RXP
nine ETH_LED3
ten ETH_LED0
eleven GND
thirteen GPIO0 GPIOX_16/SPI_SS0_B
sixteen GND
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
24 GND
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
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

To flash the controller, put it into bootloader mode using the method described above. Next, run the command:

 burn tool -i 

where - firmware file

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).

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 .

useful links