Fact-checked by Grok 2 weeks ago

Parallax Propeller

The Parallax Propeller is a family of multicore microcontrollers developed by Parallax Inc., characterized by eight independent 32-bit RISC processor cores (known as "cogs") that enable efficient parallel processing for real-time embedded applications such as robotics, sensor interfacing, and educational projects. Designed by Chip Gracey, the architecture revolves around a shared hub for inter-core communication, allowing simultaneous access to memory and I/O resources while supporting flexible programming in languages like Spin, C, and assembly. The original Propeller 1 (P8X32A), released in 2006, features 32 general-purpose I/O pins, 32 KB of RAM, 32 KB of ROM, and clock speeds up to 80 MHz at 3.3 V, with built-in capabilities for video generation and multiple serial protocols including , , and UART. In 2014, open-sourced the Propeller 1's hardware design, code, and tools under the GNU General Public License, fostering a vibrant for custom applications and FPGA implementations. The Propeller 2 (P2X8C4M64P), launched in 2020, significantly enhances performance with 64 "smart" I/O pins capable of autonomous analog and digital functions (such as DAC/ADC and PWM), 512 KB of contiguous shared hub in a 20-bit , 4 KB of dual-port per , and configurable clock speeds up to 320 MHz (with a 1.8 V core and 3.3 V I/O). It includes advanced features like a 32-bit pipelined for trigonometric computations, and support for high-resolution video output, making it suitable for demanding tasks in industrial and systems. Both versions emphasize low power consumption and ease of integration, with the series widely adopted in education due to Parallax's extensive documentation and development boards.

History and Development

Original Propeller Chip (P8X32A)

The Original Propeller Chip, designated P8X32A, was developed by Chip Gracey at Parallax Inc. and initially released in 2006 as a low-cost multi-core microcontroller targeted at hobbyists and educators. This design marked Parallax's entry into custom semiconductor fabrication, with the chip produced by Austra Microsystems to enable accessible parallel processing for educational and prototyping purposes. At its core, the P8X32A features eight independent 32-bit reduced instruction set computing (RISC) cores, known as "cogs," each capable of operating at a maximum clock speed of 80 MHz when using an external crystal. It includes 32 KB of shared (RAM) in the central hub for inter-core communication and data storage, supplemented by 2 KB of dedicated RAM per cog for local variables and operations. The chip is housed in a 40-pin (DIP) suitable for prototyping, providing 32 (I/O) pins that support various protocols and direct hardware control. Power consumption is optimized at approximately 500 µA per million (MIPS) at 3.3 V DC, making it efficient for battery-powered applications. In 2014, open-sourced the P8X32A under the GNU General Public License version 3.0 (GPL 3.0), releasing source files, design documentation, and tools to foster community-driven improvements and FPGA implementations. This move enabled broader experimentation and contributions from developers, extending the chip's longevity beyond commercial production. Initial target applications for the P8X32A centered on , interfacing, and simple embedded systems, where its architecture simplifies multitasking without complex operating systems. For instance, multiple cogs can independently handle , data acquisition, and communication tasks, promoting its use in educational projects and low-power prototypes.

Propeller 2 Chip (P2X8C4M64P)

The Propeller 2 chip, model P2X8C4M64P, represents the second-generation multicore developed by Inc. and released in the fourth quarter of 2020. Its development spanned approximately 14 years, building on the original 's to address limitations in and features. Designed by Chip Gracey, it builds on the multi-core concept from the original Propeller while addressing prior limitations through pipelined 32-bit cores and significantly expanded resources, enabling more complex embedded applications. At its core, the P2X8C4M64P features eight identical 32-bit processors, each capable of operating at clock speeds up to 320 MHz depending on thermal and power conditions, delivering up to 160 per core for a total of approximately 1.28 giga operations per second across all cores. The architecture includes 512 KB of contiguous shared in a 20-bit , accessible by all cores via a high-speed for efficient data exchange and . Each core (referred to as a "cog") also has dedicated local , comprising 4 KB of dual-port for general use, along with 512 longs (2 KB) of and 512 longs (2 KB) of lookup , supporting fast instruction execution and data access without hub contention. Complementing this are 64 smart I/O pins, each configurable for autonomous operation in various modes, including and analog functions, to offload tasks from the cores and enable peripheral handling. Key enhancements in the P2X8C4M64P include a built-in 32-bit pipelined coprocessor integrated into the hub, which accelerates trigonometric and vector operations with scale-factor correction for improved precision in applications like and . It also supports advanced video output capabilities through its smart pins, enabling formats such as , VGA, DVI, and HDTV up to 1080p resolution for display-driven projects. Additionally, the chip provides USB interface support at full-speed (12 Mbps) and low-speed (1.5 Mbps) rates using dedicated pin pairs, facilitating direct connectivity to host devices without external controllers. As of 2025, the P2X8C4M64P remains widely available from in its primary exposed-pad 100-pin TQFP package (14 x 14 mm), suitable for surface-mount assembly, as well as integrated modules like the P2 for easier prototyping and deployment. continues to provide ongoing updates to supporting , tools, and silicon revisions through official resources, ensuring long-term compatibility and feature enhancements.

Core Architecture

Multi-Core Processing

