My name is Leon Anavi and I am a software engineer. I am passionate about various open source technologies and you might know me from FOSDEM, OpenFest or other open source events. I also maintain a YouTube channel and unfashionable old style personal blog where I publish geek videos and tutorials for programming and do it yourself (DIY) devices. I have been a proud Raspberry Pi owner since 2011 and I still enjoy experimenting with the new versions of the board in my spare time.
RabbitMax started as a hobby IoT project almost a year ago, at the end of 2015. Initially I bought Raspberry Pi Sense HAT and I built a weather station with it. Unfortunately I noticed several limitations of Sense HAT for my needs. For example the data from the temperature sensor was not accurate because it is situated near the CPU of Raspberry Pi which heats over the time. The 8×8 RGB LED matrix was also not very convenient for printing text. Soon I understood that Raspberry Pi Sense HAT is a great product but it is not exactly what I need for rapid IoT prototyping. There was only one way to move forward and I started working on my own Raspberry Pi HAT.
Making hardware is not an easy task, especially for a software engineer like me, so I asked my friends for help. As an open source enthusiast I insisted on using open source software for electronics design automation suite. Furthermore I wanted a software that runs on GNU/Linux distributions. Therefore RabbitMax Flex, my first Raspberry Pi HAT, is being designed with KiCAD.
The first prototype was with a couple of sensors, relay, buzzer, RGB LED and simple LCD display attached to Raspberry Pi 2 through a breadboard and dozens of female to male and male to make jumper wires. After that using scissors I created Raspberry Pi HAT cardboard sample. This dummy sample was very useful and helped me to select appropriate locations of the components. At this stage I was ready to move on to the next level: the design of the PCB.
The next step was to start a quest for a hardware engineer who really understands and appreciates the value of open source. Based on my experience this was very difficult. Furthermore RabbitMax is still just a hobby project so I have a limited budget so it was even more difficult. In couple of months I met dozen of hardware engineers. Most of them were familiar with proprietary software tools such as EAGLE or Altium and they had absolutely no intention of using KiCAD instead. Finally, after asking around like-minded open source developers, I found the right person for my project and I convinced him to explore and use KiCAD.
In March 2016 we started working on the PCB design of the add-on board for all Raspberry Pi models and versions with 40 pin headers. Simultaneously I was searching for an appropriate name of the project. Initially I called it RabbitPi but soon I figured out it could lead to misunderstanding and I renamed the whole project to RabbitMax. I also had to give a name to the first Raspberry Pi HAT model. I called it RabbitMax Flex due to the ability to easily add or remove sensors and the LCD display.
RabbitMax Flex has a relay, transmitting IR LED and receiving IR photo sensor, buzzer, button, RGB LED, slot for modular LCD character display and slots for up to five additional I2C sensors. Following the guidelines of Raspberry Pi Foundations all add-on boards called HAT should have a EEPROM with some system information for identification.
Over the years as a software engineer I learned that the major difference between a circuit board and a stone is the software. Without proper drivers and software support any circuit board is useless. I am proud to announce that RabbitMax Flex comes with full software support and open source example for the GNU/Linux distribution Raspbian (based on Debian) as well as a custom embedded Linux distribution for IoT based on Poky and built with Openembedded and the Yocto Project. The open source examples in GitHub include simple applications written in the C programming language for controlling each component of RabbitMax Flex including the LCD display and the sensors for temperature, humidity, barometric pressure and light. For the more advanced users there is also a daemon written again in the C programming language for sending data from the sensors and controlling the rest of the components over the lightweight publish/subscribe messaging protocol MQTT.
Getting started with RabbitMax Flex is nice and easy. No soldering is required. Anyone can assemble it with bare hands. RabbitMax Flex is appropriate for students interested in learning basics about electronics and embedded development. It is also appropriate for web, mobile and cloud developers interested in making sophisticated software solutions with big data and IoT without messing around with a soldering iron.
The first real PCB prototype of RabbitMax Flex was printed in OSH Park. By the way I am very happy with OSH Park service. The quality is excellent and the pricing is very affordable for prototypes and hobby projects. Unfortunatelly revision 1.0 of RabbitMax Flex had a few hardware bugs. In revision 1.1 we changed the buzzer as well as the button and we added a potentiometer for adjusting the backlight of the LCD module. In August 2016, after almost six months of work on the PCB design and after printing several prototypes, RabbitMax Flex is near a stable version... As soon as the first batch of stable RabbitMax Flex HATs are ready I will launch a crowdfunding campaign at IndieGoGo and anyone will be able to get involved and support the project.