{"id":6556,"date":"2022-10-19T13:00:04","date_gmt":"2022-10-19T13:00:04","guid":{"rendered":"https:\/\/41j.com\/blog\/?p=6556"},"modified":"2022-10-19T13:20:56","modified_gmt":"2022-10-19T13:20:56","slug":"siglent-ssa3015x-plus-upgrade-issues","status":"publish","type":"post","link":"https:\/\/41j.com\/blog\/2022\/10\/siglent-ssa3015x-plus-upgrade-issues\/","title":{"rendered":"Siglent SSA3015X Plus Upgrade Issues"},"content":{"rendered":"\n<p>The SSA3015X Plus contains identical hardware to the SVA1015X vector network analyzer. A popular mod is therefore to software upgrade these instruments, which requires some hacking around.<\/p>\n\n\n\n<p>There&#8217;s a &#8220;cross-flash&#8221; upgrade file floating around on the forums, however this is for upgrading the SSA3021X Plus. When used on a SSA3015X Plus it will \/kind of\/ work, but essentially result in an unusable instrument. The hardware is different enough between these instruments to cause issues. In particular, the UI doesn&#8217;t work at all. You can actually get some control over the UI by connecting to the instrument over Ethernet, attempting to upload a firmware image (which seems to force it into remote mode, so the buttons no longer create phantom input) and then connecting a mouse to the unit. This will then let you navigate menus and attempt firmware uploads.<\/p>\n\n\n\n<p>But I was unable successfully restore the original firmware or enable telnet using this method. I think the problem is that the unit &#8220;type&#8221; and valid upgrade configuration are mismatched, and essentially nothing will install.<\/p>\n\n\n\n<p>In the end I opened the device and connecting to the UART port. This use 3.3V, 115200 8N1 on the following pins:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/41j.com\/blog\/wp-content\/uploads\/2022\/10\/photo_2022-10-19-21.40.20-2-1024x779.jpeg\" alt=\"\" class=\"wp-image-6559\" width=\"300\" height=\"228\" srcset=\"https:\/\/41j.com\/blog\/wp-content\/uploads\/2022\/10\/photo_2022-10-19-21.40.20-2-1024x779.jpeg 1024w, https:\/\/41j.com\/blog\/wp-content\/uploads\/2022\/10\/photo_2022-10-19-21.40.20-2-300x228.jpeg 300w, https:\/\/41j.com\/blog\/wp-content\/uploads\/2022\/10\/photo_2022-10-19-21.40.20-2-150x114.jpeg 150w, https:\/\/41j.com\/blog\/wp-content\/uploads\/2022\/10\/photo_2022-10-19-21.40.20-2-768x584.jpeg 768w, https:\/\/41j.com\/blog\/wp-content\/uploads\/2022\/10\/photo_2022-10-19-21.40.20-2.jpeg 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n<p>Luckily I&#8217;d used the &#8220;backup&#8221; ADS upgrade package to dump the flash contents. Using the serial port you can re-flash the instrument. But first you need to figure out which files to flash where. I could just about figure out which files corresponded to the rootfs datafs and siglent partitions from the file sizes. Flashing these resulted in the bootable instrument, I was then able to install one the the telnet images (from memory SSA3000X+_telnet_11411.ADS) to enable telnet and change the upgrade_static_id in \/usr\/bin\/siglent\/config\/NSP_config_upgrade_info.xml\u00a0back to 11407.<\/p>\n\n\n\n<p>This let me flash a stock firmware image, and get back to square one. From here you can use one of the <a href=\"https:\/\/www.eevblog.com\/forum\/testgear\/siglent-ads-firmware-file-format\/msg1870091\/#msg187009\">other telnet images<\/a> to enable telnet (<a href=\"https:\/\/www.eevblog.com\/forum\/testgear\/siglent-sva1015x-1-5ghz-spectrum-vector-network-analyzer-(coming)\/msg2595552\/#msg2595552\">I think this one<\/a>). Change the upgrade_static_id to 11402 and upgrade to the SVA1015X using the stock firmware.<\/p>\n\n\n\n<p>During the uboot reflash I used the following command to restore the firmware backup:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>usb start\n\nif fatload usb 0 0x100000 rootfs.cramfs; then nand erase ${rootfs_addr} ${rootfs_size};nand write 0x100000 ${rootfs_addr} ${filesize};mw.b 0x100000 0x0 ${filesize} &amp;&amp; fi\n\nif fatload usb 0 0x100000 siglent.img; then nand erase ${siglent_addr} ${siglent_size};nand write 0x100000 ${siglent_addr} ${filesize};mw.b 0x100000 0x0 ${filesize} &amp;&amp; fi\n\nif fatload usb 0 0x100000 datafs.img; then nand erase ${datafs_addr} ${datafs_size};nand write 0x100000 ${datafs_addr} ${filesize};mw.b 0x100000 0x0 ${filesize} &amp;&amp;    fi<\/code><\/pre>\n\n\n\n<p>My files are available <a href=\"https:\/\/41j.com\/blog\/wp-content\/uploads\/2022\/10\/siglent.zip\">here<\/a>.<\/p>\n\n\n\n<p>This tool also works: https:\/\/pastebin.com\/rhdW63Vz<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The SSA3015X Plus contains identical hardware to the SVA1015X vector network analyzer. A popular mod is therefore to software upgrade these instruments, which requires some hacking around. There&#8217;s a &#8220;cross-flash&#8221; upgrade file floating around on the forums, however this is for upgrading the SSA3021X Plus. When used on a SSA3015X Plus it will \/kind of\/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-6556","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1RRoU-1HK","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/posts\/6556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/comments?post=6556"}],"version-history":[{"count":6,"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/posts\/6556\/revisions"}],"predecessor-version":[{"id":6564,"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/posts\/6556\/revisions\/6564"}],"wp:attachment":[{"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/media?parent=6556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/categories?post=6556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/41j.com\/blog\/wp-json\/wp\/v2\/tags?post=6556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}