The Parallax Propeller employs a multi-core centered on eight symmetric cores, known as , which enable true parallelism by executing independent tasks without shared execution state. Each cog features its own dedicated set of 32-bit registers, , and local , allowing for autonomous operation while cooperating through shared resources. This design facilitates concurrent of diverse functions, such as signal generation, sensor monitoring, and communication protocols, all managed in software without reliance on an operating system. Access to the shared memory, which serves as the central communication medium among , is governed by a scheme to ensure equitable distribution. In the original chip (P8X32A), operating at a nominal clock speed of 80 MHz, each cog gains hub access every 16 system clock cycles, resulting in a predictable for read and write operations. The 2 chip (P2X8C4M64P), with clock speeds up to 320 MHz, reduces this latency through deeper instruction pipelines and FIFO-based block transfers, achieving significantly higher effective bandwidth per cog while maintaining the round-robin principle. Cog initiation is handled entirely in software, with the launching using instructions like COGINIT to start another by specifying its startup and passing parameters via the RAM. This mechanism allows for dynamic task allocation, where a master can spawn and configure subordinate to handle specific workloads, such as real-time video generation or , before returning control. The eschews traditional interrupts in favor of dedication for operations, where individual cores are assigned to time-critical tasks using wait instructions and counters to synchronize without disrupting other . This approach promotes deterministic behavior and simplifies programming by avoiding interrupt and conflicts.

Memory Organization

The memory organization of the Parallax Propeller chips employs a shared central memory for inter-core communication alongside dedicated local memory in each processing core (cog) to enable efficient parallel execution without direct memory conflicts. In the original Propeller chip (P8X32A), the shared hub RAM provides 32 KB of addressable space, organized as 16K × 16-bit words, serving as the primary medium for data exchange and code sharing among the eight cogs. Each cog features 2 KB of local RAM for storing executable code and variables. The shared ROM, integrated into the hub memory, holds the bootloader, system tables for mathematical functions such as sine and logarithm lookups, and the built-in Spin interpreter for high-level code execution. Access to the hub RAM is managed through a time-sliced round-robin protocol, where each cog is allocated a dedicated slot every 16 system clock cycles to perform a 32-bit read or write operation, thereby preventing contention and ensuring deterministic timing. The Propeller 2 chip (P2X8C4M64P) significantly expands this architecture with 512 KB of shared , structured as 256K × 16-bit words to accommodate more complex applications and larger datasets for inter-cog interactions. Per-cog memory is enhanced to include 4 KB of local dual-port (consisting of 512 longs of register and 512 longs of lookup ) for , variables, and temporary . The ROM content builds on the P1 design, incorporating the and expanded system tables alongside math accelerators for functions like CORDIC-based and scaling, which offload computational tasks from software. access in the P2 evolves to support simultaneous 32-bit operations across all cogs via pipelined sequential reads and writes, eliminating the slot-based scheduling of the P1 while maintaining contention-free operation through a central controller.

Performance Features

Clock Speed and Power Management

The Parallax Propeller family employs (PLL) circuitry to generate its system clock from an external , enabling efficient across its variants. For the original P8X32A ( 1), an external crystal in the 4 to 8 MHz range is multiplied by a factor of up to 16 via the PLL to achieve system clocks up to 80 MHz, with the (VCO) operating between 64 and 128 MHz before post-division. In contrast, the P2X8C4M64P ( 2) supports a broader PLL configuration, using external crystals from 1 to 32 MHz that can be multiplied by factors of 1 to 1024 and divided by 1 to 64, yielding system clocks up to 320 MHz. Power management in the Propeller chips includes multiple modes to balance performance and , particularly suited for battery-powered applications. Both variants feature an active mode at full clock speed for high-performance tasks, an idle mode where individual cores (cogs) can be paused to reduce activity while maintaining I/O states, and a low-power mode utilizing an internal oscillator at approximately 20 kHz for minimal consumption during standby. The P8X32A draws quiescent current as low as 600 nA in shutdown, while the P2X8C4M64P achieves approximately 130 µA on the core supply in the low-power oscillator mode. Operating voltage ranges are optimized for low-power embedded use, with the P8X32A requiring 2.7 to 3.6 V across its supply pins and incorporating brown-out detection that triggers shutdown below approximately 2.7 V when enabled. The P2X8C4M64P operates with a 1.8 V core supply (1.7 to 1.9 V range) and separate 3.3 V (3.15 to 3.45 V) for I/O groups. Neither chip includes an internal , necessitating a clean external with adequate filtering—such as bypass capacitors on supply pins—to mitigate and ensure , especially at high clock speeds on the P2X8C4M64P where thermal dissipation can reach up to 2.5 . For thermal management, the P2X8C4M64P's exposed pad should connect to a via multiple vias to act as a heatsink, supporting operation from -40°C to +105°C. These clock and power features influence multi-core scheduling by allowing dynamic frequency adjustments to allocate resources efficiently among cogs without halting the system.

Boot and Execution Mechanism

Upon power-on or reset, the original Propeller chip (P8X32A) initializes its internal RC oscillator at 20 kHz, which switches to 12 MHz after a 50 ms delay to ensure stable operation. Cog 0 then loads and executes the built-in boot loader from the 32 KB ROM, which first checks for host communication on pins P30 and P31. If no serial input is detected within approximately 250 ms, the boot loader scans for an external 32 KB EEPROM connected via I²C on pins P28 and P29, loading the entire contents into the 64 KB hub memory (32 KB RAM portion) if present. If no valid EEPROM is found, the boot loader terminates Cog 0, enters shutdown mode, and sets all I/O pins to inputs with no pull-ups. The loaded program—either Spin bytecode, which is interpreted by the ROM-resident Spin interpreter in Cog 0, or compiled binary code—then launches, enabling the eight cogs to execute independently. Post-boot, each of the eight in the P8X32A operates autonomously, fetching instructions from its dedicated 512 × 32-bit while accessing the shared as a central pool via , ensuring deterministic timing without preemption. The lacks a global , relying instead on coginit instructions to launch tasks and polling or waiting mechanisms for synchronization across cogs. Reset mechanisms include with the 50 ms oscillator stabilization, an active-low RESn pin that halts all cogs and floats I/O pins (restarting 50 ms after RESn deasserts), and optional brown-out detection below 2.7 VDC. Software-initiated cog resets are possible via the cogstop or coginit instructions targeting individual cogs, although the instruction provides global software reset capability. For persistent storage in P1 setups, the optional external provides program retention of up to 32 KB, automatically loaded during to enable standalone operation without a programmer. The 2 chip (P2X8C4M64P) follows a similar but enhanced sequence, loading its 16 KB into the last 16 KB of the 512 KB hub within 5 ms of power-on or reset, after which Cog 0 executes the . The examines the boot pattern on pins P59–P61 to determine the mode: for loading (with a 100 ms window) or automatic SPI-based loading from an external 8-pin flash or microSD card if detected. For flash, it supports booting multiple 512 KB images; for SD cards, it seeks a FAT32-formatted "_P2_BOOT.BIX" file, falling back to serial if unsuccessful. Unlike the P1's focus, P2 emphasizes SPI and serial loaders for greater capacity and flexibility in external storage integration. In the P2, the eight cogs execute independently post-launch, each utilizing a 5-stage for 2-clock-per-instruction efficiency when filled, drawing from 512-long or lookup RAM or the shared 512 , which serves as the central with access. While lacking a traditional global system like the P1, each supports three prioritized local interrupts (INT1–3) triggered by pin events, timers, or software, managed via dedicated for task handling. types include an active-low RESn pin pulse that disables all cogs and floats I/O pins (restarting after 3 ms), or software via the HUBSET with $1000_0000; individual coginit/cogstop provide per-cog control.

