Git Product home page Git Product logo

creatordev / contiki Goto Github PK

View Code? Open in Web Editor NEW

This project forked from contiki-os/contiki

2.0 2.0 11.0 71.14 MB

The official git repository for Contiki, the open source OS for the Internet of Things

Home Page: http://www.contiki-os.org/

License: Other

Makefile 0.35% C 88.83% C++ 8.16% HTML 0.04% JavaScript 0.05% CSS 0.04% Assembly 0.80% Objective-C 1.44% Awk 0.01% XSLT 0.03% Python 0.13% Perl 0.12% Shell 0.01%

contiki's Introduction


Creatordev

The Creatordev Github organisation holds the open source projects producted by the Creator team at MIPS. The Creator programme aims to provide developers using MIPS based development platforms with tools and support to accelerate their product development cycle, learn more about Creator at Creatordev.io.

Our open source projects on Github can be seen by browsing to the top level list of repositories for Creatordev.

You'll find info on the MIPS development boards at our documentation site docs.creatordev.io, or visit us at forum.creatordev.io for support and discussion

contiki's People

Contributors

adamdunkels avatar alignan avatar apstndb avatar atiselsts avatar bradjc avatar bthebaudeau avatar cmorty avatar dak664 avatar darconeous avatar enricmcalvo avatar errordeveloper avatar francois-berder avatar fros4943 avatar g-oikonomou avatar hexluthor avatar idelamer avatar jelmert avatar jimparis avatar kkrentz avatar laurentderu avatar malvira avatar mmuman avatar mtusnio avatar nfi avatar nikhil-zinjurde-imgtec avatar oliverschmidt avatar rahul-daga-imgtec avatar remyleone avatar sdawans avatar simonduq avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

contiki's Issues

Cascoda 802.15.4

Acceptance:

  • Get Cascoda 802.15.4 Clicker sub module upstreamed
  • No regressions on existing funtionality

Measure battery life of the clickers

Once pull request #34 is merged, it would be good to have better measurements of the battery life of the clickers in different scenarios.

  • scenario 1:
    PIC32 is executing an infinite while loop. The current consumption is expected to be 22mA, hence the battery life should lie between five days to one week.

  • scenario 2:
    PIC32 is constantly sending data over 6LoWPAN to a Ci40. The current consumption is expected to be in range 75-95mA.

The 3.3V pin and GND pin should be connected to the Ci40. The Ci40 runs a program to measure how long the 3.3V pin is high. This can be done quite easily using gpio_monitor of LetMeCreate.

Add LPM for PWM

Acceptance criteria:

  • PWM registers with LPM submodule
  • PWM powers down when not used and powers up when used
  • PWM powers down/up on sleep if inited

Upstream mikro-e platform support in contiki

All the changes we have done to add mikro-e platform support in contiki needs to be upstreamed.
for that our changes need to be rebased on contiki-os/master branch, which has been done by @francois-berder-imgtec at https://github.com/francois-berder-imgtec/contiki/tree/upstream

But following tidying up is necessary too before we can create a PR for upstream to contiki-os.

Based on https://github.com/contiki-os/contiki/wiki/Code-Contributions and https://github.com/contiki-os/contiki/blob/master/doc/code-style.c:

  • Add README.md in platform/mikro-e
  • Add doxygen documentation for functions
  • Add doxygen documentation on top of files, I am refering to this bit:
/**
 * \file
 *         A brief description of what this file is.
 * \author
 *         Adam Dunkels <[email protected]>
 *
 *         Every file that is part of a documented module has to have
 *         a \file block, else it will not show up in the Doxygen
 *         "Modules" * section.
 */
  • Choose maintainer and add it in the README.md of the platform.

Acceptance

  • CreatorDev micro-e platform prepared for upstream, following contiki contribution requirements

CA8210 driver drops some fragmented packets

I haven't found a way to reproduce this 100% of the time, but using this example client - https://github.com/FlowM2M/AwaLWM2M/blob/master/doc/example_app_static_api.md#example-create-a-standalone-lwm2m-client-within-a-contiki-environment - we've found that in some cases the bootstrap packet (containing the IP, [PublicKey], [SecretKey]) gets received but dropped by the driver. This is possibly due to fragmentation and timing of the packet arrival, and from what I've seen the radio usually receives one 104 byte packet. If data gets trimmed to fit into one packet the issue disappears.

