I have an Electric Imp impAccelerator Battery Powered Sensor Node and i have no idea how to program it. The documentation falls short on this. It has no USB port, only an RJ11 port. I have also seen videos of blinkup, where a phone is used to connect the device to the internet, but this is also not working because i believe the device doesn’t work like that.
Could anyone tell me how I can get any code on the device, step-by-step?
The BPSN does indeed use BlinkUp, and you can use the standard Getting Started Guide to help you get the unit online. The Guide was written for our impExplorer Kit, but BlinkUp is the same for the BPSN.
There’s more BPSN documentation here, with links to the driver libraries for the unit’s sensors and such, and to sample code. We also have experimental code for abstracting the hardware away behind some easy calls you can make from Squirrel at our GitHub repo.
I recall my very early days being confused and struggling with the getting started documentation.
Hopefully, this helps.
Unlike many other dev boards on the market, you do not flash an imp device through USB
When you power up your BPSN/Imp Device it’s going to want to try and connect to a wifi network but cannot as no data has been provided.
When you download the Blinkup app from the App Store and open it, it needs to know your account details as that is where the device will want to communicate with to tell your account that it is now available for use.
So before using the Blinkup app, set up your cloud account in the Imp Dev Centre.
Now Blinkup the BPSN/Imp Device so that it can get your local wifi network details. Once connected with your wifi on the first go it will usually take a little longer as your device may also want to update OS firmware etc.
Finally, go back to your cloud account and create a new project. You should now see that you have a device available which you can now attach to the project. You are now good to go. All device code will now get uploaded “Over The Air” (OTA)
Alright, I have got it to work. I am logging the sensordata to the agent. However I want to move the data to an Azure IoT hub. There was also a copy / paste example in Github for this, but it keeps giving errors for the BPSN. It is like the code is only written and tested on the dev board… It is like the pinouts or something are different because it keeps giving errors on the device code, that the pins and i2c indexes dont exist
Different imps have different pin naming (this is just because early imps had a lot less GPIO than today’s modules). It’s not difficult to translate, for example, imp001-oriented code to the imp003 in the BPSN: just change the specific pin-addressing peripheral objects by comparing the pin mux tables of both pins.
That said, this shouldn’t be an issue here as you just need the agent code (ie. the bit of the application that runs in the cloud), and this is the same irrespective of which imp you’re using in your hardware. If you’re getting your sensor data to the agent, you just need to use the IoT Hub sample code to program the agent to send that data to Azure.
(You say “logging the sensor data to the agent”, so I’m assuming you mean you’re sending the data from device to agent, not simply viewing the data in the device log in the IDE).
The latest release (v2.0.0) of the AzureIoTHub uses AMPQ, which has been disabled due to stability issues. While the AMQP API is disabled please use AzureIoTHub release v1.2.1 which uses HTTP. There are examples in the AzureIoTHub repo.