ER9X-ala-gruvin has its Own Project Home

Wow. Looking back on those earlier posts about my ER9X hacks is kind of embarrassing now, given what I’ve learned since then. But hey … that’s life! Always moving on.

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

ER9X-gruvin style. Add a keypad auto-repeat delay to stop flipping past the items you want. Replace the horrible stock beeper (screamer) with a speaker for variable frequency tones (to compliment in-flight telemetry feedback.)

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

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 contains four pre-build hex files ready for flashing. Their names include the features they contain. The names are …


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:

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 …


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