I forgot to mention last night that I finally found the type of reset button I wanted from adafruit and got that ordered. I had a terrible time trying to find these on digikey, but after I got the part number from adafruit, I was able to find them on there. In the end, ordering from adafruit is way cheaper though. These are about 53 cents each from digikey (in the small quantities I wanted), but this pack of 20 from adafruit comes out to 12.5 cents each!
I did notice one design error that came up after I adjusted the footprint for the reset switch to match the one I found. Then I made a few other minor changes and got my board submitted!!
The layout of my first order of SpinnerHD as rendered by OSH Park
And although I was slotted on a panel that was supposed to go to fab on in two days, it apparently filled up right after me and is going to fab today! Hopefully I’ll have the board back in a couple weeks.
Meanwhile, once my order from adafruit arrives, I can do some prototyping with my Arduino. Of course, I should have done this before ordering the boards, but I was impatient and wanted the final thing. I do at least have some experience with a similar chip (the TLC5940) I was able to breadboard, so I think it should all work. But I did order some SSOP breakout boards from adafruit so as soon as I get those, I can verify my design and work on the software before the actual boards arrive. Even if I did do something wrong, I can always rework the PCB and make corrections.
Of course, due to the nature of this device, there’s not an easy way to really see if everything works together on a breadboard anyway. I suppose I could get out an oscilloscope and figure out the amount of time between when the hall effect sensor detects the start of rotation and the time I can turn on the LEDs, but that doesn’t give me any feel for how it actually looks when spinning at 1800 rpm. It also doesn’t tell me if the hall effect sensor gets triggered reliably at the exact same position on each rotation. Only way to figure all that out is to just go for it and see what happens.
After a couple more hours over the past two nights, I think my layout is complete. I have one more thing to verify–need to make sure the pad layout is correct for the TLC29282, but other than that, I think I’m ready. SSOP-24 looks REALLY small. I don’t think I’d have any chance of getting that etched properly with my home etching technique. I only hope OSH Park can etch that small!
I’m also nervous about having them drill the center hole since the center of balance may be off from where I’ve predicted. This is the same center I used on my previous board, so I have some experience that suggests it’s correct, but it could be off. Then again, they’ll do a much better job of drilling this in the right place than I will. What’s the worst that can happen? It’ll be off balance a little?
This is the layout I consider “almost final”. I need to go over it just a little more, but I think this is close!
Last night, I spent about an hour and a half on the board layout. I got down to 6 unconnected nets and wasn’t seeing an easy way to get them routed, so I figured I’d fire up the auto router and see what it did.
Sadly, I have Java all disabled on my computer because of the latest security scare, so that didn’t work. I realized it was late and I could just look at it tomorrow, so I closed Pcbnew. Right after I did that, I thought “Did I save that?” So I opened it again to find out that I had not. None of my work was saved. An hour and a half down the drain.
Clearly my fault for never saving. I should certainly know better. I’m surprised KiCad didn’t pop up a warning. Maybe the export to the autorouter format got counted as a save, so it thought it had been saved.
I did take that file and use the auto router on a different PC, but then KiCad wouldn’t import it back, so even that was no savior.
So, back to working on it again tonight. I do at least remember some of the pitfalls I ran into, so my initial board layout is a little better I think. Now on to the actual routing…
Now with the schematic done and all the component mapping done, it’s time to work on the board layout. In my experience with this project, this is an iterative part that takes a lot of time. Laying out a board for most projects may be easier, but for this, I had several restrictions that made it even more challenging.
First, due to the function of the board, I had to place all the LEDs in a very specific place. With this version of the board, I have the same restriction, but it will hopefully be less of a problem since the LEDs are hooked to the LED driver instead of the processor and the pin layout for the LED driver looks like it will make the routing much easier.
Second, since I’m spinning the board at a fairly high speed (1,800 rpm to update the display 30 times per second), I also need to plan where the center of balance is and make sure I can drill a hole there with enough clearance that it doesn’t touch anything else. This ends up being fairly critical and part of the iterative nature of this project. The previous version of this project has 2 AAA batteries on one end of the board with the center of balance near the end of the batteries that’s towards the center. If I switch to a LiPo battery, that center changes. I could instead use a single battery, but would have to rotate it to be parallel to the short side of the board (currently 2″ x 6″ or hopefully 1″ x 6″) so that it could still be spun around without being off balance. That could let me reduce the length of the board, so production costs would be smaller. But that also might require me to go back to adding a DC-DC converter, which I don’t want to deal with right now though. I could put the two AAA batteries directly in the middle of the board, but that means that the LEDs wouldn’t be as far away from the center of rotation. But, it does give me the option of putting LEDs on both sides of the board and spinning the board at half the speed. Or I could shift the LEDs on one side just a little to double the apparently DPI.
For now though, I’ll go back to my tried and true method of both batteries on one side of the board parallel to the long edge of the board. It looks like I won’t be able to shrink the width down to 1″ to save $30 from OSH Park, but it does mean that I’ll get the board done sooner.
The last time I worked on my spinner project was in October when I finally got my first working version. I then made big plans for the next version:
- Switch to an ATmega32u4 so I could switch to using USB to program it instead of serial.
- Add a DC-DC converter so I can be more flexible with my power options, like using a single 1.5V battery to power this. I also wanted to do this just to practice with making a DC-DC converter.
- Add the option to power it with a LiPo battery and include a LiPo charging circuit, mainly to practice and learn how to do this.
- Switch to using a constant current LED driver to simplify the circuit and layout and be able to support more LEDs.
- Use a professional board printing service to get experience with that and because it makes my board layout easier and should greatly reduce the number of manufacturing errors I have to test for and deal with.
- Fix all the problems I found in my previous version.
After 3 months of putting it off, I realized part of my problem in getting started was that I was trying to do too much. (To be fair, another large part of the problem was the holidays of course.) So, I cut my list back to just three things:
- Switch to the constant current LED driver (TLC59282) to get more LEDs (thus the name of the project–SpinnerHD)
- Use a professional board printing service (OSH Park)
- Fix all the problems I found in my previous version
Since it’s been 3 months, I had to remember some of the decisions I made (my previous board had some post build modifications that weren’t reflected in the schematic). But, after a couple of hours, I managed to finish the schematic for my new project:
First version of the schematic for SpinnerHD
Okay, I realize it’s pretty ugly. If you have any suggestions on a better way to do things, please let me know!
BTW: I wish KiCad had a PDF export for the schematics because I don’t have a PDF export printer installed on this computer yet, so the png version will have to do. Or, you can download an archive of the current state of the project here: SpinnerHD-Take1 I don’t know if that includes everything you need for the project or not. One of the other reasons the schematic took so long is because it was created on another computer and I had problems getting all the libraries and modules over to this one. I didn’t notice the archive option until I wrote this post, so I hope it works.