soft/lpc122x/core
2 years agoreplace "response" by "reply" and add support for subscribe (under test) and ping...
Nathael Pajani [Sat, 16 Mar 2019 16:25:30 +0000 (17:25 +0100)]
replace "response" by "reply" and add support for subscribe (under test) and ping (not tested)

2 years agoUse struct mqtt_topic for topic names
Nathael Pajani [Sat, 16 Mar 2019 16:20:52 +0000 (17:20 +0100)]
Use struct mqtt_topic for topic names

2 years agoFinally, support multiple topics at once using an array and array_size field
Nathael Pajani [Sat, 16 Mar 2019 16:15:26 +0000 (17:15 +0100)]
Finally, support multiple topics at once using an array and array_size field

2 years agoAdding ws2812fx lib and its single-led version ws2812sfx
Cyprien Laplace [Mon, 11 Mar 2019 01:32:50 +0000 (21:32 -0400)]
Adding ws2812fx lib and its single-led version ws2812sfx

2 years agoFix byte_swap_16, ntohs and htons types
Cyprien Laplace [Mon, 11 Mar 2019 02:15:59 +0000 (22:15 -0400)]
Fix byte_swap_16, ntohs and htons types

All these functions are using 16-bits arguments and results.

2 years agoFix copy of uint16_t to buff, destination may not be aligned on word boundary.
Nathael Pajani [Sun, 10 Mar 2019 02:00:37 +0000 (03:00 +0100)]
Fix copy of uint16_t to buff, destination may not be aligned on word boundary.

2 years agoSome more parts of MQTT protocol support Compiles, untested.
Nathael Pajani [Fri, 8 Mar 2019 16:32:10 +0000 (17:32 +0100)]
Some more parts of MQTT protocol support Compiles, untested.

2 years agoChange how MQTT strings are stored
Nathael Pajani [Fri, 8 Mar 2019 16:30:26 +0000 (17:30 +0100)]
Change how MQTT strings are stored

2 years agoMQTT protocol support going on, adding connack packet check. Compiles but still untested.
Nathael Pajani [Wed, 6 Mar 2019 00:31:26 +0000 (01:31 +0100)]
MQTT protocol support going on, adding connack packet check. Compiles but still untested.

2 years agoMQTT protocol support going on, compiles but still untested.
Nathael Pajani [Tue, 5 Mar 2019 23:38:06 +0000 (00:38 +0100)]
MQTT protocol support going on, compiles but still untested.

2 years agoConform to libc headers for htons and ntohs functions returning uint16_t
Nathael Pajani [Tue, 5 Mar 2019 23:36:38 +0000 (00:36 +0100)]
Conform to libc headers for htons and ntohs functions returning uint16_t

2 years agoFirst parts of MQTT protocol support
Nathael Pajani [Tue, 5 Mar 2019 14:28:42 +0000 (15:28 +0100)]
First parts of MQTT protocol support

2 years agoRemove extra space in comment and add define for user info pages size in user flash
Nathael Pajani [Tue, 5 Mar 2019 14:24:37 +0000 (15:24 +0100)]
Remove extra space in comment and add define for user info pages size in user flash

2 years agoUpdate all files to mention version 3 of the GPL.
Nathael Pajani [Thu, 21 Feb 2019 15:34:16 +0000 (16:34 +0100)]
Update all files to mention version 3 of the GPL.

2 years agoAdd support for deep sleep Wake-up not fully implemented, use NVIC_SystemReset()...
Nathael Pajani [Mon, 7 Jan 2019 22:21:37 +0000 (23:21 +0100)]
Add support for deep sleep Wake-up not fully implemented, use NVIC_SystemReset() to reset the micro-controller if you do not want to fix the wake-up part.

2 years agoAdd cc1101_enter_wake_on_radio() To Be Tested
Nathael Pajani [Mon, 7 Jan 2019 22:18:56 +0000 (23:18 +0100)]
Add cc1101_enter_wake_on_radio() To Be Tested

2 years agoalso keep an untracked dev directory for host code
Nathael Pajani [Thu, 3 Jan 2019 21:26:51 +0000 (22:26 +0100)]
also keep an untracked dev directory for host code

