Waka Waka is built on the idea to build a standalone device for messaging on long distances in hard to get areas like mountains, forests etcetera. TIt is not always possible or needed to establish voice communication so it is mainly text-only communication and has delivery acknowledgement functionality.
We also aim to create and use state of the art technologies like crypto features of our target platform (i.MX RT1010). All messages are transferred in an encrypted state(AES) over the air and no personal data is exposed.
Main i.MX RT1010 hardware features used in application:
- SNVS (secure timer)
- DCP (hardware crypto) - work in progress
We use SPI display and touch(resistive) sensor for user interaction due to lack of pins for 8080 display bus connection.
You do need basic soldering skills to connect Lora board to IMXRT1010 board.
We have tried to connect everything using ribbon cables but it will be unreliable and wond last long. Our first attempt was using ribbon cables:
So we have decided to use Prototype Shield Mini Breadboard for Arduino to make prototype prettier and more reliable.
All peripherals are connected to IMRT1010-EVK via breadboard shield using follwing pinout:
NSS -> J57
SCK -> J57
MOSI -> J57
MISO -> J57
3.3V -> J60
GRND -> J60
CS -> J57
SCK -> J57
SDI(MOSI) -> J57
SDO(MISO) -> J57
VCC(5V) -> J60
LED -> J60
DCX -> J26 J57
REST -> J26 J57
GRND -> J60
T_CS -> J57
T_SCK -> J57
T_DIN(MOSI) -> J57
T_DO(MISO) -> J57
T_IRQ -> J57 (via 1 kOhm resistor)
We used wrapping wire to connect all pins together.
It looks little bit rough but it is reliable type of connection and it lasts. We have plans to print our own shiled or even board in future :)
Then connect IMRT1010-EVK and shield.
Connect LCD display module to the shield
Install MCU Expresso using tutorial.
Import Git repository to MCU Expresso.
Clone Waka Waka repository
Go back to developer console
Connect first assembled device to PC with MCU Expresso.
After firmware is loaded to the device press F8. If all goes all well you'll see following
Check MCU Expresso console
If you see Radio initialized Viola! you have fully working Waka Waka. If you see message Radio initialization failed, this means that something wrong with wiring. Check LoRa module connections.
Connect second device and load firmware to it using Debug.
Waka Waka supports device naming. Initially all device names are called Device1. You can change names for your devices in source/waka_conf.h
Waka Waka supports hardware configuration like touch screen position and invertion which also can be adjusted in source/waka_conf.h
3-Clause BSD License
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.