2
\$\begingroup\$

Today I found Imp - a CPU together with a Wi-Fi module with an antenna included and all packed into the size of an SD card. The specification says nothing about memory and doesn't mention a memory bus.

I always thought that the amount of memory is kind of very important for an embedded system. Okay, maybe there's no memory built in, but then the user would have to add his own memory and that would require a memory bus and the memory bus specification would also be important because it would affect what memory can be used and how fast it would work. Yet neither is mentioned.

Why would the supplier not mention both memory and memory bus in such a module description?

\$\endgroup\$
3
  • 5
    \$\begingroup\$ Actually, they don't really give any hard technical specifications at all - there are no part numbers or any real quantitative statistics except for the I/O and core type. This is a teaser page, and if you're really interested (and maybe even meet some requirements) they can send you more info. \$\endgroup\$
    – W5VO
    Jul 20, 2012 at 14:24
  • \$\begingroup\$ Yes, it is a bit marketing heavy and short on details. But if it comes up short or you decide you don't like developing on their server, you could always use it as a wifi access device for the potent cheap micro of your choice. They are even selling an arduino workalike that uses it as a serial port. \$\endgroup\$ Jul 20, 2012 at 17:24
  • 5
    \$\begingroup\$ Frankly I would avoid buying products from companies which never seemed to have heard of datasheets. It's possible that you can get them on request (hopefully!), but they should be there. If they seem to care that little about prospective customers, how do you think they'll serve you after you bought it, and they have what they needed: your money. \$\endgroup\$
    – stevenvh
    Jul 20, 2012 at 17:34

2 Answers 2

2
\$\begingroup\$

It uses an ARM Cortex-M3 micro-controller with on-chip flash memory and RAM, with no need for external memory.

\$\endgroup\$
3
  • \$\begingroup\$ Does this imply that just mentioning Cortex M3 automatically tells me the exact amount of memory? \$\endgroup\$
    – sharptooth
    Jul 20, 2012 at 9:47
  • 1
    \$\begingroup\$ No. ARM just supplies the core IP to manufacturers of the M3, such as NXP and ST, and the amount of memory, I/O and peripherals is up to them. \$\endgroup\$ Jul 20, 2012 at 9:57
  • \$\begingroup\$ Okay, then since they use an actual chip manufactured by one of those companies I will have no idea how much memory it has unless they specify it. \$\endgroup\$
    – sharptooth
    Jul 20, 2012 at 10:49
1
\$\begingroup\$

I went through the OEM's web site. IMO, they don't intend to let the end users reprogram the controller in the sense where he would write his own C/C++ code and download it through JTAG. The end user is supposed to use a high level (interpreted?) language and a graphic planner that they provide. They probably think that programs will be small, and that's why they don't provide the size of the memory and how much memory is used up by their own code.

FCC and cost may be the driving forces behind such architecture. If the OEM gives a 3rd party full access to the controller, which runs the stack, the 3rd party might change the radio settings (accidentally or deliberately). FCC would require to re-certify the unit.

Of course, there is another common architecture with 2 separate controllers. One controller (which is accessible only to OEM) is running the Wi-Fi stack. A different controller is completely accessible to a 3rd party. Such architecture wouldn't require FCC re-certification. But the cost of another controller is added.

Hacking this module would be another story. The model number might be written on the controller chip inside. One might be able to look up the parameters (memory, etc) in the datasheet. May be, they will leave the JTAG pads, which could give one access to the controller (at his own risk). They probably will not provide their Wi-Fi stack (at least not for the general public). Finding or creating the Wi-Fi stack could be a challenge.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Another reason the manufacturer may not provide specs for the controller itself is that it may use an external memory device (serial flash or EEPROM) to hold the user application logic. The amount of flash memory in the controller itself would not relevant to the end user; the amount of RAM available for user programs would be relevant, but it may not always be a 'hard' number. The WiFi stack may be able to adjust the sizes of its buffers as needed to accommodate different user-program requirements. I'm not really sure what a manufacturer should specify if... \$\endgroup\$
    – supercat
    Aug 18, 2012 at 17:14
  • \$\begingroup\$ ...a module with a total of 4K RAM would use 0.5K for non-buffer overhead and by default use 3K for buffering, but it could if necessary pare its buffers down as small as 1K at some cost in performance. Would the "user available RAM" be 0.5K or 2.5K? \$\endgroup\$
    – supercat
    Aug 18, 2012 at 17:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.