Hot Wheels X86 motherboard youyeetoo X1: Deploy MQTT Broker

Extra number, extra number. . . Shenzhen Hot Wheels Technology has launched a new product – youyeetoo X1.
youyeetoo Aimed at the AIOT and automatic control market, the size is only the size of a palm (115 * 75mm), but the interface is very rich. It has built-in 3-channel serial port UART, 2-channel HDMI, 6-channel USB port, 1-channel I2C, 1-channel SPI, 5-channel GPIO, etc. The interface commonly used in AIOT Internet of Things can also be connected to a 7-inch MIPI touch screen.

In this article, we are developing in practice and deploying youyeetoo X1 as an mqtt gateway. Let’s take a look at what needs to be done:

Switch system

Youyeetoo X1 defaults to Windows system. Our mqtt gateway solution is deployed on Ubuntu. Youyeetoo X1 supports Ubuntu system, so its system needs to be replaced with Ubuntu system.

BIOS update

The author uses an HDMI screen, and the default BIOS screen of the board is mipi. There will be some problems when displaying HDMI, so we need to update the BIOS. The update steps are as follows:

  1. Download the complete BIOS update package, download address: http://d.youyeetoo.cn/X1/BIOS/X1 BIOS (complete BIOS update package).zip.
  2. Unzip the complete BIOS package and place the contents in the root directory of the USB flash drive.

  1. Download different versions of BIOS, download address: http://d.youyeetoo.cn/X1/BIOS/BIOS.zip, the unzipped content is as follows:

BIOS name Description
X1_01_S4_Analog_MIC_20230915144429.bin 4G memory DDR4 + analog MIC + MIPI 7 LCD screen default display
X1_01_S4_Digital_MIC_20230915152233.bin 4G memory DDR4 + digital MIC microphone + MIPI 7 The LCD screen displays by default
X1_01_S8_Analog_MIC_20230915144727.bin 8G memory DDR4 + analog MIC microphone + MIPI 7 LCD screen default display
>

16G memory DDR4 + analog MIC microphone + MIPI 7 LCD screen default display
X1_01_S16_Digital_MIC_20230915151544.bin 16G memory DDR4 + digital MIC microphone + MIPI 7 LCD screen default display
X1_NO_MIPI_01_S4_Analog_MIC_20230915150032.bin 4G memory DDR4 + analog MIC + HDMI default display (turn off MIPI screen display)
X1_NO_MIPI_01_S8_Analog_MIC_20230915145622.bin 8G memory DDR4 + analog MIC + HDMI default display (turn off MIPI screen display)
X1_NO_MIPI_01_S8_Digital_MIC_20230915150730.bin 8G memory DDR4 + digital MIC + HDMI default display (turn off MIPI screen display)
X1_NO_MIPI_01_S16_Analog_MIC_20230915145317.bin 16G memory DDR4 + analog MIC + HDMI default display (turn off MIPI screen display)
(Turn off MIPI screen display)
  1. The youyeetoo X1 board I got is 8G DDR, so I need to replace the BIOS.bin in the USB disk with X1_NO_MIPI_01_S8_Analog_MIC_20230915145622.bin or X1_NO_MIPI_01_S8_Digital_MIC_20230915150730.bin, and change the name to BIOS.bin (it must be changed to this name) .

  1. Insert the USB flash drive and power on, and it will automatically enter the BIOS update program.

Install ubuntu system

  1. Download the ubuntu image. The author uses ubuntu20.04. Download link: https://releases.ubuntu.com/22.04/ubuntu-22.04.3-desktop-amd64.iso

  2. Download the ubuntu boot disk creation tool, download address: http://d.youyeetoo.cn/X1/Linux-tools/rufus-4.2.exe

  3. Double-click rufus-4.2.exe and insert the U disk (note: if the U disk contains important things, save it and start the disk creation process, the U disk will be formatted). The operation steps are as shown below, and it will take a long time to wait for the Ubuntu production to be completed.

  1. Insert the ubuntu boot disk into youyeetoo X1, then power on the development board and wait to enter the system installation interface. When the following picture appears, select the second one to enter the installation of the ubuntu system.

  1. Start installing Ubuntu system interface

  1. Before installation, you need to format emmc first, otherwise it may cause failure during the installation process.

  1. Delete all emmc partitions. To delete a partition, select the corresponding partition with the mouse and click the minus sign below.

  1. Create the emmc partition. Here we only need to create two partitions, one is the efl partition and the root file partition. One is used to boot into the Ubuntu system, and the other is used to mount the new Ubuntu system. Creation method: Select the free space partition with the mouse, click the plus sign, and configure it.
  • Create the efl partition. Here we configure the size to 512MB and select EFI System Partition as the partition format.

  • Create a root file partition, select Ext4 journaling file system as the partition format, and select / as the mount point.

  1. After configuring the partition, choose to wipe the entire disk and install ubuntu

  1. Perform the next configuration, device account and password, and start installation.

  1. Finally restart youyeetoo X1

Deploy MQTT server

  1. Plug the board into the Internet cable and download the emqx installation package. Download link: https://www.emqx.com/zh/downloads/enterprise/5.0.4/emqx-enterprise-5.0.4-ubuntu22.04-amd64.deb
$ wget https://www.emqx.com/zh/downloads/enterprise/5.0.4/emqx-enterprise-5.0.4-ubuntu22.04-amd64.deb
  1. Install emqx
$ sudo apt install ./emqx-enterprise-5.0.4-ubuntu22.04-amd64.deb
  1. Start emqx service
sudo systemctl start emqx
  1. Enter http://ip:18083/ in the browser to log in to the mqtt server, where ip is the ip address of youyeetoo X1.

  1. You need to change your password when logging in for the first time. After changing your password, you can log in.

Verify MQTT server

  1. We use mqtt.fx as the client to verify the mqtt server built on youyeetoo X1. Create a profiler on mqtt.fx

  1. Modify the profiler information and fill in the mqtt server IP, port number, client ID, user name, and login password.

  1. Connect to the server and verify whether the connection can be made. If the green light in the upper right corner of mqtt.fx lights up, the connection is successful, and we can see the connected device on the MQTT server.

  1. Subscribe to a topic on mqtt.fx, publish topic information through the websocket that comes with emqx, and check whether the data transmission is normal.

  1. Check mqtt.fx to receive messages published by websocket.

Summary

  1. The X86 development board (youyeetoo X1) launched by Hot Wheels supports Windows and Ubuntu systems, which makes it convenient for us to deploy some services.
  2. The compact nature of youyeetoo X1 makes it very convenient as a small gateway. We can deploy a smart home scene at home.
  3. The overall performance of youyeetoo X1 has been verified to be quite good. The Ubuntu system runs without lag, which is worthy of praise.