2 years agoThis is DEEP power down bit, not "power down".
Nathael Pajani [Thu, 3 Jan 2019 16:56:06 +0000 (17:56 +0100)]
This is DEEP power down bit, not "power down".

2 years agoAdd function to get back to normal state upon Rx error.
Nathael Pajani [Thu, 3 Jan 2019 16:54:16 +0000 (17:54 +0100)]
Add function to get back to normal state upon Rx error.

2 years agoRemove unnecessary intermediate var
Nathael Pajani [Thu, 3 Jan 2019 16:53:15 +0000 (17:53 +0100)]
Remove unnecessary intermediate var

2 years agoTemperature can be negative, use signed integer.
Nathael Pajani [Thu, 3 Jan 2019 16:52:05 +0000 (17:52 +0100)]
Temperature can be negative, use signed integer.

2 years agoFix interverted parameter names
Nathael Pajani [Thu, 3 Jan 2019 16:50:50 +0000 (17:50 +0100)]
Fix interverted parameter names

2 years agoAdd condition to allow inclusion in host code
Nathael Pajani [Thu, 3 Jan 2019 16:49:37 +0000 (17:49 +0100)]
Add condition to allow inclusion in host code

2 years agoSo true. Hope we are not too far from good ones :)
Nathael Pajani [Sat, 1 Dec 2018 13:24:32 +0000 (14:24 +0100)]
So true. Hope we are not too far from good ones :)

2 years agoA little bit more readable
Nathael Pajani [Sat, 1 Dec 2018 13:20:26 +0000 (14:20 +0100)]
A little bit more readable

2 years agoAdd support for continuous conversion mode
Nathael Pajani [Sat, 1 Dec 2018 13:19:47 +0000 (14:19 +0100)]
Add support for continuous conversion mode

2 years agoUse appropriate defined value
Nathael Pajani [Sat, 1 Dec 2018 13:19:17 +0000 (14:19 +0100)]
Use appropriate defined value

2 years agooled: add support for SPI ssd130x displays
Cyprien Laplace [Sat, 24 Jun 2017 20:47:22 +0000 (16:47 -0400)]
oled: add support for SPI ssd130x displays

For I2C displays, the bus_type needs to be added:

+   .bus_type = SSD130x_BUS_I2C,
    .address = DISPLAY_ADDR,
    .bus_num = I2C0,

To use a SPI display:

1/ add the SSP include:

    #include "drivers/ssp.h"

2/ add the SPI pins to the init table:

    /* SPI : Display */
    { LPC_SSP0_SCLK_PIO_0_14, LPC_IO_DIGITAL },
    { LPC_SSP0_MISO_PIO_0_16, LPC_IO_DIGITAL },
    { LPC_SSP0_MOSI_PIO_0_17, LPC_IO_DIGITAL },

3/ update the oled_display conf:

    .bus_type = SSD130x_BUS_SPI,
    .bus_num = SSP_BUS_0,
    .gpio_dc = LPC_GPIO_0_0,
    .gpio_cs = LPC_GPIO_1_0,
    .gpio_rst = LPC_GPIO_0_31,

4/ initialize the SPI bus:

    ssp_master_on(SSP_BUS_0, LPC_SSP_FRAME_SPI, 8, 8*1000*1000);

2 years agooled: make async/sync mode configurable
Cyprien Laplace [Wed, 21 Jun 2017 00:11:45 +0000 (20:11 -0400)]
oled: make async/sync mode configurable

A new "async" parameter in the display structure let the user choose
between asynchronous or synchronous screen updates. This affects both
fullscreen and tiled updates.

Also only re-send the full window when needed. WARNING: this only
tracks driver updates of it...

2 years agoFix comments
Nathael Pajani [Sun, 1 Oct 2017 00:55:55 +0000 (02:55 +0200)]
Fix comments

2 years agoChirp I2C Soil moisture sensors support
Nathael Pajani [Sun, 1 Oct 2017 00:55:27 +0000 (02:55 +0200)]
Chirp I2C Soil moisture sensors support

2 years agocleaner asm
David Odin [Tue, 20 Jun 2017 23:13:16 +0000 (01:13 +0200)]
cleaner asm

