Shop OBEX P1 Docs P2 Docs Learn Events
ybox-inspired networked set-top box (No XPort!) — Parallax Forums

ybox-inspired networked set-top box (No XPort!)

darcodarco Posts: 86
edited 2008-07-18 20:06 in Propeller 1
There is a special place in my heart for the original ybox, as it is what finally got me into tinkering with microcontrollers. However, the more I've learned, the more things I can find wrong with it's current design:

* It's expensive! That XPort is $51 in single quantities!
* The XPort shielding isn't properly grounded on the PCB, so if you have stray VDD wire touch the XPort, you just fried a $51 part!
* The PCB seems largely autorouted, with lots of vias and unnecessarily long traces for the video signal.
* Did I mention it was expensive?

So I've set out to make a better and less expensive networked set-top box in an altoids tin. Here is a list of what's different:

* Uses a Microchip ENC28J60 ethernet controller for network connectivity. The network stack will be implemented on the propeller.
* Uses a tri-color LED (instead of the single LED of the original) for more informative unit status at a glance. (also more bling)
* Has headers on almost all of the unused pins on the propeller, to facilitate tinkering.
* Adds an extra pin to the prop-plug header for VDD (next to the VSS pin).
* No vias, and the bottom copper is entirely groundplane. All signals are on the top copper layer, making it easier to see what is going on.
* At least $40 cheaper!

I wanted to add PoE support as well, but after researching that a bit it seems that to do it right would increase the complexity of the device considerably.

