{
"info": {
"author": "Brendan Doherty",
"author_email": "2bndy5@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Topic :: Software Development :: Libraries",
"Topic :: System :: Hardware"
],
"description": "Introduction\n============\n\n.. image:: https://readthedocs.org/projects/circuitpython-nrf24l01/badge/?version=latest\n :target: https://circuitpython-nrf24l01.readthedocs.io/\n :alt: Documentation Status\n\n.. .. image:: https://img.shields.io/discord/327254708534116352.svg\n.. :target: https://discord.gg/nBQh6qu\n.. :alt: Discord\n\n.. image:: https://travis-ci.org/2bndy5/CircuitPython_nRF24L01.svg?branch=master\n :target: https://travis-ci.org/2bndy5/CircuitPython_nRF24L01\n :alt: Build Status\n\nCircuitpython driver library for the nRF24L01 transceiver\n\nFeatures currently supported\n----------------------------\n\n* change the addresses' length (can be 3 to 5 bytes long)\n* dynamically sized payloads (max 32 bytes each) or statically sized payloads\n* automatic responding acknowledgment (ACK) for verifying transmission success\n* custom acknowledgment (ACK) payloads for bi-directional communication\n* flag a single payload for no acknowledgment (ACK) from the receiving nRF24L01\n* \"re-use the same payload\" feature (for manually re-transmitting failed transmissions that remain in the buffer)\n* multiple payload transmissions with one function call (MUST read documentation on the \"send()\" function)\n* context manager compatible for easily switching between different radio configurations using \"with\" statements\n* configure the interrupt (IRQ) pin to trigger (active low) on received, sent, and/or failed transmissions (these 3 flags control the 1 IRQ pin). There's also virtual representations of these interrupt flags available (see \"irq_DR\", \"irq_DS\", \"irq_DF\" attributes)\n* invoke sleep mode (AKA power down mode) for ultra-low current consumption\n* cycle redundancy checking (CRC) up to 2 bytes long\n* adjust the nRF24L01's builtin automatic re-transmit feature's parameters (arc: number of attempts, ard: delay between attempts)\n* adjust the nRF24L01's frequency channel (2.4-2.525 GHz)\n* adjust the nRF24L01's power amplifier level (0, -6, -12, or -18 dBm)\n* adjust the nRF24L01's RF data rate (250Kbps is buggy due to hardware design, but 1Mbps and 2Mbps are reliable)\n\nFeatures currently unsupported\n-------------------------------\n\n* as of yet, no [intended] implementation for Multiceiver mode (up to 6 TX nRF24L01 \"talking\" to 1 RX nRF24L01 simultaneously). Although this might be acheived easily using the \"automatic retry delay\" (ard) and \"automatic retry count\" (arc) attributes set accordingly (varyingly high).\n* for reason(s) unknown, a nRF24L01 driven by this library will not \"talk\" to a nRF24L01 on an Arduino driven by the `TMRh20 RF24 library `_. There is no problems when a nRF24L01 driven by this library \"talks\" to another nRF24L01 that's also driven by this library. `Other Arduino-based nRF24L01 libraries are available `_, but they have not been tested to communicate with this CircuitPython-nRF24L01 library.\n\nDependencies\n=============\nThis driver depends on:\n\n* `Adafruit CircuitPython `_\n* `Bus Device `_\n\nPlease ensure all dependencies are available on the CircuitPython filesystem.\nThis is easily achieved by downloading\n`the Adafruit library and driver bundle `_.\n\nInstalling from PyPI\n=====================\n\nOn supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from\nPyPI `_. To install for current user:\n\n.. code-block:: shell\n\n pip3 install circuitpython-nrf24l01\n\nTo install system-wide (this may be required in some cases):\n\n.. code-block:: shell\n\n sudo pip3 install circuitpython-nrf24l01\n\nTo install in a virtual environment in your current project:\n\n.. code-block:: shell\n\n mkdir project-name && cd project-name\n python3 -m venv .env\n source .env/bin/activate\n pip3 install circuitpython-nrf24l01\n\nPinout\n======\n.. image:: ../nRF24L01_Pinout.png\n\nThe nRF24L01 is controlled through SPI so there are 3 pins (SCK, MOSI, & MISO) that can only be connected to their counterparts on the MCU (microcontroller unit). The other 2 essential pins (CE & CSN) can be connected to any digital output pins. Lastly, the only optional pin on the nRf24L01 GPIOs is the IRQ (interrupt; a digital output that's active when low) pin and is only connected to the MCU via a digital input pin during the interrupt example. The following pinout is used in the example codes of this repo's example directory.\n\n+------------+----------------+----------------+\n| nRF24L01 | Raspberry Pi | ItsyBitsy M4 |\n+============+================+================+\n| GND | GND | GND |\n+------------+----------------+----------------+\n| VCC | 3V | 3.3V |\n+------------+----------------+----------------+\n| CE | GPIO8 (CE0) | D7 |\n+------------+----------------+----------------+\n| CSN | GPIO5 | D5 |\n+------------+----------------+----------------+\n| SCK | GPIO11 (SCK) | SCK |\n+------------+----------------+----------------+\n| MOSI | GPIO10 (MOSI) | MOSI |\n+------------+----------------+----------------+\n| MISO | GPIO9 (MISO) | MISO |\n+------------+----------------+----------------+\n| IRQ | GPIO4 | D4 |\n+------------+----------------+----------------+\n\n.. tip:: User reports and personal experiences have improved results if there is a capacitor of at least 100 nanofarads connected in parrallel to the VCC and GND pins.\n\nUsing The Examples\n==================\n\nSee `examples/` for an certain features of this the library. Notice that there are 2 files in each scenario/folder; one file titled \"pi_test.py\" for testing on the raspberry pi, and another file titled \"m4_test.py\" for testing on an adafruit boards with atsamd51. This was developed and tested on both Raspberry Pi and ItsyBitsy M4. Pins have been hard coded in the examples for the corresponding device, so please adjust these accordingly to your circuitpython device if necessary.\n\nTo run the simple example, open a python terminal in this repo's example/simple folder and run the following:\n\n.. code-block:: python\n\n # if using an adafruit feather, try using \"from m4_test import *\"\n >>> from pi_test import *\n nRF24L01 Simple test\\n\\\n Run slave() on receiver\\n\\\n Run master() on transmitter\n >>> master(3)\n Sending: 3 as struct: b'\\x03\\x00\\x00\\x00'\n send() succeessful\n Transmission took 86.0 ms\n Sending: 2 as struct: b'\\x02\\x00\\x00\\x00'\n send() succeessful\n Transmission took 109.0 ms\n Sending: 1 as struct: b'\\x01\\x00\\x00\\x00'\n send() succeessful\n Transmission took 109.0 ms\n\n\nAbout the nRF24L01\n==================\n\nHere are the features listed directly from the datasheet (refered to as the `nRF24L01+ Specification Sheet `_):\n\nnRF24L01+ Single Chip 2.4GHz Transceiver\nPreliminary Product Specification v1.0\n\nKey Features:\n-------------\n\n * Worldwide 2.4GHz ISM band operation\n * 250kbps, 1Mbps and 2Mbps on air data rates\n * Ultra low power operation\n * 11.3mA TX at 0dBm output power\n * 13.5mA RX at 2Mbps air data rate\n * 900nA in power down\n * 26\u03bcA in standby-I\n * On chip voltage regulator\n * 1.9 to 3.6V supply range\n * Enhanced ShockBurst\u2122\n * Automatic packet handling\n * Auto packet transaction handling\n * 6 data pipe MultiCeiver\u2122\n * Drop-in compatibility with nRF24L01\n * On-air compatible in 250kbps and 1Mbps with nRF2401A, nRF2402, nRF24E1 and nRF24E2\n * Low cost BOM\n * \u00b160ppm 16MHz crystal\n * 5V tolerant inputs\n * Compact 20-pin 4x4mm QFN package\n\nApplications\n------------\n\n * Wireless PC Peripherals\n * Mouse, keyboards and remotes\n * 3-in-1 desktop bundles\n * Advanced Media center remote controls\n * VoIP headsets\n * Game controllers\n * Sports watches and sensors\n * RF remote controls for consumer electronics\n * Home and commercial automation\n * Ultra low power sensor networks\n * Active RFID\n * Asset tracking systems\n * Toys\n\nFuture Project Ideas/Additions using the nRF24L01 (not currently supported by this circuitpython library):\n\n * `There's a few blog posts by Nerd Ralph demonstrating how to use the nRF24L01 via 2 or 3 pins `_ (uses custom bitbanging SPI functions and an external circuit involving a resistor and a capacitor)\n * network linking layer, maybe something like `TMRh20's RF24Network `_\n\nWhere do I get 1?\n=================\n\nSee the store links on the sidebar or just google \"nRF24L01\". It is worth noting that you generally don't want to buy just 1 as you need 2 for testing -- 1 to send & 1 to receive and vise versa. This library has been tested on a cheaply bought 10 pack from Amazon.com using a recommended capacitor (>100nF) on the power pins. Don't get lost on Amazon or eBay! There are other wireless transceivers that are NOT compatible with this library. For instance, the esp8266-01 (also sold in packs) is NOT compatible with this library, but looks very similar to the nRF24L01(+) and could lead to an accidental purchase.\n\nContributing\n============\n\nContributions are welcome! Please read our `Code of Conduct\n`_\nbefore contributing to help this project stay welcoming.\n\nSphinx documentation\n-----------------------\n\nSphinx is used to build the documentation based on rST files and comments in the code. First,\ninstall dependencies (feel free to reuse the virtual environment from above):\n\n.. code-block:: shell\n\n python3 -m venv .env\n source .env/bin/activate\n pip install Sphinx sphinx-rtd-theme\n\nNow, once you have the virtual environment activated:\n\n.. code-block:: shell\n\n cd docs\n sphinx-build -E -W -b html . _build/html\n\nThis will output the documentation to ``docs/_build/html``. Open the index.html in your browser to\nview them. It will also (due to -W) error out on any warning like Travis will. This is a good way to locally verify it will pass.",
"description_content_type": "text/x-rst",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/2bndy5/CircuitPython_nRF24L01",
"keywords": "adafruit blinka circuitpython micropython nrf24l01 nRF24L01+",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "circuitpython-nrf24l01",
"package_url": "https://pypi.org/project/circuitpython-nrf24l01/",
"platform": "",
"project_url": "https://pypi.org/project/circuitpython-nrf24l01/",
"project_urls": {
"Homepage": "https://github.com/2bndy5/CircuitPython_nRF24L01"
},
"release_url": "https://pypi.org/project/circuitpython-nrf24l01/1.1.0/",
"requires_dist": null,
"requires_python": "",
"summary": "Circuitpython driver library for the nRF24L01 transceiver",
"version": "1.1.0"
},
"last_serial": 5729041,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "7bcb7a6ff9cb75e4d4f128a0ec843e49",
"sha256": "93f8f02c015bd27feec937e0fd1ca3bc8e1b25171d99dc03c67ad900af566f3d"
},
"downloads": -1,
"filename": "circuitpython-nrf24l01-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "7bcb7a6ff9cb75e4d4f128a0ec843e49",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 110777,
"upload_time": "2019-08-08T10:07:47",
"url": "https://files.pythonhosted.org/packages/5a/1e/246705572153c5a0d75c57b79d210c431346e36e94ca92cab0c13aa92623/circuitpython-nrf24l01-1.0.0.tar.gz"
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "3d90deaf326c720f2d82e57538b08291",
"sha256": "ee39d07272520a506e2260fe7857a715e07280527a9e8c7491961651f47b2588"
},
"downloads": -1,
"filename": "circuitpython-nrf24l01-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "3d90deaf326c720f2d82e57538b08291",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 112339,
"upload_time": "2019-08-18T21:56:57",
"url": "https://files.pythonhosted.org/packages/d2/77/e4f107eaa7e0d1338e76017778b5416dfb31478981f31e53ad51f412462e/circuitpython-nrf24l01-1.0.1.tar.gz"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "368599a33894cb52b62608f15778275c",
"sha256": "91d65464b99ab09c64b1de3de3a6226c256af199e5ae9216ecbff24844a46b38"
},
"downloads": -1,
"filename": "circuitpython-nrf24l01-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "368599a33894cb52b62608f15778275c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 111407,
"upload_time": "2019-08-26T06:06:43",
"url": "https://files.pythonhosted.org/packages/e0/f5/bc83f7878b999ff32fec08a9ef91754a47f1a55e4ec1f7b9cfc4b2842023/circuitpython-nrf24l01-1.1.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "368599a33894cb52b62608f15778275c",
"sha256": "91d65464b99ab09c64b1de3de3a6226c256af199e5ae9216ecbff24844a46b38"
},
"downloads": -1,
"filename": "circuitpython-nrf24l01-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "368599a33894cb52b62608f15778275c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 111407,
"upload_time": "2019-08-26T06:06:43",
"url": "https://files.pythonhosted.org/packages/e0/f5/bc83f7878b999ff32fec08a9ef91754a47f1a55e4ec1f7b9cfc4b2842023/circuitpython-nrf24l01-1.1.0.tar.gz"
}
]
}