Suggestions for enhancing the Spark app

Hi,

I got my Spark Core two days ago and I love it. It*s so easy to handle you made a great job!

I have some suggestions for enhancing the Spark app:

  • would be great if it is possible to add a formula to the analog input together with a unit letter. This will be very handy to realize an easy sensor e.g. temperature without writing any line of code
  • some simple logic like if D1 is high set Analog write on A1 to 128 - if D1 is low set it to 0 would be nice.

I know these features should be in the programming of the arduino. But if I do this, I loose the use of the Tinker app, because I write and flash my own code. A combination to use Tinker app and use my onle code would be great.

What do you think?

Greetings from Vienna,
Crisu

I hear what you are saying about adding some scripting to the app. I would also love to see a re-configurable web app platform that was easy to design and setup right from the iPhone or computer. I would imagine this is a goal of the Spark Team at some point. There are also several users including myself, who have commented about these possibilities and desires. I think it’s going to take a real web dev guru to get it done. The concepts are not hard, but the execution and user interface will ultimately make or break it’s usability.

That said, you could roll your own application and put hooks in for the Tinker API… and then augment it with additional code like you have suggested in your script above. The Tinker APP on the phone would respond to your button presses, and either set D1 HIGH or set the Analog write on A1 to 128 if you wanted instead.

Here is the Tinker APP you can just copy and paste right into Spark Build (aka Sparkulator) and compile it:
https://github.com/spark/core-firmware/blob/master/src/application.cpp

As long as you don’t rename the 4 basic funcKey’s, you won’t break the Tinker App.

1 Like

One other enhancement to the app, I’d like to see - since I can’t find the Android source to do it myself - would be some control over the RGB-LED :wink:
I have tested the RGB.control/.color with my own extention to the original application.c, but to control it via the Android app I had to sacrifice three PWM pins.
If there would be three more analogWrite “pins” added to the app - or even a color picker area (with a means to de/activate RGB.control seperately) in the unused area between the pin symbols - that would add some value to that app.

One other minor problem I see in the app is, that the analogWrite sliders seem not to be draggable anymore once the value gets set to 255. In this case you’d first have to tap a value less than 255, which causes the slider to disappear. Whe you then open the slider again, it works again. Can anybody see this behaviour, too - or is it just on my device (HTC HD2 with Android 4.0.3 Cryogen ROM).

Another cool feature would be an option to “continually” send analogWrites while dragging the sliders, despite the cloud lag and the risk to overwhelm the cloud, it would still be interesting to see continous rainbow colors on the RGB while moving the finger over the phone.

Edit:
One other thing I’d like to see changed: When using my Android phone as AP via WiFi tether I can’t use the same phone to config the Core for its SSID, since the app complains that WiFi has to be on on the phone. But it is on - only in AP mode and not as client.
I suppose that the actual config work would not have to be changed but only the WiFi check that prevents the config to start.

1 Like

Thanks for the hint, I just tried it out and it works perfectly.

br
Crisu

1 Like

I also ran into the Tethering Wifi hostspot problem, were the Spark app complains the phone is not connected to a wireless network and refused to accept a ssid.

p.s. Where can i find a explanation on how the initial wifi configuration works ?

Maybe this answers your question https://community.spark.io/t/smart-config-the-missing-manual-now-available/442

In short the App sends a specially encrypted data packet containing the SSID and PWD as broadcast and any :spark: Core in range and listening mode picks it up, knows how to decrypt it - by design - and stores this info to connect thereafter.
At least this is how I understood it :blush:

Aha, I understand what you are saying!

However I have not had this problem yet because I got lucky as I’ve been using the Serial over USB connection to get my core up and running lately. It’s much faster than typing the password in on my iPhone.

Here’s how you do it:
http://docs.spark.io/#/connect/connecting-your-core-connect-over-usb

If you don’t have a Mac, I would suggest Tera Term VT 4.80:
http://logmett.com/index.php?/download/tera-term-480-freeware.html