Portable console

Thanks Rodot for sharing this. I'd seen these display modules before on eBay, but never in action like this. Have you ever utilised the SD card slot? They also have pins for an I2C interface - have you tried this and is there any difference to the functionality?

Both of those look really good. The Conway's GOL especially, the elements on the screen are complex and great to look at!

Hi R0d0t,

I was so impressed by your project - its probably the best presented Arduino project I have ever seen - I have added a new section to my blog so that the rest of us can learn some of the details that go to make an outstanding project.

I know that you would have spent considerable effort on your project and not everyone has the time or resources to do that so I have also included another very different project which is highly effective for the simplest of reasons -

I hope this new section of my blog will be interesting to those like me that are not designers but who can benefit from applying some basic rules to increase our project impact.

I will of course remove any reference to you or your project if you wish - my blog gets around 10,000 hits a month and has been linked by Adafruit, Diydrones, Freetronics and DIY Engineering, so its not a bad place to be featured.

Duane B

rcarduino.blogspot.com

Cool game and console. It is one of those simple games that just somehow get incredibly addictive.

First of all, thank you very much everybody. I'm glad you like my project.

DuaneB:
the enclosure, whatever it is

The enclusure is made with leather & brass. Steam punk FTW.

strykeroz:
Have you ever utilised the SD card slot? They also have pins for an I2C interface - have you tried this and is there any difference to the functionality?

I didn't used the SD card slot as there is no bitmaps in this project. I tried to use bitmaps for my game, but it uses far too much RAM. I didn't tried I2C because :

  • I didn't know it was possible
  • I2C is slower than SPI
  • The library I use is written in SPI

The problem with SPI screens is the time to send data to the screen. Don't even try to refresh the whole screen for each frame. You have to erase each element and then draw it again further to limit the amount of pixel to refresh. Look in the Conway's GOL, you can see the "wave" of refreshing when the screen is full of cells. I want to try a screen with a 8bit port to see how fast it is.

DuaneB:
I have added a new section to my blog

Woaw, I'm impressed and flattered you use my project as an example. Thank you a lot. (Just something : you should use the link I gave in this topic, because your link point to the "Leather" tagged posts instead of the post itself)

Again, thank you everybody. I hope my english is not too bad (as I'm french) and you understand what I mean.

PS : Another game is coming soon, a game far better than the first one... stay tuned !

Hi,
I have updated the link, I had a look around your site also, you have some nice projects across a wide range of disciplines

Duane B

rcarduino.blogspot.com

Something big is coming your way...

Reminds me of Doodle jump. I got it for free as a OVI store gift for my Nokia phone(5230)s60v5 .

Wow really really cool ,I will def look at building one :slight_smile:

Here is my new gaaaaaame !

This one use 100% of your arduino (CPU, flash & RAM).

PS : I still recruit people to make a handeld console v2.0
PPS the screen can be found here : http://stores.ebay.com/electronics-lee

Awesome Project! I just placed an order to get the screen online. What are you looking for in v2.0 I may be able to help (however my time is very limited)

Thank you very much !
The screen module costs 13$ on eBay (search "1.8 LCD module"), and the screen alone costs 7$. The library is this one : http://www.bestelecs.com/download/lcd/1.8SPI.zip.
I don't know if I will do an instructable, there is a lot of information in the video, and doing instructable take a lot of time, and I'm not sure people are interested in that...
Here is another project I made with this screen module : r0d0t's stuff

I downloaded the 1.8SPI lib but for some reason I cannot get it to verify with the arduino code. What IDE version did you use?

Error in IDE 1.0 & IDE 1.0.1

In file included from doudeul4.cpp:1:
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:6:22: error: WProgram.h: No such file or directory
In file included from doudeul4.cpp:1:
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:57: error: expected )' before 'CS' D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:59: error: expected )' before 'CS'
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:64: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:65: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:65: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:65: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:66: error: 'int16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:66: error: 'int16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:66: error: 'int16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:66: error: 'int16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:66: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:67: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:68: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:68: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:69: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:69: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:70: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:70: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:71: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:71: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:72: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:72: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:72: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:73: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:73: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:74: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:74: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:74: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:74: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:75: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:76: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:76: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:76: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:76: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:77: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:78: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:78: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:78: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:79: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:80: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:80: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:80: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:81: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:83: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:83: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:84: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:84: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:85: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:85: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:86: error: 'uint16_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:86: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:88: error: 'uint8_t' does not name a type
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:89: error: 'uint8_t' does not name a type
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:91: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:91: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:91: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:91: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:92: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:93: error: 'uint8_t' does not name a type
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:96: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:97: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:107: error: 'uint8_t' has not been declared
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:110: error: 'uint8_t' does not name a type
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:111: error: 'uint8_t' does not name a type
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:112: error: 'uint8_t' does not name a type
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:114: error: 'uint8_t' does not name a type
In file included from doudeul4.cpp:2:
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:55: error: redefinition of 'class ST7735'
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:55: error: previous definition of 'class ST7735'
doudeul4:16: error: no matching function for call to 'ST7735::ST7735(int, int, int)'
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:55: note: candidates are: ST7735::ST7735()
D:\Users\Mike\Dropbox\Arduino\arduino-1.0\libraries\ST7735/ST7735.h:55: note: ST7735::ST7735(const ST7735&)

