{"id":8978,"date":"2018-01-22T12:59:16","date_gmt":"2018-01-22T09:59:16","guid":{"rendered":"https:\/\/www.sssrlabs.com\/?page_id=8978"},"modified":"2021-08-07T18:59:23","modified_gmt":"2021-08-07T15:59:23","slug":"sm010_programmers_reference","status":"publish","type":"page","link":"https:\/\/www.sssrlabs.com\/ru\/support\/sm010_programmers_reference\/","title":{"rendered":"SM010 Programmer&#8217;s Reference"},"content":{"rendered":"<p class=\"qtranxs-available-languages-message qtranxs-available-languages-message-ru\">\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u044d\u0442\u043e\u0442 \u0442\u0435\u0445\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 &ldquo;<a href=\"https:\/\/www.sssrlabs.com\/en\/wp-json\/wp\/v2\/pages\/8978\" class=\"qtranxs-available-language-link qtranxs-available-language-link-en\" title=\"English\">English<\/a>&rdquo;. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.<\/p><p><\/p>\n<pre style=\"font-size: 75%;\">SSSR Labs SM010 Matrixarchate\r\nFirmware v. 1.2 and later\r\nProgrammer's reference\r\n\r\n<strong>I2C control specification (Teletype mode)<\/strong>\r\n-------------------------\r\n\r\n<strong>I2C Addresses<\/strong>\r\n0xB8 (Unit 1, Default)\r\n0xB9 (Unit 2)\r\n0xBA (Unit 3)\r\n\r\n<strong>Bit fields legend<\/strong>\r\nx - ignored bits\r\nccc = column address (left to right)\r\nrrrr = row address (top to bottom)\r\nt = Current program if 1\r\nppppppp - program number (63 = setup)\r\nllllllll - low data byte\r\nhhhhhhhh - high data byte\r\n\r\n<strong>Bit order for row is from left to right (Low 0..7)<\/strong>\r\n-------------------------------------------\r\n| BITS    | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |\r\n| COLUMNS | H | G | F | E | D | C | B | A |\r\n-------------------------------------------\r\n \r\n<strong>Bit order for column is from top to bottom (Low 0..7, High 0..7)<\/strong>\r\n-------------------------------------------------------------------------------------------\r\n| BYTES   |                   1                   |                   2                   |\r\n| BITS    |  7 |  6 |  5 |  4 |  3 |  2 |  1 |  0 |  7 |  6 |  5 |  4 |  3 |  2 |  1 |  0 |\r\n| ROWS    |  8 |  7 |  6 |  5 |  4 |  3 |  2 |  1 | 16 | 15 | 14 | 13 | 12 | 11 | 10 |  9 |\r\n-------------------------------------------------------------------------------------------\r\n\r\n<strong>I\u00b2C command codes<\/strong>\r\n-----------------\r\n<strong>Perform Sequencer Step:\r\n<\/strong>  Code\r\n  11111000 (0xF8)\r\n  \r\n  Example:\r\n  00--&gt;B8: F8\r\n  (Go to the next step in the sequence)\r\n\r\n\r\n<strong>Sequencer Reset:\r\n<\/strong>  Code\r\n  11111101 (0xFD)\r\n  \r\n  Example:\r\n  00--&gt;B8: FD\r\n  (Go to the first step in the sequence)\r\n\r\n\r\n<strong>Program Change:\r\n<\/strong>  Code     Program\r\n  11000000 XXnnnnnn (0xC0 ..)\r\n  \r\n  Example:\r\n  00--&gt;B8: C0 0A\r\n  (Switch to program 11. Visually numbered 01-60 or 1A-8D, logically 00-59)\r\n\r\n\r\n<strong>Switch Off:\r\n<\/strong>  Code     Address  program \r\n  10000000 0rrrrccc tppppppp (0x80 .. ..)\r\n  \r\n  Example:\r\n  00--&gt;B8: 80 14 FF\r\n  (Switch off crosspoint \"03E\" in current program. Visually numbered 01A-16H, logically 0-127)\r\n\r\n\r\n<strong>Switch On:\r\n<\/strong>  Code     Address  program \r\n  10010000 0rrrrccc tppppppp (0x90 .. ..)\r\n  \r\n  Example:\r\n  00--&gt;B8: 90 08 FF\r\n  (Switch on crosspoint \"02A\" in current program. Visually numbered 01A-16H, logically 0-127)\r\n  \r\n\r\n<strong>Update column:\r\n<\/strong>  Code     Address  program  data_low data_high\r\n  10110000 0xxxxccc tppppppp llllllll hhhhhhhh (B0 .. .. .. ..)\r\n  \r\n  Example:\r\n  00--&gt;B8: B0 03 00 0F C0\r\n  (Update program 01, column D, turn switches 1, 2, 3, 4, 9, 11 ON, all others OFF.\r\n  \r\n\r\n<strong>Update row:\r\n<\/strong>  Code     Address  program  data_low data_high\r\n  10110000 1xxxrrrr tppppppp llllllll xxxxxxxx (B0 .. .. .. ..)\r\n  \r\n  Example:\r\n  00--&gt;B8: B0 83 10 5C 00\r\n  (Update program 17, row 4, turn switches B, D, E, G ON, all others OFF.\r\n\r\n\r\n<strong>Request memory location:\r\n<\/strong>  Code     Addr_L   Addr_H\r\n  10100000 LLLLLLLL HHHHHHHH (A0 .. ..)\r\n  (returns 1-byte data)\r\n  \r\n  Example:\r\n  00--&gt;B8: A0 FF 03\r\n  00&lt;--B8: 02 (Request settings byte (0x03ff), return value 0x02)\r\n\r\n\r\n<strong>Update memory location:<\/strong>\r\n Code Addr_L Addr_H Data 11010000 LLLLLLLL HHHHHHHH DDDDDDDD (D0 .. .. ..)\r\n\r\n Example: 00--&gt;B8: A0 FE 03 08\r\n (Set brightness (0x03FE) to medium (0x08)\r\n\r\n\r\n<strong>Request column\r\n<\/strong>  Code     Address  program\r\n  11110101 0xxxxccc tppppppp (F5 .. ..)\r\n  (returns 2-byte data)\r\n  \r\n  Example:\r\n  00--&gt;B8: F5 00 FF\r\n  00&lt;--B8: 40 02\r\n  (Request column A of the current program with only Switches 07A and 10A enabled)\r\n\r\n\r\n<strong>Request row<\/strong>\r\n  Code Address program 11110101 1xxxrrrr tppppppp (F5 .. ..)\r\n  (returns 2-byte data)\r\n\r\n  Example:\r\n  00--&gt;B8: F5 8F FF\r\n  00&lt;--B8: FF 00\r\n  (Request row 16 of the current program with All switches A-H enabled)\r\n\r\n\r\n<strong>Memory allocation\r\n<\/strong>----------------\r\n0x000: Patch memory block, Program 01 (16 bytes)\r\n0x010: Patch memory block, Program 02 (16 bytes)\r\n...\r\n0x3B0: Patch memory block, Program 60 (16 bytes)\r\n0x3C0: Reserved (48 bytes)\r\n...\r\n0x3F0: Sequencer memory block (8 bytes)\r\n...\r\n0x3F8: Reserved\r\n0x3F9: Reserved\r\n0x3FA: Reserved\r\n0x3FB: Reserved\r\n0x3FC: Reserved\r\n0x3FD: Reserved\r\n0x3FE: Brightness Byte\r\n0x3FF: Settings Byte\r\n------ END OF EEPROM ------\r\n\r\n\r\n<strong>Logical switch addresses (as shown on the matrix)\r\n<\/strong>-------------------------------------------------\r\n| A01 | B01 | C01 | D01 | E01 | F01 | G01 | H01 |\r\n-------------------------------------------------\r\n| A02 | B02 | C02 | D02 | E02 | F02 | G02 | H02 |\r\n-------------------------------------------------\r\n| A03 | B03 | C03 | D03 | E03 | F03 | G03 | H03 |\r\n-------------------------------------------------\r\n| A04 | B04 | C04 | D04 | E04 | F04 | G04 | H04 |\r\n-------------------------------------------------\r\n| A05 | B05 | C05 | D05 | E05 | F05 | G05 | H05 |\r\n-------------------------------------------------\r\n| A06 | B06 | C06 | D06 | E06 | F06 | G06 | H06 |\r\n-------------------------------------------------\r\n| A07 | B07 | C07 | D07 | E07 | F07 | G07 | H07 |\r\n-------------------------------------------------\r\n| A08 | B08 | C08 | D08 | E08 | F08 | G08 | H08 |\r\n=================================================\r\n| A09 | B09 | C09 | D09 | E09 | F09 | G09 | H09 |\r\n-------------------------------------------------\r\n| A10 | B10 | C10 | D10 | E10 | F10 | G10 | H10 |\r\n-------------------------------------------------\r\n| A11 | B11 | C11 | D11 | E11 | F11 | G11 | H11 |\r\n-------------------------------------------------\r\n| A12 | B12 | C12 | D12 | E12 | F12 | G12 | H12 |\r\n-------------------------------------------------\r\n| A13 | B13 | C13 | D13 | E13 | F13 | G13 | H13 |\r\n-------------------------------------------------\r\n| A14 | B14 | C14 | D14 | E14 | F14 | G14 | H14 |\r\n-------------------------------------------------\r\n| A15 | B15 | C15 | D15 | E15 | F15 | G15 | H15 |\r\n-------------------------------------------------\r\n| A16 | B16 | C16 | D16 | E16 | F16 | G16 | H16 |\r\n-------------------------------------------------\r\n\r\n\r\n<strong>Switch addresses allocation in a patch memory block\r\n<\/strong>--------------------------------------------------------\r\n| OFFS.|                    Bits:                      |\r\n--------------------------------------------------------\r\n|      |  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0  |\r\n--------------------------------------------------------\r\n| 0x00 | A08 | A07 | A06 | A05 | A04 | A03 | A02 | A01 |\r\n--------------------------------------------------------\r\n| 0x01 | B08 | B07 | B06 | B05 | B04 | B03 | B02 | B01 |\r\n--------------------------------------------------------\r\n| 0x02 | C08 | C07 | C06 | C05 | C04 | C03 | C02 | C01 |\r\n--------------------------------------------------------\r\n| 0x03 | D08 | D07 | D06 | D05 | D04 | D03 | D02 | D01 |\r\n--------------------------------------------------------\r\n| 0x04 | E08 | E07 | E06 | E05 | E04 | E03 | E02 | E01 |\r\n--------------------------------------------------------\r\n| 0x05 | F08 | F07 | F06 | F05 | F04 | F03 | F02 | F01 |\r\n--------------------------------------------------------\r\n| 0x06 | G08 | G07 | G06 | G05 | G04 | G03 | G02 | G01 |\r\n--------------------------------------------------------\r\n| 0x07 | H08 | H07 | H06 | H05 | H04 | H03 | H02 | H01 |\r\n========================================================\r\n| 0x08 | A16 | A15 | A14 | A13 | A12 | A11 | A10 | A09 |\r\n--------------------------------------------------------\r\n| 0x09 | B16 | B15 | B14 | B13 | B12 | B11 | B10 | B09 |\r\n--------------------------------------------------------\r\n| 0x0A | C16 | C15 | C14 | C13 | C12 | C11 | C10 | C09 |\r\n--------------------------------------------------------\r\n| 0x0B | D16 | D15 | D14 | D13 | D12 | D11 | D10 | D09 |\r\n--------------------------------------------------------\r\n| 0x0C | E16 | E15 | E14 | E13 | E12 | E11 | E10 | E09 |\r\n--------------------------------------------------------\r\n| 0x0D | F16 | F15 | F14 | F13 | F12 | F11 | F10 | F09 |\r\n--------------------------------------------------------\r\n| 0x0E | G16 | G15 | G14 | G13 | G12 | G11 | G10 | G09 |\r\n--------------------------------------------------------\r\n| 0x0F | H16 | H15 | H14 | H13 | H12 | H11 | H10 | H09 |\r\n--------------------------------------------------------\r\n\r\n\r\n<strong>Visual sequencer steps allocation\r\n<\/strong>-----------------------------------------\r\n| 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 |\r\n-----------------------------------------\r\n| 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |\r\n-----------------------------------------\r\n| 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |\r\n-----------------------------------------\r\n| 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |\r\n-----------------------------------------\r\n| 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |\r\n-----------------------------------------\r\n| 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |\r\n-----------------------------------------\r\n| 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |\r\n-----------------------------------------\r\n| 57 | 58 | 59 | 60 | -- | -- | -- | -- |\r\n-----------------------------------------\r\n\r\n\r\n<strong>Sequencer steps allocation in the settings memory block\r\n<\/strong>---------------------------------------------------------\r\n| ADDR  |                    Bits:                      |\r\n---------------------------------------------------------\r\n|       |  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0  |\r\n---------------------------------------------------------\r\n| 0X3F0 | 57  | 49  | 41  | 33  | 25  | 17  | 09  | 01  |\r\n| 0x3F1 | 58  | 50  | 42  | 34  | 26  | 18  | 10  | 02  |\r\n| 0x3F2 | 59  | 51  | 43  | 35  | 27  | 19  | 11  | 03  |\r\n| 0x3F3 | 60  | 52  | 44  | 36  | 28  | 20  | 12  | 04  |\r\n| 0x3F4 | xx  | 53  | 45  | 37  | 29  | 21  | 13  | 05  |\r\n| 0x3F5 | xx  | 54  | 46  | 38  | 30  | 22  | 14  | 06  |\r\n| 0x3F6 | xx  | 55  | 47  | 39  | 31  | 23  | 15  | 07  |\r\n| 0x3F7 | xx  | 56  | 48  | 40  | 32  | 24  | 16  | 08  |\r\n---------------------------------------------------------\r\n\r\n\r\n<strong>Brightness byte (0x3fe)\r\n<\/strong>----------------\r\nAllowed brightness value: 1..15\r\n\r\n\r\n<strong>Settings byte (0x3ff)\r\n<\/strong>---------------------------------\r\n| X | X | t | t | p | d | s | s |\r\n---------------------------------\r\nss: sequencer direction\r\n00 - Forward\r\n01 - Backward\r\n10 - Pendulum\r\n11 - Random\r\n\r\nd: display mode\r\n0 - Normal\r\n1 - Graphically assisted\r\n\r\np: program display mode\r\n0 - Decimal\r\n1 - Octal\r\n\r\ntt: I2C address for Monome Teletype\r\n00: 0x8B\r\n01: 0x8C\r\n10: 0x8D\r\n11: 0x8B\r\n<\/pre>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u044d\u0442\u043e\u0442 \u0442\u0435\u0445\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 &ldquo;English&rdquo;. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language. SSSR Labs SM010 Matrixarchate Firmware v. 1.2 and later Programmer&#8217;s reference I2C control specification (Teletype mode) &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- I2C Addresses 0xB8 (Unit 1, Default) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9003,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8978","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/pages\/8978","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/comments?post=8978"}],"version-history":[{"count":4,"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/pages\/8978\/revisions"}],"predecessor-version":[{"id":8982,"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/pages\/8978\/revisions\/8982"}],"up":[{"embeddable":true,"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/pages\/9003"}],"wp:attachment":[{"href":"https:\/\/www.sssrlabs.com\/ru\/wp-json\/wp\/v2\/media?parent=8978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}