
Be a part of the 2021 RDK Hackathon by submitting your feature, innovation, solution, or concept for the RDK code.
Registration
period
– july 16
Hackathon
period
– September 17
The Winning
Team Receives
of $2500
Winning entry
presented at
2021 RDK
Tech Summit
Rules
- Teams may be formed by any RDK licensee
- Create your own team of one to five members
- All entries submitted become the property of RDK
- Entries may be added to the RDK open source code
- Email questions to info@rdkcentral.com
Schedule
June 28 — Registration opens; teams can begin submitting concepts to RDK
July 16 — Deadline for registration and submitting concepts
July 30 — RDK provides final approval for new concepts
August 2 — Hackathon begins
September 17 — Deadline for submitting projects
October 25 — Winner announced
November 18 — Winning team presents at 2021 RDK Tech Summit
Concepts
You may choose from one of the following approved concepts submitted by RDK and our partner companies or submit a concept of your own. Submitted concepts will be reviewed for approval by RDK.
Concept 1: Casting support to PIP Window
Concept 1: Casting support to PIP Window
While casting a video from any supported app, the user should have the option to cast it to either a main video window of the target device or to the secondary video (PIP) window. If the device supports dual video decoding it can fulfill the request. If not, it should be cast to the primary video window. The PIP audio should be routed to the BT audio headset. When a cast request is sent to Dial, the user should receive a prompt to select PIP or the main window. Once a selection is made, Westeros should allocate the screen size and focus via RDK Shell.
Use Case:
- Two viewers can each cast different music videos to main or PIP and watch/listen from the same device. The PIP audio is routed to Bluetooth audio out so that main audio is not disturbed.
- When there is an entertainment channel on the main screen, we can cast a sports feed to PIP and keep track of updates. Users can toggle the pip window to the main window when needed.
RDK components used:
- Lightning
- Westeros
- Dial
- PIP support
- BT audio streaming
Risks/Dependencies:
- None
Concept 2: VOIP integration in an RDK-B Gateway
Concept 2: VOIP integration in an RDK-B Gateway
Establish an audio call to a phone through an RDK-B Gateway. Using Linphone to register, the user should be able to send and receive calls by reading simple text commands from standard input or from a UNIX socket. The objective is to initiate, answer, or terminate a call.
Use Case:
-Make, receive, and terminate phone calls via an RDK-B device.
-Stretch goal use case: Make, receive, and terminate phone calls via a mobile or desktop application connected to the RDK-B device.
RDK components used:
- Linphone
- Linphone-daemon
- Linphonec
- RDK Telco Voice Manager
- Mediastreamer2
- oRTP
- belle-sip
Risks/Dependencies:
- Compilation and dependency errors; availability and functionality of RDK Telco Voice Manager
Concept 3: RDK-B QoS: Bandwidth Manager
Concept 3: RDK-B QoS: Bandwidth Manager
Manage downlink bandwidth based on available uplink bandwidth on a device. Monitor and allocate resources on a priority basis based on a URL classification.
Use Case:
A device playing high-bandwidth-consuming games can limit bandwidth on a device that is presenting a live session. This feature will closely monitor and manage bandwidth to better allocate resources for competing services.
RDK components used:
- RDK VLAN Bridging Manager
- Bandwidth Manager
Risks/Dependencies:
- Networking knowledge and C programming
Concept 4: Chat applications in RDK
Concept 4: Chat applications in RDK
Create a chat application in RDK using GStreamer WebRTC rather than libwebrtc.
RDK components used:
- GStreamer WebRTC
Risks/Dependencies:
- GStreamer 1.16 is a pre-requisite
Concept 5: Create profiling tool for developers
Concept 5: Create profiling tool for developers
Create a tool to integrate modules to monitor how much time a call spends at each stage. The tool can also create a graph showing time at each stage as calls move from Application to Middleware to platform layer. This will allow developers to identify which module may be introducing performance issues.
Use Case:
When developers encounter a performance issue, they do not have a way to identify which component is causing the delay. Blame can be passed between RDK, apps, and the platform without any definitive information as to the true source.
RDK components used:
- Application framework (ex: Lightning in RDK Video)
- Middleware framework (ex: WPEFramework and plugins in RDK Video and CCSP components in case of RDK Broadband)
- Platform/SoC layers
Risks/Dependencies:
- None
Concept 6: Flutter based game integration in RDK, run game in a container
Concept 6: Flutter based game integration in RDK, run game in a container
Flutter is a very popular open source UI software development kit created by Google, used to develop cross platform applications for android, iOS, Linux etc. RDK has limited app and games support now, and Flutter integration with RDK will enable users to run any Flutter based apps on RDK.
Use Case:
Integrate Flutter SDK with RDK and run a Flutter based game in RDK. This will involve integrating Flutter engine, developing a Flutter Thunder plugin and running Flutter apps on top of it. All apps / games developed in Flutter should work with this approach. Some games ask for containerized app support. Extended use case is to try running this game inside a container.
RDK components used:
- WPE Framework
- Westeros,
- RDK Shell
- GStreamer
- DAC
Risks/Dependencies:
- None
Concept 7: Gamepad integration in RDK
Concept 7: Gamepad integration in RDK
Develop Gamepad support for native/web apps in RDK.
Use Case:
Users should be able to connect gamepads as controllers to play games in RDK stack. Apps can be web-based or native.
RDK components used:
- Involves Bluetooth/USB Gamepad input handling,
- Gamepad input integration with Webkit and Westeros support for rendering.
- Bluetooth
- Westeros
- Webkit
- webRTC
Risks/Dependencies:
- None
Concept 8: Lightning Layouts for RDK-V
Concept 8: Lightning Layouts for RDK-V
Implement a collection of typical UI layouts for rapid development of STB applications.
Use Case:
This project focuses on UI framing and configuration options using the existing GitHub project https://github.com/rdkcentral/Lightning-UI-Components.
RDK components used:
- Lightning framework
Risks/Dependencies:
- No specific drawbacks other than the continued maintenance/evolution of the layouts/UI components cataloged in these projects.
- Ensure fast pull request code review for any community driven contributions to the actual layout/component’s repos.
Concept 9: VPN Server in RDK-B
Concept 9: VPN Server in RDK-B
Implement a VPN server inside RDK-B.
Use Case:
Currently most customers expose their devices to the Internet directly via Port Forwarding. The main use case is to allow customers to securely access their internal IoT devices from outside the home. Wireguard is recommended due to its simplicity, security, and performance, but strongSwan/IPSec or OpenVPN based implementations may also be used.
RDK components used:
- New agent to be created, which will be the VPN manager (VPN accounts, private keys, etc.)
Risks/Dependencies:
- Needs to expose a way for the user to download a VPN config file from the router.
- QR code, as supported by Wireguard client apps may also be an option.
- Wireguard requires an out-of-tree kernel module unless the kernel is very new. The out-of-tree module supports kernels ≥3.10.
Team Registration
REGISTRATION IS NOW CLOSED.
Judging Criteria
All projects will be reviewed by an internal RDK team which will select 3 finalists. Three finalists will be submitted to a panel of judges for final judging and selection of a winner.
Judging rubric:
- Clarity of stated goal — up to 5 points
- Extent to which stated concept is achieved — up to 10 points
- Quality of final code submitted — up to 20 points
- Performance of product or feature — up to 20 points
- Quality of supporting documentation — up to 10 points
- Quality of final presentation — up to 5 points
- Complexity of design — up to 5 points
Total maximum points: 75
Final Judges

