Modules
Updated Swordfish Device Files and Libraries
NOTE: a number of modules previously available on this page have been updated and are now part of the standard libraries as of v2.2.3.0, including updated device files, usart, setdigitalio, pps, intosc, SDFilesystem, and others. Be sure to check the versions before updating your standard libraries!
Swordfish Update 28 MAR 2023
There are currently no updates available for SF 2.2.4.0/ ICC v1.2.1.0
Updated Swordfish Modules
A list of standard Swordfish modules which have been updated by users.
- USB Library - Updated USB library. Also includes a Swordfish port of the Microchip HID bootloader with support for all chips (source provided). Written by Jerry Messina
Firewing Development Board
Modules for use on Firewing development board.
- Firewing - Creates pin aliases to support a Firewing development board and includes routines for ADC and PWM. Written by David Barker.
User Modules
This section contains some useful source code modules that can be used with the Swordfish compiler.
- ISROnChange - Generates an on change event if the state of PORTB 4..7 changes. Written by David Barker.
- Autokey - Auto repeat on a 4 x 4 matrix keypad utilising the ISRTimer module. Written by Timothy Box.
- ConvertTemp - Convert temperatures in any direction between Fahrenheit, Celsius and Kelvin. Written by Darrel Taylor.
- Calander - Work out how many days between days, if a date is valid, etc. Written by Timothy Box.
- UNIX Date and Time - UNIX timestamp conversion. Written by Gabi Mihail & Timothy Box.
- MinADTime - Set up the ADC for the minimum clock and aquisition time according to your selected clock frequency and analog impedance. Written by Darrel Taylor.
- SED1520 - 122 x 32 GLCD driver. Written by Steven Wright.
- DialEncoder - Dial/Pot Decoder to Speed/Direction out. Written by Timothy Box.
- S1D13700 - 320 x 240 GLCD driver. Written by Steven Wright.
- DS1307 - Real Time Clock (RTC) module based around the DS1307. Written by David Barker and John Barrat.
- KS0713 Driver Module for KS0713 based GLCD's and modified GLCD.bas by Mark Rodgers.
- TouchScreen Touch screen driver module for 4 wire resistive touchscreens by Steven Wright.
- MemoryAccess A Program Memory Access module by Timothy Box.
- Sofware Controlled WDT A module to programatically enable and disable the WDT. It also allows you to set the WDT postscaler at runtime. Written by David Barker.
- Interrupt based NMEA processor A module that buffers NMEA data using a hardware interrupt. Written by David Barker.
- ROM Buffer A simple module that implements ROM reading and writing. Written by David Barker.
- TIMER3 Interrupt Implementing a timer using TIMER3 with detailed comments by Mark Rodgers.
- KS0108 with 2 or 3 CS lines A modified version of the KS0108 driver that handles 2 or 3 CS lines by Eric Couratier and Ahmed Lazreg (octal).
- PWM. Written by David Barker. A simple module for fixed and variable frequency PWM.
- MLX90614 A module to read/write to the Melexis MLX90614 family of non-contact IR sensors. Written by Tom Estes.
- Options A simple module that implements useful directive #options. For example, setting USART baudrate at compile time. Written by David Barker.
- PWM2. Written by Warren Schroeder. This is a followup to David Barker's PWM Module with additional PWM functionality.
- Sensirion SHTxx Sensor Written by Florin Medrea. Sample module for humidity / temperature sensor SHT11 - SHT75.
- Pseudo Random Number Generator. Written by David Eather. A Pseudo Random Number Generator module.
- Pseudo Random Number Generator V2. An updated version of David Eather's Pseudo Random Number Generator. Written by Jerry Messina.
- Devantech CMPS03 Magnetic Compass Module. Written by Steven Wright. A simple module to read the magnetic bearing from a Devantech CMPS03 Magnetic Compass Module.
- PIC18F97J60 Ethernet Module Written by Florin Medrea. Ethernet Module (driver) for PIC18F97J60 family, with Mini Web Server example.
- FloatToStrSE Written by Florin Medrea. FloatToStr function for SwordFish SE.
- CAN BUS Written by Florin Medrea. Controller Area Network (CAN) module for SwordFish.
- Database - A simple module to implement reading and writing records from/to a SD or MMC card, using the SDFileSystem Module. Written by Steven Wright.
- Ethernet A partial port of the Microchip TCP/IP Ethernet library for the ENC28J60. Includes MAC,IP, ICMP, ARP, TCP, UDP, NBNS, DHCP, DNS, SMTP and SNTP. Written by David Barker.
- Stepper Motor - 2 Modules for controling unipolar stepper motors. 2nd module is interrupt driven, freeing PIC for other tasks whilst motor is moving. Written by AndyO.
- SDFileSystem Version 4.1.4 - Original version of the SDFileSystem module. Now includes support for multiple files, copying and truncating files, SDHC high capacity cards and FAT32 as well as FAT16. Format command also added to format a card from scratch. Written by Steven Wright.
- SD Card Library - Updated SD Card library (4.1.5). Improved DIR command speed. Written by Michael Lebert
- VS1001 Audio Decoder Library Version 1.0 - A module to control the VS1001 audio decorder IC from www.vlsi.fi. This module was developed and tested using the EasyPic3 and the SmartMP3 board from Mikroelectronika. Written by Darryl Quinn.
- Timer0 Library Version 1.0 - A module to easily Timer0 using either polling or interrupts. Example included for interrupt driven timer0 in a multiple interrupt environment. Written by Darryl Quinn.
- MCP23S17 Version 1.0 - A set of modules to easily handle a single or multiple MCP23S17 SPI port expander chips. Written by Ahmed Lazreg (octal).
- PIC18F87J50 USB - A replacement set of Modules to allow USB operation on PIC18F87J50 parts. Modified by Nathan Herbert.
- T6963c Toshiba GLCD Driver (v0.1) - Written by Ahmed Lazreg (octal).
- LCD Menu Module - A module for implementing a menu system on an LCD display. Written by AndyO.
- CRC Module A module providing CRC routines for DAL8, DAL16, Sensirion and SMB8. Feel free to add your CRC routines to it. Written by Tom Estes.
- M25P128 Module A module for use with the M25P128 128Mb Serial Flash Memory Chip. This handy little chip is great for low power datalogging applications. Written by Ryan O'Hara & Timothy Box.
- VRbot Module - A Module and example program for using a VRBot Voice recognition module in Speaker Independent mode. Written by Nathan Herbert.
- MS5540C A module for use with the MS5540C. This handy little barometer is great for weather and altimeter related applications. Written by Ryan O'Hara.
- PeripheralPinSelect - A module for using the PPS remappable pin select functions. Written by Jerry Messina
- MFR49XA Transceiver Module - A Module and example program for using the Microchip MRF49XA integrated Sub-GHz RF transceiver supporting 433/868/915MHz ISM frequency bands. Written by Nathan Herbert.
- Internal RTCC Module - A Module and example program for using the Internal RTCC (Real Time Clock and Calendar) in newer PIC18 devices. Written by Nathan Herbert.
- Multiple Software I2C ports - A Module that enables multiple pin-programmable software I2C ports. Written by Jerry Messina.
- Ethernet library for WIZnet W5100 ethernet module - A library to driver WizNet W5100 chip with SOAP web service and HTTP server examples. Written by Coccoliso.
- GLCD Menu module - Porting from LCD to GLCD from original LCD menu by Andy0. Written by Xva3rjy.
- Ethernet library for WIZnet W5500 ethernet module - A library to driver WizNet W5500 chip with SOAP web service and HTTP server examples. Written by Coccoliso.
- FT800 / Gameduino 2 - A library to driver FT800 display ported from Firewing's David Barker library. Written by Coccoliso.
- Using serial EEPROMs with the Microchip UNI/O bus - A module for interfacing to the UNI/O one-wire bus. Written by Jerry Messina.
- MAX7219/MAX7221 Version 1.0 - Easily handle a single or multiple cascaded MAX7219/MAX7221 7Segments or LED panels. Written by Ahmed Lazreg (octal).
- MQTT Queue library. Written by Coccoliso. Adds the MQTT protocol feature, a small machine-to-machine/"Internet of Things" connectivity protocol, to the library for Wiz550io / W5500 devices with some VB.net client examples.
- NeoPixel - A module to control NeoPixels LED strips (WS2812B). Written by Ahmed Lazreg (octal).
- Timer32 - A 32-bit usec timer using TMR0. Written by Jerry Messina.
- I2C Serial EEPROM - A module for interfacing to I2C serial EEPROMS. Written by Jerry Messina.
- Hardware/Software UART - Hardware-assisted software UART. Written by Jerry Messina.
- mikroBUS Click adapter boards - Using mikroBUS Click adapter boards. Written by Jerry Messina.
- I2C LCD PCF8574 - A module for interfacing to I2C LCD Displays. Written by Gavin Wiggett.
- Tone Library and Ringtone (RTTTL) Player - A port of the Arduino Tone library and RTTTL player. Written by Jerry Messina.
- Msec and Usec Timer - A port of the Arduino millis() and micros() Timer routines. Written by Jerry Messina.