2025-04-09 11:27:28 +08:00
2024-03-01 16:39:56 +08:00
2025-04-01 18:59:43 +08:00
2025-04-10 13:49:18 +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: /etc/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: /etc/ssh/authorized_keys.d/root
  • 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 to the file /etc/ssh/authorized_keys.d/root with @hostname removed(if any). For example, if sample ssh public key is ssh-ed25519 xxx...xxx username@hostname, you should append ssh-ed25519 xxx...xxx username to that file.

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 361 KiB
Languages
C 89.2%
Python 7.2%
Nix 1.9%
Verilog 1.7%