2 years agoAllow asm source files
David Odin [Mon, 19 Jun 2017 17:47:44 +0000 (19:47 +0200)]
Allow asm source files

2 years agoi2c: add asynchronous write
Cyprien Laplace [Sat, 17 Jun 2017 14:58:22 +0000 (10:58 -0400)]
i2c: add asynchronous write

i2c_read() and i2c_write() are blocking functions, and their comments
have been updated to reflect this.

The new i2c_write_async() function is starting an i2c transfer, and
returns immediatly. All i2c transfer functions will now return -EAGAIN
if there is already a transfer in progress (-EBUSY was conflicting with
arbitration lost).

ssd130x_display_full_screen() has been updated to use this new
asynchronous write to start the transfer of the full screen. All
i2c_write* calls are placed in a retry loop if the call returns -EAGAIN.

2 years agoEcho on serial must be only a "best effort" and not mangle with ongoing transmissions
Nathael Pajani [Thu, 15 Jun 2017 07:00:33 +0000 (09:00 +0200)]
Echo on serial must be only a "best effort" and not mangle with ongoing transmissions

2 years agoremove unrequired sleep from bme driver.
Nathael Pajani [Fri, 12 May 2017 23:09:44 +0000 (01:09 +0200)]
remove unrequired sleep from bme driver.

2 years agoAdd SD card write access support.
Nathael Pajani [Fri, 12 May 2017 00:28:09 +0000 (02:28 +0200)]
Add SD card write access support.

2 years agoFix SD/MMC read. Write is still untested.
Nathael Pajani [Mon, 8 May 2017 00:07:51 +0000 (02:07 +0200)]
Fix SD/MMC read. Write is still untested.

2 years agoAdd a CRC CCITT function for use with SSD/MMC driver.
Nathael Pajani [Mon, 8 May 2017 00:03:55 +0000 (02:03 +0200)]
Add a CRC CCITT function for use with SSD/MMC driver.

2 years agoSome more error codes
Nathael Pajani [Mon, 8 May 2017 00:02:59 +0000 (02:02 +0200)]
Some more error codes

2 years agoRemove the gddram internal buffer
David Odin [Wed, 19 Apr 2017 18:32:53 +0000 (20:32 +0200)]
Remove the gddram internal buffer

2 years agoshut up a warning at -Wextra level by using the right type for an index variable...
David Odin [Wed, 19 Apr 2017 16:10:34 +0000 (18:10 +0200)]
shut up a warning at -Wextra level by using the right type for an index variable (size_t instead of i)

2 years agofixed the ssd130x_update_tile function about a (x0,y0) / (xt,yt) mismatch
David Odin [Thu, 30 Mar 2017 20:43:39 +0000 (22:43 +0200)]
fixed the ssd130x_update_tile function about a (x0,y0) / (xt,yt) mismatch

2 years agoFunction rename in iap support code.
Nathael Pajani [Tue, 28 Mar 2017 13:24:45 +0000 (15:24 +0200)]
Function rename in iap support code.

2 years agoSD write support. Untested.
Nathael Pajani [Tue, 28 Mar 2017 13:23:55 +0000 (15:23 +0200)]
SD write support. Untested.

2 years agoSD/MMC card support going on. Still needs testing.
Nathael Pajani [Tue, 28 Mar 2017 13:22:52 +0000 (15:22 +0200)]
SD/MMC card support going on. Still needs testing.

2 years agofixed the set_pixel function
David Odin [Mon, 27 Mar 2017 15:44:11 +0000 (17:44 +0200)]
fixed the set_pixel function

2 years agoAdd tsl256x light sensor support
Nathael Pajani [Sun, 19 Mar 2017 18:37:21 +0000 (19:37 +0100)]
Add tsl256x light sensor support

2 years agoAdd support for bme280 temperature, humidity and pressure sensor
Nathael Pajani [Sun, 19 Mar 2017 18:36:53 +0000 (19:36 +0100)]
Add support for bme280 temperature, humidity and pressure sensor

