Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faraday Firmware Trades #3

Open
6 tasks done
kb1lqc opened this issue Feb 1, 2018 · 3 comments
Open
6 tasks done

Faraday Firmware Trades #3

kb1lqc opened this issue Feb 1, 2018 · 3 comments
Assignees

Comments

@kb1lqc
Copy link
Member

kb1lqc commented Feb 1, 2018

Possible Firmware Options

@kb1lqc
Copy link
Member Author

kb1lqc commented Feb 1, 2018

RIOT-OS

RIOT-OS failed to work out because we could not program a radio easily in Linux where RIOT-OS is compiled. It's possible to compile in Linux and program on Windows but this is a slow development process and we still need to develop radio control firmware. Solutions for Linux would be to write a new TI BSL in C. Python libraries with existing libFTDI libraries has a bug that prevents proper use of CBUS lines when programming. We unfortunately use CBUS lines to toggle BSL mode on the CC430.

SimpliciTI

Texas Instruments licensing is a bit weird and it's unclear that we actually can easily use this for Faraday as an open source project even in TI's source code is available. RF protocol is possibly proprietary however it is openly specified. We would still need to command radio from scratch. It's unclear if a full IP packet can easily be sent over the protocol. A lot of the hard work is done for us however.

TI-RTOS

To our understanding it's pretty big but could work. There is potentially a compile code size limitation workaround using GNU compilers and even then any programming needs to be done in Windows to get debugging/JTAG installation.

Contiki

This is a whole project in itself. It appears to not fit on the CC430 and is not really ported to it.

FreeRTOS

This could work though Google searches show that one barely fits FreeRTOS onto the CC430 with most functionality disabled. Then we still need to implement the radio.

Bare Metal

This is looking nice again. Bluntly, we are limited by the CC430 and it's becoming an issue. We in the end need a extremely simple way of passing bytes around over RF and connecting the radios to pass IP traffic. Achieve usefulness and possibly improve hardware to open up our ability to leverage an actual OS such as Linux. This figure hardware may not be backwards compatible but we don't know and can't stop ourselves from moving forward now.

@kb1lqc
Copy link
Member Author

kb1lqc commented Feb 1, 2018

Bare Metal Thoughts

If we want to implement a super simple peer to peer radio link with IP traffic then what would be the necessary work? The following items are questions we need to answer as well as known work we know we need to do.

Necessary Systems

  • What data comes in, bytes or packets?
  • How do the bytes/packets go out of the radio?
  • How are we placing callsigns in each packet?
  • How to setup radio for operating modes (configuration?)

Drivers

Where possible, use TI generated code here to speed up development

  • UART
  • Clocks
  • Radio Interface (infinite packet mode using packet hardware)
  • Power Amplifier/LNA Interface
  • SRAM
  • Configuration (hard-coded IP?)

@kb1lqc
Copy link
Member Author

kb1lqc commented Feb 1, 2018

Next up is @kb1lqd and myself clearly defining expected data interfaces in good documentation for the Faraday TUN adapter and the new firmware. The firmware will be simplified as much as possible to help us move fast and efficiently.

I wonder if we should consider including unit testing for the C code as well. This is one area I could help out with on the side once the TUN is defined as a client.

https://www.embeddedrelated.com/showarticle/558.php

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants