Shop Learn
Propeller Pi or P2 Demo? — Parallax Forums

Propeller Pi or P2 Demo?

hinvhinv Posts: 1,033
edited 2020-09-17 12:14 in Propeller 2
With all of the attention that the Raspberry Pi market has gotten, why not come out with a competing product that doesn’t have all of that bloat? Yeah, a Pi4 is quite capable as a desktop these days, but what it doesn’t do well, the P2 can, and all of that bloat gets in the way from programming the hardware.

Market:
Old geeks like @Cluso99, myself, Michael, and others
Emulation
8-Bit guy audience of retro
Retro computer audience
People that loved the original Propeller Demo
Young Raspberry Pi users that want real time control, lower power and instant on.
Educational market in electronics and low level computing where the P2 can act as a low level controller

Pins:
8 pins for HDMI output (with adapter for VGA + PS/2)
4 pins for 2 USB
4 pins for microSD
2 pins for EEPROM or microcontroller @”Peter Jakacki” style.
2 pins for serial host connection
2 pins for ESP32 connection
22 pins for 2 32MB HyperRam chips:
https://www.digikey.com/product-detail/en/cypress-semiconductor-corp/S26KS256SDPBHM020/S26KS256SDPBHM020-ND/7362875
Maybe some of the 11 pins could be shared between both without a performance penalty
2 pins for stereo audio out
1 pin for mic
Click connectors for the left over 17 pins

Connectors:
USB-C for power
MicroUSB or USB-C for connection to host pc and power if not provided by power only connection
HDMI
2 USB-A for keyboard and muse
1/8th inch jack for stereo audio out plus mic in
microSD
Click connectors (unsure as the pin requirements on these)
Pin headers for voltages in and out.
Pads for optional castellated ESP32 package

Benefits:
Double buffered full 1080P resolution output where one bank of HyperRam can be written while the other is being read out to the screen like @cgracey talked about in a previous “Live Forum”

Readily available peripherals with USB and HDMI which is great for the educational environment as they already have these.

Instant on capability
I long for the old days where you flipped a switch and your computer was READY. before the CRT was even warmed up.
Children have short attention spans now a days, and this will grab there attention.

Large 64MB of external memory:
Place for compilers via XMM while using some HUB mem for text display
lots of other possibilities
Using the latest 32MB HyperRam chips means that there is likely a longer future production for them

Ability to put development environment on the P2:
If PNut and other development environment was primarily available for the P2Demo itself then you wouldn’t have to deal with the cross platform hassles. Why is the spin compiler written in 80386 assembly rather than P2 assembly?!
For PC/Mac/Linux/Android support you could to the host side in Tcl/Tk or Python which are already cross platform and the compatibility is managed by the Tcl and Python language support.

Portable dev environment with just a P2Demo and add keyboard, mouse, screen, and power like the Raspberry Pi users do now.

Less distraction from the internetMore eyes & brains actually on the P2, actually writing P2 code rather than developing on PC/Mac/Linux/Android.

Real time I/O that you just don’t get with a Raspberry Pi. This opens quite a large realm of possibilities both in education and also with direct compatibility to the industrial environment. While in the classroom now with a Raspberry Pi, you can learn the fundamental principles of computer controlled systems I don’t see that directly applicable to industry as I doubt many will be using Raspberry Pi’s or even the arm chips that drive them attached to sensors & motor controllers & displays actually in production environments. The P2, on the other hand with it’s deterministic & real time design would be directly applicable, but it must hit the education market first. THIS IS A BIG OPPORTUNITY!

Ready to run demos to wow people distributed over the internet as microSD images similar to how they are done on the Raspberry Pi, but a whole lot smaller/quicker. It could even be done on the prop itself with the right TAQOZ code in the EEPROM to fetch the image from the FTP site and write the microSD.
«1

