Fun, Forth and FIGnition
This post is not about Raspberry Pi. Sorry about that; I thought I'd take a break from all that heady stuff about HD graphics and ARM processors to look at a similar sized and priced beginners' computer board, but located towards the Arduino end of the processor power spectrum. It comes as a kit of parts and you have to solder it together yourself. The other unusual feature of this microcontroller board is the Forth programming language it uses.
I first heard about the FIGnition from @Retrophile when he commented on my Jupiter Ace blog post a few weeks ago. I couldn’t resist buying a development board that had to be soldered together before use! I received a small packet soon after ordering on-line containing a bare Arduino-pattern PCB and a couple of plastic bags of chips and discrete components. There are three chips: a 20MHz ATmega168 microcontroller, a 512Kbyte Flash memory and an 8Kbyte RAM. The assembly instructions on the website are very comprehensive reflecting the essentially educational purpose behind the project. Every constructional detail is covered followed by a page of tests. Some may regard this as a little over the top, especially the suggestions to take a break at regular intervals, but hey, it's aimed at beginners! I spent an enjoyable 45 minutes soldering all the components on to the PCB and figuring that an engineer such as myself could skip all the tests, I attached the TV and PSU and switched on. I was relieved to see the opening message and prompt.
Like the early ‘home’ computers it boots up into a high-level language interpreter which can accept ‘immediate’ commands or run a stored program. When the language was BASIC you could just type:
PRINT “Hello world”
at the prompt and it would do just that. The equivalent in Forth is:
.” Hello world”
A major design feature of the FIGnition is that it needs the minimum of accessories to get it going. All you need is a Composite video cable (Yellow RCA jack) for connection to a TV and a power supply connected via the USB-B socket. Good old iPhone charger pressed into service here. All commands and programming can be done using the eight push buttons on the board. Some clever tricks have been used to minimize the number of keystrokes (button pushes) required but the fact is entering a large program would be intolerable. If a student stops here, having run a few commands and some simple programs it would be a waste of the 512Kbyte program memory available. Forth is very efficient and some sort of world-domination program is possible with that memory capacity. There is a way of downloading code from a PC using some freeware, although this is really intended for firmware updates.
Connector footprints are provided on the PCB to take header sockets enabling Arduino-style Shield expansion boards to be plugged in. If you want to get beyond the simple keypad and download text files from a PC then I suggest a serial I/O Shield be built using say a MAX202 RS-232 buffer chip linking the Rx/Tx pins to a PC COM port. Of course the firmware will probably need modification as well. I’ve not looked into this in detail, but it should be possible.
In conclusion, I’m very impressed with FIGnition: you can’t beat the sense of achievement you get when you build some hardware and it works! Of course there’s always the risk that it won’t work at first. That’s what makes it a powerful tool for education: sorting out the kids who have the patience and tenacity to locate the fault and make it work. They will be the engineers of the future.
If you're stuck for something to do, follow my posts on Twitter. I link to interesting new electronics components and development kits (some of them available from my employer!) and retweet posts I spot about robot, space exploration and other issues.
CommentsAdd a comment
I don't know if you are aware, but the 'nudge' function is already there, you can use the cursors to move one grid snap step at a time.
The only problem with this is that it only starts working once you have moved the item already with the mouse. It would be better if it worked as soon as you left-clicked on an item.
1) Rulers and guides in the PCB symbol editor. Think Adobe InDesign.
2) A configurable "nudge" command using, for instance, the arrow keys and allowing a component / object / line segment to be moved by a user-configurable distance per key press.
3) A "grab and move" functionality (again a la Adobe), e.g. pressing the space bar changes the cursor to a "grabbing hand" that allows the drawing to be moved around on the screen by moving the mouse (or pen if you're using a graphics tablet).
4) A keyboard shortcut that switches the mouse wheel between zoom and pan mode. This has already been suggested elsewhere in this forum - I'm just agreeing :-)