{"id":41,"date":"2020-09-21T13:05:49","date_gmt":"2020-09-21T11:05:49","guid":{"rendered":"https:\/\/z-stud.io\/blog\/?p=41"},"modified":"2023-04-05T13:10:29","modified_gmt":"2023-04-05T11:10:29","slug":"ssl-nucleus-debug-interface","status":"publish","type":"post","link":"https:\/\/radix-studio.fr\/blog\/2020\/09\/21\/ssl-nucleus-debug-interface\/","title":{"rendered":"SSL Nucleus debug interface"},"content":{"rendered":"\n<p>Just a few technical notes on debugging the SSL Nucleus (mk1) through serial port. I will enventually update this article with additional commands tests.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/radix-studio.fr\/blog\/wp-content\/uploads\/2020\/09\/ssl_debug.jpg\" alt=\"\" class=\"wp-image-46\" srcset=\"https:\/\/radix-studio.fr\/blog\/wp-content\/uploads\/2020\/09\/ssl_debug.jpg 1024w, https:\/\/radix-studio.fr\/blog\/wp-content\/uploads\/2020\/09\/ssl_debug-300x169.jpg 300w, https:\/\/radix-studio.fr\/blog\/wp-content\/uploads\/2020\/09\/ssl_debug-768x432.jpg 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption>Playing with the LCD driver<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>First of all, you&rsquo;ll need a USB to serial cable, which can easily be found on amazon, aliexpress and so on. Such a cable it about 1\u20ac, don&rsquo;t spend more on it!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>On macOS: open a Terminal and type: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen \/dev\/tty.wchusbserial141330<\/code><\/pre>\n\n\n\n<p>The actual name of the device may differ, but it&rsquo;s probably be something close.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>You now have a pretty nice shell, opened on your Nucleus, type \u00ab\u00a0help\u00a0\u00bb to show all available commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CMD>help\n\nTP220_3 &#91;] Daw channels layer 3 diags\nALLOC_3 &#91;] DAW allocator\nTP220_2 &#91;] Daw channels layer 2 diags\nALLOC_2 &#91;] DAW allocator\nACTIVE  &#91;] Ptoosl active send\nTP220_1 &#91;] Daw channels layer 1 diags\nALLOC_1 &#91;] DAW allocator\nTP180   &#91;] Soft key diag\nTP186   &#91;] Layer Control\nTP215   &#91;] control groups\nTP177   &#91;] UDP midi\nIP      &#91;] TCPIP Diags\nETHer   &#91;] PX1 Ether diags\nDAW     &#91;] DAW config\nCCC     &#91;] cc config\nSOKS    &#91;] Soft key diag\nFLIST   &#91;] function lists\nTP234   &#91;] Centre meters\nTP199   &#91;] USB KBD Functions\nSVEN2   &#91;] 7 seg diag\nSURF    &#91;] ctrl surface diags\nTP5     &#91;] Control manager\nTP86    &#91;] Power up restore\nLOG     &#91;] Logging\nFRAM    &#91;] FRAM cmds\nFS      &#91;] File system\nRTC     &#91;] Real time clock\nUSB     &#91;] USB Kbd Diags\nTH6     &#91;] SPI Access\nTH17    &#91;] 675 Live Bus\nTH16    &#91;] MD Bus\nREP     &#91;] Diags\nTH18_0  &#91;] LCD Driver\nTH19    &#91;] Firmware Revision\nINTEG      check code integrity\nCRASH      crash system\nVER        SW version\nG          Flip back to the trusty \"G\" interpreter; same as &lt;ctrl D>\nDEBUG   &#91;] Stuff which should probably be somewhere else\nHEAP    &#91;] Heap diags\nMOS     &#91;] Operating system diagnostics\nFILES      Show file task ids\nREPort  &#91;] Diagnostic reporting\n\nCMD>\n<\/code><\/pre>\n\n\n\n<p>Now, it&rsquo;s probably the best time for the traditional disclaimer: <strong><span class=\"has-inline-color has-vivid-red-color\">you may break things here<\/span><\/strong>, I&rsquo;m not responsable for anything. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Command<\/strong><\/td><td><strong>Short description<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td>TP220_3<\/td><td>Daw channels layer 3 diags<\/td><td>untested<\/td><\/tr><tr><td>ALLOC_3<\/td><td>DAW allocator<\/td><td>untested<\/td><\/tr><tr><td>TP220_2<\/td><td>Daw channels layer 2 diags<\/td><td>untested<\/td><\/tr><tr><td>ALLOC_2<\/td><td>DAW allocator<\/td><td>untested<\/td><\/tr><tr><td>ACTIVE<\/td><td>Ptoosl active send<\/td><td>untested<\/td><\/tr><tr><td>TP220_1<\/td><td>Daw channelslayer 1 diags<\/td><td>untested<\/td><\/tr><tr><td>ALLOC_1<\/td><td>DAW allocator<\/td><td>untested<\/td><\/tr><tr><td>TP180<\/td><td>Soft key diag<\/td><td>untested<\/td><\/tr><tr><td>TP186<\/td><td>Layer Control<\/td><td>untested<\/td><\/tr><tr><td>TP215<\/td><td>Control Groups<\/td><td>List all internal states for all DAW sync-ed items (faders, buttons, pots, etc.).<\/td><\/tr><tr><td>TP177<\/td><td>UDP midi<\/td><td>untested<\/td><\/tr><tr><td>IP<\/td><td>TCPIP Diags<\/td><td>untested<\/td><\/tr><tr><td>ETHer<\/td><td>PX1 Ether Diags<\/td><td>untested<\/td><\/tr><tr><td>DAW<\/td><td>DAW Config<\/td><td>untested<\/td><\/tr><tr><td>CCC<\/td><td>CC config<\/td><td>untested<\/td><\/tr><tr><td>SOKS<\/td><td>Soft key diag<\/td><td>untested<\/td><\/tr><tr><td>FLIST<\/td><td>function lists<\/td><td>untested<\/td><\/tr><tr><td>TP234<\/td><td>centre meters<\/td><td>Setup the MIC meter (from 1 to 2) led display to a given value (from 0 4000) to . Ex: \u00ab\u00a0TESTmtr 1 2000\u00a0\u00bb lights up half the left channel leds.<\/td><\/tr><tr><td>TP199<\/td><td>USB KBD functions<\/td><td>untested<\/td><\/tr><tr><td>SVEN2<\/td><td>7 seg diag<\/td><td>Shows a 2 letter text on the center \u00ab\u00a0MODE\u00a0\u00bb 7 segments display.<\/td><\/tr><tr><td>SURF<\/td><td>ctrl surface diags<\/td><td>untested<\/td><\/tr><tr><td>TP5<\/td><td>Control manager<\/td><td>untested<\/td><\/tr><tr><td>TP86<\/td><td>Power up restore<\/td><td>untested<\/td><\/tr><tr><td>LOG<\/td><td>Logging<\/td><td>Dumps the last boot message (see below)<\/td><\/tr><tr><td>FRAM<\/td><td>FRAM cmds<\/td><td>untested<\/td><\/tr><tr><td>FS<\/td><td>File system<\/td><td>untested<\/td><\/tr><tr><td>RTC<\/td><td>Real Time Clock<\/td><td>untested<\/td><\/tr><tr><td>USB<\/td><td>USB kbd diags<\/td><td>untested<\/td><\/tr><tr><td>TH6<\/td><td>SPI Access<\/td><td>untested<\/td><\/tr><tr><td>TH17<\/td><td>675 Live Bus<\/td><td>untested<\/td><\/tr><tr><td>TH16<\/td><td>MD Bus<\/td><td>untested<\/td><\/tr><tr><td>REP<\/td><td>Diags<\/td><td>untested<\/td><\/tr><tr><td>TH18_0<\/td><td>LCD Drivers<\/td><td>A set of commands to display text on the left\/right two lines LCD <\/td><\/tr><tr><td>TH19<\/td><td>Firmware revision<\/td><td>Shows the firmware revision \u00ab\u00a0FPGA Firmware version is : V2.01\u00a0\u00bb<\/td><\/tr><tr><td>INTEG<\/td><td>check code integrity<\/td><td>Check the OS integity, supposed to show \u00ab\u00a0Code integrity test passed.\u00a0\u00bb<\/td><\/tr><tr><td>CRASH<\/td><td>crash system<\/td><td>untested<\/td><\/tr><tr><td>VER<\/td><td>SW version<\/td><td>Shows the software version: \u00ab\u00a0Software : Nucleus<br>Version : V1.6\/2 I<br>Build : Tue 17 Jun 14, 15:59:17 by alanj\u00a0\u00bb<\/td><\/tr><tr><td>G<\/td><td>Flip back to the trusty \u00ab\u00a0G\u00a0\u00bb interpreter; same as<\/td><td>untested<\/td><\/tr><tr><td>DEBUG<\/td><td>Stuff which should probably be somewhere else<\/td><td>untested<\/td><\/tr><tr><td>HELP<\/td><td>Heap diags<\/td><td>untested<\/td><\/tr><tr><td>MOS<\/td><td>Operating system diagnostics<\/td><td>untested<\/td><\/tr><tr><td>FILES<\/td><td>Show file task ids<\/td><td>untested<\/td><\/tr><tr><td>REPort<\/td><td>Diagnostic reporting<\/td><td>untested<\/td><\/tr><\/tbody><\/table><figcaption>List of commands<\/figcaption><\/figure>\n\n\n\n<p>Boot logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Version        : V1.6\/2 I\nBuild          : Tue 17 Jun 14, 15:59:17 by alanj\nTP96: Monitor type is SSL Aude 505 CPU Monitor\n\n\n\nTH19: Firmware: V2.01\nth5_control_bus\nth16_bud_md_bus\nth5_control_bus\nth17_bud_live_bus\nTF1: File system\nth12: MMC\/SD init: Caching ON\nth12: card type 8\nTF1: File system status: OK\nTF1: 3896246272\/3942645760 bytes free\ntp301: Read 8192 bytes of FRAM data from disk (requested 8192)\nTS4: Crash logger\ntp86: Valid console PUR data found\nTP5: Control manager\ntp299: xdaw control surface\ntp234_bud_centre_meters\nTP226: Function lists\nTP184: Soft Key Manager\nTP253: CC Config\nTP190: DAW config\ntp190: setting profile 'BG Protools' ('\/userprof\/4') on daw layer 1\ntp190: setting profile 'B Logic Standard' ('\/userprof\/2') on daw layer 2\ntp190: setting profile 'Live Standard' ('\/sslprof\/14') on daw layer 3\nPX1: Ethernet\nPX1: mem map B\nPX1: 82559 Detected\nTC4: TCPIP setup\nTC4: 31 bytes of FRAM used\nTC4: Using DHCP assigned addresses\nTC1: OpenTCP Init\nTC1: Using DHCP assigned addresses\nTC1: MAC address is 58:0c:13:04:02:90\nTP185: Soft Key Assignments\nTP219: Layer 1 initialisation for protocol 'HUI'\nTP212 Creating HUI layer. First chan 1, last chan 16\ntp75: constructing HUI LUT\nTP219: Layer 2 initialisation for protocol 'Logic Audio'\nTP213 Creating MCU layer. First chan 1, last chan 16\ntp75: constructing MCU LUT\nTP160: Starting 2 MCU handhake ports for layer 2\ntp160: rcvd port active on port 0\ntp160: rcvd port active on port 1\nTP219: Layer 3 initialisation for protocol 'Logic Audio'\nTP213 Creating MCU layer. First chan 1, last chan 16\ntp75: constructing MCU LUT\nTP160: Starting 2 MCU handhake ports for layer 3\ntp160: rcvd port active on port 0\ntp160: rcvd port active on port 1\nTP176: AWS90 Remote &#91;serial no. 262800]\nTC1: Starting IP services\nTC1: got DHCP IP address 10.0.1.107\nTP277: Calibrating fader touch 1...16\nTP277: Calibrating faders 1...16\n\nSoftware       : Nucleus\nVersion        : V1.6\/2 I\nBuild          : Tue 17 Jun 14, 15:59:17 by alanj\n\nCode integrity test passed.\nBoot completed in 1030 ticks.\n<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just a few technical notes on debugging the SSL Nucleus (mk1) through serial port. I will enventually update this article with additional commands tests. First of all, you&rsquo;ll need a USB to serial cable, which can easily be found on amazon, aliexpress and so on. Such a cable it about 1\u20ac, don&rsquo;t spend more on &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/radix-studio.fr\/blog\/2020\/09\/21\/ssl-nucleus-debug-interface\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;SSL Nucleus debug interface&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-electronics"],"_links":{"self":[{"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":1,"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":196,"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/posts\/41\/revisions\/196"}],"wp:attachment":[{"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/radix-studio.fr\/blog\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}