Teensy 3.0

I don't know if "industrial" is different, but I can tell you there is a huge difference in performance between SD cards sold for consumer use. The SDHC speed class is often unrelated to the real-world performance when small, random access is made.

I recently tested several of my cards, while trying to use a Raspberry Pi. I used one of the PC disk benchmark, which does large and small sequential and random reads and writes (8 tests in total). On the random write test, many of the cards had about 10 kbytes/sec speed, which incredibly slow. My fastest card was a 32 GB Sandisk Ultra, at well over 1 Mbyte/sec in the random 4k write. I had another 32 GB card, I believe Patriot or PQI, which ran at about 10 kbytes/sec in the random write. It performed very well with sequential access, but very poorly for random reads or write. Since then, I sold a camcorder with that card included.

Sadly, the Raspberry Pi has a bootloader bug that makes it incompatible with some cards. My only really fast card is one of those. Since then, I've been too busy with Teensy 3.0 to do much with Raspberry Pi, but I plan to look at it again in a couple months.

The "industrial" card might be just marketing, or it might actually mean the card has whatever better chip is in that Sandisk Ultra that makes it so capable of managing small, random accesses that other cards service at only glacial speeds.

The Teensy 3.0 I ordered is on its way. In the meantime I have some questions.

  • is there a forum for the Teensy 3.0 or is this thread the best place to ask questions?
  • I notice in the Beta5 IDE Tools menu that you can choose one of three CPU speeds - e.g. to overclock at 96MHz. Is this selection all you need to do or do you also have to make some sort of hardware change?
  • I'd like to play around with the ARM's DSP instructions. Is there any support to allow use of them in a sketch or do I have to get my hands dirty with assembler?

Thanks
Pete

there is a huge difference in performance between SD cards

Have you seen the conversation about many formatting utilities not formatting SD cards "correctly" ?

http://www.adafruit.com/forums/viewtopic.php?f=31&t=20861&start=0

Sadly, the Raspberry Pi has a bootloader bug that makes it incompatible with some cards.

Somewhat off topic, but just FWIW, the R-Pi has been reported to show about 20 MB/sec both reading and writing to a "SanDisk Extreme SDHC 4GB class 10" according to RPi Performance - eLinux.org
Somewhere around June/July 2012 there were some bug-fixes to the SD card I/O routine firmware in the R-Pi, which improved compatibility with several different types of cards. Most cards perform slower than the above example.

el_supremo:

  • I notice in the Beta5 IDE Tools menu that you can choose one of three CPU speeds - e.g. to overclock at 96MHz. Is this selection all you need to do or do you also have to make some sort of hardware change?

My experiments indicate that the menu selection alone does in fact change the clock speed, nothing else required. See for example Teensy 3.0 arrived

Thanks very much John.

Pete

The main difference is that industrial cards use SLC flash and consumer cards use MLC flash.

SLC flash tends to perform better in embedded applications. For example wear leveling remaps occurs more frequently for MLC flash since each cell has a lower maximum number of write cycles.

A comment on bus speed.

The Teensy uses 1-bit wide SPI at 24 MHz.

Common Version 2.0 SD and SDHC cards support the 4-bit SD bus at 50 MHz. This is about eight times the bandwidth that Teensy has.

fat16lib , integration of the chibios to the teensy sounds very interesting. Thanks for the work.

How compatible do you think it will be with other arduino libraries ? And what's the estimated latency, generally speaking ?

fat16lib , another question:

How compatible is the chibios library to standard arduinos(atmega 328/1280/2560) ? and what's the latency ?

Nantonos:

[quote author=Paul Stoffregen link=topic=121568.msg960072#msg960072 date=1350470910]
It's in stock in the Netherlands now.

http://www.pieterfloris.nl/shop/category.php?id_category=45

Ordered.
[/quote]

It arrived this afternoon, along with a Teensy 2.0 which I briefly tried and will use as a USB MIDI output for my controller project. Have not yet tried the 3.0, about to do that now.

Hi!

I successfully connected teensy 3.0 to the WIZ812 Adaptor Kit (edit: via breadboard, of course) and WIZ812 Ethernet Module!

I can use DHCP and ran several of the server examples.

There's a problem for now, and I'm still looking into it, but if somebody else has something to add, it would be good!

The problem is that it can't connect to websites, as in DnsWebClient. I don't know yet if it's not resolving the DNS or if it's another issue...

here's my results:

localIP: 192.168.1.113
subnetMask: 255.255.255.0
gatewayIP: 192.168.1.1
dnsServerIP: 200.162.196.29
connecting...

UPDATE: It's not resolving DNS names, I used IPAddress serverName2(74,125, 234, 243) for google and it went through! I'll check my DNS server now...

UPDATE 2: It was my DNS server (but it works on my win7 machine...) Now I'm using openDNS and it works...

localIP: 192.168.1.113
subnetMask: 255.255.255.0
gatewayIP: 192.168.1.1
dnsServerIP: 208.67.222.222
connecting...
connected
HTTP/1.0 200 OK

I have this SD card breakout board in the color red. SparkFun microSD Transflash Breakout - BOB-00544 - SparkFun Electronics

I want to hook it to the Teensy 3.0, I think I can hook it directly to the SPI pins without any added resistors or such. Can anyone tell me if that is correct or if I need additional parts?

Thanks,
Mark

Yes you can connect it directly.

fat16lib:
Yes you can connect it directly.

Thanks, I will report hopefully tomorrow on my results!

I tried a benchmark of my own using a function which computes the bearing between two locations specified as lat/long. It produces essentially the same kind of timing as seen before.
In summary, compared to a Duemilanove (=2009) the result of calling the function 10000 times is:
2009 @ 16MHz 12.57secs
T3 @ 48MHz 8.30 secs
T3 @ 96MHz 7.82 secs

The interesting thing I noted was the difference in the size of the code.
The Duemilanove code is 4764 bytes whereas the T3 code is 19984 bytes! I presume that the T3 is hauling in different libraries but it seems to be a bit excessive. OTOH it is 19984 bytes of a 131,072 byte maximum so there's plenty of room to spare :slight_smile:

Pete

el_supremo:
I tried a benchmark of my own using a function which computes the bearing between two locations specified as lat/long.

Using float or double?

el_supremo:

  • is there a forum for the Teensy 3.0 or is this thread the best place to ask questions?

This is a good place to ask questions and there is also now a Teensy forum.

el_supremo:

  • I notice in the Beta5 IDE Tools menu that you can choose one of three CPU speeds - e.g. to overclock at 96MHz. Is this selection all you need to do or do you also have to make some sort of hardware change?

I believe that is all you need. Beta7 IDE was just released btw.

Coding Badly:
Using float or double?

float.

@Nantonos. Thanks for the info. I've now found the forum and also discovered just how trivial it is to run a sketch overclocked at 96MHz.
I suspect that sorting out the DSP stuff is gonna be a bit less than trivial though :slight_smile:

Pete

el_supremo:
I suspect that sorting out the DSP stuff is gonna be a bit less than trivial though :slight_smile:

Yes, hence my lack of reply on that point.