Jsoknit 2015

Simple embedded software function definition JSON framework.

Similar projects worth following
Definition of jsoknit:

Pronunciation: jasonit


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


The primary aim is to create a basic JSON based framework that will facilitate interface definitions, exposing an embedded device to remote function calls.

The secondary aim is to create a proof of concept PID oven then have a smartphone controlling temperature using this framework.

1. The problem which has been chosen as the subject of the project

Controlling interfaces such as LCDs, push buttons, meters, etc, are a significant cost in many electronic projects. These components also take up space. Why build another physical interface when there are desktops, notebooks, tablets, smartphones, etc, ready to take the controlling interface roll?

2. How this project will work to alleviate or solve the problem

By creating a JSON embedded function framework, functions can be defined including parameter lists and any return values. The embedded device can then be exposed via any existing transport be it wired or wireless so any paired external device is able to make remote function calls, effectively controlling the embedded device.

As a side effect, I hope this effort will make it easier for myself to integrate multiple embedded devices.

Fig. 1 Controlling device queries embedded device with Jsoknit Interface libdef keyword. The function definitions are returned.

Fig. 2 Controlling device copies interface and is now able to make remote function calls.

3. System Design Document

Fig. 3 System design

3.1 Oven (nickel chrome heater wire)

Status: Built, working.

3.2 Chromel-Alumel thermocouple

Status: Assembled.

3.3 MAX31855

Status: Assembled.

3.4 PID Control

Status: Have used before, needs to be integrated into this project.

3.5 Arduino UNO (Atmega 328)

Status: Working.

3.6 Jsoknit Interface

Status: Proof of concept working (led on, led off), need to add ranges e.g. function will accept a parameter within a given range.

3.7 MDFLY BT0415

Status: Have used before, needs to be integrated into this project.

3.8 Android 4.3

Status: Becoming familiar with Android Studio, needs a lot of work for this project.

4. Licenses and permissions

4.1 Maxim Integrated

4.2 Arduino

4.3 JSON

4.4. Jsoknit Interface


4.5 Android

5. Video - prototype in progress

Roadmap/TODO list:

1. Finish interface.

2. Github upload.

3. Documentation cleanup - smaller images (perhaps too in your face at the moment), more on the coding side.

  • 1 × Arduino UNO The embedded software platform
  • 1 × MAX31855 Cold-Junction Compensated Thermocouple-to-Digital Converter
  • 1 × PID Controller A proportional-integral-derivative controller (PID controller) is a control loop feedback mechanism (controller) widely used in industrial control systems. - wikipedia.
  • 1 × Android S3 Running Android 4.3

