Rapid Protoyping

Hello,
I bought a 300$ Spark Core set via preorder campaign and I’m not so happy with it’s functionality.
during weekend we work on startup for blind people (sonar glove) and we used Core as best tool for rapid prototyping.

We had several problems during our development and I’m asking for help.

  1. problem to connect to wifi (2.4GHz and 5GHz was active but it didn’t connect)
  2. 1 of 20 connections to wifi went through when we used wifi where’s only 2.4GHz
  3. When we came out of development environment and Spark can’t access wifi it didn’t boot up (do we need wifi if the code is uploaded into core? come on…)
  4. Arduino IDE didn’t work with spark core… why?
  5. We need special spark core libraries. 90% of example codes from arduino didn’t work…
  6. We can’t use USB connection to upload code to Core
  7. When we flash Core via cloud it disconnect our USB and hang Core (1 of 5 times)

Do you have some answers or could you point me to solutions?

May the force be with you!

Sorry to hear that your experiences thus far haven’t as great as they could be. I’ll try to address some of your points, and leave the other to people more knowledgable.

  1. Could you please provide as much details as you can about the problems that you faced while connecting? What colors did the LED blink? Which connection methods did you try (app, USB)? What kind of network connections did you try (bandwidths, encryption)?

  2. With ‘went through’, do you mean only 1/20 connections worked after configuration, or that you could only configure 1/20?

  3. The Spark natively searches for wifi since the purpose of the Core is to be a ‘connected device’. To do that, it’ll search for a compatible connection. Unfortunately, due to TI drivers/CC3000 chip, this is a blocking action, which will prevent your user code from running. Fortunately, you can use the ‘manual modes’ which are described in the docs. This way, you can decide when, and if, the Core should be looking for wifi, thus enabling you to run your code at startup.

  4. Short and simple answer: it’s not an Arduino. You wouldn’t expect an iPhone to be programmable through the Arduino IDE either, now would you ;)? Longer answer: the Core runs on a different chip than the Arduino, you can’t just copy/paste it without making some minor adjustments. The language however is the same, which is why it’s stated to be ‘Arduino compatible’. If you can program for Arduino, then you can program for Spark. Just like you wouldn’t hammer a nail with a shovel, you shouldn’t try to use an Arduino programmer for a non-Arduino controller. They’re simply different tools, made for different things. That is where the Spark IDE comes in. This will make sure that the Arduino-like code is converted to something that can run on the Core’s chip. We’ve got the web IDE, which is pretty neat, and also have the Spark DEV if you prefer to have a local option. Heck, if you want you can set up your own development environment with netbeans for example. There are some tutorials on that to be found on the forum, try a search for them, if you’d like.

  5. Is related to 4. Since there are several hardware differences with Arduino, some porting has to be done. You don’t expect python code from your raspberry pi to run on an Arduino, since they’re two different things, so why expect that from the Core? That’s not to say its impossible, since it’s actually really doable. More often that not, the porting is as little work as removing or adding a single line so the compiler knows what to do. Even better is the fact that this is a truly awesome community, which will be more than happy to help you out if you face any difficulties, or you need help with pretty much anything. There are several libraries already available for commonly used peripherals, but feel free to ask if you need something ported.

  6. Actually, you can. You just need to set it up properly. Follow this tutorial to make sure all drivers are properly installed: https://community.spark.io/t/installing-the-usb-driver-on-windows-serial-debugging/882 then take a look in the docs at the Spark CLI. This will allow you to flash your Core over USB. In the (nearby) future, this will also be implemented in the Spark DEV, so that should be even easier. Furthermore, you can even use a JTAG programmer as far as I’m aware.

  7. Could you please elaborate this a bit further? What are the symptoms you are seeing? What colors does the LED flash? What do you mean by ‘disconnects USB’? During the flashing process, the Core gets reset, so it’s only logical that the USB connection will be (temporarily) disconnected. You’d need to restart your serial monitor, if that’s what you mean.

Hopefully I’ve been able to answer some of your issues. Feel free to ask if you need more clarification, or further help. We’re glad to help out wherever we can, and I’m pretty sure we can make it work for you.

May the force be ever in your favor!

4 Likes

@mmaxian, to add to the fantastic comments made by @Moors7, the CC3000 module firmware on the original Cores needs to be updated with the latest TI updates. We have found that this solves a lot of connection issues. I recommend you look into applying CC3000 the deep update to your cores. This can be done easily via the web. When any core needing the udpate is online, the web IDE will show an update symbol next to the Core’s name.

As for Arduino code, we have found that most well written libraries can be ported as-is with minor #include adjustments. Hardware specific libraries need special attention and this community is an amazing source of help. I and other Elites have ported or helped port numerous libraries for members. This community is here to help! :smiley:

4 Likes