Integrated Peripherals

On-Board Hardware Modules

The original Propeller P8X32A microcontroller incorporates dedicated on-board hardware modules optimized for timing, video generation, and basic mathematical support, integrated directly into each of its eight processor cores (cogs). Each cog features two independent counter modules, providing a total of 16 counters across the chip, which support versatile functions including pulse-width modulation (PWM) for motor control and LED dimming, frequency synthesis for clock generation, and precise frequency or period measurement for sensor interfacing. These counters operate through configurable state machines that can run autonomously after setup, incrementing phase accumulators based on internal or external clock sources, or they can be actively monitored and adjusted by the hosting cog for synchronized tasks. Counter outputs connect to I/O pins for direct hardware control without software overhead. Complementing the counters, each cog includes a dedicated video generator module capable of producing composite video signals in NTSC or PAL formats, suitable for television output or simple displays. This hardware uses phase-locked loop (PLL) timing, pixel scaling registers, and color lookup tables to generate scan lines and chroma signals, enabling autonomous video transmission once the cog configures parameters like resolution and pin assignments. The video module supports up to 32 I/O pins for signal distribution, allowing interleaved data from multiple cogs for complex graphics. For mathematical extensions, the P8X32A embeds ROM tables in its main memory for logarithm (base-2, 2048 entries), antilogarithm (2048 entries), and sine functions (2049 unsigned 16-bit samples spanning 0° to 90° at 0.0439° resolution), facilitating efficient software-based floating-point and trigonometric computations within cogs. These tables, located at fixed addresses (C000–F001), are accessed via cog instructions like RDWORD and support for sub-degree precision in sine/cosine calculations, though all operations require cog execution rather than fully autonomous hardware. The Propeller 2 (P2X8C4M64P) advances these capabilities with more sophisticated and numerous modules, emphasizing higher performance and integration for and applications. Each of its eight cogs now includes two enhanced counter modules—totaling 16 across the chip—offering expanded modes for PWM, decoding, and 32-bit event counting, with the ability to respond autonomously to pin state transitions for tasks like or duty-cycle analysis. These counters leverage the chip's smart I/O pins, enabling per-pin configuration for timing without dedicated cog involvement, supplemented by the smart pins' autonomous timing features. Video hardware in the P2 evolves to support digital interfaces, including DVI and outputs up to resolution at 60 Hz, through dedicated pixel clock generation and serialization logic that operates independently after cog initialization of frame buffers and timing parameters. This module uses the shared for data access, allowing multiple s to contribute to video rendering while the handles signal encoding autonomously. Analog integration is a key P2 enhancement, with up to 14-bit delta-sigma and 8-bit DAC functionality embedded in every I/O pin, supporting autonomous sampling or generation of signals like audio or data at rates up to the system clock, configurable via pin modes without continuous cog supervision. These per-pin converters connect directly to external signals, enabling distributed analog processing across the chip. Mathematical hardware in the P2 includes a dedicated for vector rotation, providing hardware-accelerated computation of arctangent (), sine, and cosine functions with 16-bit precision, invocable by any for real-time applications like or systems. Software floating-point support, including addition, multiplication, and division, is available via Spin2 language extensions and libraries, augmenting the ROM-based tables from the P1 design for faster transcendental math without external libraries. Overall, P2 modules maintain flexibility for cog assignment or autonomous pin-driven execution, optimizing for parallel workloads in systems.

I/O Interfaces and Packages

The original Propeller chip, P8X32A, features 32 bidirectional general-purpose I/O pins (P0 through P31) that operate at 3.3 V levels, with a logic threshold of approximately half of (around 1.6 V at 3.3 V supply). These pins support software-implemented protocols such as UART (typically on P30 for transmit and P31 for receive), , and through dedicated cogs or assembly code, enabling flexible without dedicated hardware serializers. Each pin can source or sink up to 40 mA at 3.3 V, with low input leakage current of -1.0 to +1.0 μA, and supports bidirectional operation in open-drain mode for applications like bus interfacing. The P8X32A is available in several package options to suit different development and production needs: a 40-pin (P8X32A-D40) for prototyping on breadboards, a 44-pin LQFP (P8X32A-Q44) for surface-mount designs, and a 44-pin QFN (P8X32A-M44) for compact, high-density layouts. The 40-pin provides direct access to all 32 I/O pins plus power and ground, making it the standard for initial experimentation. In contrast, the Propeller 2 chip (P2X8C4M64P) advances I/O capabilities with 64 independent smart pins (P0 through P63), each configurable via the WRPIN instruction to operate in specialized modes without burdening the CPU cores. These modes include for high-speed synchronous or asynchronous serial data up to clock/2 baud rates, a delta-sigma configurable for 10-bit effective resolution across five voltage ranges using SINC2 or SINC3 filtering, and an 8-bit DAC with options for 120-ohm or 1 k-ohm and 16-bit . Bidirectional open-drain operation is supported through float states (DIR=0), and each pin can drive up to ±30 mA , with configurable current limits of 1 mA, 100 μA, or 10 μA for precise control. These smart pins connect to the on-board peripherals, allowing direct external interfacing for tasks like reading or . The P2X8C4M64P is housed in an exposed-pad 100-pin TQFP package (14 x 14 mm), optimized for surface-mount assembly and providing access to all 64 I/O pins, power rails, and dedicated analog channels. For prototyping, the breakout board offers an 80-pin connector compatible with development modules, including headers for all pins, a programming port, and power input options.

Programming Model

Built-in Spin Interpreter

The Spin programming language, developed by Chip Gracey for the Parallax microcontroller, is an object-oriented, event-driven language that facilitates multitasking through coroutines executed across the chip's multiple processor cores, known as cogs. Programs written in are compiled into by tools such as the Propeller Tool software, which generates tokens stored in the chip's shared hub RAM for runtime interpretation. This design enables high-level abstraction while leveraging the Propeller's parallel processing capabilities, allowing developers to define reusable objects that encapsulate methods, variables, and constants. In the original Propeller P1 chip (P8X32A), the Spin interpreter is embedded in the 32 main and automatically loaded into Cog 0's local during the boot sequence, occupying approximately 2 of that cog's 512-long (2 ) memory space. This -based interpreter, written in the low-level Propeller Assembly (PASM) language, fetches and executes Spin from , handling tasks such as calls, , and I/O operations within the dedicated . Only one runs the interpreter at a time per Spin task, though multiple cogs can execute independent Spin instances via explicit initialization, promoting efficient parallelism without OS overhead. In contrast, the Propeller P2 chip does not rely on a similar interpreter; instead, it supports Spin (as Spin2) compiled directly to native instructions executable alongside PASM code in any . Spin code is structured into distinct blocks that promote modularity and readability. The block declares constants, such as clock modes or pin assignments; the block instantiates other Spin objects for reuse; the block defines global variables; and the block contains public methods accessible from other objects, with PRI for private methods. I/O and timing operations are managed through specialized keywords, including WAITPEQ and WAITPNE for polling pin states until equality or inequality with a mask, and WAITCNT for precise delays based on the system counter, enabling deterministic event-driven behavior without busy-waiting. A representative example of Spin usage is a simple LED blink program that demonstrates multitasking by launching a in a separate using the COGINIT keyword. The main object initializes the interpreter in Cog 1 to run a private blink on pin 0:
CON
  _clkmode = xtal1 + pll16x
  _xinfreq = 80_000_000

PUB main
  coginit(1, @blink, 0)  ' Launch blink in [Cog](/page/Cog) 1 with no stack pointer

PRI blink | delay
  dira[0]~~              ' Set pin 0 as output
  repeat
    outa[0]~~            ' Turn LED on
    waitcnt(clkfreq + cnt) ' Delay 1 second
    outa[0]~             ' Turn LED off
    waitcnt(clkfreq + cnt) ' Delay 1 second
This code compiles to executed by the interpreter in the assigned , toggling the LED at 1 Hz while the main remains free for other tasks.

Alternative Language Support

The Parallax supports a range of alternative programming languages through community and officially backed compilers and interpreters, allowing developers to leverage established ecosystems while exploiting the device's multicore architecture. PropGCC serves as the primary C/C++ compiler for both the Propeller P1 and P2, porting the GNU Compiler Collection to generate PASM assembly code directly executable on the hardware. It includes propeller-specific libraries that provide subsets of libc functionality, such as standard I/O and math routines adapted for the limited RAM and COG-based parallelism. This enables efficient cross-compilation from host platforms like Windows, , or , with integration into the SimpleIDE environment for debugging and deployment. BASIC support is available via PropBASIC, a that translates BASIC syntax—familiar from Parallax's —into primarily for the P1, with ongoing community efforts toward P2 compatibility. Community-driven interpreters, such as those in retromachine projects, enable interactive execution but are constrained by the P1's 2 KB (512-long) COG RAM and 32 KB HUB RAM, limiting program complexity and runtime features compared to compiled approaches. Forth variants like Tachyon Forth and PropForth provide stack-based, interactive environments optimized for the Propeller's cogs, facilitating real-time development and parallel task distribution. Tachyon Forth, designed for embedded constraints, supports P1 and P2 with compile-as-you-type interactivity via serial terminals, trace debugging, and execution speeds under 100 ns per instruction on P2, making it suitable for rapid prototyping of multicore applications. PropForth adds features like multi-chip networking for expanded I/O and integration, running as a standalone Forth system across cogs. Additional options include Java bytecode execution through a PASM-implemented JVM for the P1, which utilizes multiple cogs—one for control, others for interpretation and peripherals—to achieve roughly twice the performance of prior Spin-based interpreters in benchmarks like computation, with up to 96 of code support via . Pascal runtimes, developed in early efforts such as the P4 compiler, offer with COG-local execution but remain less mature due to resource limitations. Modern tools like FastSpin provide compilation support for , , and across both P1 and P2 platforms.

Software Extensions and Tools

Virtual I/O Implementations

