Skip to content

1. The board

Write the microSD card

The board starts from a microSD card. We do not ship the card: you use your own card of 16 GB or more and write on it the MuseBox image, which holds the operating system, the MuseBox AI Server and the built-in models. Writing the image erases everything on the card.

  1. Download the image (about 3.5 GB), musebox_sdk_v1_9_0_mercury_pe3_hailo.img.

    On your PC, Linux / macOS:

    pc$ mkdir -p ~/musebox && cd ~/musebox
    pc$ curl -LO https://s3.eu-central-1.wasabisys.com/musebox/SDK-RELEASES/IMG/musebox_sdk_v1_9_0_mercury_pe3_hailo.img
    

    On your PC, Windows 10 / 11 (Command Prompt or PowerShell):

    pc$ mkdir C:\Users\<your-user>\musebox
    pc$ cd C:\Users\<your-user>\musebox
    pc$ curl.exe -LO https://s3.eu-central-1.wasabisys.com/musebox/SDK-RELEASES/IMG/musebox_sdk_v1_9_0_mercury_pe3_hailo.img
    
  2. Put the microSD card in your PC (directly or with a USB card reader).

  3. Write the image on the card with balenaEtcher (free, for Linux, macOS and Windows): Flash from file → choose musebox_sdk_v1_9_0_mercury_pe3_hailo.img → Select target → choose the microSD card → Flash!. Check the target twice: Etcher erases the disk you choose. At the end Etcher checks the card and ejects it.
Without Etcher, on Linux / macOS: dd

Find the card's device: run lsblk (Linux) or diskutil list (macOS) before and after inserting the card; the new disk is the card, for example /dev/sdb on Linux or /dev/disk4 on macOS. Use the whole disk, not a partition (/dev/sdb, not /dev/sdb1): the command erases it.

On your PC, Linux:

pc$ sudo umount /dev/sdb?*
pc$ sudo dd if=~/musebox/musebox_sdk_v1_9_0_mercury_pe3_hailo.img of=/dev/sdb bs=4M status=progress conv=fsync

On your PC, macOS:

pc$ sudo diskutil unmountDisk /dev/disk4
pc$ sudo dd if=$HOME/musebox/musebox_sdk_v1_9_0_mercury_pe3_hailo.img of=/dev/rdisk4 bs=4m
pc$ sudo diskutil eject /dev/disk4

The license is tied to the board and to the SD card (chapter 2): if you later write the image on another card, the board needs a new license.

Connect and power on

  1. Plug the Mercury+ MP1 SoM into the PE3 board.
  2. Plug the Hailo-8 module into its slot on the PE3, and secure it with its screw.
  3. Plug the fan cable (yellow, red and black wires) into the white 3-pin connector next to the power input.
  4. Check that the CFG A, CFG B and CFG C DIP switches are set as in the photo below.
  5. Insert the microSD card with the MuseBox image (above).
  6. Connect the Ethernet cable to your network.
  7. Connect the power cable. The system needs about a minute to start.
  8. Optionally plug a USB camera into the board.
  9. Optionally connect the micro-USB port to your PC, for the serial console.

If the SoM, the Hailo module, the fan and the microSD card are already in place, start from step 6.

The fan cable plugged into the white 3-pin connector next to the power input
Step 3: the fan cable in its connector, next to the power input
The CFG A, CFG B and CFG C DIP switches on the PE3 board
Step 4: the CFG A, CFG B and CFG C DIP switches

Recorded on the Mercury+ PE3 Hailo-8 (Mercury+ MP1 SoM)

Find the board's address