wouter cloetens
Chief Architect, Broadband Devices | Deutsche Telekom
Wouter is the chief architect of Deutsche Telekom’s broadband devices, with a long history of developing and deploying gateways and wireless extenders in many operator networks, after a career as an embedded hacker. He brings his two decade long engagement in open source development to the RDK community.

Jose ramon diaz martinez
Director, Solution Architecture | RDK
Jose Ramon joined the RDK team as Director of Solution Architecture the 1st of April of 2021, where he is working with our broadband partners to create common technical solutions for the RDK-B community and providing guidance in the design and evolution of RDK-B, that will facilitate the adoption of new services. Over the last 20 years Jose Ramon has held relevant technical positions in companies such as Siemens, Nokia, Alcatel-Lucent, Tekelec and Tele2, where he was designing, developing, and deploying solutions in mobile, access, core, and triple play networks. Most recently Jose Ramon was working as RDK-B Software Architect at Liberty Global for the last five years before joining the RDK
team.

Nuno faria
UX Development Team, STBs | NOS
Nuno Faria leads the UX Development Team for STBs at NOS Inovação, with special interest in UI Frameworks for embedded devices. While mainly focusing on embedded software development, other areas of interest include VR/AR, Voice-Controlled Virtual Assistants, IoT solutions and 3D printing (FDM/MSLA).

Michael fiess
Distinguished Engineer, RDK-V | Comcast
Michael is a software engineer on the RDK Video team at Comcast, and his focus is contributing to and leading software initiatives on the RDK Video platform. He has a strong background in embedded software development and computer graphics.

Nuno martins
Principal Engineer, Home Gateways Team | NOS
Nuno Martins is a principal engineer on the Home Gateways development team for the RDK-b projects. He participated in European Research projects (ULOOP, TIMBUS) and is currently on MIRAI and turntable. Martins received his Msc Software Engineering degree, focused on network and distributed computing, from Nova University of Lisbon, Portugal. Aside from his work at NOS on the Home Gateways, other areas of interest are cybersecurity, IoT solutions, and piloting small drones.

khem raj
Distinguished Engineer | Comcast
Khem Raj is a Distinguished Engineer at Comcast, helping several open source initiatives within the company: He is guiding the company’s adoption of open source software, and organization transition to an active contributor to the open source components used in the RDK settop software stack. He is also actively working on making the RDK community adopt the RDK framework for future multimedia devices and home connectivity. He is member of Yocto Project advisory board, and member of the technical steering Committee for yocto project.

Rob Suero
Head of Technology | RDK
Rob, a 25 year veteran of the telecommunications industry, has been a member of the RDK team since its inception in 2013. Rob oversees technical activities for the RDK including architecture,
community roadmap, and collaborative development.