Page 1 of 4

Uzebox enters the matrix!

Posted: Tue Dec 04, 2012 1:25 am
by uze6666
Image
All right, perhaps not the matrix, but Uzebox certainly entered the cyber space...wirelessly! It was done using a RS9110-N-11-22-04 wifi module by Redpine. I have searched the web for some time for a module with all the features I wanted. It's very small (3x2 cm), has an integrated TCP/IP stack, chip antenna, castellated pinout for easy soldering, easily interface using either UART or SPI protocol and is affordable(about 40$). The only thing that breaks the party is that you have to sign an NDA to download the docs! But as I found out, copy of all the specs can be found easily on the net. :D

I coded a simple UART driver and in no time, I was able to open a socket on my uzebox.org server, send an HTTP GET and fetch a file! It's fast too, using the UART interface, it works by default at 115200 bauds or about 12Kbytes/sec, enough to safely download a byte per scanline. Though I find the UART way a bit clumsy to use, requires text parsing and it need a ram for a buffer during rendering time. Next step is to try the SPI interface. The AVR is the clock master and the module signals TX requests using an interrupt line. So the host can read stuff when free and should not need a receive buffer. What's nice too is that a SPI interface is easy to do with a bitbang approach, so the module could also be interfaced (albeit more slowly) via a SNES connector port. If all works well, I may do a batch of "extension" PCBs for the modules.

Now for some cool applications! Who know, perhaps my next forum post will be made on my Uzebox! :mrgreen:

Re: Uzebox enters the matrix!

Posted: Tue Dec 04, 2012 4:06 am
by D3thAdd3r
This is an awesome surprise Alec! I thought at best we'd someday have a meager lan interface that could broadcast (255.255.255.255) packet onto a lan that a PC could interpret and tunnel...or a nasty serial port interface. I must get one of these immediately!!!

I really think using controller port is ideal because everyone has that, but anyway I can network with uzebox is awesome! I've said it before but Uzebox networked games would only ever be client-client lock step at vsync, requiring little bandwidth and easy to code. Anyone who has written a client-server game that isn't frame synchronized will understand me here.

Re: Uzebox enters the matrix!

Posted: Tue Dec 04, 2012 6:32 am
by uze6666
I really think using controller port is ideal because everyone has that, but anyway I can network with uzebox is awesome! I've said it before but Uzebox networked games would only ever be client-client lock step at vsync, requiring little bandwidth and easy to code. Anyone who has written a client-server game that isn't frame synchronized will understand me here.
I was considering a few approaches:
  • Making new Uzebox PCBs, trashing the MIDI stuff to free real-estate and put the module there. Obviously, only owners of those boards could network.
  • Using the extension header. Again only my Uzebox red PCBs and the Uzebox JAMMA could benefit.
  • Using the SNES port. Well, you pretty much nailed it...every one has it! So I think I'll go that way.
Now the module could be simply attached to a SNES cable ripped from a SNES controller or extension -or- *embedded* inside a SNES controller with a custom made PCB (using a switch to toggle between modes). If anyone else has comments or better ideas on that, please share. :)

Re: Uzebox enters the matrix!

Posted: Tue Dec 04, 2012 10:49 pm
by D3thAdd3r
Just ordered one 8-) Can the uzebox power this through the controller port?

Re: Uzebox enters the matrix!

Posted: Tue Dec 04, 2012 11:47 pm
by uze6666
Sure, but beware, the module is a 3.3v device so it's going to need a regulator capable of pushing up to ~300mA. And some voltage dividers too on the clock and MOSI pins.

Re: Uzebox enters the matrix!

Posted: Tue Dec 04, 2012 11:50 pm
by DaveyPocket
ideas:

As you mentioned the older Uzebox designs do not have the expansion header. How about make a riser "card" with an expansion header on it. Basically, it's a board with a 40 pin socket for the ATmega and an expansion header. The other side of the board has legs which plug into the 40 pin socket on the motherboard. This also adds an expansion header for the older devices.

Well what about the AVcore? (I assume this device will be using ISP). Can the device connect through the SPI header? I'm pretty sure every version of the Uzebox has an SPI header.

Re: Uzebox enters the matrix!

Posted: Wed Dec 05, 2012 2:00 am
by uze6666
I was starting the schematic and then I realized I should have thought a bit more before speaking! The SNES port does not have enough pins! The module requires VCC, GND, MISO, MOSI, Clock, INT and RESET...we're missing two pins! Doh! :oops:
As you mentioned the older Uzebox designs do not have the expansion header. How about make a riser "card" with an expansion header on it. Basically, it's a board with a 40 pin socket for the ATmega and an expansion header. The other side of the board has legs which plug into the 40 pin socket on the motherboard. This also adds an expansion header for the older devices.

That could be a way to do it. Though I suspect that this would rise the height of the console quite a bit, perhaps it would not fit anymore in the EUzebox enclosures...
Well what about the AVcore? (I assume this device will be using ISP). Can the device connect through the SPI header? I'm pretty sure every version of the Uzebox has an SPI header.
Unfortunately, we can't use the ISP header, since it does not expose pins for CS and INT. That would also cause conflict with the SD card.

As a last ditch try, I guess we could have a tinyAVR to act as a protocol bridge? Sucks though, because it adds another MCU...

Re: Uzebox enters the matrix!

Posted: Wed Dec 05, 2012 2:32 am
by D3thAdd3r
Hmm, quite the dilemna...Perhaps we should try to get an idea of what the actual active uzebox users have? I say scrap the MIDI port, then it seems the uzebox and euzebox could be made to work with some modification. Not sure with the AVCore or fuzebox, but we should be sure we aren't eliminating options because of users that may never be active again.

I don't think an attiny->control port is a bad option either. The idea of wifi internet connectivity is a little humorous/novel anyways if you put it in perspective with uzebox hardware.

Re: Uzebox enters the matrix!

Posted: Wed Dec 05, 2012 6:18 pm
by DaveyPocket
uze6666 wrote: As a last ditch try, I guess we could have a tinyAVR to act as a protocol bridge? Sucks though, because it adds another MCU...
Isn't the wireless module in itself considered an MCU? Or at least something like one?

If you go the additional MCU route, don't think of it as changing the console design, it's an expansion to the console. Expansions will have whatever they need. The Uzebox is still the Uzebox.

I think the best route is to go through expansion interface and make a riser that adds expansion.

Also if you look at the AVcore schematic, there a a few pins from PORTA and PORTB. Maybe these can be rerouted to a similar expansion like the standard Uzebox Expansion and have a flag in EEPROM that identifies if the device is AVcore or normal.

Re: Uzebox enters the matrix!

Posted: Wed Dec 05, 2012 8:27 pm
by greenpower
Wow! :o That's really impressive. I'm not a really techy guy but that sounds awesome!
I think that a nice way to implement the SPI interface for the module would be putting a rise card between the MCU and the rest of the board.
BTW, Have you seen the WIZ820IO modules? They are pretty well-fitted for DIY purposes. They use Ethernet cables but, well, it's okay. Also, the MIDI interface sounds cool, so if you think to trash it, think it twice.
My 2.00 ₧