KiCAD Freakduino

Based on the excellent work of Akiba of <a href=
Freaklabs, re-created in free KiCAD format. (Some components differ.)” width=”300″ height=”244″ /> Based on the excellent work of Akiba of Freaklabs, re-created in free KiCAD format. (Some components differ.)

For a long time, I’ve wanted to get into 2.4GHz digital RF communications, using microcontrollers. I recently came across the Freaklabs “Freakduino” v2.1a and bought a couple straight away.

The Freakduino – or chibiArduino (link to authentic Freakduino site) – is an Arduino compatible device, with on-board 2.4GHz radio. It utilises a custom-built protocol stack, named “Chibi”, which means “midget” in Japanese.

The radio chip itself is a Zigbee compliant Atmel AT86RF device. The Chibi stack, written by Akiba of Freaklabs, is an easy to use and light weight (small code size) stack, enabling simple communications, for known network structures. So, no mesh capability or anything like that. But it’s fully capable of addressed, bi-directional point to point and broadcast communications, over 802.15.4 style data channels and physical layer provided by the AT86RF radio chip. I’ve found it to be really fast and it even handles error correction on the fly. Just the thing for sending sensor information or twitter texts. (Honestly, I barely know what I’m talking about. So keep your grain of salt handy!)

If you wanted to, you could easily extend the Chibi stack to work whatever magic you can dream up. But you’ll be pleased to know there’s also FreakZ, a mesh networking stack. FreakZ is in early development at the time of this writing. It’s a big undertaking and already a great start!

Chibi requires only your favourite microcontroller and a compatible radio chip. So quite small circuit boards can be made.

Most importantly for me though, Chibi gave the opportunity to learn and understand low level Zigbee style radio communication, without having to learn the full Zigbee protocol and everything it is capable of, just yet anyway. So my learning curve has been significantly reduced, while still allowing practical devices to be built at my hobby desk, now. Very cool. Thanks Akiba! 😉

The Freakduino hardware, whilst fully open, is apparently authored using closed electronics CAD software, of some kind or another. I prefer to use open and free (as in speech) software, like KiCAD. So, this project is about creating a Freakduino v2.1a compatible board, in free KiCAD software, while at the same time gaining experience with the Atmel 2.4GHz Zigbee radio chip and Chibi, or course. This will also be only my second experience of hand building a board with a tiny QFN part as well as my first ever 2.4GHz project. So plenty of knew stuff to learn and play with.

Luckily, my interests in Ham Radio have prepared me for the some of the … shall we say, mystical aspects of microwave radio circuitry. I think I’ve got it about right in this case.

So there it is. An open KiCAD  based version of the Freakduino v2.1a. Bare in mind though that it will surely cost you a lot more to build your own, compared  just buying from Master Maker Akiba, over at his Freaklabs Store!

My design uses a couple of different components (level shifter and 5V boot regulator) due to local availability. Ironically, after a week of failing to find the two troublesome parts and going ahead with my modified version, I just received an email from China, asking me how many thousands of the ones I couldn’t find! Oh well.

Finally, I should point out that building one of these boards for yourself, using my open source design files hosted at Google Code (and not yet production ready at time of writing anyway) will be MUCH (much!) more expensive than just heading over to the Freaklabs online shop and buying some directly from Akiba, the original creator. I’m choosing to, “suffer the expense” as an education cost, you see. 🙂

USB DSL Traffic Meter / Alarm Thingy

USB Bandwidth Alarm image
USB Bandwidth Alarm Prototype

Recently, something went rogue on our network and happily consumed over 3GB every hour, for 16 hours — over 85GB in less than a day. :-/ I was not impressed.

So, this afternoon I thought, “Wouldn’t it be nice to have some simple, visual / audible display or alarm that would alert me to problems like this, without having to remember to check on my traffic accounting system.” So I made one.

Continue reading “USB DSL Traffic Meter / Alarm Thingy”

Curing Multiple Drive Map Weirdness in Windows

To help Google help you find this article, I should mention a few names I’ve come up for this scenario, search query names like, “multiple unwanted drive mappings”, and “windows multiple duplicate drive mappings” or even, “windows many cloned drive maps fault”.