The board gets its IP address from your router (DHCP). To find it:

  • look at the list of connected devices in your router's page: the board's name is mercury-mp1-pe3-hailo8 (or similar);
  • or ping the board by name from a PC on the same network.

    On your PC, Linux / macOS:

    pc$ ping mercury-mp1-pe3-hailo8.local
    

    On your PC, Windows 10 / 11 (Command Prompt or PowerShell; -4 shows the IPv4 address):

    pc$ ping -4 mercury-mp1-pe3-hailo8.local
    

    The address is in the first line of the answer, for example PING mercury-mp1-pe3-hailo8.local (192.168.1.50) on Linux / macOS or Pinging mercury-mp1-pe3-hailo8.local [192.168.1.50] on Windows. On Linux / macOS ping does not stop by itself: when you have the address, press Ctrl+C in the same terminal on your PC to stop it.

    Recorded on the Mercury+ PE3 Hailo-8 (Mercury+ MP1 SoM)

Coming soon.

Coming soon.

Coming soon.

Coming soon.

In the rest of this tutorial <board-ip> is that address (for example 192.168.1.50).

Serial console (optional)

If you cannot find the board's address, or cannot log in over the network, you can reach the board through its serial console.

Connect the micro-USB port of the board to the PC and open a serial terminal at 115200 baud, 8N1 (8 data bits, no parity, 1 stop bit, no flow control).

The board's USB port is an FTDI converter with two channels, A and B: the console is on channel B.

  • On Linux it appears as two devices, /dev/ttyUSB0 and /dev/ttyUSB1: use the second one, for example screen /dev/ttyUSB1 115200.
  • On Windows it should appear as one or two USB Serial Port (COMx) entries under Ports (COM & LPT) in Device Manager. If there are two, use the one with the higher COM number, for example with PuTTY (connection type Serial).

Log in as root (no password):

Recorded on the Mercury+ PE3 Hailo-8 (Mercury+ MP1 SoM)

Windows shows USB Serial Converter A and B, but no COM port

The FTDI converter is detected, but its virtual COM port (VCP) is disabled. To enable it:

  1. Open Device Manager → Universal Serial Bus controllers → USB Serial Converter A → Properties → Advanced, and tick Load VCP.
  2. Do the same for USB Serial Converter B, if the option is there.
  3. Disconnect and reconnect the micro-USB cable.

The USB Serial Port (COMx) entries now appear under Ports (COM & LPT).

Coming soon.

Coming soon.

Coming soon.

Coming soon.

Log in

On your PC, Linux / macOS:

pc$ ssh root@<board-ip>

On your PC, Windows 10 / 11 (Command Prompt or PowerShell):

pc$ ssh -m hmac-sha2-256-etm@openssh.com root@<board-ip>

On Windows the plain ssh command does not connect: the Windows ssh has to be told which integrity algorithm (MAC) to use with the board, hence -m hmac-sha2-256-etm@openssh.com.

Recorded on the Mercury+ PE3 Hailo-8 (Mercury+ MP1 SoM)

The first time, ssh asks whether you trust the board (Are you sure you want to continue connecting?): type yes and press Enter. The root user has no password: you are logged in straight away, and the prompt changes to the board's one. Commands marked On the board run in this terminal.

Windows: set up ssh for the board once

scp and mbx-compile (chapter 6) also connect to the board, and on Windows they do not work without the setting above. Set the algorithm once for all of them: on your PC, create the file C:\Users\<your-user>\.ssh\config (the .ssh folder too, if it does not exist) with:

Host <board-ip>
    User root
    MACs hmac-sha2-256-etm@openssh.com

If you use Notepad, choose Save as type: All files and type the name config: otherwise Notepad saves config.txt, which ssh ignores. Replace <board-ip> with your board's address. From then on ssh root@<board-ip> and scp work as on Linux and macOS.

To log in from Windows, PuTTY works too.

The MuseBox files are in /root/musebox-ai-servers:

/root/musebox-ai-servers/
├── musebox-ai-server-cpp/musebox-ai-server   the AI server, C++ program (chapter 3)
├── musebox-ai-server-python/                 the AI server, Python package (chapter 3)
├── ai_models/                                built-in models, and yours (chapter 6)
└── config/                                   settings (*.json) and license.lic

The board is ready. Before the AI server can start, the board needs its license: that is the next chapter.


Next: 2. Activating the license