Every embedded hardware developer faces the same workflow every time they want to get started with a new device. Before they can evaluate a sensor, before they can deploy, and even before they can write a single line of code they must go through the following process:
- Have the device in hand
- Download the proper drivers
- Connect to the device
- Set up their development environment with the proper deployment toolchain
- Find a 'Hello World' code snippet to ensure the device is functional
- Get the board to flash correctly, deploy your code, and start building your application.
Hardshare offers the ability to skip to the last step: have a board with the correct toolchain available from anywhere on the planet. It is not a virtualized board, it is not a board with remote access, it is Hardware-As-A-Service where you can request a session on a physical device to get up and running with new hardware with no overhead.
The following demonstration offers you the chance to become familiar with the ST Micro B-L072Z-LRWAN1 Discovery board which has a ST X-NUCLEO-IKS01A3 sensor board attached. Using this, you can build and test an entire end-to-end IoT Application on the Helium Network from anywhere on the planet with no need to have a single piece of hardware in your possession.
In this tutorial, we'll provision a new device on the Helium network, request a remote session using Hardshare on an ST Micro B-L072Z-LRWAN1 Discovery board which has a ST X-NUCLEO-IKS01A3 sensor board attached, place our newly provisioned device keys into the provided sample code, flash our code onto the Discovery board, then see our data traverse the Helium network in real time, on real devices. At the end of the tutorial, we suggest what you can do with this system beyond an introduction.
IMPORTANT: We are looking for feedback on this service and would genuinely appreciate hearing about your experience. It would be immensly useful if you could answer the following questions and email them to [email protected]
Desired Feedback:
- Have you used LoRaWAN devices or the Helium Network Before?
- What are you initial thoughts on the service?
- Did this make it easier for you to get started with LoRaWAN and helium?
- Is there anything you might think of using this service for?
Thank you and please let us know what you think!
(NOTE: We currently do not support smartphones or tablets)
- First you need to have a Helium Console account. Create one at https://console.helium.com/dashboard
- Once you're logged in, you will want to create a new device, click on 'Devices' then on the right side, click 'new device'
- Give your device a name, and click okay.
- Next you'll want to get your APPEUI, DEVEUI, and APPKEY values in the correct format. Click on the device you just created
- Next, you'll want get your keys in the correct format, click on the arrows next to the keys to change the format to least significant bit (lsb) or most significant bit (msb). You'll want both the APPEUI and DEVEUI in lsb format, and the APP KEY in msb format
- Now we're ready to request a remote session using Hardshare:
- Click THIS LINK to request a session.
- If there are no boards available, please wait a few minutes and refresh the page. We are currently limited by the number of devices available.
- (If you are unable to get an instance, please reach out to [email protected])
- When you have a remote session, you'll be presented with a screen showing an editor on the left, a 'terminal' on the right, and 2 buttons of 'build' and 'flash'. Now you're ready to input your fresh device keys.
- In the Helium Console, copy the app eui key in the LSB format
- Paste that key in between the brackets where it says APPEUI
- Next, copy the DEVEUI key in the LSB format from the Helium Console, and paste that value betwen the brackets marked DEVEUI in the sample code
- Now, copy the APPKEY key in the MSB format from the Helium Console, and paste that value betwen the brackets marked APPKEY in the sample code
- If you'd like to check your code for compile errors, you can do so by clicking the 'build' button
- The results of the build will be displayed on the panel to the right of the editor. If your build says success you’re ready to flash your code onto the board.
- When you click the 'flash' button, your code will compile and then be deployed to the board. The results of the deployment will show up on the panel to the right
- If you use the sample code provided and you input your keys correctly, after a few moments you will begin to see data come from this within the Helium Console.
- You can now set up your backend services like AWS IOT or Helium Cargo as a way to store the data that you were transmitting over the network. Here is a great video on how to get started with AWS IOT
- You can also modify the code in the editor to make changes to the data that you want to transmit.
- Initially these device sessions will be limited to 15 minutes. If you would like a longer duration of time, please reach out to [email protected]
- ...
- PROFIT
First, thank you for taking the time to try this out! We'd LOVE to hear your thoughts, what made sense, what didn't, or anything about your experience you'd like to share. Here are the following questions we're most interested in:
- Have you used LoRaWAN devices or the Helium Network Before?
- What are you initial thoughts on the service?
- Did this make it easier for you to get started with LoRaWAN and helium?
- Is there anything you might think of using this service for?
Please send your response to [email protected] and we'll be in touch
Now that you're gotten this far, I'd like to share how we think of this project, if any of these reasonate, let's talk.
- Give new users of hardware platforms real experience with the device without requiring it to be in their possession.
- Effective, distributed, and remote training opportunities on real devices which are always in a known state (no more device setup during training!)
- Application developers can quickly evaluate hardware platforms
- Application developers can quickly evaluate sensors
- Have the ability to take code that might have worked in a simulator and run it on a physical device
- Co-operatively debug code running on an embedded device (disambiguate hardware, software, and firmware issues)
- Integrate Continuous Integration processes with on demand physical devices