Firmware development for gaming keyboards

Firmware development
for gaming keyboards

Customer

Customer

NZXT – American computer hardware manufacturer

Project type

Project type

Entertainment, Gaming and Esports, Consumer Apps, Software for Hardware, UI

Technology

Technology

C, FreeRTOS, Python, NXP (LPC), USB Hid, Microcontroller software, UART, SPI, I2C, ADC, Timers, PWM, ARM Cortex M, GNU ARM toolchain (gcc, gdb, etc.), git, Jenkins, CI

Developex team

Developex team

2 Embedded engineers, 1 QA, 1 PM, 1 BA

About. The Client is a well-known American premium computer hardware manufacturer...

About

The Client is a well-known American premium computer hardware manufacturer based in California. The company manufactures computer cases, components, and accessories for the PC gaming market.

Our team of gaming enthusiasts and professionals took part in developing firmware for gaming peripherals (keyboards) and made extraordinary gaming experiences.

Developex team developed the firmware for three types...

Developex team developed the firmware for three types of gaming keyboards. All keyboards have the same feature set, but each keyboard has a different number of keys and different layouts to support several languages and allow users to choose the most comfortable keyboard for themselves.

We implemented the ability for users to use various lighting effects, including customizing their own, configure profiles, macros, and actions for ease of use of the keyboards.

Main features that Developex was responsible for:

Main features that Developex was responsible diagram
 

The difficulty of the project was to work without UI application as we have implemented the firmware part of keyboard development. Also, we developed the firmware in such a way as to optimally use the available memory and implement the maximum amount of functionality.

Developex team was responsible for testing the firmware. We used tests written in Python programming language and run these tests in PyCharm.

On the Business Analysis side, we prepared specifications...

On the Business Analysis side, we prepared specifications for firmware and software-to-firmware protocol for keyboards. We have created User stories with Acceptance criteria for such topics as keyboard behavior, firmware update, lighting effects, keyboard macros, profiles, actions, and special buttons.

On the Project Management side, we managed the project using Agile methodology...

On the Project Management side, we managed the project using Agile methodology, prepared tasks for the team based on requirements, participated in meetings and discussions with clients, prepared weekly status reports, and prepared roadmaps and reports for each firmware version for each keyboard type.

Also, we created technical documents such as coding style, communication protocol, keyboard layout, some manuals, etc.

 
We had weekly meetings with clients where we provided a project status...

We had weekly meetings with clients where we provided a project status, showed a demo and discussed future plans and releases. Also, we communicated through email and messengers to resolve quick questions.