Here's a few more pictures.
I cleaned up the board-to-board connection, and removed the unused pins on the overhanging section of the IC socket. I kinda like leaving the overhang because it protects the otherwise exposed pins of the zif adapter.
That looks like a very clean design! This should certainly be attractive for people who want to build and populate their own programmer. Maybe you should switch the two tiny diodes to larger ones, so it is still possible to work without a microscope
Thanks tim_!
I love the puzzle and art of pcb design. I'm a bit jealous of being able to use 0603 or 0402 sized components, because it looks like they can really help shrink the board size further, and provide more layout options. But, I just find them too small to be worth trying to hand solder, and I am not ready to commit to automated assembly yet. If I make a second version of the programmer top hat, I will look into using larger sized diodes, but for now I have no use for any more programmer boards, so no incentive for a re-spin at the moment.
I did release all my design files for the STM32 "mini-pill" board.
https://github.com/serisman/stm32-mini-pill https://hackaday.io/project/173350-stm32-mini-pillI haven't yet released the design files for the programmer top hat, mostly because I haven't decided where to release them yet, and I am having too much fun using the completed programmer.
I also started my own repository to gather Padauk documentation, library files, and source code for my projects (
https://github.com/serisman/Padauk). I don't mean to compete with anything you or JS or spth have done, but I needed to get some of what I was working on checked in and backed up so it wasn't just on my hard drive. At the very least it is a play area to try some things out slightly differently than the other repos.
This repo is still in a fairly bare state, but I did check in my source code for one full working project (a 'bare-minimum' 4-digit 7-segment digital clock) that I am pretty happy with (
https://github.com/serisman/Padauk/tree/master/projects/7-seg-clock). I don't have a write up for it yet, and it is just on a breadboard for the moment, but was a great proof of concept for the usefulness of these ultra cheap MCUs! I'll eventually create a custom pcb for it and complete a write up. The entire program uses less than 0.5KW of code and around 20 bytes of RAM, so it should fit on just about any Padauk MCU that has enough pins (currently using 14 IOs, so needs a 16-pin IC). I have tested it with a PFS154-S16, but imagine it would work with no changes on a PFS173-S16 and probably even a PMS152-S16 (once we have write support available in easypdkprog). There is a mix of mostly C code as well as a few methods with 'optimized' inline assembly. The optimization wasn't really needed, but I wanted to get some experience with the Padauk instruction set and see how small/fast I could make some of the more 'critical' code sections.
Over half the code is just the 'UI' that allows setting the time on the clock. There is a single button. A short press when the HH:MM is displayed will briefly switch to show seconds. A medium 1-2 second press will switch into config mode, where short presses will increment the currently selected time value, and medium presses will advance to the next digit, and long presses will exit config mode.
The BOM is pretty minimal: (1) PFS154-S16 ~$0.07, (1) 4-digit 7-seg 'time' display ~$0.40, (1) 74HC595 used as a digit driver ~$0.03 (cheaper than discrete transistors, and provides 4-8 outputs from 3 IOs), (1) button ~$0.02, and (1) 32.758kHz crystal with (2) 22pF caps ~$0.04. I'm doing a few naughty things driving the 7-segment display without proper current limiting resistors or digit drivers, but it seems to work pretty good so far. Using a second 74HC595 could free up a bunch of additional IOs, meaning this would fit on 6 IO MCUs (i.e. SOP-8), but the overall price would still be about the same, so what's the point.
Originally, I had been experimenting with this 'digital clock' with an external I2C RTC (DS1307) with plans to switch to the much cheaper BM8563/PCF8563 when parts came in. But, then I realized if I just use the 32.768kHz crystal directly on the Padauk MCU (as input for the T16 timer interrupt), it would reduce parts count further and still be just as accurate (hopefully). There is some library source code for a 'generic' I2C master and the DS1307 RTC that was fairly easy to implement (I didn't finish the full project so that isn't checked in yet, but the library code is there).