Relevant Items on Amazon.com
Books :-
Components :-
HandyBoard Hackers' Resource Guide
Official site is at http://hc11-ide.funkmunch.net, check there for latest updates.
News
- 10 December 2007
-
Added Reducing Voltage Regulator Noise.
- 30 June 2007
-
Stumbled across OpenSLAM.org, a site full of Simultaneous Localisation and Mapping algorithms for robots thanks to wildmage at irc://irc.freenode.net/##robotics.
- 23 June 2007
-
Added Etching with Air Regenerated Acid Cupric Chloride so you never need to replace or dispose of etchant again :D
Have been playing with a ts-7250 lately, and have an ETX-LX-800 waiting to be hooked up too. I intend to use one (or both) of these boards for mapping, vision processing and high-level decision making. In keeping with the modular design of my robot, the base handyboard will still be able to do basic stuff like obstacle avoidance and simple navigation on its own - a multiprocessor subsumption heirachy should prove to be a very interesting testbed :)
There have been numerous updates to newbrain since last post here - mostly minor fixes, but a few more major changes too.
If you know how to use a pair of MC34063 switchmode ICs in an alternating sepic configuration, swing me an email with links. The ETX-LX-800 wants 5v at 1A(constant) and I've no interest in supplying this with a linear regulator, plus the motor can pull the battery as low as 4v. Separate batteries for motor and logic is looking more and more attractive.
- 18 April 2007
-
Backlinked xHx Bookmarks, a list of bookmarks covering a fair range of robotics related articles on topics including pattern recognition, interfacing and robot operating systems.
- 29 March 2007
-
Kernel is working very nicely, now has a functional talker and scheduler along with numerous other updates, improvements and fixes.
Writing the scheduler and fork() implementation was lots of fun, and the new stuff for autostarting downloaded userspace programs is great too.
Library is coming along nicely too.
Added a couple of optical sensors the other day, uses difference between led on reading and led off to mitigate effects from ambient light as well as providing a solid indicator of the kernel running properly. Will add more soon, and post photos as soon as I have some.
The liquid silver has sorted the battery pack nicely too, now it has no problems with sudden changes in motor velocity.
- 7 November 2006
-
New kernel code is falling into place piece by piece - I'll make it actually do something as soon as I've fixed up the serial code and integrated a talker into it.
Added http://www.societyofrobots.com/ - How to build a Robot Tutorial.
- 7 October 2006
-
Thermal grease is no good for battery packs. I will have to get a silver “touch-up” pen and remake the pack. My battery voltage is drifting all over the place with just 20mA current draw, with over 100 ohms internal resistance unless I squeeze it.
I have resurrected the sourceforge project, and am beginning to use their subversion repository for braincode v2.
I am also mirroring this site there, at http://hc11-ide.sourceforge.net.
- 23 September 2006
-
Made the new battery pack yesterday. Am trialling micronised silver thermal grease to increase conductivity of the terminals so I don't have to solder. Seems to be fairly high resistance so far, but I do expect it to take at least several days to settle in, just like when it's used for its intended purpose on heatsinks. Worst case scenario, I'll have to clean the terminals and remake the pack with something better suited.
I have reached that inevitable point in any learning process where it's easier to start over from scratch than continue with the current layout.
I am splitting my code into 3 sections: kernel, library and userspace code. This should allow me to only update parts which have changed, as well as making ram banking almost trivial when I add the hardware for it. Hopefully things will be easier to find as well :D
I have even worked out a method where each individual file can add itself to a named call stack which will make choosing what to include and exclude quite trivial! Only used in the kernel so far, but I already know of a few other places where it will be extremely handy, such as the wireless/serial error detection/correction stack.
Gnu ld's -R flag seems perfect for resolving/including symbols without including the library, which will allow me to cross-reference the sections without them becoming one object file. Be careful of --gc-sections - it makes libraries without an entry point empty!
Code from my rewrite is now available at newbrain/, and will be updated every so often.
- 19 September 2006
-
I have been playing with my radio modules, writing hamming error correction and some serial bit-banging for the mouse I'm gutting for quadrature encoders and a buffer on a 1200 baud link. I'll do a big post when the code is looking stable again.
New batteries coming soon, the current ones are over 18 months old and quite worn out. 25Wh should be plenty of power :D
I'll probably add a charge current sensor so I can integrate to find energy stored, since charge completion has proven relatively difficult to detect accurately.
Backlinked Ericson Mar's Robotics Links
- 5 July 2006
-
Pics!
Posted some robot pics to robotpics/.
- 29 June 2006
- Added hb_charger_layout.png (32KiB, 911x610)
I'll be posting recent source code to botbrain/, 16-servo/ and s19_interpreter_bootstrap/ every so often.
- 25 May 2006
-
Triffid Hunter and crew have been working on the robot with much of the programming now being done in C as well as assembly.
The robot has been running around our house and randomly knocking things over. It often stops to gloat with a series of random beeps after knocking over piles of beer bottles.
When the robot isn't displaying "randomrandom" or "mystery!" (that one's fun) it gives useful information about the battery voltage output. This output drops when the wheels aren't spinning, and we are hoping to use this factor to determine when the robot is stuck, without sensors for now.
A dial can now be used to control the steering! This has been a post by wily, blame any errors on me!
- 6 March 2006
- Found GoRobotics and Robot Directory today.
- 12 February 2006
- My robot did an untethered dance this morning
I've also worked out the gnu m68hc11 toolchain to the point where I can mix assembly and C as much as I like, and strip all the usual cruft out of gcc's output.
Next up, writing subsumption architecture and adding sensors.
New code will be put up soon, sooner if someone emails me and tells me they care ;)
- 5 February 2006
- Updates to gnu-m68hc11 versions of 16-servo and bootstrap put up today.
Added Chris Hillman's Robotics / Animatronics / SPFX links!.
- 12 October 2005
- My robot lives!
After a lot of wrestling with power filters and assembly, my robot is now operational.
Expect updates to s19_bootstrap and 16-servo code in the next couple of weeks.
- 26 July 2005
- Found the Titan Robotics page.
- 9 July 2006
- Updated BootStrap to v2.1, worked out how to use m6811-elf-ld so everything works properly now.
- 7 July 2005
- BootStrap 2.0.0 released! See more at the BootStrap section
- 27 June 2005
- Added Making your own Printed Circuit Boards
- 28 April 2005
- Added FreeRTOS.org - A FREE Open Source RTOS Kernel for Small Embedded Systems
- 20 march 2005
- Added Electronic Component Datasheets and Data Books to documentation sources. Has been a while since i've seen a clean, easy and free to use datasheet archive.
A couple of minor typo corrections
I would love any comments/additions/suggestions/link exchanges/et cetera on this site - my email is at the bottom of this page, though a little obfuscated to keep the spambots out ;)
- 10 February 2005
- This site is now XHTML/1.1 compliant, rather than ancient HTML 4.01 transitional.
- 17 December 2004
- The HandyWiki has returned, faster and better than ever!
I'll be adding lots of useful information into it over the next few months, give me a hand?
- 10 December 2004
- It's my birthday :)
- Fixed a bug in servo2.ic, kindly pointed out by Roberto Guerra, via The Handyboard Yahoo group
In setall(), I was incorrectly passing an array of char rather than an array of int to set_servo_value().
- 4 December 2004
- After quite a while of this site being offline, it has returned!
The HandyWiki is yet to be set up though
- 27 August 2004
- Most of the development happening here is the information resources at the moment. I'm waiting for IC5 to be released to see if my ideas would be easier to integrate into it, or better off written from scratch.
- 16 June 2004
- I now have a SourceForge project
- Compatibility
-

