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