Markus Gritsch wrote:This is amazing! Keep up this awesome work.
I would really prefer to have some kind of ICSP pins/holes/pads on the PCB: 1) programming the bootloader before soldering the PIC32 is cumbersome. 2) Development of the firmware without debugging capability is really a pain.
If PCB real estate is a concern: I used some small custom 50 mil spaced pin headers, which work fine and don't take much space on the PCB.
There are SSOP28 sockets available for relatively cheap if it turns out to be required. I have had success in the past programming PIC's before soldering by holding them against an adaptor PCB with the required footprint. I know that ICSP for PIC32's uses faster communication and its much more sentive to bad or poor connections but well, I'll try. Yeah, no debugging is also a pain but I hope that sending traces over the serial link will be enough. I also have PIC32 boards to try and debug parts of the code if required.
The problem isn't space but lack of pins. I have used every single I/O of the PIC32 and I couldn't break out ICSP1 pins as I had to use these for the serial interface. I could use them to program the thing before soldering the bluetooth module if that's required. I struggled a lot of time with the remappable pins configuration to get the easiest layout without interfering peripherals.
I also had to use a SSOP28 version of the PIC32. Smaller packages with more pins are available and I don't fear them at all. It's just that power and ground couldn't be properly routed with a leadless package with exposed pad in a 2-layer PCB. And grounding in this case MUST be properly done. We have RF, sensitive sensors, a fast microcontroller and 4 motors. Improper grounding would be devastating.
If this turns out to work, next revision will have a 4 layer PCB, a PIC32 with more pins and a different type of radio integrated in the PCB that would allow easy network communications. The final goal is to build a lot of these and make them collectively fly. I'm working at the RF group of my university and we're planning on designing a full-featured MIMO testbench and one of the likely applications would be radio-based localization. If everything works we could maybe use that equipment to localize microquadcopters in 3D space and make them do cool things. I'm aware that all this has already been done but our approach would cost much less money.
But well, for that to happen a lot of time will have to pass and a lot of work will have to be done. For now this is just the result of me thinking about cool ways to fill a 5x5cm board.