2 years agoAdd support for displays without an external VCC (use internal charge pump)
Nathael Pajani [Sun, 19 Mar 2017 18:35:18 +0000 (19:35 +0100)]
Add support for displays without an external VCC (use internal charge pump)

2 years agoAlso fix get_priority_mask() return value check in serial_flush()
Nathael Pajani [Fri, 9 Dec 2016 01:33:08 +0000 (02:33 +0100)]
Also fix get_priority_mask() return value check in serial_flush()

2 years agoCosmetic changes (whitespaces) and typo in comments
Nathael Pajani [Fri, 9 Dec 2016 01:31:41 +0000 (02:31 +0100)]
Cosmetic changes (whitespaces) and typo in comments

2 years agoAdd MIN and MAX (defines) to lib/utils.h
Nathael Pajani [Fri, 28 Oct 2016 01:21:10 +0000 (03:21 +0200)]
Add MIN and MAX (defines) to lib/utils.h

2 years agoAdd ntohl, htonl, ntohs and htons to lib/utils.h
Nathael Pajani [Fri, 28 Oct 2016 01:20:50 +0000 (03:20 +0200)]
Add ntohl, htonl, ntohs and htons to lib/utils.h

2 years agoAdd enum for SSP bus numbers
Nathael Pajani [Fri, 28 Oct 2016 01:19:51 +0000 (03:19 +0200)]
Add enum for SSP bus numbers

2 years agoAdding SD card support (partial) over SPI bus Raw read only supported yet.
Nathael Pajani [Fri, 28 Oct 2016 01:19:19 +0000 (03:19 +0200)]
Adding SD card support (partial) over SPI bus Raw read only supported yet.

2 years agoSmall typo fix : use the same notation as for the rest of the function
Nathael Pajani [Wed, 26 Oct 2016 23:47:19 +0000 (01:47 +0200)]
Small typo fix : use the same notation as for the rest of the function

2 years agoAdd PCF85363A RTC support (I2C driver) PCF85363A is an NXP low power RTC chip with...
Nathael Pajani [Wed, 26 Oct 2016 13:55:36 +0000 (15:55 +0200)]
Add PCF85363A RTC support (I2C driver) PCF85363A is an NXP low power RTC chip with timestamps, alarms and 64 bytes of RAM

2 years agoWatchdog - improve memory footprint, uint8_t are enough to store flags.
Nathael Pajani [Wed, 26 Oct 2016 13:53:36 +0000 (15:53 +0200)]
Watchdog - improve memory footprint, uint8_t are enough to store flags.

