Updated container design that facilitates the configuration of sik radios for multipoint
See more about GRADYS »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Firmware for SiLabs Si1000 - Si102x/3x ISM radios
SiK is a collection of firmware and tools for radios based on the cheap, versatile SiLabs Si1000 SoC.
Currently, it supports the following boards:
- HopeRF HM-TRP
- HopeRF RF50-DEMO
- RFDesign RFD900a
- RFDesign RFD900u
- RFDesign RFD900p
Adding support for additional boards should not be difficult.
Currently the firmware components include:
- A bootloader with support for firmware upgrades over the serial interface.
- Radio firmware with support for parsing AT commands, storing parameters and FHSS/TDM functionality
See the user documentation above for a list of current firmware features
The AT commands, which stand for "Attention" commands, are a set of instructions used for controlling and communicating with various devices, particularly communication modules such as GSM, GPRS, and other modems. These commands are sent to the device through a communication interface, typically serial communication. Here are new commands used for multipoint firmware:
MUST be a unique ID on the network, otherwise cross talk will occur Base ID is defined by setting to 0, this is the node that keeps the network in sync with all other nodes. When setting the the NODEID to the base (ie 0) it will always have link to it's self thus link will never be lost.
This is where all the serial data recived on this node should be sent to. For example, to send all data to the base node only set this to 0. DEFAULT is 65535 which is broadcast to all nodes.
Sync Any should be used sparingly, this allows any node to sync from any node in the network not just the base. By allowing many nodes to sync from each other they could drift away from the main sync channel, thus efectivly becoming a diffrent NETID.
This is the number of nodes in the nework, so if you have 3 nodes (Id's 0, 1, 2) you have a network of 3. In the next revision of the software this could disapear and become auto detect. The easiest way to determin the correct node count for the network is - max(NODEID)+1
All RT's are sent to every node by default, to send them to one node only folow the command with a comma and node id. Example getting the parameter list from base node would be 'RTI5,0'
To see all other available AT commands, see the Documentation
Here is the official radio SiK Repository
- At least two Si1000 - Si102x/3x - based radio devices (just one radio by itself is not very useful).
- A FTDI adapter
Building a Docker image is a crucial step in the process of containerizing and deploying applications. This process involves creating a customized, self-contained environment for an application to ensure consistency and reproducibility across different environments.
- Clone the repo
git clone https://github.com/Project-GrADyS/SiK-multipoint
- In the folder, run
docker build -t multisik-docker .
- With the device connected, run the command below, where
<container_name>
will be the name of your container:docker run -t -i --device=/dev/ttyUSB0 --name <container_name> multisik-docker bash
obs: to check your container name, run docker -ps -a
- With SiK radio and ftdi connected to the computer, run the command below to start the container
docker start <container_name>
- if the container is already running and the terminal is not appearing:
docker exec -it <container_name> /bin/bash
- Enter in folder firmware
cd /usr/src/app/MultiSiK/Firmware
- changing the parameters before installation
nano /usr/src/app/MultiSiK/Firmware/radio/parameters.c
- compiling .ihx images
make install
- uploading firmware: choose the .ihx of your radio model in the obj folder and run the uploader program as in the hm_trp example below:
/usr/src/app/MultiSiK/Firmware/tools/uploader.py --resetparams --port /dev/ttyUSB0 /usr/src/app/MultiSiK/Firmware/obj/hm_trp/radio~hm_trp/radio~hm_trp.ihx
- some tests with flight examples can be found in this spreadsheet:
For more examples, please refer to the Documentation
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Johan Rocha - johanmarcos50@gmail.com