Foreword

None of the stuff in this article actually worked out in the end. Seems that underneath all the eye candy, Windows is still uselessly poor where it counts. Save yourself a lifetime of hassle and switch to Mac. You’ll never look back. That said …

The Story

A long, long time ago, I remember having a strange problem under Windows XP with Office 97. Machines around the office would have a single drive mapping to a samba network share — say, something like …

\\server\homedir (H:)

After booting, if I opened Windows Explorer soon enough, I’d see just that one mapping, as expected. Then, if I just sat there, doing nothing but staring at ‘Explorer, after a minute or so, that same mapping would start duplicating itself under every avaialble drive letter. Something like …

\\server\homedir (E:)
\\server\homedir (F:)
\\server\homedir (G:)
\\server\homedir (H:)
\\server\homedir (I:)
\\server\homedir (J:)
... all the way down to ...
\\server\homedir (Z:)

Back then, it took ages to find the cause, which turned out to be some kind of bug in the Office 97 ‘parasite’ program, FindFast — a file indexer meant to make finding stuff quicker, which it actually did do, reasonably well, I guess. (Who on Earth forgets where they saved things though? :p) Completely removing FindFast made the problem go away back then and I hadn’t paid it the slightest thought over the ten plus years hence. (Never came across it again either, oddly enough!)

Fast-forward several major service packs of Windows XP, through Windows Vista (yikes!) and all the way up to Windows 7 (with the latest service packs as at 2011-01-01) and we find that, in true-to-themselves Microsoft form, the SAME fault still exists in the Windows7 buil-it Indexer service today. AMAZING, yet somehow not surprising. (I converted to Apple Mac as soon as they went Intel under BSD Unix — after some 20 years of Windows’ psych0-trauma’ing. To think — I used to actually believe that bugs like this were just an unavoidable part of owning a computer. I’m much wiser now though! :p)

Granted, this is one of those faults that seems to hardly ever show up anywhere on the planet — unless M$ have a secret pact with Google to remove all mention of it, somehow. But it’s not completely unheard of. I did manage to find ONE solitary post on the topic, from back in 2004 I think. Heck — it might even have be from me. (Don’t think so.)

So the fix under Windows7?

Go to the Control Panel, change the view to anything but ‘by Category’ and locate Indexing Options icon. Activate that and click the Modify button, lower left of the resulting window. Remove the tick from checkbox alongside Offline Files. (Searching for files you can’t even access? What’s with that anyway?) Problem solved.

I have to admit that I was quite astonished when this stab in the dark actually did cure the fault. Since I’ve been living with it for months (in a virtual machine I use for PCB design under Windows) and only just finally came up with this brain-storm-fluke of an idea, I thought I’d better blog about it somewhere, in hopes others with the problem can learn the answer too. Hope it helped … and that my sarcastic, cynical banter wasn’t too bad a thing to endure.

Oh no!

The problem came back. It no longer happened “just on its own”, as mentioned above. But some programs seemed to trigger it to happen again after opening the Choose File dialog box.

Suspecting the possibility of residual index data from before I disabled ‘Offline Files’ indexing, I click the Advanced button in the Index Options window and then the button to delete and rebuild the index. So far, the problem has not come back again. Yay \o/

I suppose that disabling the indexing service altogether (don’t know how in Win7 yet) might be the ultimate fix. But it seems a little ‘sledge hammer’ to me.

I Give Up

OK. I give up. It came back again the next morning. If you stumbled upon this post and did eventually find a permanent cure for this ancient incurable Windows BS bug … please do let me know by way of a comment. Thanks.

ER9X-ala-gruvin has its Own Project Home

Wow. Looking back on those earlier posts about my ER9X hacks is kind of embarrassing now. But hey … that’s life. Always moving on, until it doesn’t!

My TH/ER9X hacking adventures have now launched off in whole new directions — including an open design project for a complete replacement main logic board for ‘9X radios. As of this writing, the first prototype PCB and components have been ordered, due to arrive for assembly very soon.

