Finished the ISO 15765 debugging and testing (aimed at flashing and logging).
Added BMW specific TCP comms format to do the above with extended addressing to suit KWP over CAN and UDS over CAN, with backward compatibility for K line (not yet implemented but part of the hardware design), support for 4095 byte UDS frames (16 times bigger than present 8 bit DCAN cables with consequent massive increase in performance). Performance is close to Ethernet, but this is using CAN which has a far wider audience.
Made J2534 driver for plain CAN frames to satisfy one of the original purposes of a new physical device: to allow realtime tuning without having to buy in expensive J2534 cables. This works over WiFi, performance is in between the Kvaser and OpenPort 2.0 USB cables you can see in the selection window above. Both of these are $200-300 and the cheapest good J2534 devices - the Chinese copies are unreliable and slow.
I have four prototype OBD devices stuck in customs. These have a different internal physical arrangement to join the two boards together to fit in the small enclosure. They also have 16MB external flash, but subsequent revisions will have this on the module itself and will have 4MB external RAM instead of existing 512KB which is enough to play DOOM (no display included

), or hold a flash image to operate on in one session. Doesn't sound much, but a recent DCAN solution has 3.5KB of RAM.
The only testing done by the electronic engineer is to see they do not let out smoke and throw some stuff out on serial when powered, so lots of functional testing to do, but very exciting seeing it come together.