28 April, 2013

Open Source Cherry/Alps Keyboard - GH65

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).

11 April, 2013

Open Source Alps Keyboard - GH60

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

01 April, 2013

Prusa I3 XL, build log and annotations

Another RepRap blog? Ohhhh YES, more one!

My goal here is not to teach anyone - I'm new to this RepRap world and I'm still learning all this stuff - my goal here is to keep an build log for my own reference and, maybe, help someone in this endeavor. A friend of mine (Gilson) has mentioned some time ago that the Prusa I3's documentation is not so good when compared with the Prusa Mendel - there is no complete manual or book with ALL required info until this date and by what I've saw it seems he is right. So I hope that this build log helps in this documentation too.

The thing is that I'm envy of my friend Gilson's printer - actually I don't like to keep asking him to print parts to me all the time - then I decided to build my own. Right now I'm waiting for a few parts from eBay and AliExpress yet. Maybe in two or tree weeks I will get the Step motors and then I'll send my frame to the CNC shop in order to start the building phase! (after more or less 3 months buying and waiting for these parts I'm kinda bored - it's a real pain to buy stuff from China!)

Until I start this building phase take a look at what I've done so far ...


Official Ramps 1.4b BOM (just in case you need to save money doing your own): here


My Prusa I3 BOM (for those willing to build one Prusa I3): here