View all 8 components

  • Jsoknit proof of concept

    Daniel Sikar02/19/2016 at 20:31 0 comments

    Documentation and code added to the github jsoknit-proof-of-concept repository.

    Current status. All working from the bluetooth radio and beyond. On the user side, Android code still to be written. As Al Pacino told Marlon Brando in The Godfather; "We'll get there, pops."

  • Bluetooth module

    Daniel Sikar02/02/2016 at 18:14 0 comments

    After a period of hibernation, we are once again moving forward. The Bluetooth radio is now working. Instruction to be found in this Github reposiitory. Stay tuned.

  • Filling the AKH (Android Knowledge Hole)

    Daniel Sikar10/21/2015 at 14:55 0 comments

    Over twenty days gone without a log entry and here is the pulse. I am currently working on Android Programming so no change, really. It is plain Android-slanted Java at the end of the day and I like it. Android Studio is a pretty good platform if anyone asks me, and the iterations are quick. I am expecting the v0.1 release this side of xmas. Basically it involves JSON parsing and rendering objects such as buttons, sliders and textboxes at runtime. Then an early spring clean still in order, hive off some parts on the project to other mini-projects and so forth. And that is the news and weather brought to you by Jsoknit.

  • Still working on Android

    Daniel Sikar09/28/2015 at 21:09 0 comments

    I invested some 7 hours so far getting to grips with Android Studio and layouts and should be able to post some real mock-ups within the next couple of weekends. I also had another go at Fritzing and it looks manageable enough.

    As far as the Jsoknit project goes, the more perspective I get on it, the more pollution I see. The solution I envisage is to move everything that does not pertain directly to coding Jsoknit to other projects, i.e. move thermocouple building to another project page and so forth. In the end, it should be just about defining the Jsoknit interface for a given embedded device. The Android code should go straight to Github. Anyway, onwards and upwards while I am in the realm of the living.

  • Working on Android

    Daniel Sikar09/09/2015 at 13:22 0 comments

    Did not managed to finish interface. Still getting my head around Android Bluetooth - a few steps closer to dealing with input and output streams. Android Studio has feature rich debugging so hopefully will be out of the woods before the end of this month.

    Other developments, will try to make a start on the circuit, printed some notes by Texas on laying out PCBs for high frequency devices. At low baud rates I am not sure my device falls into this category but I don't have the knowledge or tools to monitor the actual communication between the two Bluetooth radios so will work on the assumption it is.

    Finally, I was thinking about bringing in Fritzing to document the actual Uno - BT0415 setup to make it easier to replicate in the future.

  • Two-way communication

    Daniel Sikar09/06/2015 at 16:50 0 comments

    Managed two-way communication, as always it was indeed a timing issue. Project now has 0.5k views <fireworks>. Building up some critical mass. Hoping to have basic interface up and running by tomorrow - have set the day aside to work it out.

  • What is happening/happened this/last week

    Daniel Sikar08/31/2015 at 13:37 0 comments


    to get two way communication going between Arduino Uno and Android 4.3 via BT0415. Message received on Arduino then echoed to serial monitor and all good. Message sent to Android does not always make it across and when it does comes out as gobbledygook so will need further processing i.e. byte by byte parsing, assembling into readable ascii characters, etc. About the message not making it across, previous experiments suggest it is a timing issue e.g. strategic delays need to be added to allow for protocols to ready themselves.

    Did not manage:

    to write basic app to query Arduino Uno (a.k.a. Jsoknit compatible device) and receive interface definition.

    Road map for the week:

    sort out two way communication and complete the basic app.

  • What's happening today

    Daniel Sikar08/25/2015 at 13:42 0 comments

    Changed project name for the 2nd time. Now we are Jsoknit (pronounced "jasonet"), like knitting with JSON. I thought maybe jsonet but there already is a javascript server-client communication protocol using JSON that goes by the name. Other than that, got this nice email from Hackaday:

    Dear Daniel Sikar,

    Thank you for participating in the Hackaday Prize. One of our goals here at Hackaday with the Prize is to encourage good documentation. Your documentation on Jsoknit qualifies you for a commemorative Hackaday Prize T-shirt. Congratulations!

    Please fill out this form by October 31st in order to get your T-shirt!

    Email Jasmine if you have any questions.

    Thanks again,
    The Hackaday Team

  • Thank you for entering the 2015 Hackaday Prize

    Daniel Sikar08/24/2015 at 14:22 0 comments

    Dear Daniel Sikar,

    Thanks for participating in the Hackaday Prize. We had a great time looking at and admiring your projects! Unfortunately, JASONette Interface was not chosen to advance to the next round.

    But - that doesn't mean you should stop working on it! We'd love to see this project continue being worked on and added to on

    Come hang out in the Hacker Channel, get feedback and encouragement and push your project. Maybe you'll enter it in another one of our contests.

    If you have any questions, please email Mike, Sophi or Brian.

    Thanks again for being a part of this,
    The Hackaday Team

  • This week's TODO list

    Daniel Sikar08/24/2015 at 14:21 0 comments

    Develop proof-of-concept Android app to send and receive strings to paired Jsoknit enabled bluetooth device.

    Fig. 1 Sending

    Fig. 2 Receiving

View all 22 project logs

  • 1
    Step 1

    Notes on build instructions

    Everything behind (or literally above) the Arduino UNO, as per Fig. 3 System design, is not essential. I am doing it for the sake of trying to develop something of a practical nature. The proof of concept worked with turning a led on, off and varying its brightness. The heater control came along as I see it everywhere; reflow ovens, sous-vides, hacked espresso machines, home brewing and so on.

    If you are interested in the part sitting in front of the Arduino UNO, then you may revert to the led example (Github link has details), or perhaps you have other embedded projects ready, and are interested in creating a generic interface to control and integrate them all via a notebook, tablet or smartphone, then why not join the project? Two heads think better than one!

    1. Oven

    A length of nickel chrome wire preferably, but not necessarily, wound in a spiral, then mounted around isolators e.g. ceramic or other material. Note, the wire can get red hot. Each end of the spiral will be one terminal.

    Fig. 1 Nickel chrome coil, oven interior and external terminals

  • 2

View all 3 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

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