Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
If you are having a problem, please refer to the product documentation or check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.

Proposed Product for Flexradio or Third Party -- Expose Flexwire via Raspberry Pi

2»

Comments

  • IW7DMH, Enzo
    IW7DMH, Enzo Member ✭✭
    edited December 2016
    I agree 100%.  On the reliability aspect Arduino wins hand down.
  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    getRcvAnt() or getTXAnt() in the api or
    processing the raw status messages look for "rxant=" or "txant=".

    setRcvAnt(...) or setTXAnt(...);

    In the case of xpssdr, you could also directly bind the relevant property and process a change event. or just ask the Slice what it's rcvAnt and txAnt are, i.e. String txAnt = slc.getTXAnt();

    Again, any statement I may make about how something works is based on XPSLib or XPSSDR. Any similarity between how things work in xpslib and anybody elses software, published or not, if purely coincidental.
  • Larry Loen  WO7R
    Larry Loen WO7R Member ✭✭
    edited February 2016
    I'm struggling a little to understand these snippets.  One is presumably some C++ enablement code to suggest how it works "underneath".  The other, I presume, is the actual Java code that would monitor?

    As discussed below, I think I need to know these basic things:

    1.  Frequency of at least the slice owning the transmitter.
    2.  Which slice does, in fact, own it.
    3.  Which antennas (send and receive) are used by the slice(s).

    With that, I can do the kinds of external control I may someday wish or need to do.  (Right now, I'm getting by without it, but I have more gear coming).
  • Larry Loen  WO7R
    Larry Loen WO7R Member ✭✭
    edited February 2016
    I'm interested.  There is still "flash" memory on the Arduino Due.  Don't see how it is any more or less vulnerable than an SDR card.

    That said, the card is intriguing.   But there are a lot more Arduino boards out there, with all kinds of mix and match.  I have also looked at the Yun, which runs OpenWRT, directly connects to the internet without a "shield" for about 40 bucks,  and would seem to be an attractive Arduino for this sort of thing.

    In my case, the application would be strictly indoors, so there's that piece of it.

  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    Larry, that was all java code. I don't believe I've done C++ in 15 years. Well, the radio object owns the slices but they are associated with whatever panadapter it is resident on. The information to populate the rx and tx values are set when parsing slice status information sent from the radio. The value of those attributes is in String form as in "ant1" etc. In the first set of snippets the point I was demonstrating was the totally asynchronous nature of events. Which slice owns the transmitter is determined by the value of 'tx=' in the status messages or the value of Boolean tx = slice.get transmit(); What I was trying to do was give you the accessors for the attributes along with the programmatic method of hooking async events to methods vs what name value pairing to look for in the status message.
  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    Ah, I get it now. No -> is not a c++ pointer dereference, it is a Java lambda expression. Amount other benefits it is a highly efecient anonymous class invocation.
  • Larry Loen  WO7R
    Larry Loen WO7R Member ✭✭
    edited February 2016
    Man, I gotta keep up.  You'd never know it, but I programmed in Java, professionally, from 1.1 onwards.
  • James Whiteway
    edited February 2016
    One question Walt, (and please don't take it the wrong way) you keep posting about how to do things in XPSLib or XPSDR, yet, neither is available. So, how does that help answer questions someone has trying to work with either Flexlib or the Ethernet api's? I can only guess that the code is similar enough that you feel it gives some indication of discovery and event handling.
    james
    WD5GWY

  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    Java 1.x was a toy compared to Java 8 today. Java 5 was a major improvement over 1.4 as was Java 6 over Java 5 etc up through Java 8. Java 9 is in the works now.
  • Steve - KD8QWT
    edited February 2016
    It may be flash based memory in both, but their usage of that memory is very different.  The Arduino uses it at boot time to read the code that was uploaded to it.  There are libraries that allow for the reading/writing of memory blocks for data storage, but for the most part the memory isn't written to again.  I suppose it's possible to have memory corruption if the memory is being written to when the power goes out.  More often, memory issues are related to logic and not hardware.  For persistent storage I just use the SD card on the ethernet shield.

    Linux on the other hand does many reads and writes to the SD card.  The frequency of the writes has been reduced as more flash based storage is being used in recent years.  Regardless of the storage, file system corruption can occur if the system is powered off before the files systems unmount.  This is where things can get a bit more complicated, depending on how "hands off" the pi needs to be.  If it's attached to a switch or antenna tuner on the tower, then you'll have to do everything you can to make sure that regardless of what happens to the power, it must go through a controlled shutdown before allowing the power to go off.  If it's sitting on your desk, then worst case you plug a monitor and keyboard into it and try to fix the file system.  Perhaps make regular image copies of the SD card for when it won't boot.  There are other things that can be done, such as read only file systems and NFS storage.  At this point it has already become far more complicated than a simple Arduino.

    For a true "****/dumb box" you need something that is simple and works when you power it on.  As wonderful as the pi is (I have several), it doesn't quite fit the "dumb box" requirement that well.  On the other hand, if it's just something to play around with and it doesn't really need to work all the time, then the pi would be fine.



  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    That's a good writeup, thanks Steve. Linux knows how to understand UPS state and auto initiate a controlled shutdown. There is a way to daisy chain Linux boxes together such that the unit connected to the UPS can act as a repeater to others. At the moment I've forgotten how, thank goodness for goggle. I wonder what would happen if the SD were formatted as a journalled drive, like ext4. Now if you lost power during a system update, all bets are off, just as with Windows. But the system itself is r/o so it shouldn't prevent a reboot...right?
  • Steve - KD8QWT
    edited February 2016
    Sure, ext4 would help, but even a journaled fs isn't immune to "bad things". 

    There is software that interfaces to UPS systems that will initiate an OS shutdown.  I've even seen pi specific battery "UPSs", which are little more than a battery and a charge controller.  Things can be done to make the pi more reliable and trouble free, but in the end it's still a computer running an operating system, with all the complexities therein. 

    For my magnetic loop controller and satellite rotator controller, I'd rather not have to go out in the cold and climb something because a power outage took out my pi.  I'm also far too cheap to have some kind of UPS or battery backup on it.  I'd rather plug it in and forget about it and everyone once in a while marvel at how it's still working.
  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    Fair question James. I was admonished for discussing how flexlib does things. So if I couch answers as how it works in XPSLib or XPSSDR I sound less like I am speaking for, or as, FRS engineering, which I am not. I have never portrayed myself as having Insider information or being an insider. So I am attempting to contribute to the community without offending anyone.

    I believe Stu's code, therefore dog park, use Apple's in app purchasing. Safe assumption as stu has said that. I dont want to speak authortatively abt others code. Apple knows who you are when you sign into the app store. Consequently the app knows who you are as well. There is a facility Google provided an API for doing that in Android. There is no facility to do that elsewhere. Stu's comment on the future of subscription software I consider spot on while I do not mind supporting XPSSDR, I do mind doing it for free. XPSLib will be available as binary. When I've plumbed in licensing into the GUI, it'll be available as well. And this conversation revolves around a platform FRS has no product solution for so, hopefully, I am not stealing anyone's thunder.
  • Peter K1PGV
    Peter K1PGV Member ✭✭✭
    edited December 2016
    Windows on the RPI2 can boot and run with the disk set completely to read only. Any temporary writes can be saved in me rot and then discarded on boot. Perfect for a "dumb box"... Peter K1PGV
  • Steve - KD8QWT
    edited February 2016
    Does FlexLib work on Windows 10 IoT now?
  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    I found something that might interest you Steve.
    http://www.zdnet.com/article/raspberry-pi-extending-the-life-of-the-sd-card/

    I also found several references to corruption caused by dropping, overclocking, under rated power supplies and cheap sd cards.
    The primary link:
    https://www.reddit.com/r/raspberry_pi/comments/3how8w/pi_keeps_corrupting_sd_cards/

  • Steve - KD8QWT
    edited February 2016
    Thanks Walt.  Excellent stuff.  I've implemented some of these.  I've never actually experienced fs corruption, but I tend to not cheap out on the SD cards.  I run an APRS igate with a TNC-pi.  The logs are written to my NAS via NFS.  It has been pretty stable, but still, it's an OS I have to periodically look at and update.  It's an excellent use of a pi, although now that I'm thinking about it, an Arduino Due with the TNC would work quite well.  I might add that to the list of projects.  I'm now wondering if the Due can handle the audio processing directly.....

    Junk power supplies is probably one of the biggest issues with the pi.  I ran across a POS supply when I setup Kodi on the pi2.  Everything worked but video was jumpy.  A new 2A supply fixed it.  It's not always obvious that the power supply is insufficient. 

    These linux SBCs are very slick and I love playing around with them.  For something very specific, like interfacing an old serial port based device to ethernet control, I'd prefer a microcontroller like the Arduino Due.  It would be interesting to have a base sketch using the Flex ethernet APIs that can be used as a starting point for antenna switches and such.  With the Arduino, there's no need to deal with issues like having the right version of libusb.

    Now I'm waiting for the Pine64

  • Peter K1PGV
    Peter K1PGV Member ✭✭✭
    edited December 2016
    Steve, KD8QWT, asked: >Does FlexLib work on Windows 10 IoT now? I've been told that it does, by the folks who own Windows IoT. I have not, however, personally verified this. I've had a project on my plate to play with this for better than a year... I've got all the hardware and software, but priorities have conspired against my ability to make this very simple project happen. Sigh... life gets in the way sometimes. Peter K1PGV
  • Walt - KZ1F
    Walt - KZ1F Member ✭✭
    edited November 2016
    @Steve, Pine64 does look impressive but I am not sure it buys much...but at $15, I am willing to not look the gift horse in the mouth!

    I think I'd do the same, mount iSCSI storage on my NAS, which is where I keep my virtual images for my cloud and main dev environment.

    What would you recommend for a solid power supply and SD choice?
  • Steve - KD8QWT
    edited February 2016
    My NAS is an OpenIndiana server with 16GB RAM and running 6 1TB drives as zfs radiz2.  I have 2 32GB RAM servers running ESX and a dozen or so server images.  One of these days I'll replace the drives with 2TB ones when they get closer to the price I paid for the 1TB drives.  Mounting an NFS drive on the pi is almost trivial.

    For SD cards I stick to name brands.  So far I've only used Sandisk Ultra MicroSDHC Class 10 Cards.  No issues as of yet.  The last one I got was 8GB.

    For my APRS igate, I chose to hang it of my HF power supply system.  It consists of a Astron RS-35M with a RIGrunner 4007U and a Super PWRgate PG40S.  The 4007U has a USB port which I run the pi off of.  I have a couple 12V UPS batteries I will soon replace with a single larger battery.  The igate runs for several hours after a power failure.  The generator is usually up long before before the batteries run out.

    I am trying this one I got on Amazon for my Kodi pi.  I've only had it for a couple weeks.  It still works, so that a plus.  The little cubes you get with the expensive cell phones are generally junk, at least most of mine have been.  I previously ran the igate off a supposed 2A supply that came with my phone, but it was getting way too warm for my liking.  The market is flooded with USB power supplies that are anywhere from **** to junk, with a few good ones sprinkled about.  I haven't bought and burned through enough of them to know which ones are good. 

    The Arduino requires a bit less current.  I usually run it with the power supply I bought with it, but in the case of my satellite rotator, I have a 12-24V DC motor controller that also powers the Arduino.  I have a few buck converters scattered around that I use off the RIGrunner.  I started using that after I etched some lines in my desk.
  • Steve - KD8QWT
    edited February 2016
    @Peter, yes, life always takes priority.  Lately work and wife projects have taken priority.  I just finished restoring an old commercial chocolate tempering machine for my wife, so back to fun stuff again.
  • zoro dao
    zoro dao Member
    edited June 2020
    Thank you for sharing this article.<a href="">https://1680380.com/">; 彩票</a> It is really useful,<a href="">https://1680380.com/view/fcssq/index.html">; 福彩双色球</a> hope you can share more other articles.<a href="" title="Link: https://1680380.com/view/xingyft/pk10kai.html">">https://1680380.com/view/xingyft/pk10kai.html">; 幸运飞艇</a>

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.