I've neglected to post for quite some time being busy with the holidays, snow, and wrecking my car. I survived, the car didn't. I hate shopping for a new car in the winter, but that's taken care of now.
In the last post I mentioned I was working on designing a bunch of modules that implement the various parts of the hardware. I made much progress with that and I now have 7 modules designed. I've sent them out to OSHPark to have the PCBs made as I've finished each one. I've received 5 so far:
Missing from the picture above are the power supply and the CAN interface boards. The unlabeled board (it's on the back) in the upper left is the SPI module which contains the MicroSD card, configuration flash, and IMU.
The reason I'm building the second prototype using these modules is to allow me to easily replace one of them if, for example, I find I totally screwed up the board design. I can simply redesign that module and plug a new version into the prototype without scrapping anything else. It also will allow me to reuse the modules in future designs and prototype for other projects.
I'd like to take a moment to say that I can't recommend OSHPark enough for prototyping. I've never used their service before this project. I've had PCBs made in the past (many years ago) and it was expensive and a pain dealing with all the gerber files, drill files, etc. OSHPark makes the process absolutely painless. I can upload a KiCad board file directly (no exporting and they take Eagle files too!) and they display rendered views of the what the finished board will look like, in color! The whole website is easy to use and the checkout process is flawless. They even keep an archive of all the projects you've sent them to make re-ordering easy. I'm not being paid to say any this. If you need prototype boards made, try them out.
Anyway, 7 boards designed so far. There's only one more to go, but it's a big one. The last board is the main board that connects all the other modules and contains the MCU, USB port, and programming headers. I can't design that board until I've finalized all the MCU pin assignments, which I'm getting into now.
And speaking of pin assignments and the MCU, I've started development of the prototype firmware v2. I need to almost start over because I'm using a different MCU than what's on the Teensy board I've been using so far. The new MCU is of the same broad family from the same manufacturer, but is faster, has a floating point unit, and double the flash and runtime memory. Much of the high level code I've written so far will port over, but since the new MCU is not Arduino based, I need to write a lot of low level code. The Arduino platform is great for getting a project off the ground fast since it simplifies the processor and peripherals, but that can hide features of the hardware and not allow the full usage of the MCU's capabilities.
All the coding is going to take some time, especially since I also need to build the programming environment. I have the IDE and the core libraries from the manufacturer, but I need to get a suitable programmer/debugger. I have an idea of what I need, but haven't pulled the trigger on that yet. I'm also in the process of slogging through the 1,500 page developer's guide for the MCU.
I'm not sure when I'll have anything interesting to post given the quantity and type of work ahead, but I'll try to provide useful updates when I reach what I consider to be useful milestones.