Online Resources
- Documentation and Information
-
- The Journey Robot An excellent page about a beautiful robot designed by David P. Anderson. I hope to have a robot as capable as J-Bot someday!
- How to build a Robot Tutorial - Society of Robots Has numerous documents and tutorials about robots, covering most skill levels.
- Chris Hillman's Robotics / Animatronics / SPFX links! A truly MASSIVE list of robotics and animatronics links.
- Seattle Robotics' Encoder online publication. A must read for any roboticist!
- WebEE.com - The Electrical Engineering Homepage this site has so many tutorials and building blocks, you'd be a fool to not bookmark it ;)
- Open Automation Project “This project aims to fill the gap between the powerful mobile robot platforms typically used by researchers, and the small rug-roving robots with limited processing power that are popular with hobbyists.”
- The Hardware Book A handy site chockers with pinouts and lookup tables and all those sorts of infinitely useful tidbits of information.
- Deathbots A new robotics related website, built and managed by the author of Interactive-C 4 and 5.
- Robotics Links A dauntingly enormous list of robotics related sites related to any and all aspects of robotics. This list is HUGE!
- Metal Gods! A rapidly growing robotics page with a handyboard section and libraries+utilities+information for the gcc 68hc11 cross-compiler toolchain, amongst some other great resources.
- Titan Robotics These guys have some interesting robotics, in particular Tyr, which has algorithms for controlling torque (rather than speed) with a PID algorithm
- DC Servomotor Control An interesting article about making a fast and accurate servo
- FreeRTOS.org A FREE Open Source RTOS Kernel for Small Embedded Systems
- Chip Directory A HUGE database of IC pinouts and other data. Seems to be expanding into other areas too.
- Leroy's Engineering Website mountains of useful information about various computer related components, buses, and an extensive section on designing logic circuits
- Electronic Component Datasheets and Data Books A huge database of free-to-download datasheets. The only hassle is it doesn't use Content-Disposition correctly, thus all .PDFs download as "RequiresAcrobat6.pdf" regardless of their original name. Apart from that, layout is clean and site is very easy to use.
- www.HandyBoard.com The official home of the MIT HandyBoard.
- Beyond Logic An excellent resource of information about interfacing PCs to uCs and the real world. Includes extensive details on the serial port, parallel port, USB, the AT keyboard protocol, linux for uCs, ethernet and much more!
- Talking Electronics An australian company that sells many great kits, and also has oodles of free information on their site.
- Discover Circuits An online database of electronic circuits
- Making your own Printed Circuit Boards Seems to describe a simple and effective process for home-building quality circuit boards
- Australian Bot Builders League An australian special interest group.
- Cpu & Micro A quite extensive page of links to other cpu & microprocessor resources. Page itself is french, but most of the links are to english sites.
- Home-Brew Shaft Encoders
- H-Bridge Fundamentals An excellent article covering H-Bridge basics and some of the voodoo of implementing a MOSFET H-Bridge
- ATX Power Supply How to convert a standard atx power supply to run off 12 or 24v. (Homepage,Local Mirror)
- Converting a CD-ROM spindle motor to a high speed rc aeroplane propeller motor Could be a handy article to read if you ever need a high speed low torque motor.
- Ray's electronics docs with many Engineer's mini notebooks and other educational tidbits.
- xHx bookmarks, a list of bookmarks covering a fair range of robotics related articles on topics including pattern recognition, interfacing and robot operating systems.
- GoRobotics Robotics News
- Robot Directory Robotics Projects
- Ericson Mar's Robotics Links
- Etching with Air Regenerated Acid Cupric Chloride Never dispose of or buy new etchant again!
- OpenSLAM.org Simultaneous Localisation and Mapping algorithms for robots
- Reducing Voltage Regulator Noise
- FET Current Ratings - How to tell how much current your design can *really* control without letting the smoke out
- Australian Shops and Parts Suppliers
-
If you're curious, I have NO affiliations with any of the shops below. They don't even know they're linked to from here, unless they check their referrer logs. All are linked for the sole reason that I think they might be useful to any australian robot builders out there.
- Talking Electronics Shop An australian company that sells many great kits, and also has oodles of free information on their site.
- Oatley Electronics An excellent australia/sydney based electronics store, unique for the fact that they buy surplus and obsolete equipment from companies and auctions and sell everything they can find at a fraction of its value. Check this site often! They ALWAYS have GREAT bargains on large and small motors, controllers, a vast range of parts and kits, hard-to-find components and odd devices, the vast majority excellently suited to robotics.
- Jaycar Large Australian chain of electronics shops, far more hobbyist oriented than Dick Smith.
- Altronics Smaller West Australian chain
- Dick Smith Electronics Largest Electronics chain in Australia, although not as hobbyist oriented as some smaller stores/chains
Local Resources
- 16 servo addon
-
For handyboards without the expansion board. I have documented this gem on a separate page: 16 servo addon for HandyBoards without Expansion.
- BootStrap v2.1
-
PLEASE NOTE: Bootstrap has become the “talker” part of braincode v2. The information below is subject to change, and latest code will be at newbrain/talker/ as well as in the subversion repository — The files in s19_interpreter_bootstrap/ will no longer be updated.
A program for the 68HC11 that fits into the 256 bytes of zero page ram, relocates to 0x8000-0x8100, registers itself in the reset interrupt, and accepts Motorola .S19 records (S1, S9 records so far) at 1200 baud. Excellent for the very first program ever loaded into your 68HC11 platform!
Designed to be compiled with the GNU m68hc1x cross compiling toolchain
There are two different debugging modes, both of which will require you to send bytes at a greatly reduced rate as the handyboard will be sending a lot of data back.
You will have to edit the Makefile to change or disable until I update it to take arguments.
- DEBUG_STYLE=1
-
This debug style sends 0x00 if it is waiting for an 'S'.
It sends 0x10 if its waiting for the 1 or 9 after an 'S'.
It sends 0x20 when waiting for a high nibble hex character (must be uppercase), and 0x21 when waiting for a low nibble hex character.
It expects one length byte, two address bytes, up to 16 data bytes and a checksum byte. The checksum is ignored.
If it recieves a character that doesn't match what its waiting for, it will throw an error, reset its internal status and resume waiting for an 'S'. The data for that record only will be lost, you will have to send it again.
- DEBUG_STYLE=2
-
This debug style doesn't send anything until it gets to the end of a line, then it sends back a '1' or '9', depending what type of S record it is, then it sends back every data byte as it copies (verbatim, not in hex) if an S1, or the subroutine/entry point address if an S9.
PLEASE NOTE: You will have to disable relocation (edit the Makefile) for this debug mode to fit into zero page ram.
Errata
BootStrap is vulnerable to buffer overflows. There is little to no bounds checking within the code, and BootStrap will happily accept all kinds of bogus values.
BootStrap's behaviour when passed a length less than three is undefined. It will most probably expect 257-length bytes.
BootStrap ignores the checksum, but expects to recieve it.
Many, many sacrifices were made to keep BootStrap within 256 bytes. If you want a feature added, grab the BootStrap source and see if you can squeeze it in. Programming with this little space is a real challenge. :)
I intend on filling BootStrap out into a more full featured “talker” that BootStrap itself loads, and provides code for.
- S19toBIN
-
A small utility that converts an S19 file into a binary file.
C:\Handyboard> S19toBIN -h will bring up the usage instructions. Supports padding out to a certain size as needed for making the bootloader.
- S19toBIN.exe (31KiB)
- S19toBIN.c (11KiB, source)
Linux/OSS Equivalent:
- m6811-elf-objcopy -O srec sourcefile.elf destinationfile.s19
- HandyBoard Serial
-
A (very!) simple program for downloading files and other data into the handyboard. Allows you to type text, enter any of 256 chars on a keypad, or drag-drop files.
- HBSerial.exe (108KiB)
Linux/OSS Equivalent:
- cutecom, minicom, stty 1200 raw ignbrk </dev/ttyS0 && dd bs=1 <somefile >/dev/ttyS0
- Documentation
-
Useful documentation, for every IC on your handyboard, except the voltage regulators, plus a few application notes and miscellaneous information files for good measure.
Please note that I am the author of NONE of these documents - I have gathered them from all over the internet and have mirrored them here for the convenience of handyboard experimenters. If you own any of these documents PLEASE contact me so I can link to your website!
ICs
- DS1233 (122KiB) Brownout detector
- 74HC04 (78KiB) The trusty hex inverter
- 74HC132 (70KiB) Quad 2-input nand schmitt triggered
- 74HC138 (48KiB) 3-to-8 line decoder/demultiplexer
- 74HC244 (199KiB) octal bus buffer, tri-state outputs, non-inverted
- 74HC374 (60KiB) octal D-type flip-flop; tri-state; positive edge triggered
- 62256 (144KiB) 32k X 8bit high speed cmos SRAM
- hd44780 (390KiB) Manual for the LCD driver IC
- L293D (863KiB) Motor driver ICs
- M68HC11RM (6,401KiB) Motorola 68HC11 Reference Manual (rev. 6) - This is ESSENTIAL for ANYONE wanting to learn about the 68hc11 microcontroller. [motorola.com]
Application Notes and other misc information
- MC68HC11 Programmer's Reference (776KiB) A much smaller, though less comprehensive version of the reference manual above.
- hbmanual (648KiB) Handyboard Technical Reference. [handyboard.com]
- AN432 (436KiB) Paging memory with the 68HC11. [motorola.com]
- hb64k (11KiB) Handyboard 64k expansion (similar to paging article above, circuit only) [www.rtjcom.com/6811/hb64.html]
- Handyboard Memory Mapping (428KiB) This actually documents the memory mapping of the MIT 6.270 board, but the handyboard's memory map schema is identical. [also documented at handyboard.com/faq/display.php?key=memmap]
- LCD_1 (264KiB) “How to use intelligent LCDs (pt.1)” - Julyan Ilett, Everyday Practical Electronics, feb 1997. [www.epemag.wimborne.co.uk/resources.htm]
- LCD_2 (122KiB) “How to use intelligent LCDs (pt.2)” - Julyan Ilett, Everyday Practical Electronics, feb 1997. [www.epemag.wimborne.co.uk/resources.htm]
- HandyBoard Layout
-
A more intuitive layout diagram than the three in the handyboard manual, with each layer shown one above the other in different colours. Invaluable for finding where and how things are connected.
Red = Solder Side (bottom of board), Blue = Component side (top of board), and Green = Silk Screen (writing on board). The colours are added in the image, so where you see purple (red+blue=purple), this is where there is a track on both sides of the board.
You can see the "solder side"/"component side" markers under the piezo speaker near the top left of the board
Please Note: This diagram was constructed from screenshots of the layout in the Handyboard Technical Reference above, and should NOT be used to create circuit boards, as it is not of sufficient resolution for a quality result. It is only intended as a learning aid, and does well in that regard.
This site copyright © Triffid Hunter, 2004. I can be contacted at triffid_hunter@funkmunch.net