Using JSON to define embedded software interfaces.

Similar projects worth following
Definition of jsoknit:

Pronunciation: jason - knit


To knit devices by use of the Jsoknit interface - "I jsoknitted my car to my phone".


The new and improved Jsoknit interface, work-in-progress from last year's entry

The wheel - reinvented

This is my attempt at reinventing the wheel with some added roundness.

Consider creating an interface to an LED, the age-old LED-on/LED-off problem:

How to turn the led on and off? We could add a switch, a temporary switch, a motion sensor, etc, and that is on the hardware side alone. We could also interface via USB and have the LED controlled via IOT/IOE, interpreted/compiled code on the host (computer) side and so forth.

All solutions have their optimal place and I do not aim to assess each and every solution. What I am working on here is a way to define the interface, that could be used by any external controller.

In the led case, we have two actions, one to turn the led on that I will call ledOn, the other to turn the led off, that I will call ledOff.

This project is an attempt to create an interface enabling remote function calls to such functions as the two previously defined (ledOn and ledOff ).

How far have I got

I made a start during last year's edition of the Hackaday Prize and got as far as the Android proof-of-concept coding. After much head-banging, I managed to make inroads and this year might get somewhere, with the help of your likes.

  1. I am working on the jsoknit definition. This is the contract so to speak such that if an embedded device has a jsoknit defined interface and a remote device has a. a means to access the embedded device and b. a jsoknit parser, the remote device should be able to make function calls to the embedded device.
  2. I have a working Arduino/Android working proof-of-concept, demonstrating remote function calls as described in 1.
  3. I have documented all steps in enabling Bluetooth communication on the Arduino as described in this GitHub repository.
  4. I am working on a json parser, written for Android, that is able to parse a jsoknit interface definition and create the appropriate Android widgets and callback functions in a single Android application (no need for one application for every jsoknit device). This is a java class to be added to 5.
  5. I am working on an Android Jsoknit Application and so far so good. There is Bluetooth communication between Android and Arduino, once the json parser defined in 4. is added, the Android application will be complete.

How far do I aim to get

I am aiming, by October 2016, to have a basic vocabulary of widgets defined such as buttons, switches, read labels and write labels and with the help of this basic vocabulary, implement as many proofs-of-concept as possible within this 1/2 year between now and then, such as PID heat controllers, pressure sensors, temperature sensors, pH meters and so forth. It would also be nice to either implement the jsoknit parser in a different language such as Python or use the Java jsoknit parser in other environments such as web based applications.

Would you like to help?

If any of this sounds interesting, you are welcome to join the project. Prize monies to be divided following formula:

Where Pm is prize money, Lt tax liabilities and n number of contributing participants in this project. Note I am donating my claim (hence n-1) to the group effort so please participate and do not let the formula result in a division by zero!

Suggested areas are:

  • Android application development (Java)
  • Android UX design
  • Arduino proofs-of-concept (C++)
  • Documentation (GitHub & Hackaday)
  • Graphics (high-octane eye candy)
  • Jsoknit definition (JSON)
  • Python (or any other language) jsoknit parser

Thanks for reading!

  • Jsoknit pH meter now working

    Daniel Sikar04/16/2016 at 01:05 0 comments

    In an all-over-the-place kind of way, the Jsoknit pH meter is showing a pulse. It is not true-blue jsoknit yet but getting there. I wrote some documentation on the Jsoknit pH meter GitHub repo readme page.

    And here are some photos of the evening's work:

    The hardware hook-up

    The Android Jsoknit app sending a libdef request then reading the pH.

  • The Jsoknit pH meter

    Daniel Sikar04/13/2016 at 00:50 0 comments

    So now that Jskonit is sort of past the "hello world" (led on, led off) phase, I made a start on the next Jsoknit enabled device, a pH meter. There are plenty of well documented pH meters around and I chose this one as a base project:

    I assembled the device and it works ok. Next step is to create the jsoknit definition, add bluetooth and see what happens.

    The major change was moving the libdef definition to an include, de-cluttering the .ino file. It is all very basic at the moment. At any rate, forks and pull requests are more than welcome.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates