"Fluffy" - A Scenix (and PIC) Programmer

I was trying to think of a suitable name for this project, and after literally seconds of careful deliberation, I gave up and decided to call it Fluffy. Sorry.

Anyway, Fluffy is a SX programmer for people who have already experimented with PIC chips, and want to try out the Scenix SX family. I built Fluffy because I wanted to experiment with the SX's, but didn't want to spend $300 or so bucks on the official development system. To build it, you will need a PIC16F84 (a 16C84 will probably also work, but I don't have any to test!). Note that this implies you should already have a working PIC programmer. If you don't, you might want to check out COM84, or any of the multitude of free, cheap PIC programmers available on the web.

As usual, the standard disclaimers apply. I accept absolutely no responsibility for any damage caused by the use of this system. It seems to work just fine for me, but if it happens to blow up your chips, melt your computer or exterminate your family and friends, etc... etc... then don't come crying to me. Fluffy is completely free - please go ahead and use/distribute as you wish, provided that it's used only for noncommercial purposes, and the above disclaimer is also distributed with it.

21st May 2001

Steven Willis has been working on a new version of Fluffy, with improved serial port speed, and a number of bug fixes. Since I'm no longer actively maintaining this project, you may want to head over to his page and get the latest code from there. Thanks also to Bonny Gijzen for adding Fluffy support to his excellent IC-Prog PC software.

Version Information
fluffy is currently undergoing a few changes, mainly brought about by Scenix's recent silicon revision. Therefore, there are currently a few different version available...

0928fluf.zip - Sept 28th 1999
This is the latest code, which uses a completely rewritten fluffy.exe. The firmware code has also been upgraded to support the 16C6X class of PICs. The main things to be aware of with this version are that the -test option has been removed, as has the support for the fluffy.ini config file. Everything is now on the command line, and some of the command-line options have changed. The code has been changed in such a way as to make adding more chips easier. At present, support for SX (old and new revs), 16F84, 16C84, and 16C64 is included. In theory a much larger range of PICs should be supported, simply by adding the relevant lines in the chips[] array, but I just haven't had time.
STOP PRESSI just received some samples of the new revision SX18/28's from Scenix. The really quick test that I just did suggests that the code is working. I've just added simplel.sxh to the ZIP file, which is the equivalent of simple.sxh, but for the new revision.

DOH! It seems some of you are experiencing problems with the new code, when using the parallel port interface. I've just tried to track down the problem, but my programmer doesn't seem to work with my new PC! (I haven't touched SX chips for quite a while). If you do experience this problem, can you please first try the older version of the code, and then let me know what works, and what doesn't. Thanks!

0216fluf.zip - Feb 16th 1999
This is the original, much older code. It has a very different interface, and only supports the older SX revision. It does, however, have a semi-useful -test command-line option, which runs through some simple diagnostics, enabling you to hopefully verify that your programmer is built correctly.

I apologise for the somewhat disorganised nature of these releases, but I am unfeasibly busy at the moment, and thus unable to spend the time I'd like to on this...

The ZIPs contain the following files:

fluffy.exeMain programmer software.
fluffy.cSource for FLUFFY.EXE
fluffy.txtBrief description of how to use fluffy
sxprog.hexPIC16F84 hex file
sxprog.asmSource for SXPROG.HEX
simple.sxhA simple test SX program that counts upwards on PORTB really fast.

Anyway, here's the schematic - I hope I've drawn everything right. Basically A0 and A1 control the SX OSC1 voltage level - both low implies 0V, A0 high (and A1 low) implies 5V, and A1 high (and A0 low) gives 12.5Vish. If you want to implement your own power supply circuit, it shouldn't be too hard.

2nd Sep 2000
Just a quick update - "Ling SM" has sent me a few pictures of a nice portable implementation of Fluffy. As you can see, there are some spare components available - email decoder@bigfoot.com for details.

2nd Mar 1999
A number of people have written to me, offering to write a W95/NT version of the PC software. Since it's unlikely that I'll have time to do this myself, anyone who wants to is more than welcome! I realise that fluffy.c and sxprog.asm, although commented in places, aren't necessarily the most legible or intuitive pieces of code in the world. So, in the spirit of open protocols, (and in a thinly disguised attempt to get other people to do this stuff for me), my attempt at documenting Fluffy's protocol is here, in MS Word format.

1st Mar 1999
Just a quick note - there has been some discussion of late regarding SX chips' propensity for suddenly deciding to draw a large amount of current, in some cases resulting in a hot, unpleasant smelling chip death. This appears to be a problem with SX chips in general - people using programmers other than Fluffy have experienced it, as have I. One suggested safeguard is to put a 100 ohm resistor between the programmer's OSC1 output, and the SX's OSC1 pin. I haven't cooked a chip for a while, but hey, best to be safe.

23rd Feb 1999
Apparently not all diodes are created equal, and a 1N914 or 1N4148 is more suitable for the voltage adjustment on the 7812 (Thanks Al). Schematic updated accordingly.

16th Feb 1999
Got rid of sxtest1.exe and sxtest2.exe. They have been replaced by a -test command line option in fluffy.exe. This enables both serial and parallel port programmers to be tested using the same software that you actually use for programming. Much more sensible.

15th Feb 1999
Okay... the schematic now contains the serial interface modifications, and the zip file has been updated. Simply specify -com1, -com2, etc... to specify a serial port to be used. If you don't specify a serial port, the parallel port will be used by default. Note that if you want to build a programmer that can attach to either port, you'll need to use jumper J1. This is simply to stop the MAX232 driving the A2 line when using the parallel interface. The serial communications run at 38400 baud, and all handshaking is done in software. Also, sxtest1.zip and sxtest2.zip are for the parallel port interface only... haven't got around to updating them. A word of warning - the serial stuff is fairly untested... it seems to work for me, (although I did fry a few SX chips, seemingly due to a dodgy programming voltage level on my new board - SX's seem to be much less robust than PICs) - so use it at your own risk!!!

14th Feb 1999
I haven't updated this page for a couple of weeks, because I've been a bit busy with my real job. The serial interface seems to be working fine, but I haven't put it into the full circuit yet. As I type, a new PCB is etching away slowly, and if this board works, I'll post the schematic/software mods over the next day or two. The only extra components are a MAX232 (plus 4 caps), a jumper and a pullup resistor on MCLR. The jumper is only required if you want to be able to use the programmer with both parallel and serial interfaces. The same software is used on both the 16F84 and the PC, regardless of interface.

1st Feb 1999
Oops! Apologies... fixed a small bug in the PC software, that didn't raise the MCLR line to 5V after programming PICs. allnew.zip has been updated accordingly. I've also re-ordered things a little bit. Also, for the sake of completeness, here's a picture of my implementation of Fluffy...


Yes, I know it's just a black box, but I'm not going to show the insides, otherwise people will make fun of my complete lack of electrical expertise! (As I've repeatedly stated, I'm a programmer, not an engineer!!!). I've probably ignored all the important rules about ground planes, heatsinks, blobs of solder everywhere, blah blah blah... All I know is it seems to work, so I'm happy.

30th Jan 1999
Got the programmer to successfully program a 16F84. There is an updated fluffy.exe in the all new allnew.zip. This is a direct replacement for the older version of all.zip - it contains updated PC and PIC code. Note that the schematic now also shows the alternate connections to the target PIC. Don't forget to check fluffy.txt for the new PIC-related syntax. Now, since I don't have any PICs other than 16F84's, I have no idea if it'll work on other PICs. Your mileage may well vary. I'm currently also considering adding RS232 support to the programmer. This will probably entail a few extra components, but should allow the programmer to be truly platform independant. Which is nice.

28th Jan 1999
I've been a bit busy doing real-work-related things over the past week, and consequently haven't had as much time as I'd have liked to work on Fluffy. However, I've started modifying the 16F84 code, to allow PIC programming as well. It's looking good so far, and the only modification to the circuit is the addition of a 4.7K pullup on A4. (The astute observers among you will have noticed its sudden appearance on the schematic). Once I've made the necessary mods to the PC software, I'll post the lot.

23rd Jan 1999
The assembler, flufasm is here. It's probably still full of bugs, and it doesn't do macros, but hey. It uses a Microchip-style syntax, not Scenix. I'm including demo.asm, which is a really annoying demo program. Attach a piezo speaker to B0, and you'll see what I mean. Anyway, demo.asm should give you an idea of the syntax. Please don't write to me telling me about ways to improve the assembler - I'm going to do a full rewrite at some stage anyway. It's built as an NT executable, so you'll have to run it from the command line under NT or 95. Also, make sure inst.dat is either in the current directory, or the same directory as the executable.

20th Jan 1999
Doh! My laptop broke, so I've sent it back to be repaired. Sadly, I forgot to grab the assembler code off it. I have a backup, but it's at work, and I'm at home with the flu! No asm today, folks.
Thanks to Luis Correia (lfcorreia@hotmail.com), there are some pictures of his implementation of Fluffy. Luis has offered to produce a Protel circuit/PCB, so keep checking this page! Click a thumbnail for a bigger image.

19th Jan 1999
Fixed minor stupid bug in the programmer software, that required a fuse configuration to be specified, even when reading the chip. Duh. The assembler, flufasm is kind of working, and hopefully I should be able to post something soon.

18th Jan 1999
fluffy.c had a minor update to allow it to accept fuse configurations from a fluffy.ini file and the command line. This means that any assembler capable of producing Intel Hex format files can be used with the system. I've also added fluffy.txt which explains things in a little more detail. In a surprising fit of activity, I've also started writing an assembler for the SX chips. Whether it'll ever get finished or not is anybody's guess. Watch this space...

17th Jan 1999
I've been messing with the PC code, and I think it's stable enough to be released. I haven't tested it that extensively, but it's looking good so far. The only input format it supports at present is Parallax Inc's .SXH format, which is actually just Intel Hex format with the FUSE and FUSEX words mapped at 0x1010 and 0x1011.

Back to the PIC Projects page

[Skip Prev] [Prev] [Next] [Skip Next]
[Random] [List Sites] [Join Ring]