A colleague of mine at GeekHack.org asked me to build one ErgoDox for him - he didn't like to solder SMD components.
After one month I could build his little keyboard:
I'm waiting for his pictures with the Keycaps ...
A colleague of mine at GeekHack.org asked me to build one ErgoDox for him - he didn't like to solder SMD components.
After one month I could build his little keyboard:
I'm waiting for his pictures with the Keycaps ...
Hi guys, long time no see you. There's a while since my last post - that's because I've been working into a few projects that I need to finish to keep my spirits up (my quadcopter for instance). I said that I need to finish a few projects? Now I do have to finish more one! I got kinda envious of my friend Gilson's printer and then I started another project (one Prusa I3). Yes, my procrastination list is still huge! Thanks to you Gilson!
One month or so ago Matt3o asked me if I could design a PCB for an Keyboard layout he had in mind at that time (picture 1). You can see more about his topic at the GeekHack forum - there are also a few awesome pictures of his keyboard there.

Picture 1, Matt3o Layout
After almost 3 weeks I came up with the 2 PCBs below:

Picture 2, complete PCB - GitHub Kicad files here

Picture 3, PCB with headers to attach the Teensy 2.0 board - Github Kicad files here
Matt3o ended up using direct wiring into his keyboard (I think he got impatient waiting for my design) and we didn't used these PCBs for real. Would be good to have a complete review before you do decide to order it into a fab house (OSH for instance).
If you do know what ALPs Switches are you do also know that there aren't many open source projects out there for this old fella - that's why the guys at the GeekHack forum came up with the idea to build one PCB to this little prehistoric switch.
The credit goes for Michal Trybus (Komar007 @ Geekhack), I just got his rev b project files and changed the switches used on it to fit the ALPs footprint. You can get more info regarding the original GH60 project at here and if you do want to know more about the Alps version at here.
This project is still up and running, right now we are just waiting the best moment to start the beta-testing and group buy action.
GH60 ALPs PCB, Github Kicad files here.
GH60 ALPs PCB Back side
So, let's say that you want to use your Arduino board with a LiPo battery. What would you have to do?
WARNING: If you have never used a LiPo battery before, I strongly advise you to read this guide before continuing. This guide will teach you the basic safety precautions required by this kind of battery.
If you do have the money for it OR if you don't fell comfortable working with the steps that I'm writing below, I suggest you buy a board that already has a USB LiPo charger embedded, like an Arduino Fio* - the only practical difference between this board and what I'm presenting here is the more expensive price and the impossibility to use it @ 16Mhz without modifying the board.
Since I'm always concerned with simplicity, I'll only suggest already tested and safe modules. We don't need to reinvent the wheel, do we? This is just a simple Arduino power guide.
| Charger/Booster | LiPo, 1S1P | Micro USB-B Cable | JST RCY Connector | 2pin molex |
Why use a "low discharge" battery and what the hell is that? The discharge rate is simply how fast a battery can be discharged safely, suffice it to say that we don't need a battery with a high discharge rate (the normal type out there) for devices with low consumption. Our Arduino is a low consumption device (it requires 100ma, tops) so a low discharge rate battery is more appropriate, safer and it will drain slower than a normal battery. If you want to know more about LiPo Batteries, take a look into this link.
This is the basic wiring to power up any Arduino board running at 5v (pictures 8 and 9). It's important to note that we are wiring the charger's output straight into the uC and it's not passing though the internal voltage regulator (the LM whatever LDO). That being said make sure to use only 5v regulated power sources otherwise you will melt your little friend.
The booster is also available in a single module, without the LiPo charger:
The Sparkfun's USB LiPo charger/booster used above can be configured to work at 3.3v, you can see how to into its guide, doing so you will be ignoring it's embedded booster circuit. For this scenario it's better to use one simple LiPo charger instead - cheaper and smaller.
| Charger | 5v Booster | Another Charger | More Charger |
At this point you did powered you Arduino however you didn't wired the USB data pins (D- and D+), there's no such pins in the LiPo charger nor in the 5v booster - both modules don't care about these signals. They could have designed these modules taking into account these pins but they didn't. Why? I think they are just assuming that you are only using the USB cable to charge your LiPo or to provide power to your device, not to communicate with your computer (silly assumption).
To enable the USB communication you will need one USB 2.0 header like the one I did here.
continue ...
Sometimes you will need a way to identify when the device is been powered by the USB or been powered by the LiPo. This is not required but it will help some wireless applications (if you don't need or don't have a clue why an wireless application would require it just wait my next post - when I'll wire a bluetooth module to one LiPo powered Arduino).
The easiest way to identify when the board is been powered by our LiPo is to check the USB 5v presence. You will need one 100k resistor, one wire with 2.54mm headers and one USB 2.0 header.
/*
USB 5v –> 100k resistor –> Arduino A5.
Blink when powered by LiPo.
*/
#define DEBUG
// Pin 13 has an LED connected on most Arduino boards.
int led = 13;
// Analog 5 will be used to read the vcc line voltage.
int vcc = A5;
// the setup routine runs once when you press reset:
void setup() {
Serial.begin( 9600 );
// initialize the digital pin as an output.
pinMode( led, OUTPUT );
}
// the loop routine runs over and over again forever:
void loop() {
int vccA = analogRead( vcc );
float vccR = vccA / 204.6;
#ifdef DEBUG
Serial.print( "VCC Voltage: " );
Serial.print( vccA );
Serial.print( " - " );
Serial.print( vccR );
Serial.println( "." );
#endif
digitalWrite( led, HIGH ); // turn the LED on (HIGH is the voltage level)
delay( 1000 ); // wait for a second
if( vccR < 3.3 ) {
digitalWrite( led, LOW ); // turn the LED off by making the voltage LOW
delay( 1000 ); // wait for a second
}
}
204.6? what's that? Take a look into the documentation of the function analogRead and try to figure it out by yourself as a mental exercise.
What do you think about a guy who's willing to spend US$ 300,00 on a single keyboard key? Yes, a keycap, that little square thing that you press to get chars into your text editor in order to write your marvelous texts (this one excluded, please, my English sucks and I'm shy anyway).
Right now everybody is talking about the Pope's ring, don't know why. Even you, I doubt you haven't heard about it. This dummie ring is just a piece of gold (metal, diamonds, etc), used to adorn one ancient finger. Useless stuff, however, I'm sure that this loveable ring costs more than this stupid keycap ...
Have you ever heard about keycaps that glow in the dark? Better than the ring (I could melt the ring to make some keycaps though).
Don't complain about the keycap and I'll shut my mouth. Who cares anyway?
The thing is that keyboards are awesome devices to start working in the microcontrollers world - they are cheap and I bet they are everywhere in the universe where there is intelligent life. A keyboard is basically a microcontroller tied to a matrix of switches arranged according to your keyboard design. A few switches wired into an array matrix, a few leds, the microcontroller and the software to read the switches, it's as simple as that.
You will see that there are a huge community out there designing and building really cool keyboards. Take a look:
WARNING: the content below is highly addictive for geeks.
Only three links but the amount of info there is bound to thrill you! Lots of awesome pictures too ...
This ring is only US$ 255 bucks.
I still haven't finished my "USB Devices" tutorial because I bumped into all this keyboard stuff (as I have said: it's addictive!).
Revised on 14/08/2013
So, do you want to project and build USB devices? Something like one USB scale? one LCD display? or one special type of keyboard? So do I! Lets just say that today it's not that hard - with the proper uC and library you can build simple devices in just one day without much headache (Thanks to all that hard work done by the the open source community!). Welcome to my "online procrastination USB project learning share experience" ...
Don't get too much excited thought, we will just scratch the surface here (that's why I said "simple devices"). If you want to go deep into the USB devices be prepared for some long time reading books, specs and lots and lots of coffee - the USB spec is hard core (IMHO) - actually it is one of the the most complex protocols out there and it will take a while to learn all stuff required to make pro gadgets.
So, Hey Ho, Let's Go! let's see the arsenal that will help you to create your first awesome USB gadget:
uC Library | uC Family | hex Size | USB | Licensing |
USBTiny | ATTiny / ATMega | +- 1350 bytes | 1.1 low speed | GPL v2 or later |
V-USB | AVR | +- 1400 bytes | Fully 1.1 compliant low-speed | GPL v2 or commercial |
LUFA |
As far as I can tell the Teensy board was one of the first ATMEL based prototype boards with USB support
The Arduino Mega ADK is nothing more than the Google ADK main board without that cute test board (the google ADK sold out in the first month). This board is based in the awesome work done by Oleg.
This creature is not totally ready yet and, please, fell free to post your comments and suggestions to feed this Tamagotchi ...
For those whom still remember my previous post about the FS TH9X TX mods there is a welcome news: Hobby King is selling the new Turnigy 9XR TX - it's the resulting of all those mods you saw into my post and a few more.
I'm not sure what came into this TX yet. There are some obvious features in this new version like the new chassis, the AVRISP connector, the ER9X pre flashed firmware, the back light, the JR and Futaba training connectors, the 3S lipo battery, the internal antenna and others.
So, if you are a lazy bum or if you don't fell comfortable with the solder iron this is your chance to get a decent and cheap radio. IMHO this is the best radio in this range of price - even some expensive radios can't match it. Turnigy definitely is moving into the right direction getting all those mods into their project - it's proves they are listening to their customers.
I did just ordered mine and I'm excited waiting for it ...
I was looking for one Google Sketchup plugin to convert objects into G-code when I bumped into another project that called my attention: One USB Servo Controller.
This project is not using LUFA, they are using another USB stack (I didn't know this one) and it claims to be smaller and simpler than the well know LUFA above
And yes, I found the g-code sketchup plugin here.
If you are looking for one cheap android ICS based tablet I would recommend this one below. It's does not came with Bluetooth nor 3G embedded but you can "easily" reflash this guy in order to add the support drivers you need.
I bought mine one eBay by 100 bucks with shipping, it's a real bargain. Where I live the usual "well know" brands are twice or more this price. I bought this guy just to stop to reflash and install code into my HTC desire - it's not a good idea to use your main cell phone to test this kind of stuff right? I don't need a US600 paper weight!
Be warned thought: there are lots and lots of versions of tablets using this microcontroller and It's almost impossible to identify all of then. I liked mine very much but I can't say who is the brand behind mine (even on the package there is no brand name nor label). Well, it's okay, it works and the material is really good for the price that I payed, to be honest it's better than what I was expecting.
I saw this very same microcontroller in one Set Top Box on deal extreme (for those whom doesn't know deal extreme is one ebay/china online seller/importer kinda of store, usually the same stuff that you see on dx you can get from ebay or on china, like the original Set Top Box here). I don't know mandarin but I do know that this Set Top Box has more power than the Raspberry Pi and cost so so 100 bucks on ebay ...
So, if you are, like me, interested on installing, flashing and trying some new roms I would recommend:
Under construction ...
A compilation of the most common and useful Turnigy/FS TH9X/Eurgle mods ...
So this is more one blog with Turnigy mods?
- Yes and no: I'm mostly writing it in order to register my work on my own radio mods and decided to share my experience okay? So I decided to compile the most common mods ...
For my own experience the most difficult part of any of these mods below is that you can get crazy with the amount of info that is available: most part of it is spreaded over a lot of forums with lots and lots of pages to read, it's easy to get insecure with this amount of technical stuff.
Medium mod. This mod is the most common mod and it's required if you do intend to change the default factory firmware that came installed on the stock radio. There are a few videos on youtube teaching how to install this ISP cable but you will spend much more time trying to understand the German/Pollack/Whatever guy's accent than wiring the cables.
The ISP cable (in-system programmer) is a common cable in the AVR microcontrollers world, you do use it to load programs (firmware compiled code, hex files) into the microcontroller.
If you do have any experience with microcontrollers (uC) or any Arduino gadget you will most probably already have the knowledge required to install this cable just looking at the pictures below.
As far as I know, up to today, the FS TH9X main board has two main versions. You can recognize it looking for the extra pad close to the SCK pin - if your board does have this pad your board is version 2, if it hadn't it's version 1.
Easy mod. After the mod #1 you will be able to change the firmware that came installed on your stock radio - why would you add one ISP cable if not to change the uC "software"?
One warning regarding those 20 bucks ARVISP MKII clone programmers on ebay: most probably you will face some issues trying to establish communication with the radio uC (it's caused by the capacitor that is wired on the RST pin - I saw a few guys recommending to remove this capacitor but I didn't fell comfortable with this approach). After some huge amounts of coffee I gave up with my clone programmer and then I tried with my Bus Pirate v3b (the Bus Pirate took 30 painful minutes to write and another 30 minutes to read the firmware but it worked!).
Easy mod. Just change the 3 pins mini jst connector by a male jst connector.
A set with 10 pieces costs less than one dollar at Hobby King.
Medium mod. There are two main versions of this mod: This one (really well written in 2008 by RC Model Reviews) assumes that you will always use a 2-cell LiPo battery. This other adds a switch to let you choose between the 2 available options.
I did mine using one of those voltage selector switches that I got from one old pc power supply and fixed it at the bottom of my radio. This switch and this position is much more secure - you will never bump accidentally on it.
Even if you do already have one 3S lipo I would recommend you to buy the TrustFire pack or a 2S (7.4v) LOW DISCHARGE lipo.
Easy mod. This mod is actually a kit that came ready to be used: open your radio, disconnect the cable that attaches the front into the back case, connect this very same cable into the backlight male connector and then connect the opposite side of the backlight cable into the radio where the original cable was installed before.
As always Murphy's law is still present: The "recommended" backlight position will block the menu buttons and the positive and negative wires are too short to let you rotate it to the left. I just got those wires out and rewired a longer pair and added a little connector to make my life easier.
Easy mod. After you do install the LCD Backlight kit you will notice that it's always turned on (yes, you read it right, the LCD is ALWAYS TURNED ON). You can easily add a switch to turn it on or off but how about doing it automatically? This mod will automatically turn the backlight on whenever you do press a button and will turn it off after a few seconds without use.
You will need a BS170 transistor to install this mod but you can use a simple 2N3904 PNP transistor instead (the 2N3906 NPN doesn't work - it will invert the on/off signals).
Medium mod. This mod is cosmetic but it's useful and cool - I do hate that buzzer that came with the original stock radio.
For those whom doesn't know the difference between one buzzer and one piezo speaker let me try to resume: the buzzer is only capable to make noise and the piezo speaker can be driven by a uC in order to make cool sounds.
There are a few components to solder and you do must pay close attention into the polarity indication on the capacitor and on the diode. For the BOM (bill of materials or parts list) you can easily grab all of them on eBay with china prices. You can also get the piezo from almost any old wireless telephone and the vibration motor can be get from any broken iPhone.
Medium mod. This mod is, IMHO, the most useful one - it will enable your radio to use one JR TX module.
Why would you need this mod?
There are, basically, 3 ways to install this mod. At first I was really confused with these options and then, after some reading, I realized that they are almost the same thing as I describe below:
This kit is nothing more than one internal version of the JR TX module followed by the required 6v voltage regulator, a switch, a little PCB with one red led and one button to do the RX bind.
YouTube, Installing the FrSky 2.4GHz DIY Module kit
This kit is almost the same kit described on the item 1 above but with telemetry (this kit will require the FrSky telemetry mod below OR an external DHT system).
This option only adds a switch and a 6v voltage regulator in order to attach the JR TX module. I do prefer this option just because it's simpler and use the TX module as it should be used (with the internal version you end up with the TX slot empty).
This option requires the normal JR TX module and it also requires the 2-cells mod installed.
Warning: the second picture, where it shows only two connected pins, is not the final mod - it's just a partial to show the pin 4 isolated from GND. After you do change the pin 4 solder all pins back.
Another warning: after you do install this mod you will have to remember to change the JR/Turnigy switch before you do change the module or you will burn it! And yes, never change the module or the switch with the radio turned on. You can isolate the pin 4 in the TX Module in the same way you did in the TX - see FlySky Module mod to make this change just for precaution.
Hard mod. This mod is expensive - you do need to buy one DSM2 TX in order to grab its internal RF module ...
Medium mod. Same as the DSM2 mod this is one expensive mod.
Hard mod. This is THE MOD, IMHO this is the most difficult and you will require advanced ninja skills to solder two close microcontroller wires.
How to modify your 9x to support telemetry
The RadioClone firmware requires this mod - the RadioClone code (the hex file) is so huge that it let the radio with memory space for only one model. RadioClone uses the SD Card to save and restore models in order to reduce this limitation.
I'm still looking for a reference for this mod. There is a SD Card mod on the RadioClone forum however the author mention that it's still experimental. I'm not sure if it is because of any firmware limitation OR because of the size of the code that it's required to support this SD Card (SPI/Fat) anyway it should be simple - at least on arduino it's simple as I saw 6 months ago when I got one of those ebay SD Card modules and wired it up and put it to work in less than 2 hours.
Link to the home brew SD Card interface
Seems that ONLY the RadioClone firmware does have SD Card support ...
Someday, only god knows when, I'll try the mods 9, 10 and 11.
For those who are looking for a ready to use Arduino LCD module here goes my 5 cents to the open source community.
This module was based on the work published on ArduinoShiftRegLCD's site. The original layout has two sides but it can be easily converted into a single side layout just using simple jump wires at the bottom side.
|
|
| top | bottom |
Project files here (github account required).
Feel free to leave your comment.