The gruvin9x project is currently focussing on Fr-Sky telemetry support and the afore mentioned prototype logic board. The latter is all about expanding the program capacity of the ATmega controller (upgrade to ATmega2561) and adding a fully functional MMC/SDCARD interface, with FAT32 file system support. This will be used to store model data and other stuff — like telemetry logs or even autopilot flight plans (much later). The fun has only just begun!

The whole project is now hosted at Google Code, under the vanity name gruvin9x — including the KiCAD open-source circuit diagrams and PCB design. Enjoy!

Once again, a BIG thanks to Thomas of TH9X, who got us started — and Erazz of ER9X, with all the followers and contributors there, who have added so much already. I haven’t had so much fun in years!

ER9X-gruvin 20101111 release

WARNING: This is a really, really old and WAY out of date post.

Visit The OpenTX Project for the hugely improved, latest version of this firmware.

We — that is, myself and friends — now use a much later and (astonishingly) far more feature rich and optimised firmware, named open9x.

ER9x-gruvin Firmware Release 2010-11-11

I’ve made a few changes/additions to my ER9X firmware.

Feature 1 — Keypad auto-repeat delay

The standard ER9X firmware (and the original TH9X version) do not wait a while before commencing key/button auto-repeat. Hence, if you hold a button down just a tiny bit too long, you end up going two or three ‘clicks’. This frustrated me, so I added a longer initial delay, as we’re used to having on PC keyboards etc.

Feature 2 — Better beeps and buzzes

If you have a stock Turnigy/iMax 9X you like to rave about, I’ll bet you don’t mention the hideously annoying/ear-piercing buzzer/beeper thingy!

And, if you’re planning on following my Fr-Sky telemetry additions, you’ll probably be wanting various different tones frequencies/tunes instead of the stock high-pitched squeal for every event.

My solution was to disconnect the stock ‘screamer’ and replace it with a miniature speaker — WITH A 4.7uF CAPACITOR in series. The capacitor is needed to prevent damaging your CPU and/or wasting battery power. I got my ‘speaker’ out of some old budget headphones.

To make it work, I’ve written code to implement “beeps” of any desired length and at lots of different frequencies. So, I can now have long, high pitched tones or short, low pitched tones — or even complete tunes like, ‘Knees up mother brown!’, if I want . 😀

All this will come in handy when I have my AoA (Angle of Attack) sensor and telemetry feedback for ‘always perfect’ landings … or at least, such is the goal. I plan to use tones similar to the rise/sink sounder in modern gliders, and probably a plug-in earphone.

The version I’m posting today has all present tones the same frequency (lower!) and at the same durations as the original ER9X firmware. It  works so well that I’ve actually turned ‘key beeps’ back on. Much more pleasant to the ear now. 😀

The Code

[This code is based on ER9X trunk, release 262]

Pre-compiled HEX

The file er9x-hex-gruvin-20101111.zip contains four pre-build hex files ready for flashing. Their names include the features they contain. The names are …

er9x-frsky-rptdelay-speaker.hex
er9x-frsky-rptdelay.hex
er9x-std-rptdelay.hex
er9x-std-rptdelay-speaker.hex

NOTE: The two FRSKY versions require that you re-wire stuff inside your 9X. “std” means “standard” or “not Fr-Sky”.

If you have a stock ‘9X and you just want the better keypad auto-repeat delay, use er9x-std-rptdelay.hex.

Source Code

My complete source code for this version can be found in the following file: src-gruvin-20101111.zip

There are two new make directives for turning on and off the new features. They are:

BEEPER -- values can be BUZZER (the default) or SPEAKER
KEYRPT -- values can be STD (the default) or DELAY

Example make usage to include both features, as well as Fr-Sky support …

make EXT=FRSKY BEEPER=SPEAKER KEYRPT=DELAY

The Future

As time goes on, I may end up as a submitter for the ER9X project itself. However, if I start adding lots of custom features, I’ll probably fork off with my own project – Groovy9X I suppose :-P. Time will tell.

Speaker / Capacitor Installation

Correction to the above — you can’t actually simply “replace” the stock beeper with a speaker. The image below shows what I actually did. (The capacitor is installed the wrong way around too by the way. Negative should ideally go toward the white speaker wire.)

click for full-size