Arduino Scoreboard (upgrading)

Let me change the order of my prior post:
Drain 0 to Pin 5
Drain 1 to Pin 6
Drain 2 to Pin 7
Drain 3 to Pin 8
Drain 4 to Pin 1
Drain 5 to Pin 2
Drain 6 to Pin 3
Drain 7 to Pin 4

@SkipMorrow The above is recommended IF the RJ45 connector pins are all in a row (no datasheet has been provided). When you go to layout the reason should become obvious.

I would leave the 595 symbol as currently shown (regarding the outputs). This is a very good example of how a schematic should be easily electrically readable. Just as the pin numbers of the 595 are not in order, but the function of outputs are in order; having the pin numbers out of order on the RJ45 would not detract from the readability of the schematic.

If I were being thorough, I’d also edit/(create a new one specifically for this project) the RJ45 to include the text for each corresponding segment label. If, perhaps, pin 5 were segment “A” then that label would also be in the schematic symbol. The reason for this recommendation is that not all 7-segment displays use the same pins for the same segments; though the segment labels seem to be fairly standard. The information is included in the text of the schematic, but it is quicker to troubleshoot if the label information is in the symbol.

AFAIK, based on Skip’s past message, his 7-segment displays are hand crafted by him using lengths of LED strips for each element. In my imagination I suspect it is similar in construction to what John Park does in this tutorial but with using dumb LEDs:

Thus Skip has full control over which pin goes to which segment.

That said, I agree that documentation right at the schematic symbols in addition to his text notes would make troubleshooting easier, but I’d contend for using net labels instead of changing the connector symbol. The reason why I make that argument is then the nets will be labeled in PCBNew for board layout.

1 Like

Yes, I am using a grow-my-own display.

I think I am starting to get this. That must mean trouble!

So, I tried laying out a TPIC plus an RJ45. My RJ45 jack pins are not laid out in a row.

The pins are staggered

Here’s what I came up with. Does this make sense?

By the way, thanks everyone for your help!!! :slight_smile: You guys ROCK!!

1 Like

Looks good to my eye. Good use of sketches to plan. Granted your plans may change as other connections are made, but it is always nice to have a plan to start. (Designing boards can be a highly iterative process even before you spin a board.)

1 Like

One new question for tonight. I ran the ERC and I am getting the dreaded (to a newbie anyway) PCTSOPBNPTDI error (Pin connect to some other pin but no pin to drive it). I read up on it and fixed one of them by adding a PWR_FLAG to the vcc wires. But I am getting the error on my two ground symbols as shown here:

KiCad%20PCTSOPBNPTDI%20error

How do I clear that?

You also need power flags on each of your two ground nets. You can place them anywhere, but personally I like to place the power flags near what I consider the “source” of the net in my designs.

This FAQ entry goes into much more detail:

Definitely last question of the night. Hopefully I can upload a MUCH improved drawing later.

How do I make the net labels not so messy?

I came up with a convention of SEG_A_D2 which means segment A of Digit 2. Each label needs to be unique in the entire schematic, correct??

I need to have four of those circuits across the top so I have saved pretty much as much space between the shift register and jack as I can get, but it’s not enough room for a bunch of labels.

