-
Notifications
You must be signed in to change notification settings - Fork 108
Ideas for Google Summer of Code 2016
- Templates
- List of ideas
- Port Soletta to Brillo
- Implement Python bindings for Soletta
- Implement Python metatype for Soletta
- Implement Go bindings for Soletta
- Implement Go metatype for Soletta
- Port to ESP8266
- Implement auto-complete in Soletta Dev-App
- Implement missing features on Contiki's port
- sol-fbp-runner: Implement remote inspection
- sol-lwm2m: Implement missing features
- sol-joyn: Soletta API for AllJoyn
- sol-gatt: Implement GATT profile in Soletta
- Soletta bare metal: Soletta port to QMSI
Mentors: Bruno Dilly, Gustavo Lima ...
Difficulty: [Easy|Medium|Hard]
Short description of the idea (1 paragraph)
Requirements:
- Language
- Protocol
- Technology
- [Basic|Heavy] understanding of something
Long description (optional)
Mentors: Bruno Dilly, Gustavo Lima ...
Difficulty: [Easy|Medium|Hard]
Short description of the idea (1 paragraph)
Requirements:
- Language
- Protocol
- Technology
- [Basic|Heavy] understanding of something
Long description (optional)
Mentors: Bruno Dilly
Difficulty: Medium
Short description of the idea (1 paragraph)
Requirements:
- Language
- Protocol
- Technology
- [Basic|Heavy] understanding of something
Long description (optional)
Mentors: Bruno Dilly, Gustavo Barbieri, Rodrigo Chiossi
Difficulty: Medium
Short description of the idea (1 paragraph)
Requirements:
- Previously knowledge about Python is highly recommended. Don't need to be an expert, but should be comfortable with Python programming idioms. We don't want to end up with a C API on Python.
Long description (optional)
Mentors: Flavio Ceolin
Difficulty: Medium
Allows Soletta node's type development using python. Soletta already supports the development of metatypes using javascript.
Requirements:
- Previously knowledge about Python is highly recommended. Don't need to be an expert, but should be comfortable with Python programming idioms. Also would be nice a general knowledge about mainloop.
Long description (optional)
Mentors: Bruno Dilly
Difficulty: Medium
Short description of the idea (1 paragraph)
Requirements:
- Previously knowledge about Go is highly recommended. Don't need to be an expert, but should be comfortable with Go programming idioms. We don't want to end up with a C API on Go.
Long description (optional)
Mentors: Flavio Ceolin
Difficulty: Medium
Allows Soletta node's type development using Go. Soletta already supports the development of metatypes using javascript.
Requirements:
- Previously knowledge about Go is highly recommended. Don't need to be an expert, but should be comfortable with Go programming idioms. Also would be nice a general knowledge about mainloop.
Long description (optional)
Mentors: Leandro Pereira
Difficulty: Medium
Port Soletta to run on cheap ESP8266 modules. It's already possible to run a Lua runtime on them, so it must be possible to run Soletta as well. Modules can be obtained from online stores for about $3 with S&H included, which makes it a very desirable target.
Requirements:
- Language: Good knowledge of C.
- Cross compilation experience not required but desirable.
Mentors: Bruno Bottazzini
Difficulty: Easy
Auto-complete the code in the Soletta Development Application editor while the FBP is being programmed.
It's possible to get what nodetypes Soletta has. Now it will have to get these nodetypes, processing it and make auto-completion tips for the users when they are programming with Soletta Dev-App. We can also auto-complete the syntax to make the FBP development easier and faster.
The auto-complete should have the same behavior as the majority IDE. It will open a box allowing the user of Soletta Dev-App to choose what code to be completed.
Requirements:
- Language: Knowledge in Javascript. Experience with NodeJS, AngularJS or Jquery would be good
Mentors: Flavio Ceolin, Ivan Briano
Difficulty: Medium
Soletta already has a basic port for Contiki, it means build integration, mainloop and basic IO (only GPIO). It's missing network support and others IO, such as, I2C and SPI.
Requirements:
- Language: Good knowledge of C.
- Cross compilation experience not required but desirable.
Mentors: Vinicius Gomes, Andre Guedes
Difficulty: Medium
In Bluetooth Smart (also known as Bluetooth Low Energy) the most interoperable way of communicating with devices is using the GATT protocol. GATT provides a low overhead protocol, with high level concepts (services, characteristics, decriptors) ideal for low power devices, which may be coin cell battery operated.
The Bluetooth Special Interest Group (SIG) already defines many protocols implemented on top of GATT for many common applications[2].
sol-gatt
will provide a high-level API (initially for Zephyr[3] and Linux)
for registering and manipulating local and remote services and characteristics.
Requirements:
- C programming language experience;
- Knowledge of networking programming, Bluetooth technology has many analogs with TCP/IP/Ethernet;
[1] https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt
[2] https://www.bluetooth.com/specifications/adopted-specifications
[3] https://www.zephyrproject.org/
Mentors: Murilo Belluzzo
Difficulty: Easy
Add the capability to attach to sol-fbp-runner remotely (ip:port) and receive the inspection output for the flow being executed as well the logging messages.
Requirements:
- C programming language experience;
- Knowledge of networking programming;
Mentors: Vinicius Gomes
Difficulty: Medium
AllSeen[1] is a notable protocol in the IoT market, AllJoyn is the implementation of the protocol, providing a unified way for discovering devices and services over multiple transports.
Requirements:
- C programming language experience;
- Knowledge of networking programming;
[1] https://allseenalliance.org/
Mentors: Guilherme Iscaro
Difficulty: Medium
Soletta has its own implementation of the lightweight machine to machine (LWM2M) [1] protocol. The LWM2M protocol is used to remotely control IoT devices, these include: Firmware updates, status reporting and etc. Although Soletta already implements the LMWM2M server and the LWM2M client, Soletta implementation is lacking some main features, that are: a bootstrap server, message encryption and data access control.
Expected Deliveries:
- A LWM2M bootstrap server.
- CoAP message encryption.
- Data access control.
Requirements:
- C programming language experience.
- LWM2M knowledge is desirable.
Mentors: Vinicius Gomes, Andre Guedes
Difficulty: Extra hard
Soletta is a library to offer developers a framework for making IoT products with which they can easily write software for diverse devices, providing a high level API which users can use to target many different platforms, among these: PID1 processes on barebones Linux kernel (known as micro-Linux), Riot-OS, Contiki and Zephyr. But what if we don’t even need the services provided by the OS?
For the Intel Quark Microcontrollers family, Intel has open-sourced QMSI[1] (Quark Microcontroller Software Interface), which provides a consistent API for interfacing with peripherals and such, giving total control of the platform to developers. All this control implies extra care when writing softwares, that should be employed in every software written.
Soletta aim is clear, it's a framework for building devices. What's a better way than to build devices using a consistent and high level interface and have the generated code run comfortably on the smallest Quark Microcontroller? The increased growth of the IoT market is putting even more pressure in development time, so that extra care when development applications with full control of the hardware is better employed when it can be re-used, Soletta fills this niche nicely.
Requirements:
- C programming language experience;
- Low level programming experience;