2 years agoFirst part of SSD130x Oled controller support - Init - Set pixels and tiles (8x8...
Nathael Pajani [Sun, 16 Oct 2016 15:37:52 +0000 (17:37 +0200)]
First part of SSD130x Oled controller support - Init - Set pixels and tiles (8x8) in RAM - Update whole or partial(untested) GDDRAM

2 years agoModification to the font and the way it is handled This allows for the font to reside...
Nathael Pajani [Sun, 16 Oct 2016 15:32:57 +0000 (17:32 +0200)]
Modification to the font and the way it is handled This allows for the font to reside in flash, sparing abour 700 bytes of RAM

2 years agoAdd enum for timer channels
Nathael Pajani [Mon, 3 Oct 2016 15:05:29 +0000 (17:05 +0200)]
Add enum for timer channels

2 years agoAdd a define for RTC callback installation retry delay.
Nathael Pajani [Mon, 3 Oct 2016 15:05:03 +0000 (17:05 +0200)]
Add a define for RTC callback installation retry delay.

2 years agoGlobal README update
Nathael Pajani [Mon, 3 Oct 2016 15:03:34 +0000 (17:03 +0200)]
Global README update

2 years agoAdding deep power down support
Nathael Pajani [Mon, 3 Oct 2016 15:03:15 +0000 (17:03 +0200)]
Adding deep power down support

2 years agoAdding VEML6070 I2C UV sensor driver ... C file (commited only header in commit dd5c7...
Nathael Pajani [Tue, 27 Sep 2016 21:50:38 +0000 (23:50 +0200)]
Adding VEML6070 I2C UV sensor driver ... C file (commited only header in commit dd5c737609b3ff7ce32b9857c0ecb74c85e24433

2 years agoAdd VEML6070 I2C UV sensor driver
Nathael Pajani [Tue, 27 Sep 2016 21:15:13 +0000 (23:15 +0200)]
Add VEML6070 I2C UV sensor driver

2 years agoUpdate to ws2812 driver (internal behavior only)
Nathael Pajani [Tue, 27 Sep 2016 21:14:52 +0000 (23:14 +0200)]
Update to ws2812 driver (internal behavior only)

2 years agoEnsure GPIO are on when using status led.
Nathael Pajani [Tue, 27 Sep 2016 21:13:06 +0000 (23:13 +0200)]
Ensure GPIO are on when using status led.

2 years agoFix RTC code : return correct value on first call where it is valid.
Nathael Pajani [Tue, 27 Sep 2016 21:12:40 +0000 (23:12 +0200)]
Fix RTC code : return correct value on first call where it is valid.

2 years agoCRC engine support. NOT TESTED
Nathael Pajani [Tue, 27 Sep 2016 21:11:28 +0000 (23:11 +0200)]
CRC engine support. NOT TESTED

2 years agoCore IAP code. NOT TESTED.
Nathael Pajani [Tue, 27 Sep 2016 21:11:00 +0000 (23:11 +0200)]
Core IAP code. NOT TESTED.

2 years agoAdding cc1101_power_down() to CC1101 driver
Nathael Pajani [Tue, 27 Sep 2016 21:09:32 +0000 (23:09 +0200)]
Adding cc1101_power_down() to CC1101 driver

2 years agoUpdated according to Timer API changes
Nathael Pajani [Tue, 27 Sep 2016 21:09:04 +0000 (23:09 +0200)]
Updated according to Timer API changes

2 years agoComplete rewrite of timers API, now documented here : http://wiki.techno-innov.fr...
Nathael Pajani [Tue, 27 Sep 2016 21:08:21 +0000 (23:08 +0200)]
Complete rewrite of timers API, now documented here : wiki.techno-innov.fr/index.php/Technique/Logiciel/API/Use/Drivers/Timers

2 years agoSmall additions to core/system.[ch] Small addition to gpio driver header
Nathael Pajani [Tue, 27 Sep 2016 21:06:54 +0000 (23:06 +0200)]
Small additions to core/system.[ch] Small addition to gpio driver header

2 years agoMove IAP status definitions to IAP header file
Nathael Pajani [Tue, 27 Sep 2016 21:05:00 +0000 (23:05 +0200)]
Move IAP status definitions to IAP header file

2 years agoMove PIO config related code to pio.c and pio.h
Nathael Pajani [Tue, 27 Sep 2016 21:03:58 +0000 (23:03 +0200)]
Move PIO config related code to pio.c and pio.h

2 years agoUpdated I2C driver to follow API documented here : http://wiki.techno-innov.fr/index...
Nathael Pajani [Tue, 27 Sep 2016 21:02:37 +0000 (23:02 +0200)]
Updated I2C driver to follow API documented here : wiki.techno-innov.fr/index.php/Technique/Logiciel/API/Use/Drivers/I2C Updated TMP101 sensor driver for API compliance Updated EEPROM driver for API compliance

2 years agoADC driver update for API compliance API documentation available here : http://wiki...
Nathael Pajani [Tue, 27 Sep 2016 20:59:08 +0000 (22:59 +0200)]
ADC driver update for API compliance API documentation available here : wiki.techno-innov.fr/index.php/Technique/Logiciel/API/Use/Drivers/ADC

2 years agoSerial driver update : return -EINVAL or -EBUSY instead of -1 on errors
Nathael Pajani [Tue, 27 Sep 2016 20:56:35 +0000 (22:56 +0200)]
Serial driver update : return -EINVAL or -EBUSY instead of -1 on errors

2 years agoComments update
Nathael Pajani [Tue, 27 Sep 2016 20:54:07 +0000 (22:54 +0200)]
Comments update

2 years agoUpdated stdlib et utils libs
Nathael Pajani [Tue, 27 Sep 2016 20:48:39 +0000 (22:48 +0200)]
Updated stdlib et utils libs

2 years agoOops, forgot this upon linker script modifications commit
Nathael Pajani [Tue, 27 Sep 2016 20:47:52 +0000 (22:47 +0200)]
Oops, forgot this upon linker script modifications commit

2 years agoRename lpc_core_cm0.h to lpc_core.h Rename lpc_regs_12xx.h to lpc_regs.h Split lpc_re...
Nathael Pajani [Tue, 27 Sep 2016 20:47:14 +0000 (22:47 +0200)]
Rename lpc_core_cm0.h to lpc_core.h Rename lpc_regs_12xx.h to lpc_regs.h Split lpc_regs.h among all driver header files. Include lpc_core.h and lpc_regs.h from system.h Replace LPC1224 by LPC122x

2 years agoAdd errno.h (code moved from system.h) Add stdint.h Add NULL and size_t to stddef.h
Nathael Pajani [Tue, 27 Sep 2016 20:35:32 +0000 (22:35 +0200)]
Add errno.h (code moved from system.h) Add stdint.h Add NULL and size_t to stddef.h

2 years agoImprove Makefile - Add comments - Use LDFLAGS instead of LINKOPTS - Use $(DEBUG)...
Nathael Pajani [Tue, 27 Sep 2016 20:11:15 +0000 (22:11 +0200)]
Improve Makefile - Add comments - Use LDFLAGS instead of LINKOPTS - Use $(DEBUG) var Fixes on Linker script - Removed info page size and offset as they are accessible only "in app" - Remove duplicate hardcoded values - Fix for recent GCC versions - Fix system_init Update Readme

2 years agoTypo fix in register name and comments update
Nathael Pajani [Tue, 17 May 2016 14:58:56 +0000 (16:58 +0200)]
Typo fix in register name and comments update

2 years agoRename config register block as config instead of control
Nathael Pajani [Tue, 17 May 2016 14:16:37 +0000 (16:16 +0200)]
Rename config register block as config instead of control

2 years agodtplug protocol fixes (on comments) and new values
Nathael Pajani [Tue, 26 Apr 2016 23:01:55 +0000 (01:01 +0200)]
dtplug protocol fixes (on comments) and new values

2 years agoAdd defines for UART numbers
Nathael Pajani [Tue, 26 Apr 2016 23:00:38 +0000 (01:00 +0200)]
Add defines for UART numbers

2 years agoAdd gpio_read() helper
Nathael Pajani [Tue, 26 Apr 2016 23:00:19 +0000 (01:00 +0200)]
Add gpio_read() helper

2 years agoImprovements to watchdog support
Nathael Pajani [Tue, 26 Apr 2016 23:00:00 +0000 (01:00 +0200)]
Improvements to watchdog support

2 years agoAdding define for register value combination for timers
Nathael Pajani [Tue, 26 Apr 2016 22:59:17 +0000 (00:59 +0200)]
Adding define for register value combination for timers

2 years agoAdditions and improvements to WS2812 chainable leds support
Nathael Pajani [Tue, 26 Apr 2016 22:57:53 +0000 (00:57 +0200)]
Additions and improvements to WS2812 chainable leds support

2 years agoFix setup on interupts on GPIO
Nathael Pajani [Tue, 26 Apr 2016 22:56:47 +0000 (00:56 +0200)]
Fix setup on interupts on GPIO

2 years agoMake sequence number shorter to add a byte count for quick data packets.
Nathael Pajani [Fri, 5 Feb 2016 16:56:46 +0000 (17:56 +0100)]
Make sequence number shorter to add a byte count for quick data packets.

2 years agoFix comment typo and remove obsolete code.
Nathael Pajani [Fri, 5 Feb 2016 16:54:13 +0000 (17:54 +0100)]
Fix comment typo and remove obsolete code.

2 years agoImprove the name of watchdog config fields
Nathael Pajani [Mon, 23 Nov 2015 12:17:35 +0000 (13:17 +0100)]
Improve the name of watchdog config fields

2 years agoBasic Watchdog implementation, not fully tested
Nathael Pajani [Mon, 23 Nov 2015 12:04:23 +0000 (13:04 +0100)]
Basic Watchdog implementation, not fully tested