Thanks

amazing work! Congrats and thanks for sharing.

We are now a team of 3 working on the v2.0, I think it's enought. But if you have any idea, don't hesitate to share them :slight_smile:

Your problem is that WProgram.h has been renamed since Arduino 1.0
You can solve it by replacing

#include "WProgram.h"

by

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

in arduino-1.0\libraries\ST7735R\ST7735.h

R0D0T,
You are getting a lot out of the Arduino UNO here, do you have anything planned for the upcoming Due ?

Duane B

I can't wait to have a Due...
A version 2 of the console is under development, a well finished one, with smt lipo, vibrator, joystick and all that stuff in a very compact size. Il will come with a complete library that handle frame rate, playing music from sd card, diplaying images and sprites... A lot of work, I don't know when I'll finish it.
But when the Due will be released, I'll make a V3.0 with a 3.2" touch screen, an IMU, a 16bits port for an high refreshment rate, etc.... ok, I'm perhaps dreaming, but it would be marvelous.

Rodot:
I can't wait to have a Due...
A version 2 of the console is under development, a well finished one, with smt lipo, vibrator, joystick and all that stuff in a very compact size. Il will come with a complete library that handle frame rate, playing music from sd card, diplaying images and sprites... A lot of work, I don't know when I'll finish it.
But when the Due will be released, I'll make a V3.0 with a 3.2" touch screen, an IMU, a 16bits port for an high refreshment rate, etc.... ok, I'm perhaps dreaming, but it would be marvelous.

I take it you've seen the Uzebox, right?

http://belogic.com/uzebox/index.asp

That's all done with a 644 (ie, like a Sanguino) - I should think with a Due you could way more than that!

Rodot:
But when the Due will be released, I'll make a V3.0 with a 3.2" touch screen, an IMU, a 16bits port for an high refreshment rate, etc.... ok, I'm perhaps dreaming, but it would be marvelous.

Note, the Due has the same breakout board size at the Mega. and is 1.3" (3.3cm) longer than the Uno. I don't know if the extra length would affect the playability of your console.

Hi R0d0t,

Are you still developing this console ?

I was planning to build an LED Game over the christmas holidays, something like the old grandstand games I used to play as a kid based on LED Matix, but for the cost of a few to colour matrix I can get 1.8 or 2.2 inch TFT Displays.

What was your experience with these, could you for example run something with a large number of separately animated sprites like a galaxians clone running with reasonable refresh ?

Thanks

Duane B

rcarduino.blogspot.com

cr0sh:
I take it you've seen the Uzebox, right?

Nop, but I was aware of Gameduino : http://excamera.com/sphinx/gameduino/ (amost the same thing)

cr0sh:
I should think with a Due you could way more than that!

I prefer to do something really small (407515mm), cheap (<25$ batteries included), and Do It Yourselfable (Nothing below 0805 for the smd). The arduino due ALONE costs about 50$ and is huge (even without stacking a shield)... what do you thing about that ? If I want more power, I'll go develop games on android :stuck_out_tongue:

DuaneB:
Are you still developing this console ?

I've been working on other projects these times (3D printer, 64*64 led matrix...) but I'm back. I started drawing schematics this morning (and learn how to use the software yesterday night hehe). The inactivity is although because I trusted a guy who said he was interested in drawing electronics... two months later, he has done nothing, so I'm back as a lone wolf, as ever :wink:

DuaneB:
What was your experience with these, could you for example run something with a large number of separately animated sprites like a galaxians clone running with reasonable refresh ?

No, you can't. The screen's communication is based on SPI, so it's veeery slow (but convenient). On my snake game for exemple, I don't refresh the whole screen at each frame : I only rease few pixels of the tail and draw few new pixels on the head. Don't even think about scrolling, animated sprite (or just a few) or overlay text. Moreover sprites uses a lot of RAM. I think you should try a 3.2" screen (240*320px) on 8 or 16 bits parallel bus. But be carefull, they run @3.3V. You can although overclock you arduino to 20mhz instead of 16mhz :wink: I hope this helps :slight_smile: