When you first power up the device it has a blank DeviceID (address) of –. When powered it will transmit a–STARTED, if no host acknoledges the device by replying a–ACK—– then the device will try a further 5 times. It is usual therefore to see 6 a–STARTED messages if you are for example using some terminal software.

It is good practise to change your DeviceID right at the start. To do this is easy. First decide what ID you’d like it to have, this can be two capital letters (eg TT, FG or YY) you cannot use numbers. When you have chosen, we send as a single packet (paste in hyperterminal) the command CHDEVID. To issue the command and to set (for example the device to RB) we use a–CHDEVIDRB, the device will reply to you with the same message to verify it heard you. To apply the settings send a–REBOOT—. The device will now restart by transmitting aRBSTARTED. That’s it your device is now called RB.

To test RB will respond to us, try sending aRBHELLO—-, the device will reply aRBHELLO—- also.

To switch the relays there are the following commands (replace the — with your actual DeviceID if you changed it)

a–RELAYAON- Turn relay A on
a–RELAYAOFF Turn relay A off
a–RELAYATOG Toggle relay A between on/off

a–RELAYBON- Turn relay B on
a–RELAYBOFF Turn relay B off
a–RELAYBTOG Toggle relay B between on/off

There are additional commands, these are

a–HELLO—- Like a computer ping
a–CHDEVIDxx Change the DeviceID (xx is the new ID)

Category : Uncategorized | Blog

Brighton Maker Faire

This coming weekend (Sat 3rd Sep) we will be attending the Brighton Maker Faire courtesy of the Nottingham Hackspace. This page will be updated with more details as they happen and serve after the event as a useful page of related information.

RF family grows

To be shown for the first time in public will be:

  • URF (USB) and ERF (0.1″ header) radio modules along side the existing (XBee shaped) XRF.
  • A live demo of a dual relay base board that will work with an Xbee or XRF as a host.
  • A live demo of a 2 button coil cell powered XRF “key fob” – at PCB level
  • A live demo of a CFL ligh bulb controlled by an integral XRF
  • A live demo of an XRF powered standard single gand light switch
  • A live demo of an Arduino + XRF to XRF + SMS dongle acting as an SMS gateway that will if you type in your mobile number send you our business card.
  • Wireless programming of an Arduino direct from the IDE

Patchube data feeds from XRF sensors

John has a selection of XRF powered sensors in his house, these publish to Patchube, you can see how dry his plants are, how hot the water in the tank is and more here https://pachube.com/feeds/22343

Arduino + Xbeeshield + XRF + LED RGB cube + aProtocol

Why not make your own, here’s the code. An RGB LED was simply wired via resistors to 3 PWM pins. You will see just how simple aProtocol is to use, just 12 characters. Try sending aDDLED0000FF (full blue) or aDDLED008800 (half green), the other 16.7 million colours I’m sure you can figure out ;)

