It is currently Sun Nov 23, 2014 11:37 pm

All times are UTC - 7 hours




Post new topic Reply to topic  [ 49 posts ]  Go to page 1, 2, 3, 4  Next
Author Message
PostPosted: Tue Jun 12, 2012 12:02 pm 
Offline
User avatar

Joined: Sun Feb 21, 2010 6:06 pm
Posts: 108
As I used to hear so often in my childhood, it's time to poop or get off the pot. I'm ready to put together a few ENIO boards for those who are interested in adding ethernet/USB KB capabilities to their game. It consists of two boards. The first is the EXP adapter board which contains the 3.3v regulator and the CPLD. The second is the CPU board which contains the PIC32, USB and ethernet components. It adds a few bucks to the design, but this way it's easier to connect the ethernet/USB cables and see the ethernet lights. The CPU board could also be attached to a custom cart for those who use a toploader or NES clone.

The EXP Adapter board
The CPU board

The cost will be $50 plus shipping. This includes both boards and the 26-pin IDC cable connecting them. The first couple users will be beta testers and will need to have a Pickit3 programmer. The SD card bootloader has not been rolled into the firmware yet. The board in the picture does not have the micro SD slot, but the next couple will. As you can tell from the picture, I'm etching the boards myself right now. I'll have a batch fabbed after getting input from the beta testers.

If anyone is interested in paying to be a guinea pig, let me know so I can get the necessary parts on the next Digikey order.

Thanks!


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 12, 2012 5:38 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1593
Location: Boise, Idaho
Nice work!

I'd like to pick one up from you. I'm not much of a pic guy so I have to ask, why won't my pickit2 work for programming it?

How soon do you plan to implement the sd card bootloader? I'd like to avoid buying a pickit3 if I can, not a deal breaker just preferred.

I know you've covered somethings in other posts and such but will you provide schematics and such for aid in interfacing and such? Also what's it's current state of operation? Any sort of demo or anything that can be run currently assuming the user has a devcart? Also curious what code you'll be sharing (nes, firmware, etc).

EDIT: also curious what the EXP connector looks like.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 12, 2012 5:49 pm 
Offline
Site Admin
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 1952
Location: Mountain View, CA, USA
Super, SUPER awesome. :D


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 12, 2012 8:10 pm 
Offline
User avatar

Joined: Sun Feb 21, 2010 6:06 pm
Posts: 108
Thanks guys! Let's see...

Bootloader - I'll try to get the SD bootloader done in the next two weeks. That would be enough time to get the next batch of parts in and build another couple boards. I say the Pickit3 because the Pickit2 does not support the PIC32 chips. But hopefully I'll get the bootloader working and it will be a moot point.

Schematics - Not sure about the schematics, but I'lll definitely provide a pinout of the connectors, description of the signals and a general diagram showing the functions of each piece. I could see someone using the EXP Adapter to interface the NES with their own device. Or use the CPU board to give network capabilities to another legacy system.

Operation & Code - Right now there is a basic command set that the cart can use to tell the ENIO to open up a channel to an IP host. It's barebones but functional. You specify the IP to connect to, TCP or UDP, the port number and the virtual channel ID you want to give the connection. I'll provide the command set as well as ASM usage examples. The command set will be refined as beta testers provide feedback.

Demo - The demo I came up with is a guy walking around the DW1 overworld. Which is trivial except for the fact that the map data is not stored on the cart. It's streamed from a map server on a Linux box as the player walks around. Player moves up, map server sends another row of map tiles. Someone mentioned making a Google Maps 8-bit edition and I thought "what a waste of time!" Then I saw the Google April Fools joke they were referring to and started wondering if they had an ASCII rendering API I could integrate into the map server. :)

Connector - The EXP connector itself is the exact same as the one I used on earlier boards. I received a package yesterday with enough parts to make at least another 100 EXP connectors, so no worries there.
Early ENIO Board - Bottom


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 13, 2012 3:23 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1593
Location: Boise, Idaho
Alright well if you can count me in. I'm more than willing to do some beta testing and look forward to it. Fair warning though, I'm no guru when it comes to networking. I know the difference between TCP/UDP and what ports are and such but don't have enough experience to be too savvy with it. Perhaps that's a good thing though, I can follow directions and provide somewhat novice problems/feedback from a networking perspective.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 13, 2012 4:17 pm 
Offline
User avatar

Joined: Tue Feb 13, 2007 9:02 pm
Posts: 144
Location: Richmond, VA
I am REALLY happy to see this project revived.