After studying Catweazle's ENC28J60 adaptor schematic, I'm not sure which pins on the ENC28J60 SPI need pull-ups. From looking at the datasheet, it seems like no pull-ups are necessary (and I've arranged my PCB layout accordingly for the moment). Can anyone provide any clarification?

I'm almost done with the PCB layout, so I wanted to get some feedback from you guys on what I have so far. (See attachment). The bottom layer is all ground plane, so you should be easy enough to decipher from looking at the top. I would love to hear feedback and/or suggestions!
1730 x 1093 - 108K
«1

Comments

  • Harrison.Harrison. Posts: 484
    edited 2007-10-18 19:20
    The first major issue I see is that you are missing a bunch of decoupling capacitors. Without these, your enc28j60 will not function correctly (it will begin to drop packets then lock up). You'll also want at least one decoupling cap close to the power pins on the Propeller too.

    A better reference schematic can be found at: http://www.edtp.com/download/ft/framethrower_package.pdf . Only difference will be that there is no longer a WOL pin and the RBIAS resistor value is different on some of the silicon versions. (I believe B5 is something like 2k - 2.2k).

    EDIT: You may want to reroute the ethernet signals farther away from the Propeller. It looks like you can remove your VDD loop and reroute the signals around. I generally try to keep higher voltage / noisy signals away from things like logic chips.

    Harrison

    Post Edited (Harrison.) : 10/18/2007 7:31:34 PM GMT
  • darcodarco Posts: 86
    edited 2007-10-18 21:56
    I've added five 0.01uF caps around the board, three of them are at various spots close to the ENC28J60, one near one of the propeller VDD pins, and one near the VDD pin on the EEPROM. Let me know if you don't think this is adequate.

    I'll post an image a little later after I tweak the layout a bit.

    I'm thinking about adding a piezoelectric speaker. Are there any special considerations I need to take into account(like series resistor, current flow expectations, etc).

    Anyone else have ideas for things to add to this board?
  • hippyhippy Posts: 1,981
    edited 2007-10-19 02:17
    Not sure I'm so keen on the Vdd right next to ground on the PropPlug interface. Too easy to get it plugged on the wrong four pins. Maybe it's just me. Perhaps a six-pin header with a missing pin ? A little extra clearance with IC1 might be helpful as well.

    I normally connect piezo's straight from I/O to 0V on PICmicro's so wouldn't expect any problems with a Propeller. Hit a piezo and it will generate a fair belt of voltage, so maybe an R, but then you lose loudness.
  • darcodarco Posts: 86
    edited 2007-10-19 05:14
    I've taken some of your advice and integrated it into the board, which is attached. Moved VDD for Hippy. Added a piezo speaker. Moved stuff around. Still a work in progress.

    BTW: when I mentioned the decoupling caps earlier, I meant 0.1uF, not 0.01uF.
    1730 x 1093 - 127K
  • darcodarco Posts: 86
    edited 2007-10-20 05:25
    I think this is pretty close to the final board layout:

    pic-989-medium.png

    You can click on it to see the larger version, or you can refer to the attachment. Any last thoughts or suggestions?
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2007-10-20 05:29
    Monkey Wrench time...

    Does this use the same pin I/O as the demoboard/protoboard/SpinStudio for video,nic, etc?

    It would be nice to see a standard start to emerge.. [noparse];)[/noparse] Either way sweet board! Planning to market them?

    Oldbitcollector

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Buttons . . . check. Dials . . . check. Switches . . . check. Little colored lights . . . check.

    — Calvin, of 'Calvin and Hobbes.
  • darcodarco Posts: 86
    edited 2007-10-20 05:39
    It uses the same pins for video, but I don't know if it's using the same pins for the ENC28J60. I did have to move the signals around a bit (compared to the original ybox signals) so that I could get everything to fit well onto the top layer of copper. The whole bottom layer is groundplane.

    And, no, at this point I don't intend to sell it, primarily because I'm not sure who would be interested in buying it.

    If there is demand however, it's something I'm willing to look into. [noparse]:)[/noparse]
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2007-10-20 08:37
    Why the DIP package for the Prop? Why not the QFP?

    Nice looking design!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter
    tdswieter.com
    One little spark of imagination is all it takes for an idea to explode
  • darcodarco Posts: 86
    edited 2007-10-20 15:36
    I used the DIP version of the prop so that it would be easier for most people to build, in much the same spirit as the original ybox
  • Fred HawkinsFred Hawkins Posts: 997
    edited 2007-10-20 18:17
    If you put the Prop into a socket, you could move some parts underneath it. Sockets are always handy after burning out the prop chip or just a pin or two.
  • DgswanerDgswaner Posts: 795
    edited 2007-10-21 23:37
    I just want to get an Idea what this is, I read about the Ybox but I'm not sure I understand exactly what this can do. is this a video overlay device or does it use it's own channel to display info. the board is on a network, so does it display html pages or is it Propeller generated images. can it pull info from the web automatically?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    A complex design is the sign of an inferior designer. - Jamie Hyneman, Myth Buster
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2007-10-22 00:47
    Wow! Thats a thought.. Use Bean's video overlay generator with the yBox concept. You could overlay data from the web on top of the programming you are watching.. Oh my...

    Oldbitcollector

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Buttons . . . check. Dials . . . check. Switches . . . check. Little colored lights . . . check.

    — Calvin, of 'Calvin and Hobbes.
  • darcodarco Posts: 86
    edited 2007-10-22 01:30
    The original y-box was designed to output composite video and display information (like weather, etc) retrieved from specific websites, and updates in real time. Like a konfabulator widget for your TV. It even had the concept of different 'channels', which you could switch between using any sony remote control. It also had a neato a flicker widget, which would display random pictures from flicker...

    And it all fits in an altoids tin.

    The guys who made it never really took the server software much further than proof-of-concept stage, however. A tad disappointing, especially considering all of the fanfare they made leading up to it.

    This board is an attempt by me to fix the things I didn't like about the original. Should be much cheaper to build, considerably more friendly to tinker with, and has more features to boot.
  • Harrison.Harrison. Posts: 484
    edited 2007-10-22 02:02
    I found that the server software provided with the original ybox proof of concept was reasonable since it mainly functions as a proxy to convert webpages into Propeller parseable data. I think they envisioned full configuration via the web, which would have been great if they were to going to provide a free service for all yboxes to connect to.

    I can't wait to see what your ybox2 will be able to do. I am thinking about making a ybox-like device with my propeller proto board after I finish with my tcp stack drivers for the enc28j60. I really like the idea of having a dedicated tv channel at home for weather information.
  • DroneDrone Posts: 433
    edited 2007-10-23 04:19
    Hi Darco,

    Nice board. Did you capture a schematic for it? If so, please post it once things are finalized.

    Also, I always wondered why there wasn't a keyboard connector on the original Ybox. A keyboard would allow chat and interactivity. An infrared or RF wireless keyboard would be really great for a set-top-box, but that's perhaps pushing a bit.

    Last but not least, I would very much like to see an LED that would work like a message-waiting light. After all, you may be watching another channel instead of the Ybox2, the message-waiting light would prompt you to switch over to the Ybox2.

    Thanks, David

    P.S., I vote for the 40p-DIP package as well, especially with a socket.

    Post Edited (Drone) : 10/23/2007 4:24:26 AM GMT
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2007-10-23 08:16
    I can understand if the project is targeted for beginners why you use the DIP over the QFP. I like the idea of putting the DIP in a socket and placing components under it if needed. Drone's idea to add a message waiting LED is a great idea.

    Are you using Eagle to generate your schematic and PCB layout? I like the blue looking version better.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter
    tdswieter.com
    One little spark of imagination is all it takes for an idea to explode
  • Harrison.Harrison. Posts: 484
    edited 2007-10-23 18:35
    darco,

    I just noticed one major issue with your board that I didn't notice before since the ground layer was hidden. The shield on the magjack should not be shared with your digital/logic ground plane. You should have two different ground planes, separated by as much as you can (I would say at least a few millimeters). Then connect the two separate grounds in one spot.

    EDIT: Mentioned connecting the ground planes together in only one spot.

    Harrison

    Post Edited (Harrison.) : 10/23/2007 6:44:40 PM GMT
  • KariKari Posts: 12
    edited 2007-10-24 15:20
    I am also planning to make a web server box. I don't know is where to get a MAC address. Is there some kind of home range available as there is for IP addresses like 192.169.1.x ?

    If not then in what kind of pool of them i have to buy and where to get that? Does MAC address have to be unique if device is inside a firewall ?
  • Harrison.Harrison. Posts: 484
    edited 2007-10-24 19:28
    The MAC address should be unique everywhere in the universe (hence why it requires strict registration and such). Luckily, with the modern use of routed networks, you can get away with using duplicate MAC addresses as long as they are separated by 1-2 routers/gateways. The reason for 2 is because of the possibility of one router encountering duplicate MAC addresses, thus breaking the router's routing tables / arp tables.

    Are you planning on selling your devices? If so then you must buy an OUI from IEEE (standards.ieee.org/regauth/oui/index.shtml). It is really expensive (~$1650 USD) to get a OUI, but it does give you the ability to sell your devices without running into issues. You could also buy a bunch of old network cards and steal MAC addresses off those, but I am not sure about the legality of using another company's registered MAC addresses.

    Luckily, if you plan on using the devices locally then you can use the OUI 10-00-00 which is the private OUI that can be used for testing and personal use. Commercial products should never use this so you shouldn't run into any problems as long as you ensure you don't accidentally reproduce your own MAC address assignments within your internal network.

    IEEE specifies the 10-00-00 OUI as:
    10-00-00   (hex)        PRIVATE
    100000     (base 16)        
    
    



    One last note, it is best to not fiddle around with random OUIs. The first byte's least significant nibble has special meaning when it comes to multicast/unicast universally administered/locally administered.

    For the details of OUIs and such, take a look at the IEEE 802-2001 standard: ieeexplore.ieee.org/iel5/7732/21227/00984782.pdf?isnumber=&arnumber=984782

    Harrison
  • darcodarco Posts: 86
    edited 2007-10-25 00:16
    Harrison: Thanks for the heads up about the groundplane and shielding. I'll make sure the shielding is isolated from the groundplane before I send the design off to get fabbed.

    However, I'm really confused as to why this is necessary, and why it is a "major issue". Could you explain? What kind of bad things does doing this avoid?
  • Harrison.Harrison. Posts: 484
    edited 2007-10-25 01:12
    It is partially a surge protection method since the ethernet twisted pair side can have high voltage surges (at least it is designed to handle such surges). Some ethernet magjacks use the shield as a ground for such surges, therefore it shouldn't be directly shared with logic ground unless you want everything to explode when surges happen.

    If you look at commercial NICs, you'll notice the shielding on the ethernet jacks are on a separate ground plane that is attached to the computer case. They also usually couple the shielded ground to the digital ground with a small cap.

    Whichever path you choose the overall best bet is to separate the shields. The rest of the design relies on the internal design of the magjack. Sometimes the shields are just plain shields, which is ok to put on digital ground. Other times you should couple the shield via a small high voltage cap. If the magjack already has a cap in it then you can directly connect to ground.

    EDIT: I misspelled plain...

    Harrison

    Post Edited (Harrison.) : 10/25/2007 1:34:04 AM GMT
  • darcodarco Posts: 86
    edited 2007-10-25 02:05
    After looking at the LF1S022-34 datasheet, it would appear that the shield is just a plain shield, and not connected to any of the internals. Should I still separate the grounding? Also, will it be a problem that I have connected the plated screw holes to the logic ground?

    EDIT: I think I have figured this part out...

    Post Edited (darco) : 10/25/2007 3:58:26 PM GMT
  • darcodarco Posts: 86
    edited 2007-10-25 04:19
    I just did a bit more research on RJ-45 connectors with integrated magnetics, and I'm a little frustrated. I have found many of these jacks with the same physical footprint (which I need to make everything fit), but it seems that as far as pin assignments go, it varies across the board.

    Can anyone suggest which model of RJ-45 connector w/ integrated magnetics would be best to use for the pin assignments? I was using the LF1S022-34, but now I'm not sure how widely available this part would be to everyone. I'm looking into pulse's starjacks now... (MagJacks have a really large footprint, which make them unsuitable)


    UPDATE: I've decided to go with the Pulse J00-0045, unless someone can give me a compelling reason to do otherwise. I will have to update the traces, as the pin assignments are a bit different from the LF1S022-34. I'll post pictures of the updated board when I have them. The J00-0045 has a cap built into it for surges, so I'll go ahead and connect it directly to the ground plane.

    Post Edited (darco) : 10/25/2007 4:07:00 PM GMT
  • rjo_rjo_ Posts: 1,825
    edited 2007-10-25 20:01
    Darco et all,

    I know you are looking for layout comments here, but you also mentioned levels of interest and commercial value.

    My x-wife has been all over me to get a couple of Bean's overlay boards so that we can track where "daughter dearest" has been in her car. I want the boards for other completely different reasons. Last night she wanted to know if we could track the suspect vehicle in real time. I'm thinking, "Sure... as soon as someone hooks up one of your altoids tins to a cell phone."

    There is a real market for this kind of product... similar products are available, but with large entry prices and subscription fees.

    The parents of America will worship you guys!!!

    Rich
  • darcodarco Posts: 86
    edited 2007-10-26 02:31
    Rich,

    Unless I'm missing some key detail, tracking a vehicle is not a task which my board (or Bean's overlay board) would be able to handle without additional hardware at significant cost. You could, however, use the ybox2 (Or bean's overlay board) to display position information on a TV at home, assuming you have set up a way to get that information to the ybox2.

    If you are trying to save money, then the most cost effective thing you could do is to buy one of the many pre-built position-logging tools out there. GeoChron is one such device, and costs ~$150.

    I would go into more detail, but I'd rather not let this thread get too off-topic. If you would like to discuss a propeller-based vehicle tracking, which I'm sure quite a few people would be interested in discussing, please start a new thread.
  • darcodarco Posts: 86
    edited 2007-10-26 17:59
    Here is the updated board layout:

    pic-991-medium.png

    This layout now uses a J00-0046 as the RJ45 connector, and has been re-routed accordingly. I've also isolated the shielding of the jack, as recommended.

    I think this is pretty close to being finalized. Please let me know if you see anything wrong. (I won't be sending this off to get fabbed for a few weeks, so there is still time for corrections and improvements)


    Important question: Should I be isolating the ground of the case (metal altoids tin) from my signal ground? At the moment, they are connected together, thru the plated screw holes. I can change this so that they fairly easily though... I'm new to this whole EE thing. [noparse]:)[/noparse]

    Post Edited (darco) : 10/26/2007 6:05:56 PM GMT
  • HHaysHHays Posts: 15
    edited 2007-10-26 23:20
    @rjo

    i must confess, i'm missing the connection between tracking #1 daughter & video overlay (some sleep might cure this), but i happened to run across this item today, reasonably priced & designed for google earth - no subscription.


    http://www.trackstick.com/


    hh
  • HHaysHHays Posts: 15
    edited 2007-10-26 23:22
    @ darco

    sorry about the ot

    hh
  • rjo_rjo_ Posts: 1,825
    edited 2007-10-26 23:33
    @ darco,

    sorry about the ot but doesn't deserve a new thread.

    HHays,

    the overlay card supports Parallax's GPS solution. and can manage data logs.

    I'm interested in seeing whether you hook up a couple of cards... sync them altogether and get some added bit depth by combining the analog signals.

    There is also a potential synergy between darco's board and the overlay board from Hitt Consulting, which is on topic and which I thought should be mentioned.

    Sorry for the confusion.

    Rich
  • DgswanerDgswaner Posts: 795
    edited 2008-01-21 17:27
    I'm toying with my project for this, I'm not sure I'm 100% sure it can do what I want it to. I'm eagerly waiting for the parts!

    I would like to have it keep time at least relative time... check a time server or a web site displaying the time every few minutes.
    display text from a web site (pretty sure it can do this)
    display an image from a web site.

    I'd prefer if it could do all of the above on one screen (output).

    this can all be done while running some spin in the background?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "A complex design is the sign of an inferior designer." - Jamie Hyneman, Myth Buster

    DGSwaner
Sign In or Register to comment.