Metrika
Ivy Knob

Crypto-ticker firmware and server

Crypto-ticker firmware and server

Crypto ticker is a project for our US based client. They needed a device which fetches data on cryptocurrencies' exchange rates from a server and shows it on a display. They already had a device (hardware) , which behaved as a regular clock, and they needed firmware for device and server software.

Server

We suggested and created a server part responsible for polling data from external API's for both currency and cryptocurrency rates. Separate server was introduced for a few purposes:

We built this lightweight service using Ruby language with help of Sinatra (lightweight http framework), Sidekiq (background processing) and Redis (as a database).

Device firmware

Firmware was built with Arduino SDK, because customer already had display code with Arduino SDK. We added all the necessary thingsto make it into end user product.

We started by making initial configuration interface, it was built on the base of WiFiManager library with some customization.

Then we added all the code for communication with the server. It was simple JSON protocol without any encryption. We decided not to mess with TLS because of no need of information verification. Would the customer required Over The Air updates then secure and verifiable connections to the server is necessary (and we can do it).

During this step we found strange bug in lwIP of Arduino SDK, you can read more about it here.

Final product

Finally we had fully working device with graphics and animations (which required some tricks, given limited resources on board).

After that we supplied a customer with all necessary documentation and Ansible playbooks for management of all the server infrastructure.