mirror of
				https://github.com/KevinMidboe/python-gpiozero.git
				synced 2025-10-29 17:50:37 +00:00 
			
		
		
		
	Fix up missing board stuff
Also ensure the Zero W gets represented properly on board output and tidy up some spacing
This commit is contained in:
		| @@ -152,18 +152,18 @@ ZERO12_BOARD = """\ | ||||
| {style:white on green},-------------------------.{style:reset} | ||||
| {style:white on green}| {P1:{style} col2}{style:white on green} P1 |{style:reset} | ||||
| {style:white on green}| {P1:{style} col1}{style:white on green}    |{style:reset} | ||||
| {style:black on white}---+{style:white on green}       {style:on black}+----+{style:on green} {style:bold}PiZero{style:normal}  |{style:reset} | ||||
| {style:black on white} sd|{style:white on green}       {style:on black}|SoC |{style:on green}  {style:bold}V{pcb_revision:3s}{style:normal}   |{style:reset} | ||||
| {style:black on white}---+|hdmi|{style:white on green} {style:on black}+----+{style:on green} {style:black on white}usb{style:on green} {style:black on white}pwr{style:white on green} |{style:reset} | ||||
| {style:black on white}---+{style:white on green}       {style:on black}+---+{style:on green}  {style:bold}PiZero{style:normal}  |{style:reset} | ||||
| {style:black on white} sd|{style:white on green}       {style:on black}|SoC|{style:on green}   {style:bold}V{pcb_revision:3s}{style:normal}   |{style:reset} | ||||
| {style:black on white}---+|hdmi|{style:white on green} {style:on black}+---+{style:on green}  {style:black on white}usb{style:on green} {style:black on white}pwr{style:white on green} |{style:reset} | ||||
| {style:white on green}`---{style:black on white}|    |{style:white on green}--------{style:black on white}| |{style:white on green}-{style:black on white}| |{style:white on green}-'{style:reset}""" | ||||
|  | ||||
| ZERO13_BOARD = """\ | ||||
| {style:white on green}.-------------------------.{style:reset} | ||||
| {style:white on green}| {P1:{style} col2}{style:white on green} P1 |{style:reset} | ||||
| {style:white on green}| {P1:{style} col1}{style:white on green}   {style:black on white}|c{style:reset} | ||||
| {style:black on white}---+{style:white on green}       {style:on black}+----+{style:on green} {style:bold}PiZero{style:normal} {style:black on white}|s{style:reset} | ||||
| {style:black on white} sd|{style:white on green}       {style:on black}|SoC |{style:on green}  {style:bold}V{pcb_revision:3s}{style:normal}  {style:black on white}|i{style:reset} | ||||
| {style:black on white}---+|hdmi|{style:white on green} {style:on black}+----+{style:on green} {style:black on white}usb{style:on green} {style:on white}pwr{style:white on green} |{style:reset} | ||||
| {style:black on white}---+{style:white on green}       {style:on black}+---+{style:on green} {style:bold}Pi{model:6s}{style:normal}{style:black on white}|s{style:reset} | ||||
| {style:black on white} sd|{style:white on green}       {style:on black}|SoC|{style:on green}   {style:bold}V{pcb_revision:3s}{style:normal}  {style:black on white}|i{style:reset} | ||||
| {style:black on white}---+|hdmi|{style:white on green} {style:on black}+---+{style:on green}  {style:black on white}usb{style:on green} {style:on white}pwr{style:white on green} |{style:reset} | ||||
| {style:white on green}`---{style:black on white}|    |{style:white on green}--------{style:black on white}| |{style:white on green}-{style:black on white}| |{style:white on green}-'{style:reset}""" | ||||
|  | ||||
| CM_BOARD = """\ | ||||
| @@ -838,20 +838,21 @@ class PiBoardInfo(namedtuple('PiBoardInfo', ( | ||||
|             # uuuuuuuu - Unused | ||||
|             # F        - New flag (1=valid new-style revision, 0=old-style) | ||||
|             # MMM      - Memory size (0=256, 1=512, 2=1024) | ||||
|             # CCCC     - Manufacturer (0=Sony, 1=Egoman, 2=Embest) | ||||
|             # CCCC     - Manufacturer (0=Sony, 1=Egoman, 2=Embest, 3=Sony Japan) | ||||
|             # PPPP     - Processor (0=2835, 1=2836, 2=2837) | ||||
|             # TTTTTTTT - Type (0=A, 1=B, 2=A+, 3=B+, 4=2B, 5=Alpha (??), 6=CM, 8=3B, 9=Zero) | ||||
|             # TTTTTTTT - Type (0=A, 1=B, 2=A+, 3=B+, 4=2B, 5=Alpha (??), 6=CM, | ||||
|             #                  8=3B, 9=Zero, 10=CM3, 12=Zero W) | ||||
|             # RRRR     - Revision (0, 1, 2, etc.) | ||||
|             try: | ||||
|                 model = { | ||||
|                     0: 'A', | ||||
|                     1: 'B', | ||||
|                     2: 'A+', | ||||
|                     3: 'B+', | ||||
|                     4: '2B', | ||||
|                     6: 'CM', | ||||
|                     8: '3B', | ||||
|                     9: 'Zero', | ||||
|                     0:  'A', | ||||
|                     1:  'B', | ||||
|                     2:  'A+', | ||||
|                     3:  'B+', | ||||
|                     4:  '2B', | ||||
|                     6:  'CM', | ||||
|                     8:  '3B', | ||||
|                     9:  'Zero', | ||||
|                     10: 'CM3', | ||||
|                     12: 'Zero W', | ||||
|                     }[(revision & 0xff0) >> 4] | ||||
| @@ -880,64 +881,73 @@ class PiBoardInfo(namedtuple('PiBoardInfo', ( | ||||
|                     2: 1024, | ||||
|                     }[(revision & 0x700000) >> 20] | ||||
|                 released = { | ||||
|                     'A':    '2013Q1', | ||||
|                     'B':    '2012Q1' if pcb_revision == '1.0' else '2012Q4', | ||||
|                     'A+':   '2014Q4' if memory == 512 else '2016Q3', | ||||
|                     'B+':   '2014Q3', | ||||
|                     '2B':   '2015Q1' if pcb_revision == '1.1' else '2016Q3', | ||||
|                     'CM':   '2014Q2', | ||||
|                     '3B':   '2016Q1' if manufacturer == 'Sony' or manufacturer == 'Embest' else '2016Q4', | ||||
|                     'Zero': '2015Q4' if pcb_revision == '1.0' else '2016Q2', | ||||
|                     'CM3':  '2017Q1', | ||||
|                     'A':      '2013Q1', | ||||
|                     'B':      '2012Q1' if pcb_revision == '1.0' else '2012Q4', | ||||
|                     'A+':     '2014Q4' if memory == 512 else '2016Q3', | ||||
|                     'B+':     '2014Q3', | ||||
|                     '2B':     '2015Q1' if pcb_revision == '1.1' else '2016Q3', | ||||
|                     'CM':     '2014Q2', | ||||
|                     '3B':     '2016Q1' if manufacturer in ('Sony', 'Embest') else '2016Q4', | ||||
|                     'Zero':   '2015Q4' if pcb_revision == '1.0' else '2016Q2', | ||||
|                     'CM3':    '2017Q1', | ||||
|                     'Zero W': '2017Q1', | ||||
|                     }[model] | ||||
|                 storage = { | ||||
|                     'A': 'SD', | ||||
|                     'B': 'SD', | ||||
|                     'CM': 'eMMC', | ||||
|                     'A':   'SD', | ||||
|                     'B':   'SD', | ||||
|                     'CM':  'eMMC', | ||||
|                     'CM3': 'eMMC / off-board', | ||||
|                     }.get(model, 'MicroSD') | ||||
|                 usb = { | ||||
|                     'A':    1, | ||||
|                     'A+':   1, | ||||
|                     'Zero': 1, | ||||
|                     'A':      1, | ||||
|                     'A+':     1, | ||||
|                     'Zero':   1, | ||||
|                     'Zero W': 1, | ||||
|                     'B':    2, | ||||
|                     'CM':   0, | ||||
|                     'CM3':  1, | ||||
|                     'B':      2, | ||||
|                     'CM':     0, | ||||
|                     'CM3':    1, | ||||
|                     }.get(model, 4) | ||||
|                 ethernet = { | ||||
|                     'A':    0, | ||||
|                     'A+':   0, | ||||
|                     'Zero': 0, | ||||
|                     'A':      0, | ||||
|                     'A+':     0, | ||||
|                     'Zero':   0, | ||||
|                     'Zero W': 0, | ||||
|                     'CM':   0, | ||||
|                     'CM3':  0, | ||||
|                     'CM':     0, | ||||
|                     'CM3':    0, | ||||
|                     }.get(model, 1) | ||||
|                 wifi = { | ||||
|                     '3B': True, | ||||
|                     '3B':     True, | ||||
|                     'Zero W': True, | ||||
|                     }.get(model, False) | ||||
|                 bluetooth = { | ||||
|                     '3B': True, | ||||
|                     '3B':     True, | ||||
|                     'Zero W': True, | ||||
|                     }.get(model, False) | ||||
|                 csi = { | ||||
|                     'Zero': 0 if pcb_revision == '1.0' else 1, | ||||
|                     'Zero':   0 if pcb_revision == '1.0' else 1, | ||||
|                     'Zero W': 1, | ||||
|                     'CM':   2, | ||||
|                     'CM3':  2, | ||||
|                     'CM':     2, | ||||
|                     'CM3':    2, | ||||
|                     }.get(model, 1) | ||||
|                 dsi = { | ||||
|                     'Zero': 0, | ||||
|                     'Zero':   0, | ||||
|                     'Zero W': 0, | ||||
|                     }.get(model, csi) | ||||
|                 headers = { | ||||
|                     'A':  {'P1': REV2_P1, 'P5': REV2_P5}, | ||||
|                     'B':  {'P1': REV2_P1, 'P5': REV2_P5} if pcb_revision == '2.0' else {'P1': REV1_P1}, | ||||
|                     'CM': {'SODIMM': CM_SODIMM}, | ||||
|                     'A':   {'P1': REV2_P1, 'P5': REV2_P5}, | ||||
|                     'B':   {'P1': REV2_P1, 'P5': REV2_P5} if pcb_revision == '2.0' else {'P1': REV1_P1}, | ||||
|                     'CM':  {'SODIMM': CM_SODIMM}, | ||||
|                     'CM3': {'SODIMM': CM3_SODIMM}, | ||||
|                     }.get(model, {'P1': PLUS_P1}) | ||||
|                 board = { | ||||
|                     'A':      A_BOARD, | ||||
|                     'B':      REV1_BOARD if pcb_revision == '1.0' else REV2_BOARD, | ||||
|                     'A+':     APLUS_BOARD, | ||||
|                     'CM':     CM_BOARD, | ||||
|                     'CM3':    CM_BOARD, | ||||
|                     'Zero':   ZERO12_BOARD if pcb_revision == '1.2' else ZERO13_BOARD, | ||||
|                     'Zero W': ZERO13_BOARD, | ||||
|                     }.get(model, BPLUS_BOARD) | ||||
|             except KeyError: | ||||
|                 raise PinUnknownPi('unable to parse new-style revision "%x"' % revision) | ||||
|         else: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user