Comments

  • Double buffered full 1080P resolution output where one bank of HyperRam can be written while the other is being read out to the screen like @cgracey talked about in the last “Live Forum”
    Yep. This capability is fully coded now and designed into both my video and memory drivers. Not tested yet with that full setup as I only have a single module but I'm very confident this can work. Access to different buses is fully non-blocking at the driver level, and any COG (including the video driver) can access either bank.
  • hinvhinv Posts: 1,033
    rogloh wrote: »
    Double buffered full 1080P resolution output where one bank of HyperRam can be written while the other is being read out to the screen like @cgracey talked about in the last “Live Forum”
    Yep. This capability is fully coded now and designed into both my video and memory drivers. Not tested yet with that full setup as I only have a single module but I'm very confident this can work. Access to different buses is fully non-blocking at the driver level, and any COG (including the video driver) can access either bank.

    Excellent! Thanks for confirming. I was trying to read through your long HyperRAM thread, but to be honest, a lot of it is a above my head.
  • hinvhinv Posts: 1,033
    edited 2020-09-17 11:58
    @rogloh Do you see the dual HyperRam solution proposed as the best basis for a large memory expansion to do frame buffer and XMM for things like dev tools & demos and such?
  • Sounds like my P2D2+P2PAL on a P2LAB board :)
  • Definitely. With two banks you can do lots of things like independent frame buffers for extra fast write bandwidth or one day run some future XMM as well as video without a performance hit. Right now however we don't yet have any XMM over HyperRAM or HyperFlash for P2. One day hopefully but it will need some toolchain support. I started another thread discussing this LUT-exec mode that I had been thinking about. Or maybe some interpreters could be coded to read their code from a HyperRAM/HyperFlash cache instead of HUB?
  • hinvhinv Posts: 1,033
    Sounds like my P2D2+P2PAL on a P2LAB board :)

    Yes, Peter, it does, because it was partially inspired by your efforts and your presentation. I would love to get my hands on your P2D2+P2PAL+ P2LAB setup, BTW. Are you shipping yet?

    The main differences I am hoping for are:
    * Produced en masse by Parallax or someone.
    * Dual HyperRam and other ports listed above as standard.
    * Single board construction, or maybe dual board with P2 Edge and a board with socket for P2 Edge and all the connectors.


  • hinvhinv Posts: 1,033
    rogloh wrote: »
    Definitely. With two banks you can do lots of things like independent frame buffers for extra fast write bandwidth or one day run some future XMM as well as video without a performance hit. Right now however we don't yet have any XMM over HyperRAM or HyperFlash for P2. One day hopefully but it will need some toolchain support.
    Is there any reason to support HyperFlash if you already have fast MicroSD in full QPI?
    rogloh wrote: »
    I started another thread discussing this LUT-exec mode that I had been thinking about. Or maybe some interpreters could be coded to read their code from a HyperRAM/HyperFlash cache instead of HUB?

    Would it be a big performance hit to modify the Spin2 interpreter to run on XMM? Even if it is, it still could be quite useful for larger things like compilers.

    With 64MB available, it might even be possible to port POSIX libraries to run full blown Python and Tcl/Tk implementations, and other things, but then that may be seen as getting back into bloat mode.

    Would it be much of a performance hit for the HyperRAM to be on the other board with a P2 Edge plugged in, or otherwise would it be worthwhile to push for a P2 Edge++ model with a couple of HyperRAM chips right on it whilst it is still in design?
  • hinv wrote: »
    Is there any reason to support HyperFlash if you already have fast MicroSD in full QPI?
    HyperFlash offers very high speed reading up to 350MB/s or so which could be useful in some cases for bringing in a lot of memory quickly. However MicroSD will be able to offer much more total storage but read slower.
    Would it be much of a performance hit for the HyperRAM to be on the other board with a P2 Edge plugged in, or otherwise would it be worthwhile to push for a P2 Edge++ model with a couple of HyperRAM chips right on it whilst it is still in design?
    I've also suggested adding a HyperRAM footprint on the P2 Edge. Whether it makes it in depends on Parallax's choices, but having a (more expensive) variant with the small BGA footprint present could be useful because it's going to get hard for people to design one themselves later dealing with signals in the hundreds of MHz range.
  • hinvhinv Posts: 1,033
    rogloh wrote: »
    hinv wrote: »
    Is there any reason to support HyperFlash if you already have fast MicroSD in full QPI?
    HyperFlash offers very high speed reading up to 350MB/s or so which could be useful in some cases for bringing in a lot of memory quickly. However MicroSD will be able to offer much more total storage but read slower.
    Can HyperFlash be accessed for read operations the same way as HyperRAM for in place execution for some modified Spin2 or other interpreter?
    Would it be much of a performance hit for the HyperRAM to be on the other board with a P2 Edge plugged in, or otherwise would it be worthwhile to push for a P2 Edge++ model with a couple of HyperRAM chips right on it whilst it is still in design?
    I've also suggested adding a HyperRAM footprint on the P2 Edge. Whether it makes it in depends on Parallax's choices, but having a (more expensive) variant with the small BGA footprint present could be useful because it's going to get hard for people to design one themselves later dealing with signals in the hundreds of MHz range.[/quote]

    Would the extra traces connecting to the HyperRAM chips and continuing on to the edge connector act as antennas, hampering performance? If so, maybe the P2Edge++ should just have those lines terminate at the HyperRAM chips.

    What do you think about Propeller Pi being a single board vs a dual board? I would love to see something like it become a standard that even Chip and others develop for, essentially ditching the whole PC/Mac/Linux paradigm or just using them as a glorified terminal connected to the P2. It just bothers me that @cgracey, with his awesome talent and similar wishes for a simpler platform, write PNut in 386 assembly, when they now have the P2 and could produce a board (Propeller Pi) that they could host the development environment for the P2.
  • AribaAriba Posts: 2,458
    What do you think a board like this should cost to be competitive?

    Andy
  • roglohrogloh Posts: 3,167
    edited 2020-09-17 13:59
    hinv wrote: »
    Can HyperFlash be accessed for read operations the same way as HyperRAM for in place execution for some modified Spin2 or other interpreter?
    Yes and it seems to overclock at even higher speeds to HyperRAM. I see HyperRAM maxing out betwen 302-312MHz but HyperFlash seems to be able to go further than this. I haven't tried to pinpoint where exactly it fails yet because I am scared to overclock the board too high.
    Would the extra traces connecting to the HyperRAM chips and continuing on to the edge connector act as antennas, hampering performance? If so, maybe the P2Edge++ should just have those lines terminate at the HyperRAM chips.
    Don't really know RF design stuff well enough to answer but it's probably a good idea to not go further than the edge connector if you want to run the RAM and flash at the highest possible speed.
    What do you think about Propeller Pi being a single board vs a dual board? I would love to see something like it become a standard that even Chip and others develop for, essentially ditching the whole PC/Mac/Linux paradigm or just using them as a glorified terminal connected to the P2. It just bothers me that @cgracey, with his awesome talent and similar wishes for a simpler platform, write PNut in 386 assembly, when they now have the P2 and could produce a board (Propeller Pi) that they could host the development environment for the P2.
    Yeah a few of us are keen on the self hosted thing, if anything to remove the software dependency on other platforms. The way things are going, maybe 10-15 years into the future "PCs" might not even use x86 chips. It might be ARMs all the way, though some of that might depend now on the whole NVIDIA thing if they take it over. Of course there'll always be x86 emulators etc, but you might not want to have to run old versions of Windows as well.
  • hinvhinv Posts: 1,033
    Ariba wrote: »
    What do you think a board like this should cost to be competitive?

    Andy

    That is an excellent question for @"Ken Gracey" as to me, it's just an idea I would love to see parallax take over and run with.
    Fortunately there have been some higher priced SBC's lately. Yeah, they have vastly superior features at the macro level, but nothing I have seen can do deterministic programming like the P2 can.
    I think I paid $120 or something like that for the Propeller Demo board, and it is my favorite of all of my propeller boards, maybe because it was my first and came with an excellent book like the Commodore128 did when I was young. I can see that kind of nostalgia created around a Propeller Pi, or even better because it could be self-hosting like the Propeller Demo board never was.
  • hinvhinv Posts: 1,033
    rogloh wrote: »
    hinv wrote: »
    Yeah a few of us are keen on the self hosted thing, if anything to remove the software dependency on other platforms. The way things are going, maybe 10-15 years into the future "PCs" might not even use x86 chips. It might be ARMs all the way, though some of that might depend now on the whole NVIDIA thing if they take it over. Of course there'll always be x86 emulators etc, but you might not want to have to run old versions of Windows as well.
    I hope not ARM but something like RISC-V. Maybe the P3 could even have a multi-GB DDR4 based hub with the cogs running a RISC-V instruction set variant???
  • Propeller Pi?

    RPi form factor

    4xUSB - 8 pins - with UART option
    1x eth (? is it possible without another chip?)
    HDMI with VGA option - 8 pins
    audio - 2 pins
    composite video - 1 pin
    GPIO - 28 pin
    SD 4 pins
    boot eeprom
    RAM... maybe hyperram/hyperflash? Is it possible to boot P2 from hyperflash? hyperram needs 11 pins?
    Some pins can be shared on gpio...

    It can be a great thing...
  • All the above stuff is great, BUT i think pushing the DAC and ADC functions is a big plus... What other micro-controller can do that with so many pins available, in any order, with minimal coding? This is real world interfacing in nearly real time, critical for so many applications, many not even realized yet.
  • hinvhinv Posts: 1,033
    pik33 wrote: »
    Propeller Pi?

    RPi form factor

    4xUSB - 8 pins - with UART option
    1x eth (? is it possible without another chip?)
    HDMI with VGA option - 8 pins
    audio - 2 pins
    composite video - 1 pin
    GPIO - 28 pin
    SD 4 pins
    boot eeprom
    RAM... maybe hyperram/hyperflash? Is it possible to boot P2 from hyperflash? hyperram needs 11 pins?
    Some pins can be shared on gpio...

    It can be a great thing...

    Since HDMI can carry audio and takes 8 pins, and VGA only takes 5, you can put the 2 Audio and Composite with VGA adapter that plugs into HDMI.

    Also, with the power of the P2, I would rather have 8 pins on the SDcard slot to get the most out of it. (is QPI AKA QuadSPI the fastest?)
    ETH will take at least 4 pins unless you just leave that on an of the USB like the original pi.
    I think it is important to have a "good enough" dev toolset right on the board itself so having at least 1 hyperram is probably necessary for that.
  • hinvhinv Posts: 1,033
    PropGuy2 wrote: »
    All the above stuff is great, BUT i think pushing the DAC and ADC functions is a big plus... What other micro-controller can do that with so many pins available, in any order, with minimal coding? This is real world interfacing in nearly real time, critical for so many applications, many not even realized yet.
    Yeah, real-time determinism is key.
  • I think pushing the DAC and ADC functions is a big plus.

    The P2 is the most analog microcontroller I know about.

    I am now waiting for the development board; it was sent 3rd or 4th December so there is a possibility I will get it before Christmas and test what this chip can do :)
    Too early to project an own board(s).. Only ideas. Synthesizer. Mixer. Retrocomputer. Oscilloscope. All of these in one? 2P2s on one board?
  • hinvhinv Posts: 1,033
    pik33 wrote: »
    I think pushing the DAC and ADC functions is a big plus.

    The P2 is the most analog microcontroller I know about.

    Lol! That's for sure!

    At the same time Chip has talked about furthering P2 hosting of PNut debugging to get latency down. I would love to have a platform like the Propeller DemoBoard for the P2 to do just that!

    Also @"Ken Gracey" talked about having downloadable demos on the web pages so that people could just download and run them. This could be accomplished with a P2 DemoBoard tethered to a cell phone with an app that takes a QR code off of the web and downloads it, and loads it into P2 ram or flash, but what is still needed is a known set of peripherals for such demos to be built. With PNut built for the propeller itself, that could include keyboard, mouse, (PS/2 or USB), audio in, audio out, screen( VGA or HDMI). The differences could be handled by some hardware extraction layer (which was needed as @Cluso99 talked about even with the P1). After all, what good is a demo if there is nothing to see or hear, or somehow experience? I am not against PNut functionality being built for the same Android app for this purpose, in fact it would make an excellent diagnostic tool for in the field, like @"Peter Jakacki" noted in his thread, but the best experience for latency and such is going to be much better on the P2 itself, or a host P2, running PNut functionality.
  • Also @Ken Gracey talked about having downloadable demos on the web pages so that people could just download and run them.

    Should that work get done, there could very easily be a board setup to do stuff, scope, signal generate, signal capture, logic analyze, and other things. Make this board robust, with appropriate connectors, protection, and all the things needed to make it more than a demo, but an instrument people could use realistically.

  • hinvhinv Posts: 1,033
    Yeah, that would be a nice add-on board to a P2 DemoBoard. That would make one heck of a nice bench tool!

    Apparently you were quite impressed by Chip's AtoD demo like I was.
  • I was indeed!

    It's all good enough for someone to just use on the bench, sort of like a multi-tool. For serious, or upper limit type work, it won't be suitable.

    But for many things people want to do? Totally doable.

    If I were king, and or had time, the thing to do would be a kit. Build your bench thingy, whatever it's called. Then use it to do other projects.

    Download your tools right here --->

  • hinvhinv Posts: 1,033
    edited 2021-01-05 20:56
    Wow. Now that I watched the DAC demo Propeller Live Forum, I am really, really impressed! 22 years ago we used to run 2 racks of SGI Onyx2 and four O2's(over $1 million in computers alone) in order to get enough Video outputs to drive monitors for our vehicle simulations. It seems, that if you could stream the visual data into the P2 (or have it generated internally which should be doable for the simulated instrument panels), all 11 screen signals(at 1280x1024) could be generated off of a single P2!

    @cgracey I noticed you showed your Dell monitor running off of VGA. Did you try doing sync-on-green? Since I have sold a lot of SGI hardware since then, I keep getting asked which monitors support sync-on-green. It turns out that many of the later 5x4 or 4x3 aspect ratio monitors, which probably includes your Dell, supported sync-on-green, so that if you drove added the hsync and vsync pulses to your green video output, you could probably drive it with a single pin for green text, which, depending on the monitor can be easier on the eyes.
  • Cluso99Cluso99 Posts: 17,686
    I’ve always wanted to try sync on green for my Acer 24” screens but never got around to working out the code to prove it. Perhaps you could mod Chip’s code and we could all try it out on various monitors. I have Dell 24” monitors too.
  • TubularTubular Posts: 4,332
    I think Chip was probably using component video, rather than VGA, but could be wrong

    Still, it would be interesting to prove sync on green running on various monitors
  • hinvhinv Posts: 1,033
    edited 2021-01-06 00:32
    He was doing both, and apparently both are wired in parallel on the "A/V Breakout – 3.5mm Audio in/out, four RCA audio/video, VGA" the VGA is in parallel with the component video, and uses the same code as he did not reload during his demo. Chip also talked about loading the output to change the color and proceeded to plug in a VGA connector, which would add 75ohm's to the R, G, and B lines.
  • hinvhinv Posts: 1,033
    Cluso99 wrote: »
    I’ve always wanted to try sync on green for my Acer 24” screens but never got around to working out the code to prove it. Perhaps you could mod Chip’s code and we could all try it out on various monitors. I have Dell 24” monitors too.

    I don't have the skills to be writing streamer code yet, but this is where it was talked about before.
    https://forums.parallax.com/discussion/170288/p2-vga-question
  • hinvhinv Posts: 1,033
    Here's a nice table of sync-on-green monitors:
    http://ps-2.kev009.com/sog/
  • hinvhinv Posts: 1,033
    edited 2021-01-13 13:30
    I've been thinking about it, and one advantage of the Raspberry Pi as an education platform is that you can't brick it, and you don't need any special procedures to update an internal flash or eMMC like some other "maker boards" have. Also this eliminates a point of long term failure because flash does wear out, even though it is more reliable than microSD cards. It would be nice to do full QPI on the microSD, but I don't know about the transition between QPI mode and regular SPI mode. The built in monitor Loads or Runs from SDcard using SPI(I am assuming) of an 8.3 filename, which is find for booting something bigger like a MicroPyton operating system of sorts, or a BASIC operating system like FemtoBASIC, or you could just use TAQOZ built in or load the bigger version from microSD.
  • hinv wrote: »
    It would be nice to do full QPI on the microSD, but I don't know about the transition between QPI mode and regular SPI mode.

    (First off, the 4 bit mode of an SD card is NOT AT ALL SPI. It's called MMC bus.)
    Ideally you just include a circuit to cut the power to the SD card. That will always reset it to the initial state. Peter's USB solution includes this already.

    Another solution is to put a bootloader that can boot in 4 bit MMC bus mode on an SPI flash and then write-protect it (most(?) flash chips seem to have a write-protect pin, so this would just require a resistor and a 3x1 header to allow jumpering it)


    Also RE: specs, because I somehow didn't see this thread earlier:
    - I'd also totally buy a P2 demo board kinda thing
    - I'm for dual HyperRAM, too. Ideally, make it such that the pins are arranged in a way where both RAMs can be ganged together for 16bit per cycle transfers.
    - USB-C, yes please
    - 2x USB host is too little, 4x would be preferable. That way you can have 2 left over after mouse and keyboard. Gamepads, flash drives, programming other boards with USB serial, floppy drives!??
    - I'd say put a full size SD slot. Just reduces one step of fiddling when swapping the card into a PC.
    -
Sign In or Register to comment.