Democratizing Brainwaves over the Internet

Brainwaves to Browsers | An Open Project Spotlight

AJ Keller, CEO and founder of Push the World, is using hardware, software and firmware to push neuroscience forward. His company’s goal is to create a thought recognition headset that makes human-computer interaction effortless. To get closer to that goal, AJ has been working on a project called Brainwaves to Browsers in our current round of Mozilla Open Leaders.

I interviewed AJ to learn more about Brainwaves to Browsers and how you can help.

What is Brainwaves to Browsers?

Brainwaves to Browsers is a multipart project aimed at integrating brainwave-reading devices with internet technologies. We make collecting biosensor data easy, wireless, and reliable. We teamed up with OpenBCI to develop an innovative WiFi shield. A more detailed project description can be found in our most recent blog post.

Buy a WiFi Shield Today

With this WiFi shield, we’re ushering in a new era of stable and reliable brain computer interfaces. Brainwaves to Browsers is open source hardware (pictured above), community built firmware, and easy to use SDKs that empower researchers, hackers, and makers to transmit data wirelessly. Want to make an Iron Man suit? Use this! Traditionally, EEG/EMG/EKG is done hardwired in a lab, but now you can take research-grade data into the real world.

Why did you start Brainwaves to Browsers?

This project gets us closer to our ultimate goal of creating a thought recognition headset. I started it because, Bluetooth used to be the best method for streaming biosensor data, and it was plagued with problems and limitations. A lot of people using OpenBCI boards needed to send their biosensor data faster, farther, and more reliably than the current hardware allowed, and I believed that WiFi could be the answer. It was also an incredible opportunity to learn how to make printed circuit boards, source parts, and launch a real product.

What challenges have you faced working on this project?

Sending high speed data over WiFi isn’t painless yet, especially over a local network or hotspot when we’re taking 16 voltage readings up to 1000 times a second! We picked a small and inexpensive WiFi chip to lower costs, and that created RAM contraints. I’m still working with people across the world (from home here in NYC, all the way to California, Germany, and India) to stabilize and improve the firmware. With all these technical challenges, it was initially difficult getting people up to speed or motivated to help me.

What are you most proud of accomplishing during the mentorship program?

Helping developers and hackers from around the world learn how to contribute to open source projects and watching them improve week by week. I’m most proud of creating an online community that’s fostering the growth of the project and the people who use and build it.

How has your project been impacted by Mozilla Open Leaders?

Mozilla Open Leaders taught me how to create great docs. I first tested the new doc style in the OpenBCI WiFi Shield NodeJS Driver for the Brainwaves to Browsers project. I quickly noticed the benefits of my new approach to answering people’s questions when committing to helping them develop professionally in the readme. To keep commits flowing, I continually share the lessons I learned with every repo I managed.

Who can help you continue the work on Brainwaves to Browsers?

You! In any way you can help, we need expertise in programming, user experience, software sustainability, documentation, technical writing, and project management. You can always email if you want to ask for guidance on where to dive in!

Our primary goal is to provide a stable and powerful interface for any OpenBCI device, and we’re excited to support the professional development of any and all of our contributors. If you’re looking to learn to code, try out working collaboratively, or translate your skills to the digital domain, we’re here to help.

Is there anything else you’d like to add?

Check out the list of projects that we need help with today! We put the main programming language of each project to help you find a project to contribute to!


  • Programming Language: Processing (Java)
  • Cross platform application for visualizing, filtering, and storing data from OpenBCI boards
  • Lots of commits from community on this repo!

OpenBCI WiFi Firmware

  • Programming Language: Arduino (C/C++)
  • The Arduino compatible firmware that runs on the WiFi Shield
  • People are investing hours and hours into this firmware! It’s awesome!

OpenBCI NodeJS Utilities

  • Programming Language: NodeJS (JavaScript)
  • Utility functions that run in the browser and NodeJS for magically parsing the complex OpenBCI binary bytes stream. Getting the code ported from NodeJS to pure JavaScript was assisted by a community member.

OpenBCI RFDuino BLE Firmware

  • Programming Language: Arduino (C/C++)
  • Allows two channels over BLE, avoids having to use a dongle, and opens up the world of using data straight to the browser!
  • This needs lot’s of work and my hope is to get it stable through the OpenBCI community.

OpenBCI NodeJS RFDuino BLE Driver

  • Programming Language: NodeJS (JavaScript)
  • Allows for testing of RFDuino BLE.

Fast Easy Software Defined Radio Sensors framework

  • Programming Language: Python
  • Create a stable architecture to transmit data securely point to point using software defined radios. Allowing people to put powerful sensors onto drones such as thermal camera or smoke detectors, securely transferring that data to a base station, and augmenting the drone, drone ship, rover or whatever’s path.

What meme or gif best represents your project?

Mozilla Open Leaders offers mentorship and training on working open. Join a cohort of project leads fueling the Internet Health movement. Receive mentorship and training through the Mozilla community in this 14-week online program on working open. Apply today!