What is BrainBox?
The short version is, BrainBox is PICxie on high powered steroids. The long version?
BrainBox is an ARM Cortex-M4 Development package with a Kinetis MK02FN128VLH10-ND processor running at 100MHz. It has a 1.8" color TFT display, 64Mb of onboard DRAM; a inertial measurement unit consisting of a 6-axis accelerometer, gyroscope and magnetometer/compass. A microphone and temperature sensor round out the package.
Honestly we could add more, we actually planned to have an onboard speaker and ambient light sensor but didn't want to push our luck with the price point. Currently for a prototype BrainBox it's ~$45. With demand this could be pushed less than $20!
Why did you create BrainBox?
A few weeks ago I created a neat little recurrent neural network simulation
This network has a lot of interesting features that surprised me. There are several "wave-like" components visible if you plot the average activity of the network. Because of the similarities to real brain waves, I wanted to feed real environmental data into the network. My computer seemed like a poor choice because while I could feed audio and video data into the network easily enough I couldn't tell it anything else about it's environment. I wanted to give a body to the brain, I needed to create some hardware and BrainBox was born!
Why choose an ARM Cortex-M4 over a PIC32?
I've been using Microchip PIC microcontrollers for over 15 years now. They are very powerful devices, but the fastest PIC is PIC32MZ series which can run at 250MHz, BUT since all PIC microcontrollers have their clock internally divided by 4 (FOSC/4) the instructions are actually being processed at .25x or 62.5MHz (unless I'm mistaken, please correct me if I'm wrong).
EDIT: As pointed out by ctnptr in the comments
PIC 14bit cores, yes the OSC Clock is divided by 4
24bit cores clock is divided by 2.
32 bit PICs (aka MIPS Core) are divided by 1.
"MIPS32 120 MHz/150 DMIPS"
"PIC32MZ 252 Mhz / 415 DMIPS Performance
DMIPS is that you may compared but mixed DMIPS with FOSC somehow ?
So i doubt a PIC32MX or PIC32MZ is running that slower than a ARM at same Clock.
So it seems that the PIC32MZ would indeed have been a valid selection. When I was making Muribot a lot of people were complaining about the fact I was using a PIC over ARM and it seems that in reality the similarities between the two are greater than a simple glance would suggest.
Why aren't you using a bootloader?
Honestly I thought about it, but having the JTAG/SWD interface exposed makes it easier to debug and allows you to use all the memory. The cost of a good JTAG programmer isn't much more than the PICKit and far less expensive than Microchips ICD3.