My part list (I didn't liked a few parts so I decided to design my own, you can see it here): here




RepRap stuff that I'm kinda dating:

HotEnd
Logged HotEnd Price Notes
2013/05 J-Head, MKV $60 USD most used and popular, this one seems to be the latest version. Easily found on eBay.
2013/05 MG Plus $70 USD +shipping. MakerGear hotend, good quality by an not so reasonable price. Easily found on eBay.
2013/05 Trinity MetalMagma $65 USD +shipping, sold out. It supports 400C.
2013/05 E3D-v4 £39 GBP All metal and J-Head compatible, SUPER!
2013/05 arcol.hu €99 Expensive. All metal hotend however I never heard about this one.
2014/01 CB-Printer €1,830 Super printer, alu made in Poland
2014/01 Bulldog Extruder to be defined Another alu made extruder

Extruder Related Stuff
Logged Extruder Description Notes
2013/05 Metal Extruder RepRap Metal Gear System Extruder. AWESOME! Build instructions here.
2013/05 Metal Gears Metal Gear System Hardware Pack for Prusa/i3. kinda expensive but you can do contact the owner to ask him to send it using a cheaper shipping (without insurance and tracking). I've found this info into this blog.
2013/05 Ponoko Extruder CNC acrylic parts.

Reference and Usefull Stuff
Logged Link Notes
2013/05 book Getting Started with RepRap by Josef Průša, O'Reilly Sep 2013
2013/05 Prusa I3 Build Manual
2013/05 Prusa Mendel Build Manual
2013/06/23 RepRap Calculator3 by Josef Průša, a must have for all makers!
2013/05 Drive Gears Drive-gears to be used in direct drive and some other extruders. Only required when using some kind of (like the Adrian's_Geared_Extruder).
2013/06 Mechanical Endstop Recommended but not required. Simple pull up resistor schematics to connect your mechanical endstop. This pull up resistor is not required - The AtMega already has one internal pull up resistor that just need to be FUSE enabled.
2013/05 Optical Endstop Recommended but not required. Why they are not using the internal pull up resistor too?
2013/07 Improved Optical Endstop Recommended but not required. Still not using the dammed internal pull up resistor ...
2013/06/04 RepRapDiscount Recommended but not required. RepRapDiscount Smart Controller.
2013/06/04 UltiPanel Schematics for UltiPanel with rotary encoder.
2013/06/04 Touch TFT LCD Graphical RepRap Touch TFT LCD (mini Pronterface style).
2013/06/04 SynchroMesh Cable Kinda hard to find it here in Brazil.
2013/07/31 Aluminum frame Prusa i3 RED ANODIZED Awesome Frame, 69 euros!


Please, fell free to drop a line!

11 March, 2013

Arduino +USB Lipo Charger +5v Booster

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.

Required parts

  1. 1x Arduino board, of course, original or compatible.
  2. 1x Sparkfun's PowerCell v1.3 (the previous version has a flaw on its design that will drain the battery really quick). This module has a quick start guide here.
  3. 1x Micro USB-B cable.
  4. 1x 1S 1P low discharge rate LiPo battery with a JST connector (JST RCY or 2pin Molex too).
  5. 2x 2.54mm angle pin headers.
  6. 2x 2.54mm pin headers.
  7. 2x wires with 2.54mm female headers on both ends, 20cm so so, red and black.
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.

Basic Wiring

  1. Make sure that the blink "sketch" is already loaded into your Arduino board. It comes pre-loaded from factory.
  2. To be sure that everything is okay BEFORE we wire our modules, turn the Arduino board on as you normally do. If everything is all right, the led on pin 13 will start to blink and then there's no one to blame later on. Turn off the Arduino board.
  3. Get the 2.54mm angle pins and solder them into the VCC and GND out charge pins (picture 3, top).
  4. Plug the 3.7v LiPo into the small white plastic connector. It fits in only one direction so you don't have to care about it's position (picture 4). This type of connector (JST) breaks easily and it's a real pain to remove after it is connected, so be careful. If you don't have a LiPo with this connector, you will have to solder an adapter like the one in picture 2 (you can grab this connector from any PS3 Dual Shock Battery).
  5. Connect the black wire into the GND out charger's pin. Plug a male 2.54mm pin header into the opposite end of this wire in order to be able to connect it into the Arduino GND female header (picture 5) and then connect it (picture 6).
  6. Connect the red wire into the VCC out charger's pin. Use another 2.54mm header for the red wire end connector and then wait a minute. Review all connections just to be sure that everything is all right. Take a break, review again and, only after that, connect the red connector to the Arduino 5v header (picture 6). I'm serious - you can burn your Arduino just like popcorn and I'm almost sure that you will not like the smell.
  7. If you didn't burnt down the house by now, it's time to connect the USB cable. As soon as you plug the USB cable in, the red led in the charger board will turn on (picture 7).

Picture 1, The 2.54mm header wire plugged with the male pin


Picture 2, The JST Adapter


Picture 3, The JST Adapter connected


Picture 4, LiPo -> charger


Picture 5, LiPo -> charger, out cable connected


Picture 6, LiPo -> charger -> Arduino


Picture 7, LiPo -> charger -> Arduino 5v GND, USB -> charger

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.


Picture 8, LiPo -> charger -> Leonardo Pro 5v GND


Picture 9, LiPo -> charger -> Groovy 5v GND

The booster is also available in a single module, without the LiPo charger:


Picture 10, The 5v booster


Picture 11, LiPo -> booster -> Leonardo Pro 5v GND

    A few notes
  1. There is one implicit worldwide color convention that dictates that red is positive and black is negative (GND).
  2. The multimeter is your friend, use it whenever you can.
  3. Whenever you need to wire up a power source wire up first the GND line, after measuring it with your friend - the multimeter.
  4. Whenever you need to disconnect a power source disconnect first the VCC line.
  5. Always buy spare parts - you never know when you are going to burn something.

Basic Wiring, 3.3v

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
    The wiring here is way simpler:
  1. Connect the LiPo 3.7v and GND into the charges IN+ and IN- respectively.
  2. The same LiPo GND goes to Arduino's GND.
  3. The same LiPo 3.7v goes to Arduino's 3.3v. 3.7v is not equals to 3.3v, I know - the thing is that 3.7v is in the tolerance range that is acceptable by Arduino's 3.3v input.
  4. If I'm consuming power (the board is on doing something) how I'll be sure that I'll be recharging the LiPo? Well, this charger feeds 400ma (tops) to recharge the LiPo and we know that one Arduino uses 100ma (tops), so the math is: 400ma - 100ma > 0. If greater than zero we are okay, we will be charging the LiPo, if lower than zero review your project and remember that a LiPo can't be totally discharged without getting damaged (see the LiPo guide for more details).


Picture 12, I'm out of LiPo chargers right now, I'll post it later ...

    A few 3.3v boards
  1. Arduino Mini 3.3v.
  2. Arduino Fio v2.2 and v3.0.
  3. RBBB variants without crystal.
    More notes
  1. The "booster" module is also called by "step up" circuit, it's a circuit that increases the voltage of it's input. There is another similar kind of circuit that will help you in the opposite case, the "Step Down" circuit, it's a circuit that decreases the voltage of it's input.
  2. Do not use the USB 5v line to power up your 3.3v device. It's normal to have a tolerance range (normally it's between 10%) but 5v is way higher and it will fry your uC, for these cases you will have to use one step down circuit.
  3. The Arduino uC, from factory, operates at 16Mhz. You will have to reconfigure the Arduino fuses in order to make it run at 8Mhz.

Data wiring

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 ...


Picture 13, USB 2.0 pinout - I'll post it later ...

    And more notes:
  1. The USB D- and D+ signals are not interchangeable then you need to follow the correct order of the pins.
  2. Try to use and memorize the correct color code adopted into the USB cables (picture 13, mine is wrong - don't know why they swapped the D- with the D+ wire).

Data wiring, 3.3v

    Aggain, you know, more notes:
  1. The USB D- and D+ signals are 5v signalsthen you will need one level converter into them.

Identifying which power source is been used

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.

    Wiring, you will see it's easy
  1. Using the USB header connect the wire into the USB 5v.
  2. Plug the 100k resistor's leg (any leg) at the end of this wire.
  3. Connect the other resistor's leg into the Arduino A5 port.
  4. Compile and upload the sketch below, piece of cake right?
/*
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.

References

  1. * Arduino Fio v2.2, ATMega328p OR Arduino Fio v3.0, ATMega32u4

No Arduinos Were Harmed in the Production of this Post.

Post not finished, I'm still writing it ...

04 March, 2013

RepRap Prusa mendel V2 (Iteration2) - 3D PRINTER

Dear friends,
it's my first time here as writer. I've decided to build a 3d Printer and for it I choose RepRap Prusa Mendel I2. It's a most common printer with a lot of docs and tech specs on the net.
First of all, I read, read and read.... then I solved to buy the necessary items to build it. It was a one month ago, now I'm ready to start the experience.
I'm following the steps from http://www.reprap.org/wiki/Prusa_Mendel_(iteration_2) site where is all (in theory) and the youtube Filear playlist (http://www.youtube.com/playlist?list=PLA7DE3F3AED272E4E).

All ready to begin so let's play!

The first part is the easiest part, mechanical building. At this point I don't have much problems to worry.. just conections, thready rods, nuts and washers. It's strong recommended that you use a piece of woody or metal as a frame template, to ensure all sides with the same size. At the manual, it's written, but I thing that it's the most importante information to get all "in shape".

It'll continue.... Pictures comming soon...  
All right, let's go!

All parts ready to go... let's do the job.



After some hours, some parts are done: side frames, top, rear and front threaded rods assembled.


X,Y and Z axis in their places:


The wade extruder without hotend... I found out the my hotend will demand some modification on the extruder. This hotend has a guide for fillament over the head that doesn't fit on extrusor...



Heated bed and extrusor assembled


Next steps for today and tomorrow:
- Assembly hotend
- Adapt PC power supply to use in this project (There are many cables unnecessary for 3d printer in this kind of power supply)
- Connect eletronics to test heated bed, hotend and extrusor (engine and gears)

and...........Wait for the steeper motors!!!!!