Provided by: linuxcnc-uspace_2.9.4-2ubuntu2_amd64 

NAME
setsserial - a utility for setting Smart Serial NVRAM parameters.
NOTE: This rather clunky utility is no longer needed except for flashing new smart-serial remote
firmware. Smart-serial remote parameters can now be set in the HAL file in the normal way.
SYNOPSIS
loadrt setsserial cmd="set hm2_8i20.001f.nvmaxcurrent 750"
FUNCTIONS
None
PINS
None
USAGE
loadrt setsserial cmd="{command} {parameter/device} {value/filename}"
Commands available are set and flash.
This utility should be used under halcmd, without LinuxCNC running or any realtime threads running.
A typical command sequence would be:
halrun
loadrt hostmot2 use_serial_numbers=1
loadrt hm2_pci config="firmware=hm2/5i23/svss8_8.bit"
show param
loadrt setsserial cmd="set hm2_8i20.001f.nvmaxcurrent 750"
exit
This example uses the option to have the HAL pins and parameters labelled by the serial number of the
remote. This is not necessary but can reduce the scope for confusion. (The serial number is normally on a
sticker on the device.)
The next line loads the hm2_pci driver in the normal way. The hm2_7i43 driver should work equally well,
as should any future 7i80 driver. If the card has already been strted up and a firmware has been loaded,
then the config string may be omitted.
"show param" is optional, but provides a handy list of all the devices and parameters. It also shows the
current values of the parameters which can be useful for determining scaling. u32 pin values are always
shown in hex, but new values can be entered in decimal or hex. Use the Ox123ABC format to enter a hex
value.
The next line invokes setsserial. This is run in a slightly strange way in order to have kernel-level
access to a live Hostmot2 config. It is basically a HAL module that always fails to load. This may lead
to error messages being printed to the `halcmd:` prompt. These can often be ignored. All the real
feedback is via the dmesg command. It is suggested to have a second terminal window open to run dmesg
after each command.
On exiting there will typically be a further error message related to the driver failing to unload
setsserial. This can be ignored.
The parameter changes will not show up until the drivers are reloaded. //TODO// Add a "get" command to
avoid this problem.
Flashing Firmware To flash new firmware to an FPGA card such as the 5i25 or 5i20 the "mesaflash" utility
should be used. Setsserial is only useful for changing/updating the firmware on smart-serial remote such
as the 8i20. The firmware should be placed somewhere in the /lib/firmware/hm2 tree, where the Linux
firmware loading macros can find it.
The flashing routine operates in a realtime thread, and can only send prompts to the user through the
kernel log (dmesg). It is most convenient to open two terminal windows, one for command entry and one to
monitor progress.
In the first terminal enter
tail -f /var/log/kern.log
This terminal will now display status information.
The second window will be used to enter the commands. It is important that LinuxCNC and/or HAL are not
already loaded when the process is started. To flash new firmware it is necessary to move a jumper on
the smart-serial remote drive and to switch smart-serial communication to a slower baudrate.
A typical command sequence is then
halrun
loadrt hostmot2 sserial_baudrate=115200
loadrt hm2_pci config="firmware=hm2/5i23/svss8_8.bit"
loadrt setsserial cmd="flash hm2_5i23.0.8i20.0.1 hm2/8i20/8i20T.BIN"
exit
It is not necessary (or useful) to specify a config string in a system using the 5i25 or 6i25 cards.
Note that it is necessary to exit halrun and unload the realtime environment before flashing the next
card (exit)
The correct sserial channel name to use can be seen in the dmesg output in the feedback terminal after
the loadrt hm2_pci step of the sequence.
LICENSE
GPL
LinuxCNC Documentation 2012-10-28 SETSERIAL(9)