How to change the project name and description?
On desktop, edit package.json. On mobile - config.xml
How to remove the loader?
- Open settings.js
- Change the loaderOnLaunch to false
- Set default connection settings below. After that Involt will connect to selected device on launch.
- Enjoy not selecting the device each time when app is launched.
- Remember that loader is recommended when sending the project to others.
How to change the desktop window dimensions?
Open package.json and change width or height. To run app on fullscreen uncomment the fullscreen parameter.
Debug mode prints to console additional informations about what is happening in Involt and connection settings. To turn on debug mode open settings.js and change debugMode to true.
Adding Involt to existing layout. What should I do?
- Injecting interactions will not change the existing layout and there is no need of rewriting your project.
- Rename your index.html file to app.html as project homepage. Look what scripts and assets are required in head section for your subpages.
- You can remove the Involt CSS stylesheet but remember that some UI elements like switch or bar requires their styling to work correctly.
- With hardware, just adapt your project to Involt sketch and its functions. It's easy but requires some planning.
How should I adapt my project from desktop to mobile?
- It's easier to work on desktop and then pack into mobile version. You can set the window dimensions to your target device and preview the layout. There is no point of uploading to Phonegap Build each time.
- You should work with responsive design from beginning. By doing it correctly there is no need to make changes in layout.
- Involt without additional plugins works fine with Phonegap. Be aware of some quirks in Phonegap.
- Try building layout without Involt interactions and use real time preview in Phonegap Developer App without connection.
- Don't pack node-webkit files to Phonegap Build, they are useless on mobile
- Bluetooth communication is same as on desktop but remember that mobile device may have lower range and may work slower.
Should I start working on app or device?
There is no golden rule as it really depends on project. Sometimes there are more tangible interactions than those on screen and vice versa. Think about the amount of potential changes during development on both sides.
- All limitations related to node-webkit and cordova (on mobile).
- Project is based on web technologies but keep in mind that Involt does not support online communication so you can't develop working IoT solution(maybe in future).
- IOS and Bluetooth LE are not supported.
- Only one device can be connected to app at once.
Are there any devices that won't work?
I never heard of any issues with particular Arduino version. With Bluetooth I can be 100% sure that HC-05, HC-06 and XM-15B works fine. However, I never received feedback about issues with other Bluetooth modules. I know that specific Android devices have issues with Bluetooth but it's not related to Involt. I will really appreciate any feedback if it works (or not) on particular Android device and system versions. I'm working on Galaxy S5 with Android 6.0.1 (previously with 5.1.1).
When I launch my app nothing happens
- Are the Involt files unpacked in main folder so package.json and nw.exe are in same folder?
- Involt works only within Node-webkit and Phonegap. It will not work in your browser.
My device doesn't respond when connected
- Assuming that device is plugged correctly and bluetooth is connected and paired - mostly it's a problem while changing serial baudrate in serial begin and inconsistenty with baudrate in settings.js. You shouldn't make any changes in involt-basic.ino functions unless you know what you want to do.
- Maybe there are some pin numbers not consistent between app and device or Involt arrays are too short causing issues within Arduino code.
- Reopen the bluetooth adapter and open the app again. Involt sometimes (rarely) throws "Invalid UUID" error.
- Remember that Arduino Leonardo/Micro requires change from Serial to Serial1 while using bluetooth connected to hardware serial pins.
Device send strings with glitches
Usually it's buffer overload. Try higher delays between sending long strings or while sending multiple strings at once (even small strings requires some delay). It's common issue while switching from serial to Bluetooth. Also check higher baudrate and your bluetooth range.
Device receives incomplete strings
Increase involt array length in Arduino sketch. It's possible that you try to send too much data at once but uncontrolled buffer overload is issue while sending from device to app.
Device/app latency is too slow
- Obviously this could be caused by too many (too long?) delays in your sketch so it's blocking the communication. Consider using millis instead of delay.
- Try increasing baudrate.
- The update rate affects smoothness of updating HTML read elements. Default value is compromise between smoothness and cpu usage. Lower value will update objects almost in real time but will affect CPU usage (important especially on mobile). To change this open settings.js and change updateRate. This will not affect the connection bitrate.
- Check Bluetooth range.
Can I use software serial for Bluetooth?
No, it's too slow. I always connect my BT directly to hardware serial pins and never had any issues. I don't use additional resistors or logic-level converters but you should always check for your module if it's required.