So how would the adapter work with a game programmed to interface with it? (Sorry for the basic question, but I don't quite understand how it works.)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 13, 2012 11:37 pm 
Offline
User avatar

Joined: Sun Feb 21, 2010 6:06 pm
Posts: 108
Good question. Think of the ENIO as broker. It does all the heavy lifting as far as IP communications and USB input. The NES simply tells it where to connect and how to connect to it. The NES talks directly to the ENIO over a command channel, VCID x01. USB KB data is input from VCID x02. IP sessions are dynamically assigned x10 and above. These numbers are subject to change, but the idea will stay the same.

A sample session goes like this...

Code:
--- Session Startup ---
NES -> ENIO (VCID x01) HELLO
ENIO -> NES (VCID x01) HELLO

--- Check for valid DHCP or Static IP ---
NES -> ENIO (VCID x01) Have an IP?
ENIO -> NES (VCID x01) YES/NO

--- If we have a valid IP, let's connect to a server ---
NES -> ENIO (VCID x01) Connect to 192.168.1.10 on TCP port 10101
ENIO -> NES (VCID x01) Established, use VCID x10
NES -> ENIO (VCID x01) Switch input to VCID x10

--- NES sends data to server and gets reply ---
NES -> ENIO (VCID x10) <some data to server>
ENIO -> NES (VCID x10) <reply from server>

--- NES tells ENIO to close IP session  ---
NES -> ENIO (VCID x01) Close session on channel x10

--- Input some data from the keyboard ---
NES -> ENIO (VCID x01) Switch input to VCID x02
ENIO -> NES (VCID x02) 'A'   <-- User pressed 'A' last


This is a simplified version of course, but it should give you an idea of what a conversation between the NES and ENIO looks like.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 14, 2012 12:29 am 
Offline
Site Admin
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 1952
Location: Mountain View, CA, USA
Any docs on the NES <-> ENIO communication protocol itself, aside from the simplified version? I'm looking for register interface details, packet formulation for things like src/dst IP address, IP vs. ICMP, IP protocol (TCP or UDP), port numbers, etc... :-)


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 16, 2012 3:47 pm 
Offline
User avatar

Joined: Sun Feb 21, 2010 6:06 pm
Posts: 108
Right now everything is in an Excel spreadsheet, but I'll put it up on a wiki before I send out any boards. I had it in Mediawiki on my site at one point but it got so much spam I took it down. Have to work on those security settings.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 16, 2012 4:25 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 12758
Location: NE Indiana, USA (NTSC)
chykn wrote:
I had it in Mediawiki on my site at one point but it got so much spam I took it down. Have to work on those security settings.

These steps have ended up working for preventing spam on my own wiki:
  • Leave talk pages open to anons and new users, but require e-mail confirmation or autoconfirmed (two edits and four days) to edit pages in non-talk namespaces.
  • Use the QuestyCaptcha plug-in for ConfirmEdit and come up with questions that are relevant to the subject matter of your wiki. QuestyCaptcha has been far more effective for me than Google reCAPTCHA was.
  • Make Talk:Main Page a soft redirect to some other talk page and protect it.
  • Optionally, if you know regex, install AntiSpoof and AbuseFilter for any spam that makes it past these measures.

If you need help with setting them up in your LocalSettings.php, PM me or start a topic in General Stuff.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 19, 2012 1:48 am 
Offline
User avatar

Joined: Sun Feb 21, 2010 6:06 pm
Posts: 108
tepples wrote:
These steps have ended up working for preventing spam on my own wiki:

Thanks a bunch for the advice. I tightened things up a bit and re-enabled the site. I'll send you my settings file if I run into any more issues.

koitsu wrote:
Any docs on the NES <-> ENIO communication protocol itself, aside from the simplified version?

This should get things started. I updated the basic project info and added more details on the CGP protocol. Still need to put up a section on buffering, though. Look for the CGP link at the bottom of the ENIO wiki...
http://enio.chykn.com

I etched and assembled another set of boards yesterday. The new CPU board has the MicroSD slot to test the bootloader. Will be working on getting that rolled into the firmware this week. A pic of the new CPU board is on the wiki under "ENIO CPU Board".


Top
 Profile  
 
PostPosted: Sat Aug 25, 2012 10:09 am 
Offline
User avatar

Joined: Sun Feb 21, 2010 6:06 pm
Posts: 108
Posted a video on Youtube giving an initial look at the production EXP and CPU boards. Will try to post another in the next week or so with a more detailed look at the CPU board. Mostly information that's already on the project page, but presented with a twinge of southern drawl.

http://www.youtube.com/watch?v=KBSdktDG_tk


Top
 Profile  
 
PostPosted: Sat Aug 25, 2012 11:20 am 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1593
Location: Boise, Idaho
very NICE!

The cases and everything looks really good, I wasn't expecting that much polish originally. Good luck with the final touches!

_________________
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers


Top
 Profile  
 
PostPosted: Sat Aug 25, 2012 3:47 pm 
Offline
User avatar

Joined: Tue Feb 13, 2007 9:02 pm
Posts: 144
Location: Richmond, VA
Awesome work. Can't wait to see software up and running.


Top
 Profile  
 
PostPosted: Sun Aug 26, 2012 11:21 pm 
Offline
User avatar

Joined: Sun Feb 21, 2010 6:06 pm
Posts: 108
The SD bootloader is now functioning. Still need to update the code to rename or remove the image.hex file after flashing. But, I was able to flash a fresh board with the bootloader, put in the MicroSD card with the image.hex file and within a few seconds the CPU board was up and running. Will add the cleanup code and test it out some more tomorrow. For those who wanted one of the first couple, I should be able to have them in the mail Tuesday.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 49 posts ]  Go to page 1, 2, 3, 4  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: Bing [Bot] and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group