SparkFun Forums 

Where electronics enthusiasts find answers.

General suggestions or questions about the SparkFun Electronics website
By halcyon
#100245
Hi all... I've got a few questions that I was hoping to get some feedback on.

First off, I'm a programmer by trade. I have extensive experience with higher level languages such as C, C++, Java and some prior exposure to Assembly and BASIC (for embedded systems). I've worked with a PIC16F877 chipset in the past, for fun, but only briefly before other priorities took precedence (as they always do). I have some minor experience with analog and digital circuits from college. Well, unpacking boxes I came across my equipment and my interest took root again and I've been refreshing.

I've been toying with a project I'd like to play with and started looking around at what I'd need to make it happen. I'm sure I could use my existing PIC16F877 to accomplish it, but I have a few implementation hurdles to address. Since I first got my PIC, I've become a Mac user at home. No serial port. I know I can use a USB-to-serial adapter, but I'd like my project to actually use the USB port as-is to communicate with my project (ethernet would also work, but the components I've looked up are pretty low-level). I'd like to also play with wireless communication. Additionally, it'd be great to also interface with a display of some sort... scrolling LED or LCD... I'm somewhat indifferent (although the LED would probably be easier to implement).

My research has shown me a variety of programmers that run in-chip and are programmed in either BASIC or C, although my comfort level is greater with C than BASIC. Some programmers have built-in wifi others have modules to support it. Most are Windows-only and a few have Mac ports.

My project, when running, would have a computer-based software component that would send commands to the processor (via USB or ethernet) to update external displays (individual LEDs, LED arrays, and/or LCDs). Those visual displays might be managed by another processor over wifi (but not required, just think it'd be a fun addition).

The CUI32 project with built in wifi looks pretty interesting. However, can anyone recommend any other good project kits, or kit plus modules, that would work well for me to get back into embedded programming?

Thanks folks!

-Ryan
By motopic
#100264
Get a arduino.
Free IDE works on a Mac.

All PIC stuff is going to be $$$ and only work in windows.
By tetsujin
#100284
motopic wrote:Get a arduino.
Free IDE works on a Mac.

All PIC stuff is going to be $$$ and only work in windows.
I do PIC development on Linux. The only thing I paid for was the programmer hardware itself. It can be done on Mac as well.

I do think the situation is a little nicer on AVR, since the open source C compiler for AVR (avr-gcc) is better than the open source C compiler for PIC (SDCC)... But it's not as though you can't program PICs without a huge cash outlay, and it's not as though you're stuck with Windows, either.

(And, actually, I think the 32-bit PICs have a GCC compiler, as well...)
By EmbeddedMan
#100286
And remember that all of the Microchip C compilers (for 8, 16 and 32 bit parts) have free editions that work just fine. And you don't even need a programmer - just buy a dev board (Like the UBW or UBW32 that SparkFun sells) with a built-in bootloader. There are tons of other ones. Arduino has a bootloader too, so no programmer is necessary. The CUI32 is a great one too - if you don't want to go C, use the really sweet Basic that it comes with.

*Brian
By halcyon
#100292
tetsujin wrote: I do think the situation is a little nicer on AVR, since the open source C compiler for AVR (avr-gcc) is better than the open source C compiler for PIC (SDCC)...
Do you use a particular dev IDE when writing your C code and compiling it?
By halcyon
#100293
EmbeddedMan wrote:... just buy a dev board (Like the UBW or UBW32 that SparkFun sells) with a built-in bootloader. There are tons of other ones.
That's sort of my dilemma... so many choices that I don't know where to start! I'm not sure if I should go back to my PIC16F877 and try to get it working from my Mac or move ahead to what's new (since I'm pretty much starting over).
EmbeddedMan wrote:The CUI32 is a great one too - if you don't want to go C, use the really sweet Basic that it comes with.
I was looking at the CUI32. It looks really promising, but I'm more of a C developer (not that I couldn't pick up Basic, of course).
By tetsujin
#100304
halcyon wrote:
tetsujin wrote: I do think the situation is a little nicer on AVR, since the open source C compiler for AVR (avr-gcc) is better than the open source C compiler for PIC (SDCC)...
Do you use a particular dev IDE when writing your C code and compiling it?
Emacs. :)

As for the choice between different microcontroller architectures - you may be able to narrow down the choices according to your needs. In my case, for instance, I often need the overall circuit to be very small, and I've found PICs to offer better choices in that regard than AVRs do. But comparing 8-bit microcontroller architectures, AVR is a lot nicer than PIC 16F, and I think it even has some substantial advantages over PIC 18F... And avr-gcc is great stuff.

I think at this point you may want to consider whether you want to start up with 8-bit microcontrollers or jump right in to the 32-bit stuff. If you're sticking with 8-bit, probably go with AVR. I mean, I like PICs and I believe they're the best choice for much of what I do, and I did want to point out that you're not tied to Windows when developing for PICs - but the AVR development community is rather lively (due in part to the whole Arduino thing... And Arduino, specifically the Duemilanove board, is very fun stuff.) and I think the situation with C compilers and such is rather nicer.