diff --git a/generate-html.py b/generate-html.py index 859225b..4990f72 100755 --- a/generate-html.py +++ b/generate-html.py @@ -29,8 +29,9 @@ overlays = [ 'skywriter-hat', 'explorer-hat-pro', 'explorer-hat', - 'display-o-tron' - ] + 'display-o-tron', + 'dots' +] template = open('template/layout.html').read() @@ -90,6 +91,18 @@ def load_overlay(overlay): uses_3v = False uses = 0 for pin in loaded['pin']: + if pin.startswith('bcm'): + pin = pin[3:] + for idx in pins: + compare_pin = pins[idx] + #print(compare_pin) + if 'scheme' in compare_pin: + if 'bcm' in compare_pin['scheme']: + if compare_pin['scheme']['bcm'] == int(pin): + print("Mapping BCM{} to {}".format(pin, str(idx))) + pin = str(idx) + break + if pin in pins: actual_pin = pins[pin] if actual_pin['type'] in ['+3v3','+5v','GND']: @@ -201,10 +214,18 @@ def render_pin(pin_num, selected_url, overlay=None): pin_name = pin['name'] pin_used = False pin_link_title = [] + bcm_pin = None + if 'scheme' in pin: + if 'bcm' in pin['scheme']: + bcm_pin = 'bcm' + str(pin['scheme']['bcm']) + if overlay != None and ( str(pin_num) in overlay['pin'] or bcm_pin in overlay['pin']): + + if str(pin_num) in overlay['pin']: + overlay_pin = overlay['pin'][str(pin_num)] + else: + overlay_pin = overlay['pin'][bcm_pin] - if overlay != None and str(pin_num) in overlay['pin']: - overlay_pin = overlay['pin'][str(pin_num)] pin_used = True #print(overlay) if 'name' in overlay_pin: diff --git a/overlay/dots.json b/overlay/dots.json new file mode 100644 index 0000000..06aab21 --- /dev/null +++ b/overlay/dots.json @@ -0,0 +1,34 @@ +{ + "name": "Raspberry Pi Dots", + "description": "Join the dots to make a circuit", + "pin": { + "bcm0": {"name":"Color: Blue", "direction":"input"}, + "bcm1": {"name":"Dot 7", "direction":"input"}, + "bcm2": {"name":"Dot 22", "direction":"input"}, + "bcm3": {"name":"Dot 21", "direction":"input"}, + "bcm4": {"name":"Dot 2", "direction":"input"}, + "bcm5": {"name":"Dot 9", "direction":"input"}, + "bcm6": {"name":"Dot 14", "direction":"input"}, + "bcm7": {"name":"Dot 6", "direction":"input"}, + "bcm8": {"name":"Dot 18", "direction":"input"}, + "bcm9": {"name":"Dot 17", "direction":"input"}, + "bcm10": {"name":"Color: Green", "direction":"input"}, + "bcm11": {"name":"Dot 8", "direction":"input"}, + "bcm12": {"name":"Dot 10", "direction":"input"}, + "bcm13": {"name":"Cloud", "direction":"input"}, + "bcm14": {"name":"Dot 1", "direction":"input"}, + "bcm15": {"name":"Dot 3", "direction":"input"}, + "bcm16": {"name":"Dot 13", "direction":"input"}, + "bcm17": {"name":"Dot 4", "direction":"input"}, + "bcm18": {"name":"Dot 20", "direction":"input"}, + "bcm19": {"name":"Color: Orange", "direction":"input"}, + "bcm20": {"name":"Bear", "direction":"input"}, + "bcm21": {"name":"Dot 12", "direction":"input"}, + "bcm22": {"name":"Dot 15", "direction":"input"}, + "bcm23": {"name":"Dot 16", "direction":"input"}, + "bcm24": {"name":"Dot 19", "direction":"input"}, + "bcm25": {"name":"Dot 5", "direction":"input"}, + "bcm26": {"name":"Dot 11", "direction":"input"}, + "bcm27": {"name":"Color: Red", "direction":"input"} + } +} diff --git a/pi-pinout.json b/pi-pinout.json index 751d0e9..f6a1ad7 100644 --- a/pi-pinout.json +++ b/pi-pinout.json @@ -97,7 +97,11 @@ "27":{ "name": "ID_SD", "description": "HAT EEPROM i2c Data", - "type": "GPIO/I2C" + "type": "GPIO/I2C", + "scheme": { + "wiringpi": 30, + "bcm": 0 + } }, "29":{ "name": "", @@ -236,7 +240,11 @@ "28":{ "name": "ID_SC", "description": "HAT EEPROM i2c Clock", - "type": "GPIO" + "type": "GPIO/I2C", + "scheme": { + "wiringpi": 31, + "bcm": 1 + } }, "30":{ "name": "Ground",