Commit Graph

670 Commits

Author SHA1 Message Date
Glenn Ruben Bakke 6f6c5d30e8 nrf5/boards: Updating path to custom bluefruit feather linker script after renaming board folder. 2017-04-25 21:51:10 +02:00
Glenn Ruben Bakke 4ae600be8a nrf5/boards: Renaming bluefruit_feather to bluefruit_nrf52_feather as it also exist a m0 variant of the board name. 2017-04-25 21:49:17 +02:00
Glenn Ruben Bakke 8aa6e0388e nrf5/boards: Updating mpconfigboard.h for bluefruit nrf52 feather with correct board, mcu and platform name. 2017-04-25 21:48:01 +02:00
Glenn Ruben Bakke 195c492419 nrf5/boards: Updating adafruit bluefruit nrf52 feather linker script to use 0x1c000 application offset. 2017-04-25 21:44:01 +02:00
Glenn Ruben Bakke 8429d022e1 nrf5/boards: Renaming custom linker script for bluefruit feather to reflect that the purpose of the custom linker script is DFU. The script is diverging from the generic s132 v2 linker script in the offset of the application. 2017-04-25 08:53:52 +02:00
Glenn Ruben Bakke 7043680f1f nrf5/boards: Adding custom linker script for adafruit nrf52 bluefruit feather to be able to detect application upper boundry in flash. Pointing s132 mk file to use this new custom linker script instead of the generic s132 v2 linker script. 2017-04-25 08:49:18 +02:00
Glenn Ruben Bakke ec6502c1ea nrf5/boards: Adding linker script for nrf52832 s132 v.2.0.1. 2017-04-24 23:29:05 +02:00
Glenn Ruben Bakke 0ba9c62940 nrf5/boards: Adding template board makefiles and configs for bluefruit nrf52 feather. Copied from pca10040 target board. Linker script reference updated to use s132 v2.0.1. Non-BLE enable build disabled for now. Board configuration for leds, uart etc has not been updated yet from pca10040 layout. 2017-04-24 23:25:25 +02:00
Glenn Ruben Bakke 44fc96c8a9 nrf5/bluetooth: Correcting typo in test where s132 API version is settled. 2017-04-24 23:14:04 +02:00
Glenn Ruben Bakke f68fb8499d nrf5/bluetooth: Updating bluetooth le driver to compile with s132 v.2.0.1 stack. 2017-04-24 23:05:08 +02:00
Glenn Ruben Bakke 2adad5f2a6 nrf5/bluetooth: Add new compiler flag to signal API variants of the s132 bluetooth le stack. The version is derived from the major number of the stack name. 2017-04-24 23:03:54 +02:00
Glenn Ruben Bakke 9abd38a3f2 nrf5/bluetooth: Remove hardcoded softdevice version as this now comes as parameter from board makefile. 2017-04-24 22:29:48 +02:00
Glenn Ruben Bakke 3c8323aff4 nrf5/boards: Updating makefiles using bluetooth stack to use updated linker script file names. 2017-04-24 22:28:08 +02:00
Glenn Ruben Bakke f4fd45bef3 nrf5/boards: Renaming bluetooth stack linker scripts to reflect version of the stack. 2017-04-24 22:22:17 +02:00
Glenn Ruben Bakke bccfc7262d nrf5/boards: adding some spaces in s132 makefile for pca10040. 2017-04-24 22:18:46 +02:00
Glenn Ruben Bakke 582db669b6 nrf5/boards: Renaming linker script for nrf52832 using bluetooth stack such that it also holds the version number of the stack. Updating linkerscript using the target linker script. 2017-04-24 22:02:41 +02:00
Glenn Ruben Bakke 39d3d7bb28 nrf5/bluetooth: Add support for downloading s132_2.0.1 bluetooth stack. 2017-04-24 21:56:28 +02:00
Glenn Ruben Bakke 3f96532952 nrf5/bluetooth: Switch over to downloaded bluetooth stacks from nordicsemi.com instead of getting them through the SDK's. This will facilitate download of s132 v2.0.0 later. 2017-04-24 21:46:28 +02:00
Glenn Ruben Bakke ca43f42b78 nrf5/bluetooth: Fixing bug found when testing microbit. Newly introduced advertisment data pointer was not cleared on nrf51 targets. Explicit set to NULL as no additional advertisment data is set. Raises a question on why the nrf51 static variable was not zero initialized. To be checked up. 2017-04-23 18:35:31 +02:00
Glenn Ruben Bakke f6e612f7d7 nrf5: Removing SDK_ROOT parameter to Makefile. Bluetooth stacks should be downloaded using the download_ble_stack.sh. The script should be run inside the bluetooth folder to work properly. 2017-04-21 18:58:57 +02:00
Glenn Ruben Bakke a76ff755e3 nrf5/bluetooth: Adding back SOFTDEV_HEX as flash tools in main Makefile uses this to locate hex file. 2017-04-21 18:55:59 +02:00
Glenn Ruben Bakke 10b7f3ef83 nrf5/bluetooth: Including bluetooth stack version in folder name after download to be able to detect if stack has been updated. 2017-04-21 18:46:32 +02:00
Glenn Ruben Bakke 7501ecec8e nrf5/bluetooth: Updating Bluetooth LE stack download script. 2017-04-21 18:23:48 +02:00
Glenn Ruben Bakke f6f8097f77 nrf5/bluetooth: Adding bash script to automate download of bluetooth le stacks 2017-04-20 23:54:28 +02:00
Glenn Ruben Bakke aa32dcd0fd nrf5/examples: Adding example to show how to use current PWM module to control servo motors. 2017-04-18 21:03:14 +02:00
Glenn Ruben Bakke 071e551b79 nrf5/modules/machine: Updating PWM module with two new kwargs parameters. One for setting pulse with more fine grained. This value should not exceed the period value. Also, adding support for setting PWM mode, whether it is LOW duty cycle or HIGH duty cycle. By default, high to low is set (this could be changed). 2017-04-18 21:00:52 +02:00
Glenn Ruben Bakke d0d350da16 nrf5/hal/pwm: Updating PWM implementation to support manually set duty cycle period. Pulse width has precidence over duty cycle percentage. Also adding support for the two configurable modes, high to low, and low to high, duty cycles. 2017-04-18 20:56:19 +02:00
Glenn Ruben Bakke 4d56f2a76d nrf5/hal/pwm: Adding more configuration options to the PWM peripheral wrapper. Possibility to set pulse with manually, and also mode. The mode indicates whether duty cycle is low and then goes high, or if it is high and then go low. Added new type to describe the two modes. 2017-04-18 20:53:55 +02:00
Glenn Ruben Bakke 2d7f39855b nrf5: Adding hal_gpio.c to Makefile's source list. 2017-04-11 13:59:54 +02:00
Glenn Ruben Bakke 1e79bdf0b4 nrf5/modules/machine: Updating Pin module to register a IRQ callback upon GPIO polarity change events. 2017-04-11 13:58:58 +02:00
Glenn Ruben Bakke 81aaf6e906 nrf5/hal/gpio: Adding initial gpiote implementation to handle IRQ on polarity change on a gpio. 2017-04-11 13:57:44 +02:00
Glenn Ruben Bakke fb53bdf07c nrf5: Moving initialization of pin til after uart has been initialized for debugging purposes. This will make it possible to use uart to print out debug data when adding gpio irq handlers. 2017-04-11 13:55:01 +02:00
Glenn Ruben Bakke adf316afaa nrf5/hal/gpio: Adding some new structures and functions to register irq channels to gpio's using GPIOTE peripheral 2017-04-11 13:53:37 +02:00
Glenn Ruben Bakke f8c0a51f5e nrf5/hal/gpio: Adding missing include. 2017-04-09 23:47:44 +02:00
Glenn Ruben Bakke c7c2285ab9 nrf5/modules/machine: Style fix in pin object, indention. 2017-04-09 23:19:26 +02:00
Glenn Ruben Bakke 320b9ecde7 nrf5/modules/machine: Adding placeholder for irq method to pin object class. 2017-04-09 23:18:00 +02:00
Glenn Ruben Bakke 2c90d94dc7 nrf5/modules/machine: Adding pin irq type and basic functions and structures. 2017-04-09 23:16:07 +02:00
Glenn Ruben Bakke a93d462dfd nrf5/hal/gpio: Reintroducing gpio polarity toggle event to be able to reference the short form of adding high_to_low and low_to_high together. 2017-04-09 23:02:37 +02:00
Glenn Ruben Bakke 435bc5a3d4 nrf5/hal/gpio: Updating hal_gpio.h with some tab-fixes in order to make the file a bit consistent in style. 2017-04-09 21:56:28 +02:00
Glenn Ruben Bakke 8c45aca8d2 nrf5/hal/gpio: Removing toggle event from the enumeration as that will be a combination of the rising and falling together. 2017-04-09 21:54:09 +02:00
Glenn Ruben Bakke 6446105689 nrf5/modules/machine: Removing toggle event trigger as that will be a combination of the rising and falling together. 2017-04-09 21:52:57 +02:00
Glenn Ruben Bakke 32083a9443 nrf5/modules/machine: Adding new constants to pin object for polarity change triggers using the enumerated values in hal_gpio.h. 2017-04-09 21:50:11 +02:00
Glenn Ruben Bakke 07edf4f26d nrf5/hal/gpio: Adding new enumeration for input polarity change events. 2017-04-09 21:49:02 +02:00
Glenn Ruben Bakke 3b15d33809 nrf5/hal: Moving hal_gpio functions, types and defines from mphalport.h to a new hal_gpio.h. 2017-04-09 21:39:15 +02:00
Glenn Ruben Bakke 35f9c8f37f nrf5: Removing leftover reference to deleted display module. 2017-04-09 18:55:53 +02:00
Glenn Ruben Bakke d7cfae3639 nrf5/usocket: Removing network modules related to Bluetooth 6lowpan implementation as it depends on SDK libraries for now. Will be moved to seperate working branch. 2017-04-09 18:53:58 +02:00
Glenn Ruben Bakke 4dd86178bc nrf5: Removing custom display, framebuffer and graphics module to make branch contain core components instead of playground modules. 2017-04-09 18:25:15 +02:00
Glenn Ruben Bakke a026d3475f nrf5/modules/usocket: Updating import of netutils.h after upmerge with upstream master. 2017-04-09 17:48:48 +02:00
Glenn Ruben Bakke 5d06aa3260 nrf5/bluetooth: Add some comment on the destination of the eddystone short-url. 2017-04-09 15:52:21 +02:00
Glenn Ruben Bakke b92b55bdd0 nrf5/bluetooth: Updating Eddystone URL to point to https://goo.gl/x46FES which hosts the MicroPython WebBluetooth application which will be able to connect to the Bluetooth LE UART service of the device and create the REPL. 2017-04-09 15:36:34 +02:00
Glenn Ruben Bakke a4173c467f nrf5/bluetooth: Adding webbluetooth REPL template. Alternating advertisment of eddystone URL and UART BLE service every 500 ms. Adding new config parameter to bluetooth_conf.h to enable webbluetooth repl. Has to be configured in combination with BLE_NUS. Eddystone URL not pointing to a valid WebBluetooth application at the moment, but rather to micropython.org as a placeholder for now. 2017-04-04 22:31:17 +02:00
Glenn Ruben Bakke 587c6277c4 nrf5/modules/ubluepy: Adding method Peripheral object to stop any ongoing advertisment. Adding compile guard to only include advertise and advertise_stop if peripheral role is compiled in. 2017-04-04 21:25:28 +02:00
Glenn Ruben Bakke 31feea4511 nrf5/bluetooth: Adding function to stop advertisment if onging 2017-04-04 21:22:49 +02:00
Glenn Ruben Bakke 46c21ff6ba nrf5/modules/ubluepy: Adding support for starting advertisment from BLE UART REPL, by delaying registration of gatt/gatts and gattc handlers until needed in advertise or connect. If non connectable advertisment is selected, handlers in peripheral new is not anymore overriding the other peripheral instances which has set the callbacks. 2017-04-04 20:24:43 +02:00
Glenn Ruben Bakke 0559be4ffc nrf5/bluetooth: Adding possibility to configure whether advertisment should be connectable or not. 2017-04-02 18:34:56 +02:00
Glenn Ruben Bakke ce6221ef61 nrf5/bluetooth: Removing legacy advertise function in the bluetooth driver, which only did a hardcoded eddystone beacone advertisment. 2017-04-02 16:55:47 +02:00
Glenn Ruben Bakke e5fc082366 nrf5/help: Updating ble module help description to also include the address method. 2017-04-02 16:44:37 +02:00
Glenn Ruben Bakke 6fcb0a40e9 nrf5/bluetooth: Renaming the ble module method address_print() to address(), as it will now return a string of the resolved local address. Updating the function to create a string out the local address and return this. 2017-04-02 16:43:16 +02:00
Glenn Ruben Bakke 7e52da7ccb nrf5/bluetooth: Update ble_drv_address_get to new api which pass in a address struct to fill by reference. Updating implementation to copy the address data. Also ensuring that the bluetooth stack has been enabled before fetching the address from the bluetooth stack. 2017-04-02 16:41:08 +02:00
Glenn Ruben Bakke 1402574b7d nrf5/bluetooth: Adding new structure which can hold local address. Updating api prototype for ble_drv_address_get with a address structure by reference. 2017-04-02 16:39:14 +02:00
Glenn Ruben Bakke e3773e899f nrf5/bluetooth: Updating help text for ble module to also list up enabled() function which queries the bluetooth stack on whether it is enabled or not. 2017-04-02 16:17:39 +02:00
Glenn Ruben Bakke c7f0069aac nrf5/bluetooth: Removing advertise from ble module. Removing help text as well. 2017-04-02 16:14:48 +02:00
Glenn Ruben Bakke c8097eb470 nrf5/examples: Adding python eddystone example using ubluepy api. 2017-04-02 15:51:00 +02:00
Glenn Ruben Bakke f7fbf55a45 nrf5/modules/ubluepy: Open up Peripheral advertise method to pass custom data to the bluetooth driver. Allowing method to allow kwargs only if no args is set. To support setting data kwarg only. 2017-04-02 15:50:07 +02:00
Glenn Ruben Bakke 58238a43b3 nrf5/modules/ubluepy: Adding new members to the ublupy advertisment parameters, to hold custom data payload if set. 2017-04-02 15:48:32 +02:00
Glenn Ruben Bakke 52c07e7cb2 nrf5/bluetooth: Cleaning up stack enable function, to not set device name twice. Also, adding support for setting custom advertisment data. 2017-04-02 15:45:02 +02:00
Glenn Ruben Bakke 5f645b6c8e nrf5/modules/ubluepy: Adding compile guard for UBLUEPY_CENTRAL around the char_read() call to ble_drv_attr_c_read(). 2017-04-02 00:31:28 +02:00
Glenn Ruben Bakke 84e5b828ea nrf5/bluetooth: Moving central code inside central bluetooth stack defines to make peripheral only code compile again. 2017-04-02 00:30:16 +02:00
Glenn Ruben Bakke 460f6dee50 nrf5/examples: Updating ubluepy scan example to use constant value from ubluepy instead of hardcoded value. 2017-04-01 22:50:37 +02:00
Glenn Ruben Bakke 9568e07159 nrf5/examples: Adding example on how to use the ubluepy Scanner object in order to scan for a device name and find the address of the device. This can subsequently be used to perform a Central role connect() using the Peripheral object. 2017-04-01 22:45:11 +02:00
Glenn Ruben Bakke 33b1028b50 nrf5/modules/ubluepy: Turn all attributes (addr, addr_type and rssi) to method calls instead of using common .attr callback. Adding getScanData implementation, which parses the advertisment data and returns a list of tuples containing (ad_type, desc, value). Description is generated by peeking into the ad_types local dicts map table, and do a reverse lookup on the value to find the QSTR. 2017-04-01 22:43:54 +02:00
Glenn Ruben Bakke bb196a2b09 nrf5/modules/ubluepy: Adding ad_types constants in new object. Linking in ad_types object into the ubluepy.constants local dict. 2017-04-01 22:37:39 +02:00
Glenn Ruben Bakke 0887b95bb9 nrf5/modules/ubluepy: Expose ubluepy constant objects as externs in modubluepy.h to be able to get access to the local dict tables in order to do a reverse lookup on value to resolve QSTR from external modules in c. 2017-04-01 22:34:51 +02:00
Glenn Ruben Bakke 706bc97c92 nrf5/modules/ubluepy: Upon advertisment event, also store the advertisment data. 2017-04-01 22:32:55 +02:00
Glenn Ruben Bakke 276073b494 nrf5/modules/ubluepy: Adding callback function to handle read response if gatt client has issued a read request. Also adding method for returning the uuid instance from the object. 2017-04-01 16:39:51 +02:00
Glenn Ruben Bakke 5a7ab4686c nrf5/modules/ubluepy: Adding value data member to the characteristic object. This can hold the value data when gatt client perform a read and value has to be transferred between interrupt and main thread. 2017-04-01 16:36:15 +02:00
Glenn Ruben Bakke c88358d84b nrf5/bluetooth: Updating bluetooth driver to support GATT client read of a characteristic value. Data passed to caller in interrupt context, and copy has to be performed. The function call is itself blocking. 2017-04-01 16:34:26 +02:00
Glenn Ruben Bakke bb7130a813 nrf5/modules/ubluepy: Adding uuid() function to service object to return UUID instance of the service. 2017-03-31 21:52:59 +02:00
Glenn Ruben Bakke f9a351d527 nrf5/modules/ubluepy: Adding binVal() function to the ubluepy UUID object. For now returning the uint16_t value of the UUID as a small integer. 2017-03-31 21:51:57 +02:00
Glenn Ruben Bakke 7c6f041b8c nrf5/modules/ubluepy: Adding dummy function call to ble_drv_attr_c_read. 2017-03-30 23:44:00 +02:00
Glenn Ruben Bakke d24809a2aa nrf5/bluetooth: Adding new api for reading attribute as gatt client. Renaming old ble_drv_attr_read function to ble_drv_attr_s_read to indicate the server role. 2017-03-30 23:43:44 +02:00
Glenn Ruben Bakke 93b76a66d3 nrf5/bluetooth: Adding event handling cases for gatt client read, write and hvx events. 2017-03-30 23:18:49 +02:00
Glenn Ruben Bakke ebb7925a16 nrf5/modules/ubluepy: Tab-fix 2017-03-30 22:53:25 +02:00
Glenn Ruben Bakke bd2981681f nrf5/modules/ubluepy: Updating peripheral object to handle characteristic discovery (central mode). 2017-03-30 22:47:14 +02:00
Glenn Ruben Bakke 31a71517ab nrf5/modules/ubluepy: Adding start and end handle to service object. 2017-03-30 22:42:08 +02:00
Glenn Ruben Bakke 2200c4c084 nrf5/bluetooth: Adding support for central characteristic service discovery. Updating primary service discovery to block until all services has been created in the peripheral object before returning from the bluetooth driver. This pattern is also applied to the characteristic discovery. 2017-03-30 22:41:19 +02:00
Glenn Ruben Bakke 75148ee6ca nrf5/modules/ubluepy: Updating ubluepy peripheral object to new bluetooth driver API. Starting to populate service objects and uuid objects. Also adding the service to the peripheral object throught the regular static function for adding services. Handle value for the primary service is assuming that it is the first element in the handle range; start_handle reported by the service discovery. 2017-03-29 23:37:32 +02:00
Glenn Ruben Bakke 5b778790ae nrf5/bluetooth: Updating bluetooth driver to do service discovery, doing callbacks to ubluepy upon each individual primary service discovered. Using intermediate structure defined by the driver, to abstract bluetooth stack specific data in ubluepy. 2017-03-29 23:34:33 +02:00
Glenn Ruben Bakke a139d5e8f7 nrf5/modules/ubluepy: Adding some work in progress on service discovery. 2017-03-28 23:40:28 +02:00
Glenn Ruben Bakke 8966c68b92 nrf5/bluetooth: Adding implementation to the discover service function. Adding handler for gatt client primary service discovery response events, and passing this to the ubluepy upon reception. 2017-03-28 23:37:19 +02:00
Glenn Ruben Bakke 61b825d75e nrf5/bluetooth: Adding function parameters and return type to service and characteristic discovery template functions. 2017-03-28 21:20:20 +02:00
Glenn Ruben Bakke 06af64a78a nrf5/bluetooth: Adding template functions for service discovery in bluetooth driver. 2017-03-26 22:59:30 +02:00
Glenn Ruben Bakke 0914b34193 nrf5/bluetooth: Adding function to register gattc event handler (central). 2017-03-26 22:57:07 +02:00
Glenn Ruben Bakke 025f07dbab nrf5/bluetooth: Adding intermediate gattc callback function type in bluetooth driver. 2017-03-26 22:51:10 +02:00
Glenn Ruben Bakke 49cce723a9 nrf5/bluetooth: Turning off debug logging in bluetooth driver, which does not work well with bluetooth REPL mode. 2017-03-26 21:06:17 +02:00
Glenn Ruben Bakke 2f2e67e9bd nrf5/bluetooth: Fixing some smaller tab errors in the bluetooth driver. 2017-03-26 21:05:06 +02:00
Glenn Ruben Bakke cd2149a47f nrf5/bluetooth: Updating bluetooth le driver to handle GAP conn param update request. Also updating minor syntax in previous switch case. 2017-03-26 21:02:25 +02:00
Glenn Ruben Bakke fb983c7692 nrf5/boards: Inrease heap size in the nrf52832 w/s132 bluetooth stack linker script. 2017-03-26 20:46:23 +02:00
Glenn Ruben Bakke c230bc021a nrf5/modules/ubluepy: Update connect method to parse dev_addr parameter and pass it to the bluetooth driver, going through a allocated heap buffer. Adding call to the bluetooth driver to issue a connect. Hardcoding address type for now. 2017-03-26 20:45:21 +02:00
Glenn Ruben Bakke bcf4631e0a nrf5/bluetooth: Updating connect function in the bluetooth driver to do a successful connect to a peripheral device. 2017-03-26 20:43:43 +02:00