Wednesday, March 23, 2016

PCBA Bring Up Progress

We've had printed circuit board assembly (PCBA) for the Stenosaurus for several months, but I've only recently been able to begin properly testing it. Here are the tests I've run so far:

  1. Apply power. Nothing started smoking or even heating up. Success!
  2. Program the Stenosaurus to monotonously blink its LEDs. This took a horrendously long time, not because the program was difficult to write or because something was broken, but because the development tool chain for actually compiling and then loading the code onto the Stenosaurus took a long time to get right. Nothing was particularly difficult, but I ended up going through four different laptops, at least as many operating systems for those laptops, and a few combinations of various compilers, linkers, debuggers, and programmers. I'm happy to report that I now have a setup that works and is reasonably easy to replicate so that others can also start developing on Stenosaurus. (Of course, there is only one assembled PCB in existence, but that will hopefully change soon.) What's more, the LEDs blink as expected. Success!
  3. Program the Stenosaurus to blink the LEDs anytime a key is pressed. This was relatively straightforward and worked as expected for all keys. Success!

In short, everything is going well, though there's a lot more testing yet to do. Next steps include:

  1. Test the LCD.
  2. Test USB connectivity.
  3. Test SD card reading and writing.

That's pretty much it for the major subsystems. Once those are tested and check out, we move on to actually programming the Stenosaurus to be a working steno machine that interfaces to Plover via the TX Bolt protocol. This is where Hesky's good work from a few years ago (I can't believe it's been so long) will really shine. If things go well, his code that worked on an early development board will need only a bit of modification to work on the current prototype.

Of course, even if things go perfectly, I already have a short list of minor improvements I want to make to the board, which will require another production run. This list includes updating the style, positioning, and type of LEDs, moving the JTAG connector so its shroud doesn't interfere with nearby components, and revisiting the need for a JTAG connector in the first place (might use a pogo pin jig instead).

Progress is being made. Stay tuned.

Cheers,
Josh