Interesting parts, and I think a P2 could support a sea of those, using the 100uA current mode plus ADC mode ?
That would need the 100uA source to be temperature characterized, and matching spec'd across the P2, as a precision resistor could be used, or a local thermistor could track P2 die..
A demo that put one on every pin would be compelling, as no other MCU can do that.
Start at a 20,000 ft point of view-
What is the objective?
How to get the broadest intro/exposure on a new device?
Impress the engineers with a better slicer and dicer?
An evolved current day heir to the Arduino?
An electronic Swiss jackknife?
A world class accomplishment, “see what I did”?
A easy to use solution to n- degree CNC ( via libraries)?
An Arduino like intro into machine learning/neural networks(libraries)?
Whatever it is to be, it must be easy enough to work with to overcome the barrier to investing time and learning into an other new device.(microcontroller).
I see the P2 as a black box that can do new things, for me. Hopefully with an Arduino level of ease with an environment for getting my feet wet.
Are there phase to getting the P2 introduced?
There absolutely must be libraries at the get-go.
Communication interfaces, I2c, SPI.. etc
PWM
Drivers for stepper motors , memory
The P2 has to do something in my first trying it. It must offer me some reason to want to invest more time into knowing it better.
I am a hobbyist that has at least 10 P1 boards, and now tends to do thing with the Arduino Pro Mini. Why? Libraries, and ease) of use(SW and HW.
I have looked forward and followed the P2 forums for years.. Mainly looking for what a better P1 might look like. I have been overwhelmed by the development techie exchanges. I fear that this focus on impressing the engineering world with what the P2 can do will be overshadowing the necessary image of that first impression to the desired type of market recognition and acceptance.
Once the P2 is pegged as a xyz it will likely not get a second chance to modify that first impression image.
The name is very important. It must have a meaningful favorable ring to it. I have to think that the word “microcontroller” is part of it.
The “Propeller” handle did not attract me and for several years it put me off; only by reading an article in “Nuts and Volts” did I become aware of what it offered.
To me as a user of a new device I do not want to go through reinventing the wheel ; this means libraries, i.e. solutions to my needs that are readily available..
From my marketing classes of decades ago, “ you are selling the hole NOT the drill:”.
I have still yet to see any microcontroller do the above (without a hardware hack). I suppose there are ones that can, but I am just scratching the surface of the full potential of the P2. Only using 3 cogs and the code is not optimized. At some point I will build a frame buffer. This is done just using byte copies from the SD to the mailbox for the display. I haven't had time to refactor the code. This was all done in fastspin for the glue, and PASM for the hardware interfaces.
That FMV demo could be more impressive with the 320x480 Raspberry Pi screens that clock 125Mhz. That kind of high-speed SPI sounds like the P2's bread and butter. The screens are like $25 too. The plebian version is 16Mhz and ugly slow.
Think big! Or rather, think small!
Back-in-the-day(tm) they(tm) decompressed low-res (160x120 ballpark), yet recognizable videos streaming from single speed CD-ROMs (150 Kbytes per second on a good day) on CPUs as low-end as 12.5 MHz 68000s. The big codec back then was Cinepack, optimized for decompression on slow integer CPUs.
Quick calculations and guesses tell me that P2 (potentially with the help of some external RAM) should be able to handle similiarly-specced video decompression at 720p resolution (or 480p with better framerate/less artifacts).
Start at a 20,000 ft point of view-
What is the objective?
How to get the broadest intro/exposure on a new device?
Impress the engineers with a better slicer and dicer?
An evolved current day heir to the Arduino?
An electronic Swiss jackknife?
A world class accomplishment, “see what I did”?
A easy to use solution to n- degree CNC ( via libraries)?
An Arduino like intro into machine learning/neural networks(libraries)?
Whatever it is to be, it must be easy enough to work with to overcome the barrier to investing time and learning into an other new device.(microcontroller).
I see the P2 as a black box that can do new things, for me. Hopefully with an Arduino level of ease with an environment for getting my feet wet.
Are there phase to getting the P2 introduced?
There absolutely must be libraries at the get-go.
Communication interfaces, I2c, SPI.. etc
PWM
Drivers for stepper motors , memory
The P2 has to do something in my first trying it. It must offer me some reason to want to invest more time into knowing it better.
I am a hobbyist that has at least 10 P1 boards, and now tends to do thing with the Arduino Pro Mini. Why? Libraries, and ease) of use(SW and HW.
I have looked forward and followed the P2 forums for years.. Mainly looking for what a better P1 might look like. I have been overwhelmed by the development techie exchanges. I fear that this focus on impressing the engineering world with what the P2 can do will be overshadowing the necessary image of that first impression to the desired type of market recognition and acceptance.
Once the P2 is pegged as a xyz it will likely not get a second chance to modify that first impression image.
The name is very important. It must have a meaningful favorable ring to it. I have to think that the word “microcontroller” is part of it.
The “Propeller” handle did not attract me and for several years it put me off; only by reading an article in “Nuts and Volts” did I become aware of what it offered.
To me as a user of a new device I do not want to go through reinventing the wheel ; this means libraries, i.e. solutions to my needs that are readily available..
From my marketing classes of decades ago, “ you are selling the hole NOT the drill:”.
Hi, MByron,
I could have written a very similar post.
Anfortunately Ken Gracey has decided, that the customers of P2 shall be inventors who make smaller volume products, for which the price of the hardware is not so important. (There is some post somewhere whith such statement.) This idea of customers corresponds to a price for the test board of P2, which excludes young people, students.
At the same time it takes a very long time to have solid documentation, which is a key point, if someone has to convince other people, that using a P2 for business would be a good idea. So at the moment the customers seem to be something like one-man-inventor firms, who can somehow risk to invest a lot of time.
At the same time there is no focus for the software:
Ken likes Python, which is very slow (200* vs C) and does not support the strength of multiple cores, so this does only make sense for education but cannot promote P2. Chip likes Spin, which forces you to use assembler and is a restricted special language of integers. (When I went to Arduino, for me it was no longer necesseary to use assembler, because of fast existing libraries and because C was fast enough for all my tasks. I had tried to use C with P1 but the memory was a restriction.)
There are several compilers for P2 which is very impressing and interesting, but it will slow down the development of libraries, because there is no focus. It seems to be very difficult and/or very much work to have gcc for P2, which is necessary for Arduino-Ide. So this will not become true without invest from Parallax, which will not happen because neither Chip nor Ken does like C. (For me personally, Peters Forth (and board) seems to be the most complete idea, but as Forth is very special, I don't think, that this can really promote P2 for many users. And it is not good, that it is no ANS-Forth, as far as I can see and it will change, because Peter is developping it further on.)
All together, what you and I would like to have, will at least need 3 more years.
=======================================================================
Regarding the original question about the demo and having in mind, that P2 is aimed at smaller volume professional use in a small firm, "inventors":
So the focus has to be in something, that can allmost not be done with a different controller for professionel use. At the very moment, I only see multiline serial communication. Perhaps some sort of high speed real time machine control that needs a big HDMI screen but only text display in parallel.
The reason we suppose the P2 will be used by small-run inventors is because it's relatively expensive at ~$10.00, compared to many other chips at $1.00. It is expensive because the die is HUGE at 8.7mm x 8.7mm. It takes that much silicon to make it as flexible as it is, so that development is potentially sped up by quite a bit. So, one buys a lot of silicon to save development time, which is most expensive for them, considering their product has a potential for maybe thousands, but not millions of units.
I'm ok with paying $1.25 for a 300MHz+ 32-bit RCU (Real-time). The fact that I don't have to pay any extra per core to have 8 of them packaged together with 512k hub RAM and 64 smart I/O is a bonus.
Did I mention that my 640x480x8 VGA movie demo with the bouncing 320x240 video inside it essentially runs in a single cog plus the VGA cog? The other cog is just used for audio at the same time. So there are 5 cogs still available and not hampered by what the other cogs are doing, and they could be bouncing scope and analyzer windows around the screen at the same time while it is generating signals while being controlled with waving hands via Chip's version of a freaky Theremin doohickey.
The reason we suppose the P2 will be used by small-run inventors is because
it's relatively expensive at ~$10.00, compared to many other chips at $1.00.
It takes that much silicon to make it as flexible as it is, so that development
is potentially sped up by quite a bit.
So demonstrate how flexible the P2 is, and how the P2 can speed up an original
project, by demonstrating projects on YouTube and share the libraries for projects
like cnc, robot machine learning, etc in short (~15 min) videos with many parts.
Instead of long Parallax video's or projects built around getting the related sales of
Parallax product.
I started watching youtube to supplement my need for more info. There is many
Youtube channels that have exhausted the easy subjects or are just demonstrating
basic electronics, or programming to keep their videos short.
But there is a shortage of good basic P1, P2 video for hobbiest and people that
are possibly looking for a better chip, without a steep learning curve (~inventors).
Especially video that explain the features of the chips, other than it has 8 cogs.
For example, I would enjoy a video or appnote on projects using P1 counter's
digital logic combinations.
Yes, many 2-3 minute YouTube videos about the P2 would be really good. We plan to do that, since YouTube is where most people go to find easily digestible information.
Chip,
what will be the starting library of objects be, that will facilitate the efforts of small-run inventors? can't these object be part of the "Demo" ?
I don't mind the necessity of programming in PASM, but with all the intricacies of the P2's sophisticated PASM instructions couldn't there intitially be some I2C, SPI, video and stepper motor drivers etc. objects that will be instructional on how and when to use the "new and better(different)" PASM commands. At the same time it would give a boost to those small-run inventors getting started.
The "wheel" needs to be invented only once by those best able to do it right.
From my forum observations programming in P2 PASM is easily an order of magnitude more demanding/challenging to learn then for the P1. It must be a significant factor for small-run inventors considering the P2 for the first time.
There must be more potential small-run inventors that are not forum techie participants than are forum techie participants. The intended/needed P2 market surely must be greater than the list of current forum participants.
Without help those considering the P2 will likely look to doing things as they are done with P1 PASM commands as found in the P1 object libraries.
It would be great if many people made videos about the P2, not just Parallax.
NoNo, you guys have to do that. Sure we provide things to show, but YOU have to show them off as PARALLAX. Same goes for @ersmith FlexGui and FastSpin.
You need to promote this as PARALLAX endorsed Software, @ersmith does a great job and should be quite visible on the Parallax P2 Promo Page.
Gosh we have all the goodies there. You need to let loose of Spin2 and say OK, good for now. Then go fishing with your kids a couple of days, forget everything about the interpreter, come home and start to program something completely different in a new language. First Verilog, then x86, now SPIN2.
Make a nicer Scope Example, this is a very cool thig to have. Try to work with @ozpropdev to integrate his debugger into PropTool.
Make some really simple objects for some SmartPin Modes to include into the PropTool Library.
PWM (read/write), I2C (host/slave), SPI (host/slave), QuadEncoder, something to makle GOERTZEL more understandable fore mere humans, some Spin object containing functions like polar2cartesisian(xx,yy)
Like @"Roy Eltham" mentioned, keep the basic language clean and put extensions into spin objects.
Chip,
what will be the starting library of objects be, that will facilitate the efforts of small-run inventors? can't these object be part of the "Demo" ?
I don't mind the necessity of programming in PASM, but with all the intricacies of the P2's sophisticated PASM instructions couldn't there intitially be some I2C, SPI, video and stepper motor drivers etc. objects that will be instructional on how and when to use the "new and better(different)" PASM commands. At the same time it would give a boost to those small-run inventors getting started.
The "wheel" needs to be invented only once by those best able to do it right.
From my forum observations programming in P2 PASM is easily an order of magnitude more demanding/challenging to learn then for the P1. It must be a significant factor for small-run inventors considering the P2 for the first time.
There must be more potential small-run inventors that are not forum techie participants than are forum techie participants. The intended/needed P2 market surely must be greater than the list of current forum participants.
Without help those considering the P2 will likely look to doing things as they are done with P1 PASM commands as found in the P1 object libraries.
All the things you mention will have objects made for them and, yes, there will be objects to demonstrate them. I don't have an exact list, but the things you listed are definitely a subset of what will be done.
It would be great if many people made videos about the P2, not just Parallax.
NoNo, you guys have to do that. Sure we provide things to show, but YOU have to show them off as PARALLAX. Same goes for @ersmith FlexGui and FastSpin.
You need to promote this as PARALLAX endorsed Software, @ersmith does a great job and should be quite visible on the Parallax P2 Promo Page.
Gosh we have all the goodies there. You need to let loose of Spin2 and say OK, good for now. Then go fishing with your kids a couple of days, forget everything about the interpreter, come home and start to program something completely different in a new language. First Verilog, then x86, now SPIN2.
Make a nicer Scope Example, this is a very cool thig to have. Try to work with @ozpropdev to integrate his debugger into PropTool.
Make some really simple objects for some SmartPin Modes to include into the PropTool Library.
PWM (read/write), I2C (host/slave), SPI (host/slave), QuadEncoder, something to makle GOERTZEL more understandable fore mere humans, some Spin object containing functions like polar2cartesisian(xx,yy)
Like @"Roy Eltham" mentioned, keep the basic language clean and put extensions into spin objects.
Mike
I agree, Mike. I've got the top..bottom pinfield syntax worked into Spin2 now, so that you can do things like PINTOGGLE[63..56]. It even compiles final constant values where possible. I just need to do the same for the bit-field and Spin2 will be done (again).
Yes, many 2-3 minute YouTube videos about the P2 would be really good. We plan to do that, since YouTube is where most people go to find easily digestible information.
2 to 3 minutes is a really short video, IMO Atmel/Microchip didn't do a very
good job with many of their short video's.
And a single step source level debugger with GUI is absolutely essential. I haven't seen an IDE without the last 20 years except for the Propeller Tool. I've used it anyway because everything else was so cool and I could put up with having to use an external tool for simulation. But newcomers could be convinced easier if a debugger was integrated.
But Arduino, the most popular platform doesn't. Although I do miss the debugger that SX Key had.
But we should take note of the things Arduino (and perhaps Raspberry Pi) does right. Such as:
Including ready to run examples with the IDE.
Including a useful amount of libraries with the IDE.
(If P2 libraries and examples are rapidly evolving, then perhaps an "update from github" option.)
Same pin assignments for all demos that it's possible for. So the user can go through and try all the examples.
The current practice of putting hex constants into programs needs to stop. Whether burying them in objects, or creating a nice header file, or both.
Maximize modularity and interchangeability when possible. I have personally spent a bit of time converting P1 programs from TV display to serial display. It should be as simple as changing the object. But I also had to change .Out() to .Char() or something. Likewise, switching between HDMI, VGA, and component should be easy. But the start function would likely need different parameters. Here are two potential ways to help:
OBJ
i2c : "Basic_I2C_Driver".Initialize(i2cSCL)
i2c.__start() : self.Initialize(i2cSCL) ' or what if we allow overloading like this
PUB go
i2c.START()
Compiler just substitutes START() for the calls specified in the OBJ section. And warns if START() is not called exactly once.
At the same time there is no focus for the software:
Ken likes Python, which is very slow (200* vs C) and does not support the strength of multiple cores, so this does only make sense for education but cannot promote P2. Chip likes Spin, which forces you to use assembler and is a restricted special language of integers. (When I went to Arduino, for me it was no longer necessary to use assembler, because of fast existing libraries and because C was fast enough for all my tasks. I had tried to use C with P1 but the memory was a restriction.)
There are several compilers for P2 which is very impressing and interesting, but it will slow down the development of libraries, because there is no focus. It seems to be very difficult and/or very much work to have gcc for P2, which is necessary for Arduino-Ide. So this will not become true without invest from Parallax, which will not happen because neither Chip nor Ken does like C. (For me personally, Peters Forth (and board) seems to be the most complete idea, but as Forth is very special, I don't think, that this can really promote P2 for many users. And it is not good, that it is no ANS-Forth, as far as I can see and it will change, because Peter is developing it further on.)
The speed could be remedied by Cython. It converts Python to C. Could fastspin compile the output from Cython? Seems unlikely. The output code needs to link to libpython. I'm curious to see if it's possible to use Cython and riscvp2 together for compiled python code. Yes, riscp2 is an "emulator" but the performance seems quite competitive other compilers that generate P2 instructions directly. I'm very much a speed snob.
I wonder how many projects use multiple application cores, compared to just using extra cores dedicated to interfaces, etc.
And a single step source level debugger with GUI is absolutely essential. I haven't seen an IDE without the last 20 years except for the Propeller Tool. I've used it anyway because everything else was so cool and I could put up with having to use an external tool for simulation. But newcomers could be convinced easier if a debugger was integrated.
But Arduino, the most popular platform doesn't. Although I do miss the debugger that SX Key had.
..
HW Debug is now somewhat fluid for Arduino.
The newest Arduino include an Atmel Debug Host MCU, so that now does include Debug, and of course all the small AVR eval boards, pretty much all include Atmel Debug Host MCU's.
I think most Debug Hosts include a Debug path, and a VCP UART link.
P2 debug would need to make use of the bootloader UART (FTDI or EFM8UB3)
This is an amazing product... A headphone set with accelerometers that wirelessly receives an electric guitar signal (also with accelerometers) and builds a whole sound stage with amps and effects of your choice that stays put while you move your head and guitar. You need to watch this video with headphones:
The P2 can do this kind of thing, easily. I (and Ahle, too) really want to make a 3D stereo mixer into which many synthesized or recorded audio tracks can be fed. The CORDIC makes all this simple, including having LOG and EXP for musical scales. I bet we could make some really interesting musical instruments that synthesize sounds through some Goertzel inputs as a human interface and then generates a whole virtual sound stage, maybe interacting with other P2-based virtual instruments.
The current practice of putting hex constants into programs needs to stop. Whether burying them in objects, or creating a nice header file, or both.
Not sure why you think this. Hex constants are much better at helping to visualize bit values than decimal constants.
It's quite easy to see that 0xff = b11111111 or that 0x00d0 = b0000000011010000, etc...
Whereas 255 = b11111111 or 208 = b0000000011010000, is NOT so easy to decipher (for me, at least).
This is an amazing product... A headphone set with accelerometers that wirelessly receives an electric guitar signal (also with accelerometers) and builds a whole sound stage with amps and effects of your choice that stays put while you move your head and guitar. You need to watch this video with headphones:
The P2 can do this kind of thing, easily. I (and Ahle, too) really want to make a 3D stereo mixer into which many synthesized or recorded audio tracks can be fed. The CORDIC makes all this simple, including having LOG and EXP for musical scales. I bet we could make some really interesting musical instruments that synthesize sounds through some Goertzel inputs as a human interface and then generates a whole virtual sound stage, maybe interacting with other P2-based virtual instruments.
Hi,
I am doing guitar electronics a few years now. One thing, that I had to learn: You need high resolution adc, more than 16bit. This is because the guitar signal is compressed during Distortion. So a 24bit adc, low noise, has to be used.
Hi,
I am doing guitar electronics a few years now. One thing, that I had to learn: You need high resolution adc, more than 16bit. This is because the guitar signal is compressed during Distortion. So a 24bit adc, low noise, has to be used.
yes, it makes sense to start with the best copy you can get, because you can always distort it more later.
P2 should easily talk to the i2s Audio chips out there.
I think I have seen some that allow multiple channels.
The current practice of putting hex constants into programs needs to stop. Whether burying them in objects, or creating a nice header file, or both.
Not sure why you think this. Hex constants are much better at helping to visualize bit values than decimal constants.
It's quite easy to see that 0xff = b11111111 or that 0x00d0 = b0000000011010000, etc...
Whereas 255 = b11111111 or 208 = b0000000011010000, is NOT so easy to decipher (for me, at least).
dgately
I don't mean all constants, mostly those for setting the smart pins and streamer. Perhaps I should have said binary constants. Here's a bit from Chip's HDMI oscilloscope demo:
.scpmode long %0000_0000_000_100011_0000000_00_11010_0 'ADC/scope mode
.scp_d long %1111_0000_1000_0110<<16 + $FFFF 'DDS/Goertzel mode
.scp_x long (trigger_level & $FC)<<8 + (arm_level & $FC) + scope_filter
Using a constant for streamer or smart pin settings doesn't tell the reader what is going on. Want to change the ADC gain? Check the datasheet first.
.scpmode long _sp_adc_1x | _sp_scope
I think we really need to be doing something like this. It's a waste of time to be counting bit groups. As well as a lot of opportunities for error. It would be easy to shift part of the constant by a bit while editing it, creating a catastrophic error that is difficult to find.
scp_x is good, it is calculating the needed constant from CON section values.
The current practice of putting hex constants into programs needs to stop. Whether burying them in objects, or creating a nice header file, or both.
Not sure why you think this. Hex constants are much better at helping to visualize bit values than decimal constants.
It's quite easy to see that 0xff = b11111111 or that 0x00d0 = b0000000011010000, etc...
Whereas 255 = b11111111 or 208 = b0000000011010000, is NOT so easy to decipher (for me, at least).
dgately
I don't mean all constants, mostly those for setting the smart pins and streamer. Perhaps I should have said binary constants. Here's a bit from Chip's HDMI oscilloscope demo:
.scpmode long %0000_0000_000_100011_0000000_00_11010_0 'ADC/scope mode
.scp_d long %1111_0000_1000_0110<<16 + $FFFF 'DDS/Goertzel mode
.scp_x long (trigger_level & $FC)<<8 + (arm_level & $FC) + scope_filter
Using a constant for streamer or smart pin settings doesn't tell the reader what is going on. Want to change the ADC gain? Check the datasheet first.
.scpmode long _sp_adc_1x | _sp_scope
I think we really need to be doing something like this. It's a waste of time to be counting bit groups. As well as a lot of opportunities for error. It would be easy to shift part of the constant by a bit while editing it, creating a catastrophic error that is difficult to find.
scp_x is good, it is calculating the needed constant from CON section values.
I don't mean all constants, mostly those for setting the smart pins and streamer. Perhaps I should have said binary constants. Here's a bit from Chip's HDMI oscilloscope demo:
.scpmode long %0000_0000_000_100011_0000000_00_11010_0 'ADC/scope mode
.scp_d long %1111_0000_1000_0110<<16 + $FFFF 'DDS/Goertzel mode
.scp_x long (trigger_level & $FC)<<8 + (arm_level & $FC) + scope_filter
Using a constant for streamer or smart pin settings doesn't tell the reader what is going on. Want to change the ADC gain? Check the datasheet first.
.scpmode long _sp_adc_1x | _sp_scope
I think we really need to be doing something like this. It's a waste of time to be counting bit groups. As well as a lot of opportunities for error. It would be easy to shift part of the constant by a bit while editing it, creating a catastrophic error that is difficult to find.
scp_x is good, it is calculating the needed constant from CON section values.
This is an amazing product... A headphone set with accelerometers that wirelessly receives an electric guitar signal (also with accelerometers) and builds a whole sound stage with amps and effects of your choice that stays put while you move your head and guitar. You need to watch this video with headphones:
The P2 can do this kind of thing, easily. I (and Ahle, too) really want to make a can be fed. The CORDIC makes all this simple, including having LOG and EXP for musical scales. I bet we could make some really interesting musical instruments that synthesize sounds through some Goertzel inputs as a human interface and then generates a whole virtual sound stage, maybe interacting with other P2-based virtual instruments.
THat is a great Product . I may have to go to my local music center and try one out
[3D stereo mixer into which many synthesized or recorded audio tracks /quote]
Comments
https://www.edacafe.com/nbc/articles/1/1734162/Industry-smallest-linear-thermistors-help-engineers-reach-new-thermal-limits
Interesting parts, and I think a P2 could support a sea of those, using the 100uA current mode plus ADC mode ?
That would need the 100uA source to be temperature characterized, and matching spec'd across the P2, as a precision resistor could be used, or a local thermistor could track P2 die..
A demo that put one on every pin would be compelling, as no other MCU can do that.
Instead of streaming pre-computed pixels like you normally see you could do some real-time vector thing using cordic polar system.
Maybe asteroids? with not too much work
Or maybe you could echo-sound the room and do depth vertex calculations like you see in the HoloLens room mapping with a bit more work.
Could be fun.
Start at a 20,000 ft point of view-
What is the objective?
How to get the broadest intro/exposure on a new device?
Impress the engineers with a better slicer and dicer?
An evolved current day heir to the Arduino?
An electronic Swiss jackknife?
A world class accomplishment, “see what I did”?
A easy to use solution to n- degree CNC ( via libraries)?
An Arduino like intro into machine learning/neural networks(libraries)?
Whatever it is to be, it must be easy enough to work with to overcome the barrier to investing time and learning into an other new device.(microcontroller).
I see the P2 as a black box that can do new things, for me. Hopefully with an Arduino level of ease with an environment for getting my feet wet.
Are there phase to getting the P2 introduced?
There absolutely must be libraries at the get-go.
Communication interfaces, I2c, SPI.. etc
PWM
Drivers for stepper motors , memory
The P2 has to do something in my first trying it. It must offer me some reason to want to invest more time into knowing it better.
I am a hobbyist that has at least 10 P1 boards, and now tends to do thing with the Arduino Pro Mini. Why? Libraries, and ease) of use(SW and HW.
I have looked forward and followed the P2 forums for years.. Mainly looking for what a better P1 might look like. I have been overwhelmed by the development techie exchanges. I fear that this focus on impressing the engineering world with what the P2 can do will be overshadowing the necessary image of that first impression to the desired type of market recognition and acceptance.
Once the P2 is pegged as a xyz it will likely not get a second chance to modify that first impression image.
The name is very important. It must have a meaningful favorable ring to it. I have to think that the word “microcontroller” is part of it.
The “Propeller” handle did not attract me and for several years it put me off; only by reading an article in “Nuts and Volts” did I become aware of what it offered.
To me as a user of a new device I do not want to go through reinventing the wheel ; this means libraries, i.e. solutions to my needs that are readily available..
From my marketing classes of decades ago, “ you are selling the hole NOT the drill:”.
I have still yet to see any microcontroller do the above (without a hardware hack). I suppose there are ones that can, but I am just scratching the surface of the full potential of the P2. Only using 3 cogs and the code is not optimized. At some point I will build a frame buffer. This is done just using byte copies from the SD to the mailbox for the display. I haven't had time to refactor the code. This was all done in fastspin for the glue, and PASM for the hardware interfaces.
Back-in-the-day(tm) they(tm) decompressed low-res (160x120 ballpark), yet recognizable videos streaming from single speed CD-ROMs (150 Kbytes per second on a good day) on CPUs as low-end as 12.5 MHz 68000s. The big codec back then was Cinepack, optimized for decompression on slow integer CPUs.
Quick calculations and guesses tell me that P2 (potentially with the help of some external RAM) should be able to handle similiarly-specced video decompression at 720p resolution (or 480p with better framerate/less artifacts).
Hi, MByron,
I could have written a very similar post.
Anfortunately Ken Gracey has decided, that the customers of P2 shall be inventors who make smaller volume products, for which the price of the hardware is not so important. (There is some post somewhere whith such statement.) This idea of customers corresponds to a price for the test board of P2, which excludes young people, students.
At the same time it takes a very long time to have solid documentation, which is a key point, if someone has to convince other people, that using a P2 for business would be a good idea. So at the moment the customers seem to be something like one-man-inventor firms, who can somehow risk to invest a lot of time.
At the same time there is no focus for the software:
Ken likes Python, which is very slow (200* vs C) and does not support the strength of multiple cores, so this does only make sense for education but cannot promote P2. Chip likes Spin, which forces you to use assembler and is a restricted special language of integers. (When I went to Arduino, for me it was no longer necesseary to use assembler, because of fast existing libraries and because C was fast enough for all my tasks. I had tried to use C with P1 but the memory was a restriction.)
There are several compilers for P2 which is very impressing and interesting, but it will slow down the development of libraries, because there is no focus. It seems to be very difficult and/or very much work to have gcc for P2, which is necessary for Arduino-Ide. So this will not become true without invest from Parallax, which will not happen because neither Chip nor Ken does like C. (For me personally, Peters Forth (and board) seems to be the most complete idea, but as Forth is very special, I don't think, that this can really promote P2 for many users. And it is not good, that it is no ANS-Forth, as far as I can see and it will change, because Peter is developping it further on.)
All together, what you and I would like to have, will at least need 3 more years.
=======================================================================
Regarding the original question about the demo and having in mind, that P2 is aimed at smaller volume professional use in a small firm, "inventors":
So the focus has to be in something, that can allmost not be done with a different controller for professionel use. At the very moment, I only see multiline serial communication. Perhaps some sort of high speed real time machine control that needs a big HDMI screen but only text display in parallel.
Did I mention that my 640x480x8 VGA movie demo with the bouncing 320x240 video inside it essentially runs in a single cog plus the VGA cog? The other cog is just used for audio at the same time. So there are 5 cogs still available and not hampered by what the other cogs are doing, and they could be bouncing scope and analyzer windows around the screen at the same time while it is generating signals while being controlled with waving hands via Chip's version of a freaky Theremin doohickey.
So demonstrate how flexible the P2 is, and how the P2 can speed up an original
project, by demonstrating projects on YouTube and share the libraries for projects
like cnc, robot machine learning, etc in short (~15 min) videos with many parts.
Instead of long Parallax video's or projects built around getting the related sales of
Parallax product.
I started watching youtube to supplement my need for more info. There is many
Youtube channels that have exhausted the easy subjects or are just demonstrating
basic electronics, or programming to keep their videos short.
But there is a shortage of good basic P1, P2 video for hobbiest and people that
are possibly looking for a better chip, without a steep learning curve (~inventors).
Especially video that explain the features of the chips, other than it has 8 cogs.
For example, I would enjoy a video or appnote on projects using P1 counter's
digital logic combinations.
Bill M.
what will be the starting library of objects be, that will facilitate the efforts of small-run inventors? can't these object be part of the "Demo" ?
I don't mind the necessity of programming in PASM, but with all the intricacies of the P2's sophisticated PASM instructions couldn't there intitially be some I2C, SPI, video and stepper motor drivers etc. objects that will be instructional on how and when to use the "new and better(different)" PASM commands. At the same time it would give a boost to those small-run inventors getting started.
The "wheel" needs to be invented only once by those best able to do it right.
From my forum observations programming in P2 PASM is easily an order of magnitude more demanding/challenging to learn then for the P1. It must be a significant factor for small-run inventors considering the P2 for the first time.
There must be more potential small-run inventors that are not forum techie participants than are forum techie participants. The intended/needed P2 market surely must be greater than the list of current forum participants.
Without help those considering the P2 will likely look to doing things as they are done with P1 PASM commands as found in the P1 object libraries.
NoNo, you guys have to do that. Sure we provide things to show, but YOU have to show them off as PARALLAX. Same goes for @ersmith FlexGui and FastSpin.
You need to promote this as PARALLAX endorsed Software, @ersmith does a great job and should be quite visible on the Parallax P2 Promo Page.
Gosh we have all the goodies there. You need to let loose of Spin2 and say OK, good for now. Then go fishing with your kids a couple of days, forget everything about the interpreter, come home and start to program something completely different in a new language. First Verilog, then x86, now SPIN2.
Make a nicer Scope Example, this is a very cool thig to have. Try to work with @ozpropdev to integrate his debugger into PropTool.
Make some really simple objects for some SmartPin Modes to include into the PropTool Library.
PWM (read/write), I2C (host/slave), SPI (host/slave), QuadEncoder, something to makle GOERTZEL more understandable fore mere humans, some Spin object containing functions like polar2cartesisian(xx,yy)
Like @"Roy Eltham" mentioned, keep the basic language clean and put extensions into spin objects.
Mike
All the things you mention will have objects made for them and, yes, there will be objects to demonstrate them. I don't have an exact list, but the things you listed are definitely a subset of what will be done.
I agree, Mike. I've got the top..bottom pinfield syntax worked into Spin2 now, so that you can do things like PINTOGGLE[63..56]. It even compiles final constant values where possible. I just need to do the same for the bit-field and Spin2 will be done (again).
Your planning on demo objects sounds great!
Please post in the "Announcements" so I will know when to place an order for my P2 board.
2 to 3 minutes is a really short video, IMO Atmel/Microchip didn't do a very
good job with many of their short video's.
Bill M.
But we should take note of the things Arduino (and perhaps Raspberry Pi) does right. Such as:
Including ready to run examples with the IDE.
Including a useful amount of libraries with the IDE.
(If P2 libraries and examples are rapidly evolving, then perhaps an "update from github" option.)
Same pin assignments for all demos that it's possible for. So the user can go through and try all the examples.
The current practice of putting hex constants into programs needs to stop. Whether burying them in objects, or creating a nice header file, or both.
Maximize modularity and interchangeability when possible. I have personally spent a bit of time converting P1 programs from TV display to serial display. It should be as simple as changing the object. But I also had to change .Out() to .Char() or something. Likewise, switching between HDMI, VGA, and component should be easy. But the start function would likely need different parameters. Here are two potential ways to help:
Compiler just substitutes START() for the calls specified in the OBJ section. And warns if START() is not called exactly once.
The speed could be remedied by Cython. It converts Python to C. Could fastspin compile the output from Cython? Seems unlikely. The output code needs to link to libpython. I'm curious to see if it's possible to use Cython and riscvp2 together for compiled python code. Yes, riscp2 is an "emulator" but the performance seems quite competitive other compilers that generate P2 instructions directly. I'm very much a speed snob.
I wonder how many projects use multiple application cores, compared to just using extra cores dedicated to interfaces, etc.
The newest Arduino include an Atmel Debug Host MCU, so that now does include Debug, and of course all the small AVR eval boards, pretty much all include Atmel Debug Host MCU's.
I think most Debug Hosts include a Debug path, and a VCP UART link.
P2 debug would need to make use of the bootloader UART (FTDI or EFM8UB3)
https://www.sweetwater.com/store/detail/WazaAir--boss-waza-air-wireless-guitar-headphone-amp
The P2 can do this kind of thing, easily. I (and Ahle, too) really want to make a 3D stereo mixer into which many synthesized or recorded audio tracks can be fed. The CORDIC makes all this simple, including having LOG and EXP for musical scales. I bet we could make some really interesting musical instruments that synthesize sounds through some Goertzel inputs as a human interface and then generates a whole virtual sound stage, maybe interacting with other P2-based virtual instruments.
It's quite easy to see that 0xff = b11111111 or that 0x00d0 = b0000000011010000, etc...
Whereas 255 = b11111111 or 208 = b0000000011010000, is NOT so easy to decipher (for me, at least).
dgately
Hi,
I am doing guitar electronics a few years now. One thing, that I had to learn: You need high resolution adc, more than 16bit. This is because the guitar signal is compressed during Distortion. So a 24bit adc, low noise, has to be used.
yes, it makes sense to start with the best copy you can get, because you can always distort it more later.
P2 should easily talk to the i2s Audio chips out there.
I think I have seen some that allow multiple channels.
I don't mean all constants, mostly those for setting the smart pins and streamer. Perhaps I should have said binary constants. Here's a bit from Chip's HDMI oscilloscope demo: Using a constant for streamer or smart pin settings doesn't tell the reader what is going on. Want to change the ADC gain? Check the datasheet first. I think we really need to be doing something like this. It's a waste of time to be counting bit groups. As well as a lot of opportunities for error. It would be easy to shift part of the constant by a bit while editing it, creating a catastrophic error that is difficult to find.
scp_x is good, it is calculating the needed constant from CON section values.
THat is a great Product . I may have to go to my local music center and try one out