Category: Uncategorized

Building a new 3D printer, Prusa I3 ITOPIE – part 1

Finally decided to go for a Reprap prusa model after my Felixiprinter died, the head is blocked and they don’t sell a new one any more. So I have to upgrade but that almost cost the price of a new printer.

On the openbuilds site I saw the design of the Reprap ITOPIE, designed to be cut from 16mm MDF, luckily I have a cnc machine.

First step is to translate the dxf file in cut paths for the cnc router via Cut 2D.

Here’s my first attempt:

prusa-i3-itopie

Connecting old school joysticks to the Arduino and more from VintageGamer

The fab-o-lab blog was my new brainchild this year, but I blogged already since a few years, one of my most popular posts on that blog was ‘Connecting old school joysticks to the Arduino’. So it’s no bad idea I think to repost it here. More vintage gaming stuff here 

So you’ve got some old school joystick with a DB9 connector lying around, time to connect it an Arduino board.

The pin out’s for the joystick connector (male connector) I took from the original Atari pin out, as we see later on this pin layout is the most generic one and works with joysticks from Atari, Commodore, Sega, Quickshot, …

Pin’s 1 to 4 are up/down/left/right

Pin 6 is the fire button

Pin 8 is the GND

If you need to support more button’s then there’s some bad news every manufacturer seems to did his own extra button wiring, so for simplicity I took a one button configuration. We simply need to connect these pins to the the Arduino digital pins. I choose pins 3 to 7, you can choose other configurations but for me it was more easier to choose 5 pins next to each other as I reused an old serial switch box to recuperate the DB9 male connector on it, so I simply cut the wires from it.

Next I soldered the wires comming from the male DB9 to the  pins as in the picture. Pins 7 -> 3 Up/Down/Left/Right/Fire

A soldered 1 pin to the GND wire.

Then it was time to test this setup, I used an Arduino Decimilla for the test, with a small sketch.

/*
 Joystick test Sketch

 Reads the digital direction and button state from Atari compatible joystick.
 Some code reused from the Sparkfun joystick shield test sketch.
*/
//Variables for the buttons
char buttonUp=7, buttonDown=6, buttonLeft=5, buttonRight=4, buttonFire=3;
void setup(void)
{

 pinMode(buttonUp, INPUT);
 digitalWrite(buttonUp, HIGH); //Enable the pull-up resistor
pinMode(buttonDown, INPUT);
 digitalWrite(buttonDown, HIGH); //Enable the pull-up resistor

 pinMode(buttonLeft, INPUT);
 digitalWrite(buttonLeft, HIGH); //Enable the pull-up resistor
pinMode(buttonRight, INPUT);
 digitalWrite(buttonRight, HIGH); //Enable the pull-up resistor

 pinMode(buttonFire, INPUT);
 digitalWrite(buttonFire, HIGH); //Enable the pull-up resistor 

 Serial.begin(9600); //Turn on the Serial Port at 9600 bps
}
void loop(void)
{
 Serial.print(digitalRead(buttonUp)); //Read the value of the button up and print it on the serial port.
 Serial.print(digitalRead(buttonDown)); //Read the value of the button down and print it on the serial port.
 Serial.print(digitalRead(buttonLeft)); //Read the value of the button left and print it on the serial port.
 Serial.print(digitalRead(buttonRight)); //Read the value of the button right and print it on the serial port.
 Serial.println(digitalRead(buttonFire)); //Read the value of the button fire and print it on the serial port.

 //Wait for 100 ms, then go back to the beginning of 'loop' and repeat.
 delay(100);
}

Then I did  some testing with joysticks and gamepads I had lying around:

Quickshot standard, original from my C64 works exactly like the Atari.

Atari joystick

Atari gamepad with button 1 & 2 both buttons trigger the same fire button but can be wired different to get both working.

Sega Master System gamepad, only button 1 works.

Sega Mega Drive gamepad, only button B works.

We can conclude that all support the directional buttons and fire button but the extra button’s are a different story maybe for another blog post ?

Finally I hooked the joystick up to my Uno/Gameduino setup, that’s why I didn’t used pin 2 as it’s used by the Gameduino.

I remapped the pins in the Gameduino Asteroids sketch and the whole thing runs perfectly. Although the Asteroids game doesn’t use the fire button.

 

Olimex announced A20 Android embedded board.

Image

Olimex did it again, they will soon release a developer edition of their famous Android/Linux boards. The A20 is a dual core version running at 1Ghz and these other cool specs:

  • DDR3 memory 512MB or 1GB
  • SATA connector and power supply
  • HDMI output
  • VGA output
  • LCD connector to connect A13-LCDxxx with 4.3″ 480×272 pixels, 7″ 800×480 pixels and 10.1″ 1024×600 pixels with touch screens
  • 2x USB high speed hosts
  • USB-OTG
  • ETHERNET 100 MBit
  • 4GB NAND Flash
  • 160 GPIOs on friendly 0.1″ connectors which connects to ribbon cables
  • Audio In
  • Audio Out
  • micro SD card
  • SD/MMC card as second
  • Power managment IC with Lipo battery support, allow stand alone work and USB host working on LiPo battery power supply
  • 9 user buttons with Android functions
  • 6-16 V DC input power supply can work with any power supply adapter and automotive power 12V

The board will sell for 65 euro, with 1GB RAM and 4GB Flash, other versions are planned like a A20 SOM module.