// Arduino example code
void setup() // always called at the start to setup I/Os etc
Serial.begin(9600); // start the serial port at 9600 baud
digitalWrite(6, LOW);
analogWrite(9, 255); // Do a little RGB pulse to show it's running code
analogWrite(9, 0);
analogWrite(10, 255); //
analogWrite(10, 0);
analogWrite(11, 255); //
analogWrite(11, 0);
digitalWrite(6, HIGH);
Serial.flush(); // ensure input buffer is empty.
void loop() // repeatedly called
static boolean waitingForStart = true; // true if waiting for start of message
static long time; // used to store time of first character - for timeout
if (waitingForStart) // we are waiting for the first character of a message
if (Serial.available()) // got some characters
waitingForStart=false; // in message, enable timeout
time=millis(); // set up timeout
else // timing out
if (Serial.available()==12) // have we got the message?
processCommand(); // yes - process the message
waitingForStart = true; // and wait for the next one
else if (millis()-time > 100) // 100 millisecs should be enough to receive the message
Serial.flush(); // timed out - flush any characters received
waitingForStart = true; // wait for the next message
void processCommand() // message received - process it
char message[12]; // buffer to store message in
for (int i=0; i<12; i++) message[i] = Serial.read(); // read the message into the buffer
if (strncmp(message,"aDD",3) == 0) // check first four characters of message
{ // it is for us
if (message[3] == 'H')
Serial.print("aDDHELLO----");// send 12 byte reply
else if (message[3] == 'L') //
analogWrite(9, char2hex(&message[6])); // value is 0-255 in hex made from the two bytes RED
analogWrite(10, char2hex(&message[8])); // value is 0-255 GREEN
analogWrite(11, char2hex(&message[10])); // value is 0-255 BLUE
Serial.print("aDD");// send 12 byte reply acknowledging
Serial.print( message[5]);
Serial.print( message[6]);
Serial.print( message[7]);
Serial.print( message[8]);
uint8_t charToHex(char c)
if (c < 'A') return (c-'0');
return (c-'A'+10);
int char2hex(char* msg) // char * means a pointer to a char
return(charToHex(msg[0])*16+ charToHex(msg[1]));


end of page

Category : Uncategorized | Blog

The following files are required to support the new 18F25K22 microcontroller. Make sure to use version of Swordfish. If you are using an older version of SE then download the latest SE and simply install, you wont lose anything. Registered users can click “upgrade” in the IDE and it will upgrade the IDE automatically. So far the K22 support files have to be manually added. In future they will be part of the IDE install.

P18F25K22.inc & 18F25K22.bas

Save (right click + save as) these two files into one of the following directories (depends which version of windows you are using)

Windows XP - c:\program files\mecanique\swordfish\includes\

Windows Vista & 7 – c:\users\all users\mecanique\swordfish\includes\ (HINT: windows often hides this folder, cut and paste the path instead of browsing to it.)

Sample code to see if Swordfish will compile:

Device = 18f25k22
Clock = 16  

DelayMS (500)
DelayMS (500)
GoTo main


Some useful other files

The above blink LED as a HEX file here
A version of MPASM that will work with the K22 and 2203 version of SF here
Version 2203 of swordfish SE here
DS30 loader known to work with both PIC’s below (what you might be using on your XINO board) here
HEX file for DS30 loader for 18F25K20 here
HEX file for DS30 loader for 18F25K22 here

Category : Uncategorized | Blog

The XINO basic for Atmel follows the exact same pin layout as the arduino, the circuit in most areas is identical two, however there are two major differences.

  • We took out the FTDI chip and the voltage regulators
  • The power LED is connected to the MCU power rail so doesn’t tie up pin 13.

Customer review and his approach to building the board (we do the same): http://blog.thiseldo.co.uk/?p=543

Board Layout





















Programming “in place” with another Adrduino board

Many thanks to Andy for this idea and the photo.


Category : Uncategorized | Blog

PICKIT 2 update

We were using PICKIT software version 2.60.00 which gave the message “unsupported device”. To use a 25K22 with a PICKIT 2 we need to update the PK2DeviceFile.dat file which is usually in C:\Program Files\Microchip\PICkit 2 v2.

Download it from Microchip, the PK2 page is here

MPLAB update

Older versions of MPLAB will need updating.

Download it from Microchip, the PK2 page is here

How to install the update file:

  1. Close PICKIT software if it’s running.
  2. Simply rename (don’t delete) the old file to something memorable, I always change the file name by putting OLD at the but the choice is yours.
  3. Copy the file into the directory.
  4. Start PICKIT software.
  5. You can now use your PICKIT2 with the 18F25K22

DS30 bootloader

Our 25K20 version of the 64Mhz PLL bootloader HEX was programed into the 25K22. When restarted the PIC refused to run the loader. It will need a new version of the DS30 bootloader creating.

DS30 is opensource and can be downloaded from here

What compilers/languages support the 18F25K22 on a XINO basic for PIC?

AMICUS: Will in a future update we are told (date unknown)
Proton: Probably should (as yet untested by us)
Swordfish: Here’s a post from the SF forum http://www.sfcompiler.co.uk/forum/viewtopic.php?t=1344&sid=85ec5887a57e8964c9e08f96db7cd466 (as yet untested by us)

PICAXE: Yes, the 28×2 that is based on this device has had limited testing.

If you know of any other compilers that do support this PIC that you have tried sucessfully on a XINO basic for PIC please let us know and we’ll add them.

Category : Uncategorized | Blog

Features of the XRF

Transmission range on whip antenna of easily 300+ meters L.O.S. (570m in our tests)
Transmission range with external SMA antennas of Km’s (figures yet to be published)
Varaible: baud rate, over the air rate & frequency.
Repeater mode (mirrors data over 2 PANID’s).
Low power consumption 19ma RX, 32ma TX @full power (to be selectable)
Serially (RX/TX) updateable firmware, no CTS/DTR required.
Can be used as CC1110 micro with IAR C compiler software.

Features of the CC1110 as used in the XRF

High-performance RF transceiver based on the market-leading TI CC1101
Excellent receiver selectivity and blocking performance
High sensitivity (–110 dBm at 1.2 kBaud)
Programmable over the air data rate up to 500 kBaud
Programmable output power up to 10 dBm for all supported frequencies
Frequency range: 300 – 348 MHz, 391 – 464 MHz and 782 – 928 MHz
Digital RSSI/LQI support
Low Power
Lowest current consumption (RX: 16.2 mA @ 1.2 kBaud, TX: 15.2 mA @ –6 dBm output power)
High speed, full power consumption (RX:19mA @ 250kBaud, TX:32mA @ +10 dBm output power)
0.3 µA in PM3 (operating mode with the lowest power consumption, only external interrupt wakeup)
0.5 µA in PM2 (operating mode with the second lowest power consumption, timer or external interrupt wakeup)
MCU, Memory, and Peripherals
High performance and low power 8051 microcontroller core.
Powerful DMA functionality
8/16/32 KB in-system programmable flash, and 1/2/4 KB RAM
128-bit AES security coprocessor
7 – 12 bit ADC with up to eight inputs
I2S interface

XRF pinouts for transparent serial mode

01 - +3V3                   20 - Future use
02 - Data Out               19 - Future use
03 - Data IN                18 - Future use
04 - Future use             17 - Future use
05 - Reset                  16 - Future use
06 - Heart Beat             15 - Future use
07 - Future use             14 - Future use
08 - Future use             13 - Future use
09 - Sleep             12 - Future use
10 - GND                    11 - Future use

CC1110 datasheet, webpage & errata


XRF pinouts, physical connections to the TI CC1110 transciever ports

01 - +3V3                   20 - P2_4
02 - P0_3                   19 - P2_3
03 - P0_2                   18 - P2_2
04 - P0_4                   17 - P2_1
05 - Reset                  16 - P2_0
06- P1_7                    15 - P0_7
07- P1_6                    14 - P0_6
08- P1_5                    13 - P0_5
09- P1_4                    12 - P0_0
10 - GND                    11 - P0_1

CC Debugger connections

Antenna Lengths

Calculated antenna lengths.

433 1/4 wave = 164.7mm
433 1/2 wave = 329.4mm
433 full wave = 692.7mm

868 1/4 wave = 82.2mm
868 1/2 wave = 164.3mm
868 full wave = 345.5mm

915 1/4 wave = 77.9mm
915 1/2 wave = 155.9mm
915 full wave = 327.8mm

Useful site for calculation http://www.csgnetwork.com/antennaevcalc.html

TI uses slightly longer on CC1110 reference, unknown why. Chipcon/TI primer paper on antenna design with calculations http://www.ti.com/litv/pdf/swra088

Configuring your XRF

Attach the XRF to a PC using either the Cisceo FTDI USB interface or something similar. The baud rate by default is 9600

Note [ret] represents a carriage return character (enter key)

To enter command mode:(hyperterm/xctu etc)
Do nothing for at least 1 second
type in +++ (press nothing else)
then wait 1 second
XRF will reply OK, you are now in config mode, the wireless is suspended
General format of commands:
Command without parameter (usually used to query a configuration)

Command with parameter (up to 32 bytes of data)
ATxx [space] dddddd[ret] (versions after and inc. v0.11 the space is optional)

The XRF will reply ERR[ret] for any command that is not recognised.

AT command list

Command  Meaning                           XRFResponse        XRFResponse
                                           without parameter  with Parameter
                                           Actions the        Sets the value
                                           command or reads
                                           the value
AT       Null command                      OK[ret]            OK[ret]
ATAC     Apply Changes                     OK[ret]            N/A
         Returns OK and then
         applies changes to baud           
ATBD     Baud rate                         nnnnn[ret]         OK[ret]
         not set until ATAC command        OK[ret]
         Common baud rates in HEX:
          1200            4b0              Where nnnnn is      Parameter is the
          2400            960              the baud rate       baud rate in HEX
          4800            12c0             in HEX
          9600 (default)  2580
          19200           4b00
          31250 (MIDI)    7a12
          38400           9600
          57600           e100
          115200          1c200
ATCC     Change AT guard character         +[ret]            OK[ret]
         Example change to "///"           /[ret]
ATCH     Radio frequency                   n[ret]            OK[ret]
         Not set until ATCH command        OK[ret]
          1 – 915MHz
          2 – 903MHz                       Where n is the    Parameter is the
          3 – 868MHz                       frequency number  frequency to set
          4 – 433.5MHz                                       to.
          5 – 868.3MHz (default)
          6 – 315MHz
ATDN     Done                              OK[ret]           N/A
         exit AT command mode
ATDR     Radio data rate                   n[ret]            OK[ret]
         Not set until ATCH command        OK[ret]
          1 – 250Kbaud (default)
          2 – 38.4Kbaud                    Where n is the   Parameter is the
          3 – 1.2KBaud                     data rate (0-5)  data rate (0-5)
          4 – 100KBaud
          5 – 500KBaud
ATID     PANID (aka network name)          nnnn[ret]         OK[ret]
         Four hex characters               OK[ret]
         Default – 0000
         Max value FFEF                    Where nnnn is    Parameter is the
         (last 256 PANIds reserved for     the PANID        PANID
         internal use)
ATI2     PANID2 – for repeater function    nnnn[ret]        OK[ret]
         Four hex characters               OK[ret]
         Default – 0000
         Max value FFEF                    Where nnnn is    Parameter is the
         (last 256 PANIds reserved for     the PANID2       PANID2
         internal use)
ATNT     Node type                         n[ret]           OK[ret]
          0 – Serial pass through mode     OK[ret]
          1 – reserved
          2 – Repeater mode                Where n is the   Parameter is the
                                           current mode     mode to set

         NOTE: In repeater mode you cannot use the normal serial. What
               happens instead is that RF data on PANID and PANID2 are
               mirrored in both directions. This is useful for merging
               separate PANID networks or for extending the whole network
               by one node.
ATPC     Reprogram                          OK[ret]        N/A
         Chip will reprogram itself and reset
         Will return ERR if an image has not
         been downloaded into memory
ATPG     Enter program download mode        OK[ret]        N/A
ATPK     Radio packet length (in hex)       nn[ret]        OK[ret]
         Inc. 2 byte PANID, so min. is 3    OK[ret]
         Parameter is 3 to FC (3 to 250 decimal)
         Default is OE (14 - i.e. 12 data bytes)
ATPL     Radio TX power level               n[ret]         OK[ret]
          0  -30dBm                         OK[ret]
          1  -20dBm
          2  -15dBm
          3  -10dBm
          4   -5dBm
          5    0dBm
          6   +5dBm
          7   +7dBm
          8  +10dBm (default)
ATRE     Restore factory defaults           OK[ret]        N/A
         Note this loads the config from the
         default settings, baud rate, radio data
         rate and radio freq will be actioned
         when changes are applied.
ATRO     Packet timeout                     nnnn[ret]      OK[ret]
         The time in milliseconds before    OK[ret]
         a packet is sent if packet is
         not complete (hex)
         Range 1 to FFFF (65535)
         Default is 64 (100 mS)
ATVR     Software revision number           n.n[ret]       OK[ret]
ATWR     Save config changes to flash       OK[ret]        N/A
         The config changes will be preserved
         for the next startup.

Using CCFlashProg to serially program XRF

1. Attach the XRF to a PC using either the Cisceo FTDI USB interface or something similar (eg sparkfun xbee explorer, AXE210), CCFlashProg assumes the XRF baud rate is 9600bps.
2. Start CCFlashProg.exe
3. Select the serial port that XRF is connected to
4. Select the hex file to program to the XRF
5. Press program – if it fails to start try again, the serial timing could be a little different between the PC and XRF
6. After it programmed, press verify – if it fails to start, try again
7. If all is reported OK press commit.
8. XRF will restart with the new firmware
9. (Optional) Using a terminal emulator app (XCTU, Hyperterm etc) issue +++ to the XRF and then using the ATVR command check the new software revision number.

Restoring factory defaults

Short pins 19 and 20 during startup and the XRF will load in factory configuration (not firmware). If you wish to retain this configuration then you need to issue an ATWR command to save the config, otherwise at next power up the previous configuration will be used.
This is useful for recovering from unknown configurations.

Firmware change history

v0.11 – Added ATRO/ATPL/ATPK/ATCC commands
v0.10 – Baud rate command changed to provide even more flexibility in baud rates.
v0.09 – First commercial release.

Category : Uncategorized | Blog

XINO basic for PIC and PICAXE.

Very low cost development system. Supports the following PICAXES: 18M2, 18, 18A, 18M, 18X (18M2 and 18X tested), 28A, 28X, 28X1, 28X2 (28X1 and 28X2 tested). Versions of the 18 pin PICAXE’s below the 18M2, require an additional 4K7 resistor which is supplied with the kit.

For PIC’s any similarly pinned 18 or 28 leg devices will work (far too many to list). We like and supply the 18F25K20 with the DS30 bootloader installed. You can easily make a cable or board to allow hardware programming (see later in this document).

When plugging in add on shields, please make sure the voltages are appropriate to power and interface to it. The XINO Pro has onboard voltage regulation and provides a much more “plug and play” environment which is much closer to the original Arduino, the XINO basic is much simpler and requires a little more thought.

Assembly instructions

1. Solder onto the board the 10K, 22K, 4.7K resistors and 0.1uf capacitor. If you intend to use a pre 18M2 PICAXE add the second “diagonal” 4.7K resistor (usually the much smaller resistor in your kit)

2. Add the 18 and 28 pin IC sockets with the indentation towards the top of the board (end marked XINO)

3. Add the remaining stereo jack, reset switch and the 3 pin voltage selection header with jumper.

4. Add the female header sockets (1 x 6 way, 3 x 8 way)

5. To power the board solder onto the GND, 3V3 and 5V connections (NOTE: 2 AA cells is 3V this will work in most situations for the 3V3 supply as will 3 AA’s giving 4.5V for the 5V supply, for an easy solution use a 3 x AA box and take a third wire off the 3V point) . There is space on the board to utilise a 4 way header or 3 way screw terminal block instead.

6. The voltage selection jumper is marked on the board, to the right 5V and to the left 3.3V (as shown in the photo)

That’s it, should take between 10 to 20 minutes depending on your soldering speed and skill.

Pinouts for the PICAXE 18M2

'P0 - NOT CONNECTED                15 - NOT CONNECTED
'P1 - NOT CONNECTED                14 - GND
'RST                               13 - B.4 I2C SCI/Touch/ADC/Out/In
'3V3                               12 - B.1 I2C SDA/Touch/ADC/Out/In
'5V                                11 - C.6 In/Out
'GND                               10 - SERIAL OUT
'GND                               09 - NOT CONNECTED
'VIN                               08 - C.7 In/Out
'A0 - C.2 DAC/Touch/ADC/Out/In     07 - NOT CONNECTED
'A1 - B.7 In/Out/ADC/Touch         06 - NOT CONNECTED
'A2 - C.0 In/Out/ADC/Touch         05 - NOT CONNECTED
'A3 - C.1 In/Out/ADC/Touch         04 - B.3 In/Out/ADC/Touch/PWM
'A4 - C.4 In/SERIAL IN             03 - B.6 In/Out/ADC/Touch/PWM
'A5 - C.5 In                       02 - B.0 SRI/Out/In
'                                  01 - TX B.5 hserout/Touch/ADC/Out/In
'                                  00 - RX B.2 hserin/Touch/ADC/Out/In

Pinouts for the PICAXE 28X2

'P0 - C.1/PWM C.1                  15 - NOT CONNECTED
'P1 - C.2/PWM C.2/HPWM A           14 - GND
'RST                               13 - C.3/HSPI SCK/HI2C SCI
'3V3                               12 - C.4/HI2C SDA/HSPI SDI
'5V                                11 - C.5/HSPI SDO
'GND                               10 - A.4/SERIAL OUT
'GND                               09 - B.7
'VIN                               08 - B.6
'A0 - ADC0/A.0/C1-                 07 - B.5
'A1 - ADC1/A.1/C2-                 06 - B.4/ADC11/HPWM D
'A2 - ADC2/A.2/C2+                 05 - B.3/ADC9
'A3 - ADC3/A.3/C1+                 04 - B.2/ADC8/HINT2/HPWM B
'A4 - SERIAL IN                    03 - B.1/ADC10/HINT1/HPWM C
'A5 - C.0/TIMER CLK                02 - B.0/ADC12/HINT0
'                                  01 - TX/C.6/HSEROUT/KB CLK
'                                  00 - RX/C.7/HSERIN/KB DATA

Sample code – Flash an LED

Push an LED and an “in series” 330R resistor into sockets numbered 13 (output) & 14 (gnd), then cut and paste this code into the editor window. The “flat” of the LED should go to pin 14 (gnd). This code was tested at both 3.3v and 5v, all PICAXE’s appeared to work. For the 18X it requires the additional 4K7 diagonal resistor to be installed. Note the reset button only works for the 28 pin devices.


High 4
Pause 1000
Low 4
Pause 1000
Goto Start


High B.4
pause 1000
Low B.4
pause 1000
Goto Start


High PORTC 3
Pause 1000
Pause 1000
Goto Start


High C.3
Pause 1000
Low C.3
Pause 1000
Goto Start

Hardware programming PIC’s

Using a hardware programmer such as the PICKIT2 is relativly easy. Just connect the following pins. Diagram for the PICKIT2 available on http://www.embedded-knowhow.co.uk/MPLAB%202.gif. Here is the pinouts for the 28 pin devices (such as the 16F886 & 18F25K20).

PICKIT2 PIN (pin 1 denoted by the white triangle)
1 – VPP/MCLR > RST pad on XINO
2 – POWER/VDD > MCUPOWER pad on XINO (which ever you are using 3V3 or 5V)
4 – ICSPDATA/PGD > 09 pad on XINO
5 – ICSPCLOCK/PGC > 08 pad on XINO
6 – Not connected

Boot loader HEX files


DS30 16Mhz PLL 64Mhz

………………..End of document

Category : Uncategorized | Blog

The ProtoX is one of the lowest cost Aduino shaped prototype boards available today. It supports the XINO and Amicus too. Supplied with 3 x 0.1uf ceramic capacitors and 3 x 8 pin male headers (break two off for 6 pin arduino boards) and 1 x 6 pin male header. Useful surface mount pads for SOIC, TSSOP (on back of the board) and 2 x SOT 223 or SOT 22-3.

Layout of the board – larger picture here

Kit of parts

As supplied with male headers

Alternative with through stackable headers (available separately)

Back view, click here for larger image.

Category : Uncategorized | Blog

The relay shield allows for the easy interfacing of an Arduino, XINO or compatible development board to a power relay to control much larger voltages and currents. The relay can switch up to 10 amps at 250 volt AC. Simply wire from the pad you want to use from your micro to the pad marked “input”. A 3V3 or 5V “high” output signal will suffice.

This however should be met with extreme caution, mains voltages will kill, if you are unsure in any way or are unfamiliar with mains electricity STOP, do not attempt to proceed.

Wiring up the shield

The relay can be used to switch AC or DC. If using the shield for DC voltages use LIN/LOUT and NIN/NOUT as the two connections (we suggest using LIN/LOUT as the positive as  it is the switched line), leave Earth unconnected.

For mains voltages use only LIN/LOUT for live (the switched line), NIN/NOUT for neutral and earth.

Isolating for mains use

If the shield is to be used for mains switching, never program the microcontroller in situ, only when mains voltages are disconnected. The shield and it’s base board MUST when in operation be physically isolated from human touch by means of a suitable enclosure.

Category : Uncategorized | Blog

The PWM/MOSFET shield provides an Ardunio/XINO or similarly shaped microcontroller development board with two very high power channels for the switching or Pulse Width Modulation of DC currents. A normal microcontroller might be able to power a 20ma (1/200th of an amp) LED but not usually much more.

There are many available add-on boards utilising single integrated circuits that can switch an amp or two (the L298D is very popular choice), this shield however utilises 52 amp switching MOSFETs and a 1.2 amp driver for much greater drive capability.

Ideally suited to motor, lighting and heating control but has a million and one uses. The onboard heat sinks cool the TO-220 sized MOSFETs. If further cooling is required the heat sinks can be changed for larger items (easily available at Farnell/DigiKey/RS etc). Alternatively they can be force cooled by a fan, there are two pads on the board for powering such a fan. The fan output is 5v and the recommended fan size is 30mm as this can be affixed to the heat sinks with either pilot drilled screws or simply glue/tape.

The shield “logic” ie the LED’s and driver (not the MOSFETs) are powered by the normal Arduino style supply on the header pins to the left hand side, it utilises the 5v and GND rails. The MOSFETs and therefore the load being switched is powered by the central screw terminal marked “source”, please observe the polarity marked on the board, failure to wire correctly could result in damage.

Wiring Up

There are 5 connections to consider for basic use. The first two are PWM input 1 & 2 (these are fed directly from your microcontroller outputs). The last three are the voltage (being switched) source and the two MOSFET outputs to your load.

PWM input 1 & 2 are independent of each other. The microcontroller PWM signal is fed into these inputs. The frequency & duty cycle are controlled by your microcontroller, the PWM shield adds nothing to the signal except amplification. These inputs are routed through the LED’s to give a visual indication of operation and into the 1.2 amp driver circuit. The driver circuit is necessary as unlike transistors MOSFETs require much greater current to turn them on and off.

There are pads marked driver output, these you would normally leave “jumpered” in place such that the output from the driver is fed straight to the input of each MOSFET. You can if desired remove the jumpers and use the driver or the MOSFET’s separately from each other.

We will consider you have left the jumpers on as is normal and by default. The last connections are from your supply being switched and o the load being controlled. There are three screw terminals, the centre one being where to wire the “source” supply. Please note to polarity, this is very important. To this centre terminal wire the + and – (ground) of your supply using an appropriately sized 2 core cable. Your “load”, ie the motor, lamp, heater etc is wired to the MOSFET output (there are two if you are using both channels), again here observe the polarity marked on the PCB.

Currents over 5 amps

The PCB has thick copper tracks, the largest we could design in, these however have been calculated to carry a maximum of around 5 amps. If you want to switch currents in excess of this please add heavy gauge wire between the MOSFET pins and the screw terminal as shown in the photo.
Currents in excess of 16 amps (the rated current of the screw terminals) should be soldered directly to the MOSFET pins using very heavy guage wire and the wire length kept to a minimum.

Driver options and solo operation

The driver can be driven at a voltage greater than 5v if required, the link marked EXT need to be cut or de-soldered and then the XXXX pad is then given the appropriate supply, the ground of this external supply needs connecting to the board GND pads. NOTE: All supplies must share the same ground.

Different MOSFETs

The standard supplied MOSFETs can be easily changed for another type. The easiest to implement would be a similarly sized TO-220 device however with a little ingenuity almost any sized device could be used.

Inverting driver

The supplied microchip xxxx driver has a sister that “inverts” the signal instead of the more normal standard operation. This IC can be substituted without any modification to the circuit.

Category : Uncategorized | Blog