SmartSwitch with Spark Core

During the wintersemester 2014/2015 Phil and I developed a SmartSwitch with a Spark.Core in “Embedded Systems”.

The goal was to develop an input device which can control local network components without the need to pull your smartphone out of your pocket by pressing a button. We implemented the neccessary software to process the button clicks and trigger HTTP requests in the local network. Additionally we produced a custom PCB. The project is open source and open hardware.

We published the project on  where it was on the Top Projects on February:

To increase the inputs we use a MCP23017 Port-Expander which is connected to the Spark in the following way:

When pressing a button connected to the MCP23017 an interrup on the Spark Core is triggered.

While developing we had some problems with the interrupts on the MCP23017 and figured out that the MCP Interrupt Register must be read to recognize interrupts correct. That means after the initialization of the MCP and after the interrupt occurred it must be cleared with mcp.readGPIOAB().  (see our post:

Sortify: Harmonize your playlist

Sortify  was developed during the summer term 2014 in “Programming Intelligent Applications”. The goal is to rearrange your playlist and make it more harmonic.

The progress is described in the following gallery:

We used to visualize the result and the guys wrote a blog post about out “German Robo-DJ”: