P2 Links for where to obtain Tools & Sample/Test Code (reference only)
Cluso99
Posts: 18,069
I have created this reference thread just for links of where to obtain tools and sample/test code for the P2.
Please...
* Only a single post for each piece/group of code
* Place a bold underlined heading at the top of your post for the name of your code
* Place a link of where your code can be obtained
* Describe your code
Note: Please, no discussions about the code here. It is just for links to where your code can be obtained, a description (one post in length), and maybe a thread where it is discussed.
Remember, you can edit changes to your post here, including links. The main objective is for a single place to go to find out where code may be obtained.
@ersmith: Could you please add your spin2gui and fastspin etc links etc here? (this is what prompted me to start his thread)
@Chip: Would you like to add a link to pnut etc (otherwise I will do it)
@Peter: TAQOZ link(s) please
Please...
* Only a single post for each piece/group of code
* Place a bold underlined heading at the top of your post for the name of your code
* Place a link of where your code can be obtained
* Describe your code
Note: Please, no discussions about the code here. It is just for links to where your code can be obtained, a description (one post in length), and maybe a thread where it is discussed.
Remember, you can edit changes to your post here, including links. The main objective is for a single place to go to find out where code may be obtained.
@ersmith: Could you please add your spin2gui and fastspin etc links etc here? (this is what prompted me to start his thread)
@Chip: Would you like to add a link to pnut etc (otherwise I will do it)
@Peter: TAQOZ link(s) please
Comments
forums.parallax.com/discussion/169465/parallax-p2-eval-p2es-chip-pcb-demo-code/p1
Demo code for the P2-EVAL pcb is posted in the referenced thread.
forums.parallax.com/discussion/comment/1459168/#Comment_1459168
Describes what to use in the CON section to make it easy for you to change and the bitmap will be created by the compiler. Use the code in the DAT section to invoke the setting.
Server: http://david.zemon.name:8111/?guest=1
On this page you will find precompiled downloads for a variety of Parallax-related software and tools. This includes, but is not limited to: PropGCC, Spin2GUI, Spin2Cpp, Propeller Load, PropLoader, p2gcc, and OpenSpin. If you're looking for something different, please bring it up in the forum thread below and I'll see what I can do to make it happen.
Note that you will not find the source code on this server. See the other posts in this thread if you're looking for the source code. This CI server is for compiled/installable packages, not source code.
Discussion Thread: https://forums.parallax.com/discussion/169383/unofficial-parallax-continuous-integration-build-server
fastspin (command line tool used by spin2gui; it's already included in spin2gui, so only get this if you don't want spin2gui for some reason): https://github.com/totalspectrum/spin2cpp/releases
http://forums.parallax.com/discussion/169259/spinedit-editor-for-spin-spin2-and-fastbasic/p1
It has the same look as Propeller Tool with P2 syntax highlighting.
Can also edit and load P1 Spin with several different compilers and FastBasic for P1 or P2.
The editor also works on a Mac using Wine. (There is currently an issue loading large files, but small files can load on Mac).
nix is a package manager that doesn't pollute your existing OS and works on ANY linux distribution.
Link forums.parallax.com/discussion/169589/p2-tooling-installation-via-nix-for-anylinux-any-linux-distribution/
IMAGES
* TAQOZ 1V1 P2D2 SD BOOT IMAGE - includes EXTEND etc.
* TAQOZ 1V1 P2-ES SD BOOT IMAGE - includes EXTEND etc.
* ROM SOURCE - V32i 2018-05-30 for TAQOZ V1.0 + Chip's booter + Cluso99's SD booter and debugger
* MY P2 DROPBOX - everything + documentation + the kitchen sink (including unwashed dishes)
DOCUMENTATION
* INTRODUCTION TO TAQOZ
* UNOFFICIAL P2 SHORTFORM DATASHEET - A simple 4 page landscape datasheet with the basic info and pinout etc.
TOOLS
* P2GCC SOURCE - includes p2asm and loadp2
Design changes coming in next silicon revision - https://forums.parallax.com/discussion/169282/list-of-changes-in-next-p2-silicon/p1
Basically a nice place for all demo and example code, but not used yet much except from Parallax.
Accessory Boards Documentation https://docs.google.com/document/d/1FTGV1Mn1hwayEaKut5Ej6vmWdjirVlP9TQqyA0wRs34/edit
Enjoy!
Mike
can´t find the corresponding latest documentation ...
Some hints can be gleaned from FPGA changes list - https://forums.parallax.com/discussion/169695/new-fpga-files-for-next-silicon-version-5th-final-release-contains-new-rom/p1
forums.parallax.com/discussion/170068/visual-studio-code-editor-for-p1-p2-spin-pasm#latest
Here is a link to them
https://docs.google.com/document/d/1UnelI6fpVPHFISQ9vpLzOVa8oUghxpI6UpkXVsYgBEQ/edit
And the P2 Developer Site. All sorts of P2 goodies here, and links...
https://propeller.parallax.com/
fastspin: PASM, Spin, BASIC, and C compiler for P2
https://github.com/totalspectrum/spin2cpp/releases
spin2gui: simple GUI for fastspin
https://github.com/totalspectrum/spin2gui/releases
loadp2: a binary or ELF loader for P2 (originally written by Dave Hein):
https://github.com/totalspectrum/loadp2/releases
Instructions for converting a RISC-V toolchain into a P2 one:
https://github.com/totalspectrum/riscvp2
Just In Time compiler toolkit for P2:
https://github.com/totalspectrum/p2-jit-tools
ZOG: XBYTE based ZPU emulator for P2:
https://github.com/totalspectrum/zog
Source code: https://github.com/totalspectrum/micropython
Binaries: see the first post in the "Micropython for P2" thread
https://forums.parallax.com/discussion/169862/micropython-for-p2/p1
Garry J's USB sources - https://forums.parallax.com/discussion/170149/p2-hosted-usb-keyboard-mouse/p1
For engineering sample silicon
DVI 640x480 precalculated line forums.parallax.com/discussion/comment/1450905/#Comment_1450905
DVI 640x480 grayscale bitmapped (rose.gray is in this post) forums.parallax.com/discussion/comment/1463361/#Comment_1463361
HDMI 720p24 with null data island and guard bands for HDMI
Needs image file from above. If you want to adjust resolution or timing, this one might be best.
https://forums.parallax.com/discussion/comment/1475344/#Comment_1475344
For v2 silicon with hardware TMDS encoder
DVI 640x480 color bitmapped forums.parallax.com/discussion/comment/1475075/#Comment_1475075
DVI 720p24 color bitmapped forums.parallax.com/discussion/comment/1475209/#Comment_1475209
DVI 720p24 color bitmapped with resize forums.parallax.com/discussion/comment/1475226/#Comment_1475226
Image file for above https://forums.parallax.com/discussion/comment/1459439/#Comment_1459439
1080p60 color bitmapped, for new siliconforums.parallax.com/discussion/comment/1475170/#Comment_1475170
The above modified for ES silicon. I'm not sure where to put it right now.
Rayman's picture https://forums.parallax.com/discussion/comment/1459439/#Comment_1459439
Documentation on the XORO32 instruction - https://forums.parallax.com/discussion/168188/xoroshiro-random-number-generator/p1
Added 31-1-2020:
I've written a couple of assistant docs to go with the I/O section in Chip's google doc. First one covers the config bits for custom pin modes, largely independent of smartpins. I know it probably also needs more verbose descriptions for each mode. Let me know if it helps - https://forums.parallax.com/discussion/comment/1452036/#Comment_1452036
The other one is re-labelling the smartpin counter modes with categories - https://forums.parallax.com/discussion/comment/1482243/#Comment_1482243
I also had a shot at making a block diagram of the I/O function blocks - https://forums.parallax.com/discussion/comment/1473762/#Comment_1473762
And I've roughly documented the ADC bitstream modulator (in pin pad), and associated SINC3 sampler (in smartpin). Neither are entirely accurate to the Prop2 so just use them as educational guides - https://forums.parallax.com/discussion/comment/1484327/#Comment_1484327
Added 10-5-2020:
Rayman reworked the block diagram - https://forums.parallax.com/discussion/171420/smartpin-diagram/p1
And I made some estimated schematics of the interface logic to the custom pad ring - https://forums.parallax.com/discussion/comment/1495168/#Comment_1495168
Added 14-8-2022:
The ADC hardware uses a virtual ground and current balancing. This results in a measurable current in the front-end input pin that will impact a high-impedance signal. If you are after a super high impedance, albeit very slow, ADC then there is an option in the Prop2 pins still. The internal comparators, with some software, can be turned into successive approximation register ADCs - https://forums.parallax.com/discussion/174441/measuring-floating-pin-voltage-adc-from-just-the-built-in-comparator/p1
Added 5 July 2020
Links to die sizings and related - https://forums.parallax.com/discussion/comment/1412469/#Comment_1412469 (2016 and later, well before revA settling - lutRAM is still single-ported)
http://forums.parallax.com/discussion/167451/logic-too-big/p1 (Oct 2017)
Transistor count - https://forums.parallax.com/discussion/comment/1475474/#Comment_1475474 (Aug 2019)
Power consumption testing - https://forums.parallax.com/discussion/comment/1482622/#Comment_1482622 (Sep and Nov 2019)
More accurate results in Sep 2021 with precise measuring of 5V input to board rather than inline VDD (which interferes with voltage) - https://forums.parallax.com/discussion/comment/1528465/#Comment_1528465
Added 20 November 2024 The hubRAM read errors vs PLL self-limit graph - https://forums.parallax.com/discussion/comment/1551043/#Comment_1551043
RevC early milestone (before the Covid-19 impact) - https://forums.parallax.com/discussion/comment/1487375/#Comment_1487375 (Jan 2020)
Added 7 September 2021
I/O Pin schematic - https://forums.parallax.com/discussion/comment/1494131/#Comment_1494131
PLL schematic - https://forums.parallax.com/discussion/comment/1393213/#Comment_1393213 and https://forums.parallax.com/discussion/comment/1433409/#Comment_1433409
ADC schematic - https://forums.parallax.com/discussion/comment/1510744/#Comment_1510744
Added 15 July 2023
Pin output drive - https://forums.parallax.com/discussion/comment/1524494/#Comment_1524494
ROM Code Listing (files attached)
Rev-1 silicon: ROM_Booter.lst
Rev-2 silicon: rom_booter_v33_01j.lst
SD Boot code
forums.parallax.com/discussion/170637/p2-sd-boot-code-rev-2-silicon#latest
Monitor/Debugger
http://forums.parallax.com/discussion/170638/p2-rom-monitor-debugger-rev-1-rev-2-silicon#latest
TAQOZ
http://forums.parallax.com/discussion/167868/taqoz-tachyon-forth-for-the-p2-boot-rom/p1
https://sourceforge.net/projects/catalina-c/
An ANSI C compiler for the Propeller 1 and Propeller 2. Supported on Windows and Linux.
https://github.com/avsa242/p2-spin-standard-library
spin2-variant of the spin-standard-library, which was started for the P1 years back: It aims to be a library of standardized drivers and objects, such that each object would operate the same as others in the same "class" (i.e., all 'sensor.imu' objects would have the same API, whether it's an LSM9DS1, MPU9250, etc)
API descriptions: https://github.com/avsa242/p2-spin-standard-library/tree/testing/api
NOTE: The testing (default) branch has the most up-to-date drivers.
Generally requires latest FlexSpin to build objects, out of the box.
Basics:
* Char/String handling: Floats, Integers, String types, Char types
* Smart pins: Smart pin named constants
* Math: CRC routines, unsigned 64bit int math, basic trig (int): Sine, Cosine, RNGs, log2
Current list of added drivers:
* Audio: Smart-pin-based ADC for mics, DAC for speakers/headphones, MAX9744
* Barometric pressure/altitude: LPS25, MPL3115A2
* Comm. engines: UART/Serial (smart-pin and bit-banged variants), I2C (bit-banged, 1MHz), SPI (bit-banged ~6MHz modes 0..3, Smart-pin 20MHz+ (mode 0 only)), OneWire (bit-banged, multi-drop capable)
* Displays: HT16K33, SSD130x, SSD1331, SSD1351, ST7735R, US2066, VGA-text, QVGA bitmap, HD44780 (i2c, serial: Parallax #27977, #27979), Charlieplexed LED, ILI9341, Smart-LED (Neopixels or similar), IL3897, IL3820, HUB75, SSD1322, BT81x EVE
(All of the dot-matrix/graphical type drivers integrate a reusable 2D Bitmap graphics lib as well as a terminal lib that provides the common Bin(), Dec(), Hex(), Str(), Printf(), etc methods. The alphanumeric ones integrate just the terminal lib)
* Environmental: SGP30 (IAQ), SCD30 (CO2), SCD4x (CO2), PMSA003i (particulates)
* Identification: DS28CM00
* IMU/motion: ADXL345, FXOS8700, ICM20649, L3G4200D, L3GD20H, LIS3DH, LSM303DLHC, LSM9DS1, MPU9250, MMA7455, MMA8452, FXAS21002, MPU6050
* Input: Waveshare UART Fingerprint scanner (Parallax #29126), PAJ7620U2 gesture sensor, USB Keyboard/Mouse, BBQ20KBD, Grove mini trackball (i2c)
* I/O: PCF8574
* Light/color/UV sensors: APDS9960, TCS347x, TSL2591, VCNL4200, VEML6075, VEML7700, SI114x
* Memory: 23xxxx SRAM, 24xxxx EEPROM, 25xxxx Flash (e.g., W25Qxxx), 85xxxx FRAM
* Networking: ENC28J60, LAN8720
* Power sensors: INA219, INA260, INA1x9, BM14270
* RF Transceivers: nRF24L01+, SX1276/LoRa, CC1101, CC2500, SX1231, HMxx (BLE)
* Signal acquisition: ADS1115, ADC083x, MCP3x0x, AD799x
* Temperature/Humidity: DS18B20, HTU21D, MCP9808, SHT3x, SHT4x, SHTC3, Si7021, LM75, AHT20, TMP3x
* Temperature (contactless/thermal imaging):MLX90614, MLX90621
* Thermocouple amp: MAX31856
* Timekeeping/RTC: Emulated (entirely "on-P2") RTC object, DS3231, PCF8563, RV3028
Jun 21, 2021: Added L3G4200D, HTU21D, 23xxxx SRAM, 24xxxx EEPROM, 85xxxx FRAM, ADS1115, and missing math section
EDIT: Feb 27, 2024: Fixed link to P2 API docs on github, updated drivers
I have taken the XLS files to a more readable letter size for my desk reference. Included are:
*Native by Chips's numbering system
*By ASM Alpha
*By Group Type
Enjoy.