-
Checking it twice
12/15/2019 at 00:07 • 0 commentsAll of my components finally showed up, so it was time to check all of the footprints.
Good news! They were all correct.
More good news! The big triangular buttons are even cooler in person than I hoped!
Bad News! The Z height of the character display didn't match my assumptions, so my layout wouldn't work.
So, time for a new layout. After playing around with the parts, I found that my original layout plan would basically work if I made a cutout for the display and the board slightly wider. The whole thing will be less wide than my compact keyboard, so good enough.
I've send my boards out to fab and hope to get them back in about a week.
My big stumbling block right now is that I need to get my soldering station set up so I can make my rev 0 test version and then stuff the real boards when they come in. However, There is a bed frame in they way that I need to get rid of and I haven't had any one come through on picking it up. :-/
Anyway - pictures!
Board front layout and parts check. Love those buttons!
Board back layout and parts check
-
Layout and Routing Complete
12/04/2019 at 22:43 • 0 commentsFinished up layout and routing today, and finally found something kinda hmm... about KiCAD. KiCAD doesn't come with an autorouter, and while of course routing by hand is important for some things, its nice to be able to have one. They recommend using FreeRouter, which works well, but there were some hoops to jump though, like installing some other tool just to get FreeRouter, dealing with JRE on Windows10 in 2019, etc. Also, there was some weirdness when trying to do a ground plane fill then using the auto router. I ended up finding that the workable order is hand route, auto route, then fill. Also, it would be nice it you could do circular keep outs in addition to polygons. Minor quibbles over all.
In related news, my first shipment from Adafruit showed up. I'm going to build a rev 0 controller out of a Pi Zero and their joystick hat, just to get used to how kRPC on a Pi should work. There was some sort of a mishap at the packing warehouse, so I'm missing a couple of small parts, but they included an extra Pi 4, 4GB. I'm going to set it up with Octoprint to get my 3D printer back up and running.
And, while I wait for parts to show up, it's time to get back to my asteroid detection ML project. Maybe I should do a write up here about it.
-
Starting layout
12/03/2019 at 17:06 • 0 commentsFinished the schematic capture last night, and got started on board layout. I have the major components just about where I want them, with just a bit more time I’ll be done and can start routing. I ended up changing the small connectors to vertical in NewPCB and it was spookily easy. I continue to be impressed with KiCAD. The one tricky bit has been deciding how to handle the screen connector. I’ve landed on using a ribbon cable rather than soldering it directly to the main board in order to make case assembly easier, but that does mean I may need to make cut out in the board or have the screen be not quite lined up that way I’d like it to be. I’m going to order components today, so I can double check footprints soon. I expect to be done with routing by time time they come in, so if everything work out ok I may be able to do assembly and testing during Christmas break.
-
Architecture
12/02/2019 at 23:26 • 0 commentsI'd like to talk a little bit about the architecture for this why I chose certain components.
A control panel like this is basically a bunch of digital inputs, plus a bunch of LEDs for output, plus some number of character displays for detailed text. The next iteration will add several analog inputs, plus more dio and maybe another character display. And the third iteration I'm planning will add even more dio plus a graphical display. All of this then needs to be routed to and from the computer running KSP in some easy to use format.
My plan is to use kRPC to act as the communication protocol, since it provides a huge amount of functionality and allows two way communication of everything I'll need to do all of these iterations.
That then leads to what I'll be running kRPC on. I've landed on a RaspberryPi Zero since it:
- Can easily run kRPC
- Has sufficient IO (2xSPI, 1xI2C, some DIO)
- Is tiny and low powered
- Has a USB port
- Costs $5
The Pi then needs to be able to drive >100 LEDs, read way more digital in than it has pins, and control a character LCD.
My plans for that are:
- 2x 8x8 matrix display LED drivers that communicate over SPI
- I2C character display
- Matrix input for the digital in lines
In a future iteration I'll need an ADC that is I2C or SPI based, a digital in expander, probably shift register based, and a graphical display that is either I2C/SPI based, or maybe an HDMI display.
Anyway, I'm almost done with the schematic capture. Hopefully I'll finish it tonight and then I can try out KiCADs board layout with something a bit more complex than the tutorial.
-
First Post!
12/02/2019 at 04:24 • 0 commentsI started thinking about this a couple weeks ago, after being inspired by seeing some the KSP controllers out there.
Currently, I have a list of inputs and outputs for the controller, a bock diagram of the parts and a notional sketch of the panel layout.
I've started doing the schematic capture in KiCAD, and wow am I impressed! So far, KiCAD is at least as good as what I was using back when I was doing board design professionally, with quite good documentation and libraries. Well done!