item.BINARY ANALYTICS Version I - Mohyddin Tash

Hi, I'm Mo đź‘‹

I'm a Software Developer 💻 from Lebanon 🇱🇧

BINARY ANALYTICS Version I

BINARY ANALYTICS Version I

Binary Analytics is

A physical terminal and control dashboards that allow any company to become its own consultant. Learn more

This project was the first collaboration with Binary Analytics Team (check Versions II) for details.

In 2018, my partner and I were contacted by the CEO of Binary Analytics after being referred to him by a mutual acquaintance. After sitting with him, he described his vision and we started to work on the requirements. In fact, he was very professional that he already had a detailed workflow describing the entire system. This saved us a lot of time on communication.

In a nutshell, the project was to design and develop an arcade-like terminal device that consists of a screen and four large buttons.

Note: I won’t go into hardware related details as my role was solely to design and implement the software system that runs on the device

Requirements:

Process:

After going through the requirements, and the fact that the device will be accessing hardware pins on the raspberry pi, a simple web app was not gonna be enough due to security limitations by the browser. So, something that has native support and have file access capability was needed. Electron JS sounded really cool to work with especially that all of the code base will be in JS, and I also wanted to get into learning it.

However, at that time the actual hardware that we wanted to use was still being discussed with the client, and my partner was trying to find the cheapest model that can do the job yet be small enough to fit in the device. Long story short I made a mistake by going forward with the Electron JS implementation to save up time by simulating the system on my laptop. The team first decided to go for Banana Pi zero, a Chinese cheap version of raspberry pi zero but with more power and same dimensions :s:, so we got one and I started to play around with it. It was able to run Electron JS as it had armv71 architecture.

But, after using it for a while the WiFi was extremely unstable and the support was poor on the forums. I even had to write a script that stops and reloads the WiFI driver every time it crashes! After discussing it with the team again, we agreed to go with official raspberry pi zero. I was %70-%80 progressed in the development when I received the raspberry pi zero that will be running the application and the shocking news was it can’t run Electorn JS right of the bat as the pi zero is armv6 and the minimum requirement is armv71.

We had short amount of time left before the deadline so I had to switch the technology, I could have re implemented the app with a front-end app in the browser that communicates with NodeJS app through websockets, but I wasn’t sure how smooth chromium will run on the pi zero and deadline was around the corner so I re-wrote the entire thing in python using PyQT for the GUI.

Challenges:

Takeaways:

Outcome:

Overall, the client was satisfied with the device, and decided to continue this collaboration for version II.