Good work Paul

bnemec

Member
I just want to say that I'm glad to see pjrc so involved. I remember first time I heard about pjrc, in a college class on logic and we were to purchase the 8051 board and assemble it. It was my first uC development platform. The professor was from I don't know where and I had to focus on his speach to understand what he was saying. I found info from Paul online and what help that was. And I remeber thinking this guy was a little odd. Everyplace else demanded money for everything, and not reasonable ammounts but prices that were set to keep students/hobbyists out and large companies in. Not Paul, he genuinly wanted to get a good product out for people to learn on. Thank you agian for that, I think the department is still using your 8051 boards.

Now over 12 years later, I'm browsing Sparkfun for an affordable uC with more number crunching ability than my beloved AVR. The Beagle, NETduino Mini, and Teensi 3.1 were open in tabs. Then I see PJRC on the Teensi page, I think to my self could it be Mr. Stoffregen? Sure enough, my search is pretty much done, the PJRC brand is all I need to all but stop looking at other manufacturers. Unless there is a deal breaker that the chip cannot do what I want to try or something, I've found my sorce for ARM dev board.

Keep up the good work and ignore the comments about cheaper board houses in China. Keep up the good work.

Ben
 
If you need really high amounts of data processing, you probably should be looking at the arm Unix system on a chip processors (Beaglebone Black, Raspberry Pi, pcDunio), as these run at much faster clock rates (1Ghz for BeagleBone Black rev C vs. 96Khz for Teensy 3.1), more memory (4 GB for BBB vs. 256K flash/64K SRAM for Teensy 3.1), and have floating point in hardware. Note, Beaglebone Black is hard to get, and if you can get it, you typically have to order it in single unit quantities.

Another chip is the NavSpark, that was recently an Indiegogo campaign from Skytraq that put a Sparc V8 clone on a chip with a GPS receiver. The Indiegogo campaign has ended, and I don't know if the Navspark is available elsewhere: https://www.indiegogo.com/projects/navspark-arduino-compatible-with-gps-gnss-receiver

However, if you need something that is real time, programmed like an Arduino, gives you direct control over digital/analog inputs, and is 4-8 times faster than an Arduino, then the Teensy 3.1 is the chip for you.

Of course as you say, Paul S. does provide amazing support.
 
Last edited:
Michael,
Thank you for the reply. Might be O.T., but I'm the original poster, so :p :) Anyways, I >think< I want to >try< to implement an EKF for stabilizing a UAV. My plan is to us the MPU-9150 to get accel and gyro data. There are some boards that have similar IMUs ganged up with an AVR, but I just don't see how that is a practical solution to the number crunching that's needed. I haven't gone through all the specs myself yet, but I needed someplace to start. As a hobbyist, I've learned that instead of trying to pick a processor from established requirements and then finding a dev board for it. I need to find what dev boards I can get my hands on then filter the ones that can do what I need. Since I don't really know much about what I'm doing my starting specs were quite sloppy. But in AVR I've found places that I trust their boards. Sadly this is my first venture into ARM, so the programming and hardware is new. Which leads me to my post, how releived I was that PJRC has an ARM board, that looks like it can do what I need. So now I have a lead -> data sheet to study and compiler or IDE to check out...
 
It all depends on how much data you need to crunch. I'm not familiar with the amount of data that your would typically encounter. The particular arm processors used in the Teensy 3.0 and 3.1 do not have floating point support, and so like the Arduino, the floating point must be emulated. In general this means on a Teensy 3.x, tens of instructions must be done to emulate addition/subtraction, perhaps hundreds of instructions to emulate a multiply, and thousands of instructions to emulate a divide or square root.

The base processor speed of the Teensy is 6 times that of the Arduino (96 kHz vs. 16 kHz). In addition, the Teensy is a 32-bit processor while the Arduino is an 8-bit processor. This means the Arduino has to execute several instructions to emulate 16/32-bit integer arithmetic, while the Arm can do it in one instruction, which gives you another speed boost. The arm processor in the Teensy has a faster multiply unit, and if you delve into special coding, it has integer vector instructions for doing a pair of calculations at the same time. Finally, the Arduino layer (digitalRead, analogRead, etc.) has been optimized by PJRC. So there is a definite speed boost in going from an Arduino to a Teensy.

But if you need 2 or 3 orders of magnitude more speed than an Arduino, you need to move up to processors with higher clock rates (which use more power), and if you use float/double, have hardware support for floating point. In addition, if you are processing a lot of data, you may need more memory than the Teensy 3.1 has available. You may or may not need to go in this direction. I would say buy a Teensy 3.1, and see if it meets your needs. If it does, great. If not, then you need to upgrade to a faster processor, and change the way you build and run your code.

But going to a heftier processor also has a downside. It is bigger, and consumes more power. If you are trying to put the processor on a drone or a robot, the weight factor of say a Beaglebone Black and the battery needed to get it to run for a reasonable period of time, might be too much for your system, while a Teensy 3.x with a lightweight lipo battery would allow it to work better. Everything is a trade-off.

Of course going even further on the silly side, if you are doing complex simulations (such as say doing the weather, building a nuclear bomb, etc.) none of these processors will give you the performance you need, and you will need to get a room or more of super computers, and of course the massive power supply and chilled air to keep these puppies running fast.
 
Last edited:
Poking my head in. I have nothing to contribute other than: 96MHz/16MHz. KHz would be a very, very slow processor!
 
When it comes to performance, usually the largest gains are made by doing the hardest part: improving the higher level algorithms in the software. Improving lower-level code also tends to help, but rarely are the gains as dramatic as better design at higher levels in the project.

Hardware-wise, I agree with MichaelMeissner's summary of current hardware categories.
 
Doh! First thread I started here and I managed to get it off topic to where most of the posts would be better off in the Project Guidence category.
 
Don't worry too much about the categories. Really, not a big deal.

The only thing that bugs me a bit are the tech questions and bug reports lacking key details or source code needed to reproduce the problem.
 
Don't worry too much about the categories. Really, not a big deal.

The only thing that bugs me a bit are the tech questions and bug reports lacking key details or source code needed to reproduce the problem.

Rightly so. Ever been over to AVR freaks.net? It bugs the experienced guys there also. :)
 
I guess I didn't even notice.

OT: Although you can run an AVR at whatever clock you want IIRC. Could be 16Hz if you wanted...
By default, the 5v Arduinos run at 16 Mhz, and the 3.3v Arduinos run at 8 Mhz. According to the datasheet, you can run it at 32 kHz and 128 kHz in power saving modes. Whether the Arduino support libraries can run in 32 kHz, I don't know.
 
Well, I've been reading up and did a search of this forum on "9150" and got several hits. I read though those and found this fella:
http://www.pololu.com/product/2723/resources
But it is expencive, maybe appropriate I don't know, but more than I would like to spend. I guess I would rather donate a few bucks for some motion fusion code that will run on these CORTEX processors. And get something with parts I can reuse and reconfigure.

Also there are people here using the Teensie 3.x with the 9150 breakout from Sparkfun, but it looks like just getting the data. I didn't see much about fusion. I could have missed it though, not real sharp on the topic yet, so stuff goes over my head.
 
Back
Top