The Parallax employs its eight processor cores, referred to as , to implement virtual I/O peripherals through dedicated software . This allows individual cogs to execute tasks that mimic devices, such as generating precise timing for communication protocols or signal , thereby expanding the chip's I/O capabilities without relying on external components. By assigning a cog to a specific emulation routine, the can handle multiple virtual peripherals simultaneously, with the remaining cogs available for application processing, optimizing resource utilization in systems. In the Propeller 1 (P8X32A), common virtual I/O implementations include full-duplex serial objects that emulate multiple UARTs by using cogs for bit-level protocol handling, supporting baud rates up to 115200 without hardware assistance. Mouse and keyboard drivers, typically implemented as Spin objects, dedicate a cog to decode PS/2 serial data streams, enabling direct interfacing with standard input devices. Video outputs like VGA or are generated via cog-based drivers that manage pixel clocking and synchronization signals, producing resolutions such as 640x480 for VGA displays. SD card interfaces are emulated through software objects that orchestrate transactions across cogs, facilitating access for data logging or media storage. These examples are readily available in the Propeller Object Exchange () repository, a community-curated library of reusable Spin and PASM code modules. The Propeller 2 (P2X8C4M64P) enhances virtual I/O efficiency through its 64 pins, which offload protocol-specific tasks like clock generation and data serialization from the cogs, reducing CPU overhead in emulations. For instance, audio interfaces benefit from smart pin modes that autonomously handle bit streaming and , allowing a single cog to manage stereo output with minimal intervention while supporting sample rates up to 192 kHz. This capability extends to other protocols, enabling more sophisticated virtual peripherals, such as aggregated UARTs handling up to 16 Tx/Rx channels across multiple devices. continues to provide updated objects for P2, including enhanced drivers for the aforementioned peripherals, ensuring compatibility and modularity in development.

Development Environments

Propeller IDE is a cross-platform tool originally developed by that supports and PASM programming, along with code simulation and direct USB downloads to the device, though it is now community-maintained. For Windows users, the Propeller Tool provides a comprehensive with similar capabilities, including built-in support for both Propeller 1 and Propeller 2, emphasizing ease of compilation, loading, and basic simulation. Brad's Tool (BST), also officially hosted by Parallax, serves as a command-line suite for and , offering full syntax-compatible compilation and linking of and PASM code with Propeller loading functionality. Other official tools include SimpleIDE for C programming on Windows and , and BlocklyProp, a block-based that generates C code, suitable for educational use on Windows, , and Chromebook. For Propeller 2 development, Parallax has introduced specialized updates to its , including the PNut and , which handle Spin2 and PASM2 code generation for binary loading and execution. These tools integrate with via the Spin2 extension, providing , task automation for builds, and debugging workflows across Windows, , and platforms. Open-source alternatives enhance accessibility for hardware debugging and cross-platform workflows; FlexSpin, a community-maintained compiler, supports , , and languages for both Propeller variants, enabling binary outputs suitable for diverse build environments without proprietary dependencies. Community efforts have also extended to tools like Tools IDE, which incorporates features for 1 and 2 on multiple operating systems. As of 2024, open-sourced the PNut compiler, fostering further community enhancements to 2 tools.

Applications and Community

Dedicated Core Usage Patterns

In the , dedicated core () usage patterns leverage the multi-core architecture to assign individual cogs to specific, time-critical tasks, ensuring isolation from other processes and minimizing latency issues inherent in interrupt-based systems. This approach is particularly effective for operations, as the absence of interrupts allows each cog to execute independently without disruption, providing deterministic timing for applications requiring precise synchronization. Common patterns include allocating one cog per sensor polling task to continuously monitor inputs without affecting main program flow, such as detecting environmental changes in robotic systems. Similarly, motor control often employs a dedicated cog to generate PWM signals or manage stepper sequences, enabling smooth operation in applications like PID-controlled helicopters where timing precision is essential. Video generation follows this model, with a single cog handling NTSC or PAL output to produce stable displays, as seen in the TV_Text object that launches a dedicated cog for rendering text on composite video. In examples, such as the -based Boe-Bot, a dedicated manages audio processing for sound effects or playback alongside tasks, allowing execution of sensory and output functions without contention. For displays on the Propeller 1 (P1), the TV text output driver exemplifies this by confining video rendering to one , freeing others for or logic. These patterns extend , as multiple cogs can handle concurrent peripherals, reducing overall system complexity. On the Propeller 2 (P2), patterns evolve to exploit enhanced capabilities, such as dedicating cogs to parallel floating-point computations using native 32-bit IEEE-754 instructions available in each cog's instruction set, ideal for or simulations requiring simultaneous mathematical operations. Real-time USB hosting similarly benefits from a dedicated cog to monitor the bus and handle transactions, ensuring low-jitter communication in host applications like or interfacing. The advantages of these patterns include inherent deterministic timing due to the round-robin hub access and independent cog execution, which scales well for complex projects like retro computer emulators—such as or TMS9918A implementations—that distribute emulation components (e.g., CPU, video, and I/O) across s for full-speed performance without bottlenecks. This modularity supports reliable, low-latency behavior in systems, from hobbyist robots to .

Ongoing Developments

The Parallax community remains active through dedicated online and the (OBEX) repository, where developers share code objects, tools, and project examples for both Propeller 1 and 2 microcontrollers. In 2025, community engagement has been bolstered by regular Propeller Live Forum events hosted by Parallax, including sessions on September 10, August 13, October 8, and November 12, featuring discussions on programming tools, applications, and hardware support. These events often intersect with Parallax's educational initiatives, such as the micro:bit LIVE conference on November 6-7, which explores integrations between Propeller-based projects and for STEM applications. The 1 silicon design files were open-sourced in 2014 as and AHDL sources on , enabling developers to implement custom variants on FPGAs or explore hardware modifications. For the 2 (P2), ongoing firmware and tool enhancements have been highlighted in 2025 forums, with improvements to video output capabilities supporting high-resolution displays up to , as tested and discussed in community sessions. Additionally, the release of Multicore Module Revision B for 1, scheduled for December 2025, introduces hardware upgrades for better compatibility and performance in legacy designs. Parallax continues to emphasize education, with ongoing updates to kits integrating microcontrollers for and programming curricula, as showcased in EduChat sessions and events throughout 2025. Despite these advancements, the faces challenges from the dominance of ARM-based MCUs in mainstream embedded applications, which offer broader ecosystem support and higher integration. However, its niche strength in via multiple dedicated cores continues to attract developers for specialized tasks like control and , sustaining its role in hobbyist and educational niches.