Simplify steps for compiling Awa + Contiki + Tinydtls

At the moment, apart from Awa patches and docs, there need to be some manual changes to compile Tinydtls with Contiki and Awa. We need some simplified environment that can be easily used as reference, possibly a github repo with all the submodules ready for use and docs.

Acceptance

  • LMCIoT can be selected in a build as a Contiki app (library)
  • Test app for LMC that checks initialisation passes

Evaluate mbedTLS

Difficulties with tinyDTLS that are taking a while to solve - this task is to evaluate whether mbedTLS will be the quicker path to secure end-to-end comms over awa.
This task covers the work to switch to mbedTLS on contiki/clicker and see if awa end to end is functional on a secure deviceserver, if not, add tickets to debug/fix

PIC32 IRQ driver

We need a PIC32 wrapper for interrupts which allows you to add callbacks for the _CHANGE_NOTICE_VECTOR, rather than hardcode all of them into the platform file.

See cpu/pic32/lib/pic32_irq.h to expand.

Automated update mechanism

We want to be able to auto-update a clicker with the latest build output on CI
Acceptance criteria:

  • Evaluate most reliable s/w update mechanism triggered from a Jenkins client (Linux machine)
    Updating via an intermediate device (e.g. Rpi) is acceptable, if reliable.
  • Mechanism should require minimal (ideally no) despoke build steps/configurations for Contiki
  • Provide some stats of % update failure over a soak test
  • Confirm hardware requirements to purchase (if any)

Use the CA8210 chip by default when building

At the moment the Makefile doesn't set USE_CA8210 nor does it set USE_CC2520. In general most of the users will be running a CA8210 chip on this platform, it'd make sense to build with it enabled by default.

SPI driver

Acceptance:

  • Get SPI Clicker driver into upstreamable state
  • Works with available SPI Clicks
  • Create PR on upstream repo & get it accepted

I2C driver

Acceptance:

  • Get I2C Clicker driver into upstreamable state
  • Works with available I2C Clicks
  • Create PR on upstream repo & get it accepted

Drop TI clicker support

  • Need to tag the lastest commit in 3.0-mikroe and creator branches which works with TI 6LoWPAN clicker
  • Remove any reference to TI clicker specific code

Fix LPM for Uart causing too few characters to be sent

If USE_SERIAL_PADS is specified and PORT3 (the mikrobus one) is used for uart, and LPM is enabled, printing for instance "UartMessage" will only result in the first 4 characters being sent. Disabling LPM fixes that.

Backport all the ASoC related patches from linux upstream to 4.4

Currently we have these many ASoC related patches.

0011-ASoC-img-Add-Imagination-Technologies-drivers.patch:Subject: ASoC: img: Add Imagination Technologies drivers
0013-ASoC-img-Add-Pistachio-bring-up-board-audio-card-dri.patch:Subject: ASoC: img: Add Pistachio bring-up board audio card driver and its
0023-ASoC-img-Include-audio-pll-in-event_timer.patch:Subject: ASoC: img: Include audio pll in event_timer
0025-ASoC-img-add-rate-change-tolerance.patch:Subject: ASoC: img: add rate change tolerance
0030-ASoC-img-use-non-drifted-rates-when-setting-codec-cl.patch:Subject: ASoC: img: use non-drifted rates when setting codec clocks
0049-ASoC-img-Add-Pistachio-internal-DAC-driver.patch:Subject: ASoC: img: Add Pistachio internal DAC driver
0050-ASoC-img-Card-driver-and-event-timer-rewrite.patch:Subject: ASoC: img: Card driver and event timer rewrite
0051-ASoC-img-rename-pistachio-card-driver-files.patch:Subject: ASoC: img: rename pistachio card driver files
0052-ASoC-img-add-tpa6130a2-hacks.patch:Subject: ASoC: img: add tpa6130a2 hacks
0075-ASoC-img-initialise-Pistachio-active_rate-to-zero.patch:Subject: ASoC: img: initialise Pistachio active_rate to zero
0077-ASoC-img-Fix-64000hz-pll-frequency.patch:Subject: ASoC: img: Fix 64000hz pll frequency
0091-ASoC-img-Fix-compilation-issue-caused-when-selecting.patch:Subject: ASoC: img: Fix compilation issue caused when selecting
0095-ASoC-Update-drivers-for-upstreaming.patch:2 ASoC: img: i2s_out: Upstreaming changes
0095-ASoC-Update-drivers-for-upstreaming.patch:3. ASoC: img: parallel_out: Upstreaming changes
0095-ASoC-Update-drivers-for-upstreaming.patch:4. ASoC: img: spdif_in: Upstreaming changes
0095-ASoC-Update-drivers-for-upstreaming.patch:5. ASoC: img: spdif_out: Upstreaming changes
0095-ASoC-Update-drivers-for-upstreaming.patch:6. ASoC: img: internal_dac: Upstreaming changes
0113-ASoC-img-Add-split-i2s-in.patch:Subject: ASoC: img: Add split i2s-in

