Get the Latest Learn Folder
More examples and libraries get added to the Learn folder all the time. So make sure to
download the latest before getting started. Just go to:
___http://learn.parallax.com/propeller-c-set-simpleide/update-your-learn-folder.
From there, just follow the instructions with red checkmarks. Then, you'll be equipped with latest example programs and libraries for use with the tutorials on:
___http://learn.parallax.com/propeller-c-tutorials.
For more info on the Propeller C Education program, go here:
___http://learn.parallax.com/propeller-c.
For info on this Learn folder's Simple Libraries, go here: Simple Libraries Folder Index
For library core/cog and EEPROM usage info, go here: Simple Library Core and EEPROM Usage
Typos, comments, or suggestions? Email:
learn@parallax.com.
Update History
Update 5/27/2021 Simple Libraries v1.4.155
- Tagged release version.
- Modify ActivityBot360 code examples for compatibility with updates to learn.parallax.com.
Update 3/2/2020 Simple Libraries v1.4.153
- Tagged release version.
- Update lis3dh library with ADC calibration and tilt functions.
Update 2/3/2020 Simple Libraries v1.4.145
Update 2/3/2020 v1.4.144
- Update HTML docs at root of learn folder (this one included).
Update 2/3/2020 v1.4.143
- Remove residual development files that were in demo branch but are not needed by SimpleIDE users.
Update 2/3/2020 v1.4.140
- Add libraries and example programs for the LIS3DH 3-axis accelerometer.
Update 7/2/2019 Simple Libraries v1.4.137
- Example programs for new libraries: ePaper (il3820.h with simplegfx.h support)
and environmental sensing (bme680.h).
- simplegfx library - New, provides text and graphics features for a variety of displays.
Compatible with multiple displays in a single application.
- il3820 library - New for controlling the 296 x 128 2.9 inch ePaper Display (#28084).
Compatible with the simplegfx library.
- ssd1331 library - A new alternative to the oledc library that is compatible with the
simplegfx library.
- bme680 library - New for the BME680 Sensor (#28061), measuring temperature, humidity,
barometric pressure, and VOCs.
- oledc library - Add fast remap function named remapColor888to565.
- abdrive360 library - Add drive_suppress_eeprom function to allow ActivityBot 360°
applications to temporarily operate with servo I/O pins that are different from the ones
stored in the calibration settings.
- gps library - Add functions for determining GPS unit's talker ID.
The rest of the items in this 7/2/2019 list are library adjustments for reliability.
They do not change the way you will write your programs.
- wifi library - Fix bug that allowed the library to change the direction of P0
to output without warning.
- ws2812 library for RGB LEDs - Adjust initialization constants to improve signal
timing. These constants address offsets in the driver code signal timing
and were determined through trial and error measurements with an oscilloscope. When the
driver code is updated, the initialization constants will have to be changed again.
- abcalibrate360 library for the ActivityBot 360° - Increase ceiling speed during
calibration by a small amount. This ceiling speed is used in in the calibration's
self-diagnostic routines to detect if a custom battery pack is in use that might
have a supply voltage level that is too high.
Update 11/5/2018
- Add ActivityBot 360 IR distance detection and robot following examples.
- Add pwm2ch library and example.
- Add dac2ch library and example.
Update 10/19/2018
- Add servo360_setAngleCalc to servo360 library.
Update 10/2/2018
- Library update to servo360 prevents Parallaxy from getting stuck against walls.
- Add WX to WX communication to Examples | Network | WiFi.
- Add I2C Slave IO Expander to Examples | Protocols.
Update 9/21/2018
- Add i2cslave library.
- Remove caveats from talk_run and add talk_setVolume for global volume.
Update 9/7/2018
- Add Parallaxy calibrate and firmware to examples
- Update lcdParallel library
- Improve ActivityBot 360 calibration
- Update wavplayer to support I/O other than P26 & P27
- Add badgewxtools library
Update 7/31/2018
- Add pin setting function to the wavplayer library
- Add lcdParallel library
- Improve calibration function in the LSM9DS1 IMU library
Update 7/6/2018
-
Update wifi_print(TCP... code, wifi_scan(TCP... docs, and the Temperature with OpenWeatherMap example in the
...Documents/SimpleIDE/Learn/Network/WiFi/ folder.
Update 5/14/2018
-
Add to simpletools library: constrainInt, constrainFloat, mapInt, mapFloat,
and random.
-
Update abcalibrate360 library's diagnostics.
-
Add configurable transmit end characters to simpletext library with
set_endChars and set_endCharSequence. Default end character sequence
is \r.
Update 1/6/2018
-
servo360/abdrive360/abdrive documentation adjustments
-
Return blocking behavior to drive_ramp in abdrive360/abdrive.
-
Correct servo360 behavior when drive_goto is called after drive_speed.
-
S3 library updates.
-
dht22 library updates.
-
Add rx-only support to fdserial library.
Update 12/18/2017
-
Add API docs for abdrive360, servo360, abcalibrate360.
Update 10/31/2017
-
Add servo360 library to ...Learn/Simple Libraries/Motor
-
Add abdrive360 library to ...Learn/Simple Libraries/Robotics
-
Add servo360 examples folder to ...Learn/Examples/Devices/Motor/
-
Add ActivityBot360 examples folder to ...Learn/Examples/Robotics/
-
Add 1 ms pause to ping function
Update 7/13/2017
-
Add Wi-Fi module examples and library. The examples are located in:
.../Documents/SimpleIDE/Learn/Examples/Network/WiFi/
The library is located in:
.../Documents/SimpleIDE/Learn/Simple Libraries/Network/libwifi/
-
Add S3 library. The library is located in:
.../Documents/SimpleIDE/Learn/Simple Libraries/Robotics/S3/libs3/
-
Add fingerprint scanner examples and library. The examples are located in:
.../Documents/SimpleIDE/Learn/Examples/Devices/Sensor/Fingerprint Scanner/
The library is located in:
.../Documents/SimpleIDE/Learn/Simple Libraries/Sensor/libfingerprint/
-
Update box function in badgetools for better performance in oOED display.
-
Remove some duplicate files.
Update 6/12/2017
-
Prevent abdrive library control system from getting disoriented
after a stall condition by preventing calculated distance from getting too
far ahead of actual distance.
-
New abdrive library function drive_setErrorLimit(int maxDistDiffTicks)
for configuring how far ahead of the measured distance the calculated
distance is allowed to get. The twitch response after a stall is
released gets smaller with smaller values, but the acceleration may
also get dampened. For now, the default is 10 ticks. Opinions on
values for best performance would be appreciated.
-
Remove ActivityBot example programs that demonstrate setting trim, which
is no longer supported by the abdrive library.
Update 6/2/2017
-
Increase max pause function value from 26,843 ms to 2,147,483,648 ms.
-
Add keypad_getNumber and keypad_getNumberEndKey functions to keypad
library.
-
Modify, expand, and move Matrix Keypad folder example programs to
...Learn/Examples/Devices/Interface.
Update 6/1/2017
-
Add /Interface/libkeypad to Simple Libraries.
-
Add Matrix Keypad folder with example programs to
...Learn/Examples/Devices/.
Update 5/15/2017
-
Update drive_calibrationResults to allow calibration success down to
about 7 V, and correct crossed cables reported as missing signal(s).
-
Prevent switch from drive_speed to drive_goto from making certain
pivot maneuvers fail to detect that they are done.
-
Udpate and cross link documentation htmls in the learn folder. This
does not apply to subdirectories.
Update 4/14/2017
-
A function named drive_calibrationResults was added to the ActivityBot abdrive
library. This function can be called to determine if a calibration was successful,
or if there was a mistake in the encoder/servo/power circuits.
Update 4/11/2017
Update abdrive library to 0.9.82:
-
Move most control logic into the control system cog.
-
Arc support with drive_goto(left, right), where left != right.
-
Background target calculation for better acceleration/deceleration.
-
drive_acceleration(forGotoOrSpeed, ticksPerSecondSquared).
-
drive_ramp can be interrupted with a new direction.
-
drive_goto can be interrupted after calling drive_gotoMode(0).
-
drive_gotoStatus added for monitoring when a maneuver is finished.
-
All acceleration (a.k.a. ramping) is done in the background.
-
Sampling rate increased from 400 to 800 Hz.
-
Default speed for drive_goto set to 64 ticks per second with a default acceleration of 200 ticks per second.
-
Default speed limit for drive_speed is 128 ticks per second, with a default acceleration of 600 ticks/second squared.
-
Trim support was removed.
Update 1/22/2017
-
S3 C language test library removed.
-
Simple Libraries Index updated.
Update 1/18/2017
-
Badge library video game examples added.
-
Badge library graphics updates.
-
LSM9DS1 9-axis IMU library added.
-
S3 C language test library added.
Update 11/21/2016
-
IMU sensor library and examples added to Learn folder.
Update 11/14/2016
-
Add Arlo library and example programs to Learn Folder.
Update 9/23/2016
-
Fix two fonts in oledc_fontLoader.c.
Update 8/26/2016
-
Add oledc library for Parallax Part #28087 - 0.95 inch 96x64 RGB display module to ...SimpleIDE\Learn\Simple Libraries\Display.
-
Add colorPalRRGGBB function to convert 12-bit values
to 8-bit for use with color picking software.
-
Modify simpletools toggle function to set direction of pin
to output whenever called.
Update 5/12/2016
-
Add servo centering example to ActivityBot.
-
WS2812 library and examples added. (Part ID: 28085 and 28086 at www.parallax.com.)
-
ColorPal library update (Part ID: 28380 at www.parallax.com.).
-
Add examples and libraries for the Parallax Hackable Electronic Badge Part IDs:
20000, 20100, and 20200 at www.parallax.com.
-
Allow cogc function to be linked via static archive.
-
Add core (Cog) and EEPROM usage to library documentation.
-
Remove XMM folders from Simple Libraries.
-
Correct scan function's %s formatting flab behavior.
Update 10/18/2014
-
Correct simpletext scan function %s formatting flag bugs.
Updates 9/5/2014
-
Fix cog stop/restart bug in servo library and add feature for disabling individual
servos.
-
Add example named SD for Text Files and Back to Variables to ...Documents\SimpleIDE\Learn\Examples\Devices\Memory. It writes data as text to a .txt file on an SD card, then reads it back and converts the text data back to variable data for use by the program. This makes it convenient to view with either a text editor on a computer, or in the program with the SimpleIDE terminal.
Updates 8/26/2014
-
Stack usage reduced in abdrive, servo, wavplayer, and some other Simple Libraries that launch Propeller C functions into other cores.
-
Added stacktest library and example to Learn folder.
-
Moved mstimer library from Util to Misc.
-
Added ee_config function to simpletools library for overriding default EEPROM settings.
-
Added GPS library and code example to Learn folder.
-
Added rxCount and rxPeek functions to the fdserial library.
-
Added html documentation for propeller.h and cog.h.
-
Updated delay built into simpletools library that ensures Windows machines cannot mistake the Propeller for a plug and play serial device. This can happen if the Windows machine receives serial bytes within 0.7 seconds after the device is connected. This delay now only occurs at application start-up, not every time the terminal process is restarted.
-
Fixed bug in square_wave function.
-
Fixed shift_in MSBPRE bug that added an n+1 bit to the result.
Updates 6/4/2014
-
Corrections to Documentation rfidser Library.html.
Updates 5/9/2014
-
Added to Learn\Examples\Devices\Sensor: ColorPAL, RFID Serial, Sound Impact, PIR Motion.
-
Added to Learn\Simple Libraries\Sensor: libcolorpal, librfidser, libsoundimpact.
-
Added cal_servoPins and cal_encoderPins to abcalibrate library to change from
default I/O connections to ActivityBot servos and encoders. Values used will
persist in EEPROM and be used by the abdrive library.
Updates 5/1/2014
-
The simpletools library no longer starts a floating point coprocessor at the start of the application. All floating point functionality is still supported, processing just happens in the same cog.
-
i2c_out and i2c_in char *regAddr parameter changed to int memAddr.
-
itoa removed, use sprint(charArray, "%d", intVal) to make int to ASCII conversions.
-
st_msTicks and st_usTicks global variables are pre-initialized to the number of system clock ticks in a millisecond and microsecond for convenience in library development.
-
Variables named us and ms are initialized to the same values for user applications.
-
Function endianSwap added to simplify communication with devices that send/receive byte data in big endian format.
-
Digits versions of put/get and write/read added to simpletext library for transmitting and receiving values with fixed numbers of digits. .
-
Floating point output functions in simpletext library updated to handle nan (not a number) and +/- inf (infinity).
-
printi, dprinti, scani, dscani, sprinti, sscani functions added to simpletext library for supporting non-floating point with less program space.
-
Multicore folder added to ...Documents\SimpleIDE\Learn\Examples\.
-
New Protocols and Multicore folders in ...Documents\SimpleIDE\Examples\.
-
New TV Remote and 3-Axis Accelerometer libraries and examples in ...Documents\SimpleIDE\Examples\Simple Devices\.
-
Subcategories added to Functions lists simpletools and simpletext HTML API docs.
Updates 2/27/2014
-
abvolts library added. This library is for introductory tutorials and has been added to the Learn folder for community testing and feedback.
Updates 2/13/2014
-
cog_run and cog_end functions added to libsimpletools to streamline
launching function code into another cog.
-
vgatext library modified to work with the simpletext library. You can now
use any simpletext output call with a text_t parameter to display text messages with the
VGA. See the VGA Text Display activity for examples.
-
\Robotics\ActivityBot folder added to ...Learn\Simple Libraries.
-
ActivityBot folder added to ...Learn\Examples.
Updates 11/6/2013
-
start_fpu_cog and stop_fpu_cog documentation added to libsimpletools.
Updates 11/1/2013
-
ee_putStr updated to support 128 byte page writes.
-
More corrections to ee_put* for contiguous data crossing address/128 boundary.
Updates 10/31/2013
-
wav player click between tracks eliminated, and bug in support for playing sequences of tracks fixed.
-
simpletools square_wave bug that prevented frequency changes fixed.
Updates 9/4/2013
-
ee_put* Fixed bug that prevented contiguous data crossing address/128 boundary.
-
Updated stack array to static in mstimer.c.
Updates 7/9/2013
-
i2c_in and i2c_out functions added to simpletools library.
-
simplei2c library added with basic i2c building blocks that were used to create the simpletools library's i2c_in and i2c_out functions.
-
EEPROM and compass libraries now use i2c_in and i2c_out instead of two different Propeller GCC I2C variants, which reduces program memory requirements.
Updates 6/15/2013
-
Folder added.../SimpleIDE/Learn/Simple Libraries/Text Devices. In addition to libraries that support communication with text based hardware devices, this folder has libsimpletext, which has compact functions for sending and receiving text to/from Simple Terminal and other devices.
-
All sser_ and fdser_ functions removed from libsimpletools.
-
libsimpletools now includes simpletext from Text Devices. In addition to replacing sser_ functions, it has a variety of print/scan put/get and read/write functions for communicating with Simple Terminal and other serial devices. fdser_ functions are replaced by using the Add Simple Library button to add libfdserial from the Text Devices folder.
-
7-segment LED examples added to ...SimpleIDE/Learn/Examples/Circuits.
-
A 0.8 second delay was added to the first serial message sent to Simple Terminal by functions in the simpletext library. This prevents Windows machines from potentially mistaking the serial message as legacy serial peripheral identifying strings. Since the delay is now automatic, all pause(1000) calls were removed from the start of example programs.
-
All example programs updated to use print from simpletext in place of printf from stdio. This significantly reduces the program size penalty for displaying floating point types.
First Release 5/7/2013