References

  1. [1]
    Propeller - Parallax Inc
    Propeller Multicore Concept Propeller 1 Propeller 2 Customer Success. ... Parallax Inc. 599 Menlo Drive, Ste.100. Rocklin, CA 95765 USA Toll-free 888-512 ...Propeller 2Propeller 1
  2. [2]
    Propeller Multicore Concept - Parallax Inc
    Propeller Microcontroller Feature Comparisons ; Power, 3.3 V · 1.8 V Core, 3.3 V I/O ; Internal Oscillator, ~12 MHz or ~20 kHz, 20+ MHz or ~20 kHz ; Nominal System ...
  3. [3]
    Propeller 1 - Propeller OBEX
    The Propeller 1 (P8x32A) has been in production since 2006, while the Propeller 2 (P2X8C4M64P) is a 2020 release. Click here for more details! Join us at our ...
  4. [4]
    P8X32A Propeller Datasheet - Parallax Inc
    Multicore Specs · Language Quick Start · Spin2 · Flex C · FlexBASIC ... Propeller 1 · Robotics · RFID · Sensors. Support. Downloads · Forums ...
  5. [5]
    Propeller 1 Open Source - Parallax Inc
    The Propeller 1 (P8X32A) is now a 100% open multicore microcontroller, including all of the hardware and tools: Verilog code; Spin interpreter ...
  6. [6]
    Propeller 2
    The Propeller 1 (P8x32A) has been in production since 2006, while the Propeller 2 (P2X8C4M64P) is a 2020 release. Click here for more details! Join us at our ...
  7. [7]
    Propeller 2 P2X8C4M64P Multicore Microcontroller Chip - Parallax Inc
    In stockPropeller 2 P2X8C4M64P Specifications: · 512 KB of contiguous RAM in a 20-bit address space · 32-bits-per-clock sequential read/write for all cogs, simultaneously ...
  8. [8]
    Propeller 2 - Parallax Inc
    P2X8C4M64P Specifications Overview · 512 KB of contiguous RAM in a 20-bit address space · 32-bit, pipelined CORDIC solver with scale-factor correction · 16 ...
  9. [9]
    Propeller 2 Documentation - Parallax Inc
    We maintain a collection of P2 Quick Bytes that demonstrate features, tools, communication protocols and applications.
  10. [10]
    Our Story - Parallax Inc
    In 2006 Parallax released the Propeller 1 Multicore Microcontroller, a full-custom design fabricated by Austra Microsystems. With this experience, we undertook ...Missing: P8X32A | Show results with:P8X32A
  11. [11]
    Propeller 1 Chip - 40-Pin DIP Chip - Parallax Inc
    In stockThis Propeller 1 Chip is the P8X32A-D40 40-pin DIP, a multicore microcontroller programmable in Spin and C as well as a low-level Propeller assembly ...
  12. [12]
    Propeller 1 design and example files to be run on FPGA boards.
    The Propeller 1 Design is a collection of Verilog and AHDL source files that describes the hardware of the Parallax Propeller 1 microcontroller. ... 08/06/2014 - ...
  13. [13]
    Propeller 1 - Parallax Inc
    The Propeller P8X32A is available as a 40-pin DIP chip for prototyping, and a 44-pin QFP package for volume manufacturing.
  14. [14]
  15. [15]
    PLX-DAQ Updated For Excel/Windows 10 And Propeller 2 Early ...
    Jun 23, 2020 · Parallax has planned the formal release of the Propeller 2 in Q4, 2020. Until then, we're running the Propeller 2 Live Forum – Early Adopter ...
  16. [16]
    Propeller 2 P2X8C4M64P Datasheet - Parallax Inc
    Nov 3, 2022 · Propeller 2 P2X8C4M64P Datasheet, for the P2 Multicore Microcontroller created by Chip Gracey of Parallax, Inc.
  17. [17]
    None
    ### Summary of Multi-Core Architecture in Parallax Propeller P8X32A Datasheet
  18. [18]
    Front Page - Propeller 2 Online Documentation
    The Propeller 2 is a high-performance microcontroller developed and sold by Parallax Inc. It features 8 symmetric CPU+Memory+I/O cores (called "Cogs") ...Missing: multi- | Show results with:multi-
  19. [19]
    Chip's instruction table - Propeller 2 Online Documentation
    ### Summary of Propeller 2 Cog Launching, Interrupts, Hub Access Latency, and Arbitration
  20. [20]
    None
    Summary of each segment:
  21. [21]
    [PDF] Propeller P8X32A Datasheet
    Dec 9, 2008 · Introduction. The Propeller chip is designed to provide high-speed processing for embedded systems while maintaining low current.Missing: Gracey 2006
  22. [22]
    [PDF] P2 Edge Module (#P2-EC) Product Guide
    The Propeller 2 has 8 independent processor cogs, 512 KB of shared hub RAM, and 64 Smart I/O pins. See the Propeller 2 documentation section of ​www.parallax. ...
  23. [23]
    [PDF] Propeller P8X32A Datasheet
    Nov 14, 2007 · If no EEPROM was detected, the boot loader stops, Cog 0 is terminated, the Propeller chip goes into shutdown mode, and all I/O pins are set to ...
  24. [24]
    [PDF] AN001: Propeller P8X32A Counters v2.0 - Parallax Forums
    Abstract: Each of the multicore P8X32A's eight processors (cogs) has two independent hardware counter modules. Each counter is a configurable state machine ...
  25. [25]
    [PDF] Propeller Manual
    ... Chip Gracey and the entire Parallax. Engineering Team. This book is intended to be a complete reference guide to Propeller chips and their programming ...<|control11|><|separator|>
  26. [26]
    None
    ### Summary of I/O Pins and Packages for Propeller™ P8X32A
  27. [27]
    Propeller 1 Hardware - Parallax Inc
    The Propeller chip can run on its own with a 3.3-volt power supply, internal clock, and with its internal RAM for code storage. Add an external EEPROM for non- ...
  28. [28]
    P2 Edge Breakout Board - Parallax
    The P2 Edge Breakout Board provides a compact interface to the P2 Edge Module for experimenting and developing with the Propeller 2 multicore microcontroller.
  29. [29]
    Spin Language - Parallax Inc
    Spin objects are built from six special-purpose blocks: CON, VAR, OBJ, PUB, PRI, and DAT. CON and VAR are for declaring constants and variables, respectively.
  30. [30]
    [PDF] Propeller Datasheet Version 1.2 - ELMICRO Computer
    If no host communication was detected, the Boot. Loader looks for an external 32 KB EEPROM on pins P28 and P29. If an EEPROM is detected, the entire 32 KB data ...
  31. [31]
    [PDF] Programming the Parallax Propeller using Machine Language
    Aug 21, 2007 · Remember, you have. 8 of those COGs and the COG-memory is RAM, so it can be reloaded! Furthermore, we have 32-bit instructions, giving them much ...
  32. [32]
    An Introduction to the Parallax Propeller 2 - | Nuts & Volts Magazine
    The P2 is flexible, powerful, and hides nothing from those wanting to explore. Give it a look, then give it a try. You'll have fun with the P2 and have a great ...
  33. [33]
    [PDF] Propeller Quick Reference Guide
    The first hub instruction in a sequence will take 0 to 15 clocks to sync and. 7 clocks afterwards to execute; 0+7 to 15+7 = 7 to 22 clock cycles. After that ...
  34. [34]
    Propeller SPIN Blink an LED - Parallax Forums
    Oct 29, 2017 · If you want to experiment with assembly, a minimal Spin program to start it would be: PUB main COGINIT(COGID,@start,0) {The 0 gets put in ...How am I supposed to use COGINIT in SPIN2 to control multiple ...Propeller Assembly for beginners - Parallax ForumsMore results from forums.parallax.com
  35. [35]
    propgcc A Port of GCC to the Parallax Propeller
    This is a project for the port of GCC (the GNU Compiler Collection) to the Parallax Propeller. Please use the Makefile to build Propeller GCC.
  36. [36]
    PropBASIC - developer.parallax.com
    PropBasic is a BASIC compiler for the Parallax(c) Propeller microcontroller. It translates program code written in the BASIC computer language into Propeller ...
  37. [37]
    Welcome to the Propeller BASIC code category! - Parallax Forums
    Dec 9, 2021 · The category for all varieties of BASIC used with the Parallax Propeller 1 and 2. Supported by the Parallax community.A retromachine Basic interpreter [beta]BASIC interpreter for propeller?More results from forums.parallax.com
  38. [38]
    Tachyon Forth download | SourceForge.net
    Feb 19, 2024 · Tachyon was originally developed for the Parallax Propeller 8-core MCU because I need to do more and faster, and within the the limited ...
  39. [39]
    PropForth
    PropForth is a new-ish version of Forth for the Parallax Propeller, different from PropellerForth, and supports multi-prop chips.
  40. [40]
    Propeller JVM Project: PASM Java VM
    ### Summary of Propeller JVM Project: PASM Java VM
  41. [41]
    Homespun Spin compiler 0.31: Now open source ... - Parallax Forums
    I know hippy did some early work on a pascal compiler/runtime for the prop. I wonder how hard it would be do build a limited pascal parser (that is easy) that ...
  42. [42]
    I2S interfacing with the Prop2 - Parallax Forums
    Jan 13, 2019 · I've been looking at using Smartpins to generate I2S bus signals (initially for a DAC using synchronous serial tx).P2 I2S & S/PDIF audio (was Adjacent pin question and clock ...New HW project - P2 Bull Ant - Parallax ForumsMore results from forums.parallax.comMissing: virtual O emulation
  43. [43]
    An easy-to-use, cross-platform IDE for the Parallax Propeller - GitHub
    PropellerIDE is a fun, easy, beautiful editor for the Propeller microcontroller. Features Documentation The PropellerIDE manual is available online and print ...
  44. [44]
    Propeller Tool Software For Windows (Spin/PASM For P1/P2)
    May 9, 2023 · Software programming the Propeller 1 & 2 (P8X32A & P2X8C4M64P) in Spin and Assembly languages. The Propeller Tool includes the programming ...
  45. [45]
    Brad's Spin Tool (BST) For Propeller For MacLinux - Parallax Inc
    Oct 14, 2020 · Brad's Spin Tool (BST) for Propeller for MacLinux. [featured_image]. Download. Version; Download 1672; File Size 607.61 KB; File Count 1; Create ...
  46. [46]
    Propeller 2 PNut-TS Compiler And Spin2 Open Source Release Plan
    Aug 13, 2024 · By the end of August, Parallax will officially release the Propeller 2 PNut-TS (PNut TypeScript) open-source compiler.
  47. [47]
    Spin2 - Visual Studio Marketplace
    All features provided by this extension support both the Parallax Propeller 1 and Propeller 2 languages: Spin and Pasm. ... CON, OBJ, VAR, DAT, PUB, PRI; Section ...
  48. [48]
    totalspectrum/flexprop: Simple GUI for Propeller development (both ...
    FlexProp is a simple GUI for creating applications on the Parallax Propeller 2 (or 1), using assembler, Spin, BASIC or C. It consists of a very plain front ...<|control11|><|separator|>
  49. [49]
    Spin Tools IDE - MaccaSoft
    The Spin Tools IDE is a development environment for the Parallax Propeller 1 and 2 multicore microcontrollers.<|control11|><|separator|>
  50. [50]
    Configuring Visual Studio Code For Programming The P2 On Mac ...
    Mar 14, 2021 · To configure VSC for P2, install VSC, the Spin2 extension, and either PNut or FlexProp. Install the Spin2 extension, and set up tasks.json.
  51. [51]
    [PDF] Propeller Manual Version 1.1 - ELMICRO Computer
    These forums are accessible at forums.parallax.com: •. Propeller chip – This list is specifically for our customers using Propeller chips and products. •. BASIC ...<|control11|><|separator|>
  52. [52]
    [PDF] Parallax Propeller 2 Documentation v35 - Rev B/C Silicon
    Jan 30, 2021 · Each cog has its own RAM and can start, stop, and execute instructions independently of one another. All active cogs share the same system clock ...
  53. [53]
    [PDF] PID Control of a Lab Scale Single-Rotor Helicopter System using a ...
    ... dedicated cog. A single cog is dedicated ... [13] Parallax Inc., "Parallax Propeller: The electronics industry with highquality robotics and revolutionary.
  54. [54]
    Video Generation - Parallax Inc
    Each of the Propeller chip's 8 cogs has its own video generator hardware that transmits 32-bit chunks of video image data at a configurable rate.
  55. [55]
  56. [56]
    P2 Hosted USB Keyboard/Mouse - Page 5 - Parallax Forums
    May 17, 2019 · I think the core USB transaction mechanism will always need its own cog, as the host must continuously monitor the bus along with the ...
  57. [57]
    Parallax Propeller Atari 2600 Emulator - Michael Kohn
    I was looking for an idea for a cool Parallax Propeller project to work on and I figured I'd try out an Atari 2600 emulator. This chip seems like a good ...
  58. [58]
    TMS9918A Emulator for Parallax Propeller 2 - MaccaSoft
    Apr 21, 2021 · TMS9918A Video Display Processor Emulator for Parallax Propeller 2 microcontroller ... All using a single COG (core). In practice it could ...
  59. [59]
    Propeller OBEX – Object exchange for the Propeller 1 ... - Parallax Inc
    OBEX is an object exchange for Propeller 1 and 2 microcontrollers, with a repository for free libraries.Missing: mouse keyboard
  60. [60]
    Propeller Live Forum - September 10, 2025 - YouTube
    Sep 10, 2025 · ... Housekeeping 2:45 P3! Platinum Platform 12:07 Questions about P3! 26:58 General Questions 33:55 Updates ... parallax propeller chip assembly ...Missing: tools | Show results with:tools
  61. [61]
    Propeller Live Forum - August 13, 2025 - YouTube
    Aug 18, 2025 · Propeller Live Forum - August 13, 2025. 187 views · 2 weeks ago ... Parallax Inc.•319 views · 47:22 · Go to channel · The Genius Device That ...Missing: development tools<|control11|><|separator|>
  62. [62]
    Propeller Live Forum – October 8th 2025 - Parallax Inc
    Propeller Live Forum – October 8th 2025 ... Join this open discussion about the Propeller 1 and Propeller 2 multicore microcontrollers. Topics will explore ...
  63. [63]
    News & Blog - Parallax Inc
    Propeller Live Forum – November 12th 2025 · Aristides Alvarez August 27, 2025. Discussion, Support, and Projects with Propeller 1 and 2 Multicore ...
  64. [64]
    Micro:bit LIVE California November 6-7th - Attend, Present, And ...
    micro:bit LIVE California is November 6-7, 2025! Hosted at Parallax headquarters in Rocklin, California, this two-day event brings together educators, ...Missing: integration | Show results with:integration
  65. [65]
    Parallax Propeller 1 Goes Open Source - Hackaday
    Aug 7, 2014 · Designed by [Chip Gracey] and released in 2006, the 32-bit octal core Propeller has built up a loyal fan base.
  66. [66]
    Propeller 2 Live Forum - Open learning and support (topics ...
    Jun 10, 2020 · The headline says it supports 4K but the specs say otherwise. How far have you tested it, Chip? And what about non-spec'd lower resolutions? eg: ...
  67. [67]
  68. [68]
    P3 Propeller Platinum Platform Is A Modular Development System ...
    Oct 12, 2021 · The Propeller Platinum Platform includes four “Smart Slots” with eight dedicated P2 pins and eight P2 pins common to all slots with a hardware watchdog pin.Missing: AI accelerators
  69. [69]
    Parallax EduChat January 2025 Video Posted
    Jan 23, 2025 · MakeCode cyber:bot Block Programming Tutorials; Learn.parallax.com web site updates; Tips for teaching with Parallax; micro:bit V3 Python Editor ...
  70. [70]
    Education Kits - Parallax Inc
    4.9 11 Education Kits. Products; Events; Pages; Downloads; Articles. Products, Events ... Propeller 2 · Propeller 1 · Robotics · RFID · Sensors. Support. Downloads ...Missing: 2025 | Show results with:2025
  71. [71]
    Parallax Propeller 2 - EEVblog
    Apr 21, 2021 · The P2, like the P1 before it, is a quirky, non-mainstream MCU that's unlikely to derail the ARM juggernaut.Missing: arbitration latency deeper pipelines
  72. [72]
    Parallax Propeller, why is it so overlooked? - element14 Community
    The parallax propeller is a 32bit 8 core micro. It is what I learned to electronics/embedded coding with! Its basically like having 8 AVR chips in one and ...