and it differs what is there already upstreamed i.e.
3950362 ASoC: img: Add driver for Pistachio internal DAC
7274d07c ASoC: img: Add binding document for Pistachio internal DAC
7f0e823 ASoC: img: parallel out: Add missing initialiser
3958232 ASoC: img: Add driver for SPDIF output controller
0f4ab87 ASoC: img: Add binding document for SPDIF output controller
8f6eec1 ASoC: img: Add documentation for SPDIF in controls
c4458b7 ASoC: img: Add driver for SPDIF input controller
4e8bc8e ASoC: img: Add binding document for SPDIF input controller
8ceb3b2 ASoC: img: Add driver for parallel output controller
71dfaf5 ASoC: img: Add binding document for parallel output controller
d0e3992 ASoC: img: Add driver for I2S output controller
2dcfa06 ASoC: img: Add binding document for I2S output controller
14b947d ASoC: img: Add driver for I2S input controller
e13c118 ASoC: img: Add binding document for I2S input controller

so we need to make sure that patches-4.4 are updated with these backported patches starting from 000-xxx

Enable both UARTs by default

At the moment we only enable only UART we use for debug, ideally we should enable both, or at least enable mikrobus UART when serial pads are defined.
Also, uart_set_input is based on the wrong macro.

PWM Driver

Acceptance:

  • Get PWM Clicker driver into upstreamable state
  • Works with available PWM Clicks
  • Create PR on upstream repo & get it accepted

Investigate upstreaming 3.0-mikroe

As we aim to have clicker support in the upstream contiki, it would be good to make a list of commits that would be part of the first pull request. The list should be as small as possible to have basic support of clicker.

Upstream UART driver

Acceptance:
Get UART Clicker driver into upstreamable state
Works with available UART IFs
Create PR on upstream repo & get it accepted

Refactor all instances of PIC32 unlock sequence into separate functions

We run the SYSKEY unlock sequence a few times in the code (i.e. here), we should move it all under one function and ensure that interrupts are disabled when the sequence is run.

Acceptance Criteria:

  • Add functions that run the unlock/lock sequence
  • Ensure interrupts are disabled while the sequence is being run

Upstream pic32 changes

Contiki currently has support for PIC32MX795F512L(PIC32 model), which is used by SEED EYE board.
We have extended this(cpu/pic32) module to support PIC32MX470F512H in order to support Mikro-e 6LoWPAN Clicker board.
All these changes need to be upstreamed to contiki-os

Fix undef of DEBUG macro while building with upstream merged in

Our ca8210-conf.h & cc2520-conf.h files do undef DEBUG while including the p32xxxx.h file, however upstream is using the macro in some if conditions. We either need to simply define the macro again with some value, or find a way to either avoid having to undefine it or to save and restore the value.

Clicker solution for testing end to end without security

An internal device server will be made available to allow insecure bootstrapping and communications to help with debugging when issues appear.
Matt V and Murat will make the server available, we need to ensure that we have a way for people to use an image that work with it.
Test that this works with the standard CI40 image.
Details for people on how to create or work with the image.

Use the MAC address from NVS

Chip ID is 24AA025E64

Currently we set MAC address either hard coded fixed or randomly set.
We need to use the value provided in the onboard chip.

ADC driver

Acceptance:

  • Get ADC Clicker driver into upstreamable state
  • Works with available ADC Clicks
  • Create PR on upstream repo & get it accepted

Check if RPL can work in Contiki

RPL is now the default in upstream contiki. It used to be NA which works on the Clicker. It would be good to investigate if RPL can work on the clicker as well. There are some examples about RPL in examples/ipv6.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.