So far I have been using V3.02. This is a not released version of the controller that powers Oasis, but with some upgrades that makes it use DMA. This works well, and it has proven to be reliable, but if I want to actually provide this as a general inkjet tool, I want to make a few changes.
The list of requirements is as follows
- Move to a single board. In assembly time the double board is not that bad, but it makes it a challenge to do any sort of debugging on the bottom board, where all the high power stuff is.
- Move to a better Teensy, the V4.0 and V4.1. I am not yet ready to get rid of the Teensy's, but better ones are now available. I was hesitant at first because the OctoWS2811 library that I use was not yet supported, but now it is. A better Teensy gives me more speed, more RAM, and more firmware options in the future.
- Move the inkjet to a single DMA bus. The current V3.2 controller uses 2*8bit busses for DMA. This works, but requires some nasty hacks to make sure it works with extra chips. I cannot have full control of the 14 primitives with just 8 bits, but I can add shift registers to the bus. This allows me to use a register clock, latch and 2 data pins. The TLC59213 latch and clear, and the address clock and reset pin, giving me full control. Shift registers require me to clock in the data much faster (8 bits of data in 2.5us) but the pins that come available with this will be very helpful for:
- Make the board be able to test itself as much as possible. Distant debugging is challenging enough. People giving me vague issues without me being able to see what happens sucks. I want to monitor voltages (12V and VHD can be separated). Test the addresses and primitives (at least that they are somewhat operational) and test the mosfet and testing circuit. All of the tests I have designed so far have failure modes that I can miss, but it takes care of the basics.
- More LED's on board. I want to be able to see what the board is doing and if it has power.
- Make it capable of logging and working from SD. I have designed it for the Teensy 4.0 footprint, but I will make sure that the Teensy 4.1 also fits the footprint. It should be possible to use any Teensy after 3.2 in this controller, but I will support 4.0 and 4.1.
- Keep the board as close to the current form factor as possible. This will require me to move the shift registers, the 4017 and 4081 to SSOP packages instead of the SOIC packages, but I will order stencils as well, so it should be fine.
- Try to keep the board single sided. Double sided assembly sucks. If I can avoid it (which it seems I can) it would be great. Worst case some passives would move to the bottom of the board.
There is a list of firmware and software features that I have added and want to add, but for now this is where I will leave it. When this is done I hope to add a real manual to the site and maybe sell it to people who are interested.
I will breadboard the circuit first to make sure it work before I commit to fiberglass.