Glenn Ruben Bakke
2c61b7f596
nrf5/hal: Adding untested implementation of twi read. Lacking sensors to test with :)
2017-03-04 21:42:36 +01:00
Glenn Ruben Bakke
4a631a0d47
nrf5/boards: Renaming linker script for all nrf51 and nrf52 into more logical names. Updating all boards with new names.
2017-03-04 19:13:59 +01:00
Glenn Ruben Bakke
ab0d9756f1
nrf5/bluetooth: Updating header guard in bluetooth_conf.h to reflect new filename.
2017-03-04 18:05:51 +01:00
Glenn Ruben Bakke
56d106507a
nrf5/bluetooth: Updating old references to 'sdk' to use the new folder name 'bluetooth' in makefiles.
2017-03-04 17:58:31 +01:00
Glenn Ruben Bakke
9e36242259
nrf5: Renaming sdk folder to bluetooth.
2017-03-04 17:54:15 +01:00
Glenn Ruben Bakke
5e89a27ba1
nrf5: Merging sdk makefiles into bluetooth_common.mk. s1xx_iot is still left out of this refactoring.
2017-03-04 17:52:20 +01:00
Glenn Ruben Bakke
ec35861938
nrf5: Renaming nrf5_sdk_conf.h to bluetooth_conf.h
2017-03-04 17:19:29 +01:00
Glenn Ruben Bakke
309ae12346
nrf5: Starting process of renaming files in sdk folder to facilitate renaming of the folder and make it more logical. Transition will be from sdk to bluetooth.
2017-03-04 15:06:08 +01:00
Glenn Ruben Bakke
80c9c2e3c0
nrf5/boards: Adding support for SPI, I2C, ADC, and Temp in machine modules in micro:bit target. Also activating hal drivers for the peripherals.
2017-03-04 02:14:50 +01:00
Glenn Ruben Bakke
f2a7e198d2
nrf5/sdk: Updating low frequency clock calibration from 4 seconds to 250 ms for stack enable when BLUETOOTH_LFCLK_RC is enabled.
2017-03-04 01:36:06 +01:00
Glenn Ruben Bakke
ef6d583ec3
nrf5/boards: Updating nrf51822_aa_s110.ld to be more generic, leaving all RAM not used for stack, .bss and .data to the heap.
2017-03-04 01:29:05 +01:00
Glenn Ruben Bakke
1aeb74a426
nrf51: Removing stack section from startup file as it got added to the final hex file. Thanks dhylands for helping out.
2017-03-04 01:24:10 +01:00
Glenn Ruben Bakke
2af06bd3fa
nrf5/boards: Adding BLUETOOTH_LFCLK_RC to CFLAGS in microbit s110 makefile.
2017-03-03 23:21:47 +01:00
Glenn Ruben Bakke
e95ec1a285
nrf5/sdk: Adding support for initializing the bluetooth stack using RC oscillator instead of crystal. If BLUETOOTH_LFCLK_RC is set in CFLAGS, this variant of softdevice enable will be activated.
2017-03-03 23:20:38 +01:00
Glenn Ruben Bakke
c300e3f196
nrf5: Initialize repl_display_debugging_info in pyexec.c for cortex-m0 targets.
2017-03-03 00:40:44 +01:00
Glenn Ruben Bakke
235c0edacb
nrf5/sdk: Updating ringbuffer.h to use volatile variables for start and end.
2017-03-03 00:11:42 +01:00
Glenn Ruben Bakke
d057a93675
nrf5/sdk: Rename cccd_enable variable to m_cccd_enable in bluetooth le UART driver. Also made the variable volatile.
2017-03-03 00:06:51 +01:00
Glenn Ruben Bakke
df31508d6f
nrf5/modules: Updating example in ubluepy header to use handle instead of data length upon reception of an event.
2017-03-03 00:05:09 +01:00
Glenn Ruben Bakke
db3dd8bc8b
nrf5/modules: Updating ubluepy peripheral to pass handle value to python event handler instead of data length. Data length can be derived from the bytearray structure.
2017-03-03 00:04:13 +01:00
Glenn Ruben Bakke
22f66e274d
nrf5/sdk: Updating bluetooth le driver to handle SEC PARAM REQUEST by replying that pairing is not supported. Moving initialization of adv and tx in progress state variables to stack enable function.
2017-03-02 22:48:04 +01:00
Glenn Ruben Bakke
4efedb67b6
nrf5/modules: Enable ubluepy constants for CONNECT and DISCONNECT for other bluetooth stacks than s132.
2017-03-02 22:43:06 +01:00
Glenn Ruben Bakke
e60fa9b3e1
nrf5/sdk: Fixing unaligned access issues for nrf51 (cortex-m0) in bluetooth le driver
2017-03-02 21:25:51 +01:00
Glenn Ruben Bakke
44c9888511
nrf5/sdk: Removing SDK dependant BLE UART Service implementation
...
The sdk_12.1.0 nrf52_ble.c implementation was dependent on SDK components.
This has been replaced with the ble_uart.c implementation using a standalone
bluetooth driver implementation without need of SDK components.
Also, sdk.mk has been updated to not use a special linker script.
2017-03-01 00:05:04 +01:00
Glenn Ruben Bakke
58cc59cfbe
nrf5/sdk: Removing ble_repl_linux.py
...
Script does not really work very well with blocking char read and
async ble notifications printing data when terminal stdout is blocked
by readchar. Bluetooth UART profile implemented in ble_uart.c is
now working with tralamazza's nus_console nodejs script.
Ref: https://github.com/tralamazza/nus_console
2017-02-28 23:40:46 +01:00
Glenn Ruben Bakke
ac677efb8b
nrf5: Add default config for MICROPY_PY_BLE_NUS (0)
...
Disable Bluetooth UART to be used for REPL by default. Can be overridden
in nrf5_sdk_conf.h. It is defined in mpconfigport.h as it is connected to
mphalport.c, where the config is used to determine whether default print
functions should be using HW UART or Bluetooth UART.
2017-02-28 23:33:54 +01:00
Glenn Ruben Bakke
e8761682b7
nrf5/sdk: Add ble_uart.c to source list
...
ble_uart.c implements UART Bluetooth service on top of the
bluetooth stack driver api calls. Can be enabled to be compiled
in by defining MICROPY_PY_BLE_NUS = 1 in nrf5_sdk_conf.h.
2017-02-28 23:30:36 +01:00
Glenn Ruben Bakke
84313b0261
nrf5/sdk: Removing include of sdk_12.1.0's build.mk
...
As no sources are needed from the SDK this build makefile
can be deleted.
2017-02-28 23:28:09 +01:00
Glenn Ruben Bakke
9472196ee7
nrf5: Force implementation of tx_str_cooked function if BLE NUS enabled.
...
If BLE UART service has been enabled, the mp_hal_stdout_tx_strn_cooked
is not defined by default anymore, and has to be implemented by the
UART driver (in this case BLE).
2017-02-28 23:18:31 +01:00
Glenn Ruben Bakke
216c97ff9a
nrf5/sdk: Adding compiler guard around exchange MTU request event.
...
As s110 is not having this event or function call to answer on a MTU
exchange request, this is excluded for all other version than s132
for now.
2017-02-28 23:13:02 +01:00
glennrub
c1ffac9998
Merge pull request #1 from ajbaabf/nrf5_no_sdk
...
added support for hardware temperature sensor
2017-02-28 08:33:11 +01:00
Bander Ajba
0e723091f9
minor documentation and extra tabs removal fixes
2017-02-28 09:34:13 +03:00
Glenn Ruben Bakke
382f718cfc
nrf5/sdk: Updating BLE UART implementation by swapping TX and RX uuid and characterisitic handling. Removed dummy write delay of 10 ms.
2017-02-27 23:47:47 +01:00
Glenn Ruben Bakke
b032d765ff
nrf5/sdk: Backing up progress in bluetooth le driver. Adding new gap and gatts handlers. Added handling of tx complete events when using notification, responding to MTU request, and setting of default connection parameters.
2017-02-27 23:40:39 +01:00
Bander Ajba
12a6cb0fbf
fixed temp module to allow for instance support
2017-02-27 21:46:53 +03:00
Bander Ajba
e52ebb095c
fixed temp module to allow for instance support
2017-02-27 21:37:32 +03:00
glennrub
56cf514627
Merge pull request #2 from dhylands/fix-makefile
...
Fix up Makefile dependencies
2017-02-26 17:39:09 +01:00
Bander Ajba
66542c34b9
did required modification to merge the temperature sensore module
2017-02-26 11:17:07 +03:00
Bander Ajba
378c40b4da
did required modification to merge the temperature sensore module
2017-02-26 11:14:17 +03:00
Dave Hylands
d3c3fa4a74
Fix up Makefile dependencies
...
I also didn't see any real reason for mkrules.mk to exist,
so I merged the contents into Makefile.
Now you can do:
```
make BOARD=pca10028 clean
make BOARD=pca10028 flash
```
and it will work properly.
2017-02-25 16:52:46 -08:00
Glenn Ruben Bakke
dcd980381d
nrf5: Updating Makefile to use correct variable for setting directory of file to freeze as mpy.
2017-02-26 01:30:33 +01:00
Glenn Ruben Bakke
65f3e16775
nrf5: Setting stack top in main.c. Thanks dhylands for pointing this out.
2017-02-26 01:29:13 +01:00
Glenn Ruben Bakke
64b23e1127
nrf5/sdk: Backing up progress in BLE UART driver. Adding ringbuffer in order to poll bytes from recieved data in REPL main loop.
2017-02-24 15:14:12 +01:00
Glenn Ruben Bakke
bfda169dfe
nrf5/modules: Updating ubluepy example to print out gatts write events with data.
2017-02-24 15:08:32 +01:00
Glenn Ruben Bakke
e60a06563e
nrf5/boards: Updating pca10028 bluetooth stack targets to have a MCU_SUB_VARIANT.
2017-02-24 15:03:53 +01:00
Bander Ajba
3882b0e2ff
added support for hardware temperature sensor
2017-02-24 00:38:08 +03:00
Glenn Ruben Bakke
6b898d1d67
nrf5/sdk: Adding macro based ringbuffer written by Philip Thrasher. source: https://github.com/pthrasher/c-generic-ring-buffer/blob/master/ringbuffer.h . Copyright noticed copied into the file, and file reviewed by Philip.
2017-02-23 21:52:23 +01:00
Glenn Ruben Bakke
f10abda60a
nrf5/sdk: Updating bluetooth le driver to extract data length and pointer from the event structure upon gatts write operation.
2017-02-22 19:54:02 +01:00
Glenn Ruben Bakke
7fee0cdde1
nrf5/modules: Expose ubluepy characteristic and peripheral types as external declaration in ublupy header.
2017-02-22 19:10:18 +01:00
Glenn Ruben Bakke
09fd2b86d1
nrf5: Updating main to initialize bluetooth le uart module right before bluetooth REPL is started.
2017-02-21 23:38:35 +01:00
Glenn Ruben Bakke
3e66898c37
nrf5/sdk: Updating bluetooth le uart implemenatation to block until cccd is written.
2017-02-21 23:37:52 +01:00
Glenn Ruben Bakke
80b2d7e4ad
nrf5/sdk: Backing up ubluepy version of ble uart service for Bluetooth LE REPL.
2017-02-21 00:15:51 +01:00
Glenn Ruben Bakke
acb5c7b4ee
nrf5/modules: Updating ubluepy example in header to align with bluetooth uart service characteristic's.
2017-02-20 21:28:07 +01:00
Glenn Ruben Bakke
c9bfcb5bc5
nrf5/modules: Implementing characteristic write method. Possible to use write for both write and notifications.
2017-02-20 21:27:21 +01:00
Glenn Ruben Bakke
7223950864
nrf5/sdk: Remaning bluetooth driver function ble_drv_attr_notif to *_notify.
2017-02-20 21:26:19 +01:00
Glenn Ruben Bakke
601f07cbf2
nrf5/modules: Adding props and attrs parameter to ubluepy characteristic constructor to override default values. Adding method for reading characteristic properties. Adding values to the local dict table that gives possibility to OR together a configuration of properties and attributes in the keyword argument during construction.
2017-02-20 20:28:19 +01:00
Glenn Ruben Bakke
a973dde603
nrf5/sdk: Adding parsing of characteristic properties and attributes (extra descriptions for the characteristic, for now cccd).
2017-02-20 20:24:27 +01:00
Glenn Ruben Bakke
89fc67a9f8
nrf5/modules: Adding new members to ubluepy characteristic object, props and attrs. Adding enum typedefs for various properties and attributes.
2017-02-20 20:22:23 +01:00
Glenn Ruben Bakke
7c0195da6c
nrf5/modules: Syncing uart module code after upmerge with upstream master.
2017-02-19 19:06:12 +01:00
Glenn Ruben Bakke
486d05ff17
nrf5/boards: Releasing more RAM for heap use in the nrf51 s110 linker script.
2017-02-19 19:00:31 +01:00
Glenn Ruben Bakke
10e7c16351
nrf5/modules: Adding new gatts handler and registration of it during creation of a peripheral object. Also, added forwarding to python callback function (for now the same as for GAP).
2017-02-19 00:10:27 +01:00
Glenn Ruben Bakke
ac14bb4736
nrf5/modules: Adding new callback type in modubluepy for gatts events.
2017-02-19 00:09:11 +01:00
Glenn Ruben Bakke
29b283f697
nrf5/sdk: Adding support for setting gatts handler in the bluetooth le driver.
2017-02-19 00:08:05 +01:00
Glenn Ruben Bakke
45144ee8a8
nrf5/modules: Adding constant for CCCD uuid in ubluepy constants dict.
2017-02-18 23:11:12 +01:00
Glenn Ruben Bakke
4fe4c2967f
nrf5: Adding ubluepy_descriptor.c into source list to compile.
2017-02-18 22:49:50 +01:00
Glenn Ruben Bakke
842b83cbd8
nrf5/modules: Adding template for ubluepy descriptor class implementation.
2017-02-18 22:49:18 +01:00
Glenn Ruben Bakke
6a374dc5a2
nrf5/modules: Adding object structure for ubluepy descriptor.
2017-02-18 22:48:48 +01:00
Glenn Ruben Bakke
98358e4400
nrf5/sdk: Adding template functions for attribute read/write/notify in bluetooth le driver.
2017-02-18 21:11:39 +01:00
Glenn Ruben Bakke
9a08ed1a08
nrf5/modules: Adding getCharacteristic method in ublupy service class. This function returns the characteristic with the given UUID if found, else None. The UUID parameter has to be of UUID class type, any other value, like strings will throw an exception.
2017-02-18 18:38:31 +01:00
Glenn Ruben Bakke
71475bb028
nrf5/modules: Updating method documentation in ubluepy peripheral and service.
2017-02-18 18:16:07 +01:00
Glenn Ruben Bakke
655d6c9bcd
nrf5/modules: Adding new method, getCharacteristics(), in the ubluepy service class. The method returns the list of characteristics which has been added to the service instance.
2017-02-18 18:14:27 +01:00
Glenn Ruben Bakke
307c2d6aed
nrf5/modules: Updating method documentation in ubluepy peripheral class.
2017-02-18 18:12:37 +01:00
Glenn Ruben Bakke
1da82b2aeb
nrf5/modules: Updating ubluepy service. Creating empty characteristic list in constructor. Appending characteristic to the list when added.
2017-02-18 18:06:58 +01:00
Glenn Ruben Bakke
15d7353cb3
nrf5/modules: Changed return in ubluepy addService() function to return mp_const_none instead of boolean.
2017-02-18 17:59:10 +01:00
Glenn Ruben Bakke
63ed32ecaa
nrf5/modules: Correcting tabbing in ubluepy periheral impl.
2017-02-18 17:57:59 +01:00
Glenn Ruben Bakke
577bf0724a
nrf5/modules: Updating ubluepy peripheral. Creating empty service list in constructor. Appending services to the list when added. Added new function for retreiving the service list; getServices().
2017-02-18 17:57:10 +01:00
Glenn Ruben Bakke
8ffd167d4b
nrf5/modules: Adding new members in ubluepy peripheral and service object to keep track of child elements. Peripheral will have a list of services, and service will have a list of charactaristics.
2017-02-18 17:54:47 +01:00
Glenn Ruben Bakke
852dde6747
nrf5/modules: Removing connection handle from python gap event handler callback function.
2017-02-18 14:41:46 +01:00
Glenn Ruben Bakke
f800f22a79
nrf5/modules: Updating ubluepy example in the header file with new function call to add service to a peripheral instance.
2017-02-18 13:20:03 +01:00
Glenn Ruben Bakke
04f8891dc9
nrf5/modules: Updating peripheral class to assign periopheral parent pointer to service's thats added. Also added a hook in the bluetooth le event handler to store the connection handle value, to prevent any services or characteristics to handle this value themselves.
2017-02-18 13:17:31 +01:00
Glenn Ruben Bakke
f956947c23
nrf5/modules: Updating service object to clear pointer to parent peripheral instance. Also assinging pointer to the service when adding a new characteristic.
2017-02-18 13:15:08 +01:00
Glenn Ruben Bakke
f3d8fc830e
nrf5/modules: Updating print to also include peripheral's connection handle. Setting pointer to service parent instance to NULL.
2017-02-18 13:11:39 +01:00
Glenn Ruben Bakke
f5324060cc
nrf5/modules: Correcting event id numbers for connect and disconnect event in ubluepy_constants.py
2017-02-18 13:07:00 +01:00
Glenn Ruben Bakke
292c15bf1a
nrf5/modules: Shuffle order of typedef in ubluepy header. Adding service pointer in characteristic object. Adding peripheral pointer to the service structure. When populated, the characteristic would get access to conn_handle and service handle through pointers. Also service would get access to peripheral instance.
2017-02-18 01:19:43 +01:00
Glenn Ruben Bakke
e0fc8b88c1
nrf5/modules: adding template functions for characteristic read and write.
2017-02-18 01:17:57 +01:00
Glenn Ruben Bakke
af2f32ed6a
nrf5/modules: Adding constants class to ubluepy which will contain easy access to common bluetooth le numbers and definitions for the bluetooth stack.
2017-02-18 00:11:10 +01:00
Glenn Ruben Bakke
f0f6ad20b2
nrf5/modules: Updating example in ubluepy header with 16-bit uuid's commented out, to show usage.
2017-02-17 21:50:50 +01:00
Glenn Ruben Bakke
c81b606b01
nrf5/sdk: Adding support for adding 16-bit uuid's in advertisment packet. The services in paramter list can mix 16-bit and 128-bit.
2017-02-17 21:47:38 +01:00
Glenn Ruben Bakke
9befd776fa
nrf5/sdk: Updating sdk_common.mk with new filename of bluetooth le driver.
2017-02-17 19:13:49 +01:00
Glenn Ruben Bakke
21f1d8c640
nrf5: Updating all includes of softdevice.h to ble_drv.h
2017-02-17 19:10:24 +01:00
Glenn Ruben Bakke
793cf991ad
nrf5/sdk: renaming softdevice.* to ble_drv.*
2017-02-17 19:06:11 +01:00
Glenn Ruben Bakke
5f4c464f29
nrf5/sdk: Renaming bluetooth driver functions to have ble_drv* prefix. Updating modules using it.
2017-02-17 19:02:24 +01:00
Glenn Ruben Bakke
3ff245f667
nrf5/sdk: Enable ubluepy module if s110 bluetooth stack is enabled.
2017-02-17 18:11:22 +01:00
Glenn Ruben Bakke
86c900313c
nrf5/sdk: Updating bluetooth driver to only set periph and central count if s132 bluetooth stack. These parameters does not exist in older stacks.
2017-02-17 18:09:23 +01:00
Glenn Ruben Bakke
bba8221aa2
nrf5/modules: Updating bluetooth driver and ubluepy to use explicit gap event handler. Adding connection handle parameter to the gap handler from ubluepy. Resetting advertisment flag if connection event is recieved, in order to allow for subsequent advertisment if disconnected again. Example in ublupy header updated.
2017-02-17 17:32:42 +01:00
Glenn Ruben Bakke
7ce31444a0
nrf5: Adding target to flash bluetooth stack when using pyocd-flashtool.
2017-02-16 23:18:07 +01:00
Glenn Ruben Bakke
2fd55feb0c
nrf5/modules: Guarding callback to python event handler before issue the call in case it is not set.
2017-02-16 18:49:47 +01:00
Glenn Ruben Bakke
18365135f7
nrf5/modules: Updating ubluepy example to turn led2 on and off when receiving connected and disconnect bluetooth event.
2017-02-15 23:58:23 +01:00
Glenn Ruben Bakke
d88320b5b3
nrf5/sdk: Updating bluetooth driver to have configurable logs.
2017-02-15 23:57:23 +01:00
Glenn Ruben Bakke
832a7ffd14
nrf5/modules: updating ubluepy and bluetooth driver to support python created event handler. Added registration of callback from ubluepy against the bluetooth driver and dispatching of events to the user supplied python function.
2017-02-15 23:32:42 +01:00
Glenn Ruben Bakke
d29539a395
nrf5/modules: Splitting includes to be inside or outside of the compile guard in ubluepy. This way, all micropython specific includes will be outside, and internal will be inside. This way, there will not be any dependency towards ubluepy headers if not compiled in.
2017-02-15 19:33:11 +01:00