-    #packages=find_packages(exclude=('tests',)),
-    packages=[
-        'adafruit_blinka',
-        'adafruit_blinka.agnostic',
-        'adafruit_blinka.board',
-        'adafruit_blinka.microcontroller',
-        'adafruit_blinka.microcontroller.esp8266',
-        'adafruit_blinka.microcontroller.stm32',
-        'microcontroller'
-    ],
-    # If your package is a single module, use this instead of 'packages':
-    py_modules=['bitbangio', 'board', 'busio', 'digitalio'],
-    # entry_points={
-    #     'console_scripts': ['mycli=mymodule:cli'],
-    # },
-    install_requires=REQUIRED,
-    include_package_data=True,
+    packages=find_packages("src"),
+    # py_modules lists top-level single file packages to include.
+    # find_packages only finds packages in directories with __init__.py files.
+    py_modules=['_bleio', 'analogio', 'bitbangio', 'board', 'busio', 'digitalio', 'micropython', 'pulseio', 'neopixel_write'],
+    package_data={'adafruit_blinka.microcontroller.bcm283x.pulseio': ['libgpiod_pulsein']},
+    install_requires=[
+        "Adafruit-PlatformDetect",
+        "Adafruit-PureIO",
+        "spidev>=3.4; sys_platform=='linux' and platform_machine!='mips'",
+        "sysv_ipc; platform_system != 'Windows' and platform_machine != 'mips'",
+        "pyftdi>=0.40.0"
+    ] + board_reqs,