Sebastien Bourdeauducq 245d6e39dd
All checks were successful
Hydra zc706-u-boot Hydra build #199161 of nix-servo:nix-servo:zc706-u-boot
Hydra mkbootimage Hydra build #199154 of nix-servo:nix-servo:mkbootimage
Hydra migen Hydra build #199152 of nix-servo:nix-servo:migen
Hydra fast-servo-u-boot Hydra build #199147 of nix-servo:nix-servo:fast-servo-u-boot
Hydra fast-servo-fsbl Hydra build #199143 of nix-servo:nix-servo:fast-servo-fsbl
Hydra fast-servo-dtb Hydra build #199142 of nix-servo:nix-servo:fast-servo-dtb
Hydra fast-servo-bootimage Hydra build #199141 of nix-servo:nix-servo:fast-servo-bootimage
Hydra misoc Hydra build #199153 of nix-servo:nix-servo:misoc
Hydra vivado Hydra build #199155 of nix-servo:nix-servo:vivado
Hydra fast-servo-gateware Hydra build #199144 of nix-servo:nix-servo:fast-servo-gateware
Hydra linien-common Hydra build #199149 of nix-servo:nix-servo:linien-common
Hydra zc706-fsbl Hydra build #199158 of nix-servo:nix-servo:zc706-fsbl
Hydra linien-client Hydra build #199148 of nix-servo:nix-servo:linien-client
Hydra zc706-bootimage Hydra build #199156 of nix-servo:nix-servo:zc706-bootimage
Hydra zc706-dtb Hydra build #199157 of nix-servo:nix-servo:zc706-dtb
Hydra linien-gui Hydra build #199150 of nix-servo:nix-servo:linien-gui
Hydra linien-server Hydra build #199151 of nix-servo:nix-servo:linien-server
Hydra zc706-sd-image Hydra build #199160 of nix-servo:nix-servo:zc706-sd-image
Hydra zc706-qemu Hydra build #199159 of nix-servo:nix-servo:zc706-qemu
Hydra fast-servo-sd-image Hydra build #199146 of nix-servo:nix-servo:fast-servo-sd-image
Hydra fast-servo-qemu Hydra build #199145 of nix-servo:nix-servo:fast-servo-qemu
flake: update dependencies
2026-04-17 19:16:08 +08:00
2024-03-01 16:39:56 +08:00
2026-04-17 19:16:08 +08:00
2026-04-16 11:00:17 +08:00

Firmware for the Sinara 8462 Fast-Servo

Networking Ports

Usage Port Number
ssh 3030
linien-server 18862

Building

Reproducible build with Nix

  1. Run nix build .#packages.armv7l-linux.fast-servo-sd-image to build the sd card image.
  2. Run nix build .#packages.armv7l-linux.fast-servo-gui to build the GUI.
  3. Run nix develop to build a dev shell having access the GUI.

Flashing

  1. Plug in your SD card to your computer and run lsblk to locate SD card.
  2. If there are any partitions on the SD card, run umount <mount point> all the related mount points.
  3. Run sudo dd if=<path to the SD Card Image> of=/dev/<SD Card Device Name in lsblk> bs=4M status=progress oflag=sync.
  4. Eject the SD Card before removal.

Configuration

You can modify the followings by altering the files directly on the SD card. You can do that by inserting the SD card to a computer in Linux Operating system.

  1. Network Settings
  • File Location in BOOT Partition: /mnt/ip_setup
  • Description: It contains the network setup script that is run once during initialization. You can add any network related to scripts to this file.
  1. SSH Public Key
  • File Location in ROOT Partition: /mnt/root/.ssh/authorized_keys
  • Description: SSH Public key authentication file.

You should append the ssh public key of your PC here with hostname removed.

  • Instructions:
    1. Run ssh-keygen.
    2. Type a filename for key to be saved. Let's say foo.
    3. Type Return(Enter) twice when it asks for your passphrase. Fast-servo's ssh authentication is passwordless.
    4. Open the generated public key file foo.pub.
    5. Append the public key with @hostname removed (if any) to /root/.ssh/authorized_keys on the ext4 partition of the SD card. For example, if sample ssh public key is ssh-ed25519 xxx...xxx username@hostname, run the following with /mnt replaced by your actual mount point:
        mkdir -p /mnt/root/.ssh
        echo "ssh-ed25519 xxx...xxx username" >> /mnt/root/.ssh/authorized_keys
        chmod 700 /mnt/root/.ssh
        chmod 600 /mnt/root/.ssh/authorized_keys
    

Usage

  1. Make sure the onboard DIP Switch is in the following positions.
    • EN: OFF
    • MODE: ON
  2. Install the SD Card, power up the board via the power jack or PoE and plug in the RJ45 Ethernet cable.
  3. It can take a minutes or two for first boot. If it does not boot up, try to flash the SD Card again. The following table describes PL initialization status with the status of the front panel LEDs L0, L1, L2, L3.
L0 L1 L2 L3 Meaning
On On On On Si5340 Clock Generator fails to initialize
On On X X LTC2195 Adc fails to initialize
X X On On AD9117-2 Dac fails to initialize
Off Off Off Off Fast-Servo PL initialization is successful

Note: X = Don't Care

For debugging, you can hook up a USB-to-UART adapter and power cycle to the board to check the boot log. Or if able, ssh into the board and run python -m pyfastservo.initialize to check its log. 4. By default, linien-server starts up automatically if PL Init is successful. In case linien-server crashes, it will restart itself. Logs are stored in /root/linien-server-log. ssh access is not required for linien client if linien-server is started. If not, then linien client will ssh into the fast-servo device to start the linien-server service.

Here are some commands for interacting with the linien-server service once you ssh <fast servo ip address> -p 3030 into fast-servo.

Description Command
Start the linien-server service linien-server start
Stop the linien-server service linien-server stop
Check if the linien-server service is running linien-server status
Set the linien-server service to start at bootup linien-server enable
Set the linien-server service not to start at bootup linien-server disable
  1. In the dev shell, run linien to launch the GUI. Add new device. Fill in the hostname/ip address of the device and leave the other fields with default value unchanged.
  2. Select the newly added device and click connect in the GUI to connect and start the GUI.
  3. To save the parameters to be loaded at start up, you would need to shutdown the linien-server service by clicking the corresponding button on the GUI, will ssh into the fast-servo and stop the linien-server service. Removing the power input on Fast-Servo will not save any parameter. Alternatively, you can save and load settings to/from a file on your PC via the GUI.

Filesystem Modes

By default, the SD card is mounted in read-only mode with RAM overlay to prevent data corruption when power is unexpectedly removed.

To change the filesystem mode:

  1. Set read-only mode: fs-mode ro
  2. Set read-write mode: fs-mode rw

The system will automatically reboot after changing modes.

Description
Firmware for Sinara Fast-Servo based on Not-OS and Linien
Readme 820 KiB
Languages
C 89.2%
Python 7.2%
Nix 1.9%
Verilog 1.7%