[phpBB Debug] PHP Warning: in file /mnt/forum-shared/ext/sitesplat/BBCore/event/listener.php on line 70: in_array() expects parameter 2 to be array, boolean given
SMiRF Firmware - SparkFun Electronics

SparkFun Forums 

Where electronics enthusiasts find answers.

All things pertaining to wireless and RF links
By Vern
I was reading the SMiRF documentation and noticed that you said the fireware was open source. I wasnt able to find it on your site anywhere. Is it still available? I am intested in your USB implementation on the 16F88.

I noticed something else, in the pictures of the remote SMiRFs available on the site, I noticed there is not a 16F88 on the board. Is it hiding or am I an idiot and its right in front of me?


Good post Vern...

I was just visiting the forum to ask the same question about the source code. I'm also interested in seeing the code and possibly adding some functionality and enhancements.
User avatar
By sparky
Sorry guys - was away from the forum for a bit.

For reasons I am still regretting, I stuck the 16LF87 under the transceiver, so you can't see it in the photos. The USB is performed with the CP2101 USB chip from Signal - I highly recommend it.

I wish I had put the PIC SSOP part on the bottom of the board for this reason - we can't fix any bad solder connections on the PIC once the transceiver is soldered on. We test everything, so about 1 out of 30 units are no good.

I went with the slightly cheaper 87 vs. the 88 because they are identical, but the 16F87 doesn't have an ADC. Since I don't need one, why pay the extra $0.50?

I had to use the Low voltage part (16LF87) because the board runs at 3.3V and under 10MHz.

Code... Right! Sorry about that. I've gotten a few emails about it. It was a reasonable development. Let me know if you have any ideas for improvement.

SMiRF Source Code: http://www.sparkfun.com/tutorial/Mazer/Serial-RF-v01.c

User avatar
By sparky
Hi Ken,

The drivers are already available.

I don't play Linux or Mac - so I'm not really the one to ask. But if you check the Driver Install PDF it will tell you the user name and pw for logging into the Silicon Labs site to download the Linux and Mac drivers.

I double checked that I could freely distribute the user&pw - they said 'yes'.

I think I read that the CP2101 driver was already in the latest Linux kernel.

Also - I had a Mac Guru tell me the Mac and Linux drivers were actually included in the Windows zip. He was able to pull the Mac OS X driver from the SFE USB Drivers zip.

Please fill me in if anything I say is off the wall!
By kenm
I found the link to download them in the install instructions:
http://www.sparkfun.com/datasheets/USB- ... nstall.pdf

There is no source, and they seem to be built for Redhat 9. Trying to load them on my Debian system running kernel 2.4.27 I get unresolved symbols from the usbserial.o module. Using the usbserial for 2.4.27, allows the mcci_usb.o driver to load (with warnings about non-GPL), but when I try to send data through it my machine locks up hard (first time I ever locked up a linux box!) I read through th4e SiLabs support forums, and found this message:
Which talks about the same sort of problem, but I also found, in the driver readme, a note indicating that this problem had been fixed.

Here is the problem, without source, in an embedded environment these drivers are useless. (as is they are pretty useless in an x86 envireonment too) I want to eventually run the SMiRF on ARM & MIPS architectures. I don't really want to use serial ports as I am controlling a variety of subsystems via USB and the SMiRF module provides a nice comm link between systems.

I will check the latest Kernel source trees and see what I can find. There are about 10-15 different USB-Serial adapter types supported in the 2.4.27 kernel, not including the CP2101. Maybe the 2.6 tree or the latest 2.4.x trees have something.

By kenm

A few days ago someone posed the question of linux drivers on the SiLabs support forum. Today SiLabs answered:


It looks like there are no gpl drivers for the CP2101, which is a shame as the provided binary ones can't work on other than x86 architecture. (if they work at all)

...ken... :(