One idea is to have some horizontal wires on the connector side (like Ronnie shows way up near the top.

This is where hierarchical sheets can help. If you upload your project as it stands sometime in the next half hour (while I’m driving home), I’ll convert it to a hierarchical schematic to show you what I mean.

Tell you what. Give me a day to do some research. I see there are tutorials that come up when I google “KiCad Hierarchical schematic Tutorial”, so I may be able to figure it out on my own. I learn better that way anyway. I’ll post here tomorrow if I need help. You gave me enough info to get started.

Current schematic as of tonight, for anyone keeping track (what an improvement from the first post!!!)

And here’s a link to the project in its current form:
https://drive.google.com/open?id=1ByS0i_qA38Barliget3nZiVQOa9AkNyS

Thanks again for everyone’s help!!

Looks good. Just some points:

  1. In your table for segment A you incorrectly call out Drain0, should be Drain1 (RJ45 pin 8)
  2. Your bypass caps you have a value of “.1 uF”. I’ve found that if you don’t include the leading one’s place zero the decimal point can go unnoticed. Try instead to use “0.1 uF” to make it obvious that you mean a tenth of a microfarad, not one microfarad.
  3. For documentation purposes, and to make it easier to find the LED power net to assign it wider traces if you want, you may want to give that line a label. One idea might be “VPWR” on the idea of GND is to VCC as GNDPWR is to VPWR. (Sorry if that is an SAT trigger.) :wink:
  4. Your J0 is documentation on the schematic only so you should put a hash mark in front of it. i.e. change the ref’d to “#J0”. This is a trick to keep that component from being put into your netlist and thus showing on the PCB. (Edit any of the power symbols or the power flags and you will see that each has their own unique reference designator, proceeded by a hash mark.)
  5. You label the screw terminal as 14.8V, but your note next to the screw terminal states 14.7V. (This may have been on the first page and no one noticed until now…)
  6. An option for getting more room between your output stages for the labels is to increase your page size (like up to A3). Granted, that does mean that if you print it out on A4 paper, everything will be small.
  7. I like the graphic you grabbed for documenting your segments. Looks good.

I did go ahead and convert your schematic to hierarchical. Remember, I’m not just going to give it to you, but I will show you what it can look like. Here is a 5-page PDF (first page is A4, the rest are A5).:
ScoreboardCircuits.pdf (148.3 KB)
Now that I’ve done this, the method is fresh in my mind. I should be able to help if you get stuck anywhere if you choose to do this. (If you don’t want to, please don’t feel pressured to do so. I really just wanted an excuse for some practice and took your project as an easy opportunity for me.)

Some points about the hierarchical schematic:

  1. Note how even though the 4 sheets (pages 2-5) all point to the same file (“Digits.sch”), each page has different reference designators and a different page title. The page title is both on the sheet object, and in the title block of each sheet.
  2. Because the named nets on the digit pages are local nets, the page name proceeds the net name in the netlist. So on the Digit0 page, the SEG_A net is called “/Digit0/SEG_A”. The same net on the Digit1 page is called “/Digit1/SEG_A”. And so on for the other nets. This keeps them from connecting on the PCB.
  3. When you get around to assigning footprints, you only need to edit the components on one of the sheets to add the footprints, and the other sheets will follow suit. Same thing if you decide you need to change a footprint on all of them. Make one change and the other 3 corresponding parts “magically” all change. (Sheets in hierarchical schematics can be thought of analogous to objects or functions in programming.)
  4. Unfortunately (and this might be a prime reason not to use hierarchical sheets in this case), except for the reference designators and the sheet name, all the sheets using the same schematic file need to be identical. You can’t have a note on one saying “this goes to digit 0” and the same note on another page saying “this goes to digit 1”. That’s why I put that part of the documentation on the top page as a note on top of the sheet objects. This might be unacceptable for how you want to document your project.

Keep up the good work.

1 Like

Thanks!

I’ve known that I had gotten “tripped-up” when I first started using hierarchical sheets in KiCad; and I know that I’m still not doing it right.

It appears to me that your post has clarified the areas where I deviated from the normal planned use of duplicate hierarchical sheets. What is interesting is that I have been using a text editor to copy the layout from one sheet to the other, but this method would also allow for text differences on the sheets. The problem with this method is that the annotation function is not set up to handle sheets created this way.

The other idea, of using a label, even with a hard drawn connection, as a way to show the Net in PcbNew is a great thing!

Learned a little bit more about KiCad tonight.

So did I. I first placed the 4 sheets objects down. Then I copied the subcircuit part I wanted to one of the sheets and saved. (Saving is the first time the new sheet schematic file is creataed.) Then went into one of the other sheets and was greeted with a blank page. Ummm… Wha??? So I went back to the top level, deleted the 3 sheets that were showing blank and re-created them. This time when creating the sheet that points to an existing schematic file I was asked if I wanted to link to the existing file. After saying yes to this 3 times everything was again working the way I expected it to. Unfortunately, I wasn’t able to figure out how to copy an existing sheet object so I had to place the pins on all 4 of the sheet objects individually. More of an annoyance on a small project like this. but if I was doing something major with 32 identical sheets (32 preamps on a 32 input ADC for example) it would be a major PITA…

Ummm… I just played a hunch. Once the sheet object is connected to an actual schematic file I can copy it with a drag select -> duplicate block sequence. This didn’t work before I created the schematic file, so I assumed it wouldn’t ever work… That would have saved me a little time (and would be the way to do the hypothetical 32 channel ADC from the previous paragraph…). I guess one lives and learns, or dies trying. :rofl:

1 Like

There is a very high probability that not knowing this is what tripped me up.

There have been posts about the issue of assigning pins to sheets, and I do not recall seeing any really good straight forward reply.

Looks like V5 and hierarchical sheets needs an update in the documentation.

In the picture above the quoted text the net labels aren’t attached to the wires. The small rectangle must hit a grid point through which a wire goes, or an end point. That’s one downside of non n*45 degrees lines: they don’t touch grid points.

1 Like

@SembazuruCDE, can you explain your choice of component numbering? C101, C102, J101, J102, J201, etc…

I think I am going to need to pull the LED power out of the CAT5. I think I am pulling close to a full amp, or maybe even a little more, which is probably too much for those tiny CAT5 wires. I’ve got some testing to do to be sure.

Can you explain the “wider traces” comment (#3)?

Other than that, this looks really awesome. I think I can finish this up, and then start work on the PCB design.

Sure. For annotating (setting ref’d values) I first opened up the Annotate Schematic tool from the tool bar with this button:
2018-09-26%2011_01_13-Eeschema%20%E2%80%94%20KiCad5TestNew%20%5B_%5D%20%E2%80%94%20C__Users_chelliot_Dropbox_RemoteDevelopment_KiCad

I clicked the “Clear Annotation” button to reset all the ref’ds to unset (see the bottom of this post for a screenshot of the annotate schematic tool with default settings). I manually set the J0 ref’d to “#J0”. Then I opened the tool again. When using the tool you have a couple option on how to number. I could have left it at the default “Use first free number after: 0”, but instead chose “First free after sheet number X 100”. This automatically embeds the sheet (page) number as part of the ref’d. All ref’ds 100-199 are on page 1, 200-299 are on page 2, etc. It is more self documentation. Granted not all that necessary in this project, but can be a troubleshooting lifesaver on larger, more complicated projects.

For the same reason why you might want to use a heavier gauge wire than the CAT5 wire for LED power. KiCad has a nice calculator to help choose (among other things) trace width. I just plugged in some numbers. If you get the board made with 1oz copper, for your 1A traces for a 10°C rise in temperature on the trace you would want a 12.0325mil wide trace. (Note this is both for power to LEDs and ground return from the LEDs.) I’m not sure if the calculation takes into account covering layers (like soldermask) so I’d calculate against 2 amps and choose a width that falls between the two. This gives a trace width of 31.3019mil, so I’d choose a width between the two. Thinner copper will need wider traces (the formula uses the area of the cross-section of the trace, much like gauge is a related to cross-sectional area of wire)

Here is the annotate schematic tool window for reference in this email:

1 Like

I’m almost done with the schematic. I’ve made a lot of changes, but I think it will be a pretty good product. I was planning on connecting the LED display panel to the control box with an ethernet cable about 6 ft (2m) long. The cable would carry the data signals and the power. I figured out that my LEDs can draw a total of a little over 2.5A, which I think is too much for a single ethernet wire, or even two ethernet wires. So I am thinking about using a ten-pin molex connector. I know they use some interesting crimp pins inside the connectors, so I hope I can make the cable without too much trouble. I do wonder if it will be suitable for transmitting a high speed data signal. Any thoughts?

I think I am getting close! I have decided that it would not be a good idea to connect the control box to the scoreboard panel with CAT5. Just way too much current. I am going to use a 10-conductor cable (22-24 AWG) with molex connectors. This should work pretty good. I am going to use two voltage regulators to power the LED panels, since the regulators I have are only rated for 1.5A.

I do have one question: Right now I am only using one battery to power the whole thing. It powers the arduino and the LEDs. That means the signals and the LEDs share a common ground. Is that OK? I have a really big LiPo and it can give me a few hours of run time, but electrically, is this a bad idea? I can easily put a second battery in the box, one for signals and one for the LEDs, if that is a smarter way to do it.

Anyway, I am hoping for a few more good comments before I move on to the board design.

Here’s the pdf (I haven’t earned uploading privileges yet)
https://drive.google.com/open?id=1U6tB32a8dx2KzcEKBoNLVcReeQMBbDci