TinyCircuits Forum

TinyCircuits Products => TinyDuino Processors & TinyShields => Topic started by: MagnusRunesson on November 23, 2015, 04:04:59 PM

Title: Combining different shields
Post by: MagnusRunesson on November 23, 2015, 04:04:59 PM
Hi everyone,

First time poster here. :)

I have just found out about Tinyduino and Tiny Arcade and I must say, I'm super excited! I'm not sure I can hold off until the Tiny Arcade is funded and shipping so I figured I should just order the parts so I can get cracking on making games for it.

I have two questions and I've searched these forums without finding the answer. I hope I'm not asking rookie questions and you can all still accept me. :)

1) What are the limitations for combining different shields? Can I simply attach any combination of shields and build what ever monster I'd like? For example, can I have audio, screen, micro sd, real-time clock and gps? How can I know which shields I can combine?

2) For the Tiny Arcade, is there a new joystick and audio shield developed, or can I get the game kit and audio shield and expect to run my code on the Tiny Arcade?

Title: Re: Combining different shields
Post by: Grimstone on November 24, 2015, 10:10:27 AM
Hi Magnus,

Board compatibility can be found here: https://www.tiny-circuits.com/index.php/tiny-duino/tinyshield-compat/ Most are compatible with each other. However, some require the same pins where issues begin.

From the looks of the pictures, it looks like the Tiny Arcade is using new hardware. I imagine it will be very similar to code, but it looks like the USB, TinyDuino, and OLED display boards are now fused into one board. I think this may be the same board that was on the previous Kickstarter for the children's smart watch. The joystick board layout is different with a ribbon cable and one less joystick. I cannot see if they did anything different for SD or audio connection.

If you are new to TinyDuino, I would still go ahead and play around with the existing boards while you wait for the Kickstarter to progress. You can make a great little handheld with the current boards. Codebender has game samples to look at and use.
Title: Re: Combining different shields
Post by: Ben Rose on November 24, 2015, 03:15:10 PM
Grimstone got just about everything. Some extra details:

1. Hardware compatibility is one thing, but keep in mind software can become increasingly difficult if you're trying to do lots at once.

2. The board that ships with the Arcade cabinet will have one joystick and two pushbuttons. So your user input code for games should be a bit flexible. The SD slot will work exactly the same as our current board on our current processor, but the audio works in a different way. Depending on the code, audio support may need to be significantly rewritten.

So TinyScreen, GPS, RTC, uSD code should be relatively easy to get working on the new board- audio may not.
Title: Re: Combining different shields
Post by: MagnusRunesson on November 25, 2015, 10:07:12 AM
Excellent, thank you both for the help!

That compatibility matrix is exactly what I was looking for. The signals that goes through the connector, how do they not conflict with each other? Is each shield on its own pin, with some form of serial protocol to transfer data? I've read through the TinyScreen library code ( https://github.com/TinyCircuits/TinyCircuits-TinyScreen_Lib ) and found that the screen can be on GPIO address 0x20 or 0x21. Are those addresses what makes sure that the shields doesn't conflict?

How many shields can the battery power? Is there a limit or is it simply a matter of how quickly the battery will drain?

As you can probably tell I'm still learning a lot about the hardware. :)

I am super close to getting a Tiny Game kit just to get cracking on the basics, but the big difference in clock speed and SRAM makes me wonder if I should get an Arduino Zero instead, and .. uhm .. yeah, I don't really know what display to get instead. :) But if I have a 16 bit display buffer in SRAM then I could write an abstraction layer to blit it to any kind of display. As I would want to do for the joystick.