Prop is King
DigitalBob
Posts: 1,513
in Propeller 1
I have most of the devices out there. Rasberry Pi ( Linux platform ) , Arduino , micro chip pickit3 , basic stamp2, sx and X-code (Apple) The rasberry used to be a mission to get loaded. You had to download noobs, rasbiam on a SD card then set- up your lan etc. I like the Basic stamp and Propeller. Just download the prop tool or stamp and your up and running with some examples. The stamp Basic is fun and easy to use.
Comments
The Pi has always been dead easy to use. Download an image, blow it to SD, boot Pi, it connects to your LAN, job done. Mind you it always worked without a LAN connection as well.
The Prop was troublesome, originally no way to program it without installing Windows first. Which one does not want to do.
Luckily there were enthusiasts coming to the rescue, putting a lot of effort into creating, PROPASM, HomeSpun, BST, Catalina, prop-gcc, SimpleIDE, Propeller IDE, the various BASICs and Forths and a ton of stuff I have probably forgotten.
A big thank you to everybody!
We already run SimpleIDE and Propeller IDE on the Raspberry Pi and program Props from there.
You are right. Prop and Pi are very different animals for different purposes. I believe there is scope for them to work together in some applications, each offering the strengths they have.
You really need to get over this anti-Windows rant. MS has enabled many of us that don't have your expertise to actually get the job done and bring a product to market. Really is becoming tiresome to this forum reader.
That was no kind of "rant". That was a very short, refrained, comment in passing, just an aside. Hardly noticeable.
I'm very glad to see that Windows (or Mac or whatever) has allowed many people to work magic with the Propeller and everywhere else. I'm certainly not saying tools should not be usable there.
However I do have an opinion about the dependency of things on a single source of supply which I express now and then. I believe such opinions are allowed here.
It's pretty harmless isn't it? Not like I was advocating strangling kittens or something shockingly objectionable.
I won't be getting over this particular issue, it has caused many problems over the years and continues to do so.
Yet you have no problem using a single source chip from a company that is a tiny fraction of the size of MS?
If at some point you need a better understanding of, say, Fourier transforms...Heater did a tutorial.
He is one of some very smart people here on the forum.
1. It provides a deterministic solution that multi-tasking OSes challenge with extra issues and often interfer with.
2. Configuration and programing doesn't require learning a whole OS.
Amongst microcontrollers without an OS, the Propeller is a compact, direct, and simple solution. Using a Linux solution from any source in its place when not needed is just additional complexity.
You don't require mangement of Linux, as one does with Raspberry Pi.
You don't require mangement of C++, as one does with an Arduino solution.
Just a minimal effort to install and IDE in your OS of choice, and get to the task you desire.
Linux is educationally useful and industrially useful. But Parallax does have to survive by sales, and much of the world is still bumping along in Windows.
The size of the company does not protect you against obsolescence. Had you designed around Intel's 432 or i860 chips your investment would be have been lost. Chips disappear all the time. Luckily the abstraction of software eases the pain, just rebuild your code for a different chip/architecture with a bit of porting work perhaps. Been there, done that, many times.
Down at the low levels of micro-controllers we have a bit of a problem. MCU's are generally single source items. You use Propeller, PIC or AVR or XMOS or whatever. Generally it's not trivial to move the code you create for one of them to another, especially if it relies on unique features of the device you chose.
As much as we might like to use MCU's with multiple vendor support it's just not possible.
Given Parallax's track record with the STAMPs I am prepared to trust them to keep the Prop available well into the future. As much, or more so than Microchip, ATMEL or XMOS etc. And therefore prepared to invest time in developing for the Propeller.
Which brings us back to the dev tools. Closed source, single platform, dev tools dictate the operating system you must use which in turn dictates the hardware you can use to run them on. All the expense, fuss and bother we could do with out.
As such I'm over the moon that Parallax belatedly embraced open source and cross platform dev tool support.
Thank you for the kind words.
For sure there are many on this forum smarter than me. I learn from them. It's better no one asks me any deep questions about the Fast Fourier transform. It took me forever to get the little understanding of it I have.
Off topic, I know, but go read the book at http://www.dspguide.com. That should help.
That's reasonable as one has to contain the scope of a book and such maths is presented in many other books.
Even if you have a grasp of complex numbers from school days it's still a struggle.
I have the, perhaps crazy, idea that is possible to explain how the FFT works without ever frightening people putting them off by mentioning calculus or complex numbers or i. Just using the idea that we have a number type that comes in two parts [a, b] with some special rules for adding and multiplying such quantities. We are going to use that number type to represent out input signal samples and the sines and cosines of the frequencies we are testing for.
I have yet to arrive at a good way to present this approach
From a teaching standpoint, I have strong doubts about trying to work around them rather than just seeking out a better presentation in any actual application.
Their use in Madgwick is a specific special case. So once the special case has an application, it becomes quite clear.
Real applications provide the motivation to work through all the details. FFT means nothing to me without a useful application. The same goes for Madgwick.
To fully understand the FFT one should first acquaint themselves with the following:
- Fourier Series
- Nyquist Sampling Theorem
- Discrete Fourier Transform (DFT)
- Euler's Formula
Without a basic understanding of each of these subjects it's hard to understand exactly what the FFT does and how it works.
It's actually a fast read. Don't be tempted to skip sections you think you already know, though. The way he explains the simple stuff primes your brain for understanding the hard stuff.
Complex is a + ib
Where a and b are real.
And i * i = -1
Quaternion is a + bi + cj + dk
Where a, b, c and d are real numbers.
And i * i = j * j = k * k = i * j * k = -1
Of course if we set c and d to zero the quaternion reduces to a complex.
A complex number can represent a point in a two dimensional plane. A quaternion can represent a point in three dimensional space. Hence the usefulness in calculating the orientation of a quadcopter.
That's all I know. Let's not confuse the issue.
I'm totally with you on the prerequisites for understanding FFT.
Except I have a feeling it can be explained without mentioning complex or Euler or e or PI even.
If a value is defined as the number pair [a, b] then an addition of two such values is defined as:
[a, b] + [c, d] = [a + c, b + d]
Multiplication is defined as:
[a, b] * [c, d] = [ac - bd, bc + ad]
These given as definitions. To be accepted no questions asked. In much the same way you might ask someone to accept Euler's identity without proof.
It can then be demonstrated that using such rules gives rise to multiplication causing rotation of a point on a 2d plane around the origin.
Ergo it should be possible to explain how the FFT does it's magic without any intimidating looking maths, only simple algebra.
ARMs are binary compatible within sub-groups only, but are also multi-sourced, tho not so well in the compatible footprints area.
That leaves peripheral code as the only porting issue, and maybe a PCB re-spin if the package choice changes.
Thank goodness for ARM. Of course by the time we get to that level of device most of the code is on C and it starts to not matter about binary compatible. As you say, the peripheral code will probably need tweaking so your application needs recompiling anyway. In this way I have moved products around PowerPC, ARM and MIPs processors.
Then I looked at the explanation quoted above.
Sigh...I'll leave the room now.
The new Silabs EFM8LB1 & EFM8BB3 are examples of what the 8051 has morphed into since 1990.
This gives 12 or 14b ADC and 12b DACS and fast i2c slave, as well as UART/SPI/PWM, from under $1
If I pop over to Digikey and look for 2-4 chan 12b DACs, they start at well above the MCU price. - the 50/72 MIP 8051 essentially comes for free....
( that is DAC alone, not even including ADC & Flash etc, 14b ADCs with 4+ channels start over $5/1k )
That means you do not need to 'go back to 8 bits' - the main CPU you use can still be Prop/ARM/RaspPi/PIC32 etc, but the connected peripheral choices have quietly gotten cheaper and smarter.
++++++++
I went to bed last night wondering if fft on the Propeller might be used for voice identity recognition. After all, don't submarines use fft sonar data to identify the ships and boats nearby by an fft sonar signature?
If so, it would be a useful application to restrict voice command inputs to one person.
The Propeller would have a cog in a standby loop waiting for an audio input sample that is loud enough and long enough to analyize. This might be a name given to your Propeller. If the fft profile is appropriate, it would then say "Hello, sir" and then listen to a series of auto inputs and perform the related tasks. Another key word or phrase - such as "That's all" - would put it back into "awaiting recognition mode".
If someone else attempts to call your computer by name, it simply would not reply. The fft would provide security.
I always like to have a picture in mind. Can hardly understand anything if I can't get a picture of what it is doing into my head.
For example. The inverse square law. I = S / 4πr² Fine, means nothing without the picture of the geometry behind it.
http://www.adafruit.com/products/2885
But, for me, they serve two different purposes. For one, you have the headache of managing a full-blown computer. Updates, patches, performance issues, threading, etc. Not to mention the insanely complicated/expensive process of creating your own kernel, graphic drivers, etc. for that platform.
Much easier to just slap some "kernel of the week" on it and use it for a purpose like MAME emulation or robot brains.
I'm going to buy about 10 of those when they are available. Just because they are so cheap. And it's for a good charity.
But, at the end of the day, I am MUCH more excited about building computers based off 6502's and Propellers. :-)