Great Cow BASIC Introduction – Programming tools for Microchip PIC and Atmel AVR microcontrollers

Great Cow BASIC Introduction – Programming tools for Microchip PIC and Atmel AVR microcontrollers

Great Cow BASIC is a robust and fully functional compiler and assembler for 8-bit microchip PIC and Atmel AVR microcontrollers. It was developed to cater for all class of embedded system solution developers from experts to beginners but with a great tool to help beginners.

It was developed to achieve three major goals which include;

  1. To remove the need for repetitive assembly commands for developers
  2. To help embedded developers produce efficient code
  3. To make it easy to take code written for one microcontroller type and run it on another microcontroller type.

The third one which seems to be a viable solution to one of the pain points of developers is one of Great Cow BASIC’s most useful characteristic. The design intent was to remove the complexity of using and programming a microcontroller and by proxy, make Great Cow BASIC suitable for beginners, for those who do not like or wish to learn assembly language and for experienced microcontroller programmers all at the same time.

Great Cow Graphical BASIC

For beginners, Great Cow BASIC comes with the Great Cow Graphical BASIC which is an icon-based editor for Great Cow BASIC Programs. This user interface was designed for beginners and those who do not like or wish to learn assembly language, removing the burden of memorizing commands by allowing users to just drag boxes that represents the line of code they are trying to create in a manner that is similar to the popular scratch software. As mentioned above, the Great Cow Graphical BASIC is tightly integrated with Great Cow BASIC as such, it will work with all of the same chips, and loads and saves GCBASIC programs directly. You can even copy and paste between Great Cow Graphical BASIC and a text editor with a Great Cow BASIC program in it! GCGB (Great Cow Graphical BASICs) will load the GCB (Great Cow BASIC) libraries, and when you’re comfortable to leave the icons behind, your GCGB programs can be edited like any other Great Cow BASIC program.


For more experienced microcontroller programmers, the Great Cow BASIC IDE is the way to go. The IDE, which is primarily based on Synwrite created by Alexey Torgashin but adapted, modified and maintained for GCB by Frank Steinberg, integrates several amazing features that make firmware development easy and less stressful.  It incorporates a simple to change programmer, the editor with syntax highlighting and code folding, sub/function list, autocomplete, context-sensitive help, multiple tabs, and bookmarks and a host of other attractive and engaging features.


A highlight of some of the features of the GCB includes:

  • Integration with the Great Cow BASIC compiler
  • Simple to change the programmer
  • SynWrite editor with syntax highlighting and code folding
  • Sub/function list
  • Autocomplete
  • Context-sensitive help (F1)
  • Multifile tabs and bookmarksDoubleclick on compiler errors moves the cursor to the source code error line
  • One-click assemble/compile/flash microcontroller (F5, F6, F7, F8)
  • Serial Terminal software
  • Programming software

Great Cow BASIC demonstrations

Great Cow basic has been used in the development of tons of projects like game controllers and projects featuring different sensors for tasks like temperature monitoring, distance measurement with ultrasonic sensor, display of text and images on LCDs and so on. A good number of these past projects have been collated into an example folder that can be found here and it serves as a good resource for coding newbies as it contains different code blocks that may be needed in the when building a project and they are written in such a way that they can be reused in other projects.

Great Cow BASIC microcontroller supported

Great Cow Basic supports an impressive number of 8bits PIC ( including the; 10F, 12C, 12F, 16C, 16F, 18C and 18F chips), and AVR (Classic AVR, Tiny AVR and Mega AVR) microcontrollers and it generates standard MPASM compatible assembly code for PIC, or avrasm2 compatible code for AVR microcontrollers. This makes it easy to write code for different microcontrollers. For instance, you could develop code for TinyAVR microcontroller, and easily adapt it for a PIC microcontroler like the 18F series.

Support for more microcontrollers is being added regularly, so any microcontroller not currently supported should be supported soon.

Great Cow BASIC programmers supported

Supporting AVR and PIC Family of microcontrollers ensures Great Cow Basic supports some of the most popular programmers used in programming those microcontrollers.

To mention a few, some of the programmers and tools supported by Great Cow Basic include;

  1. PicKit2 and PicKit3
  2. AVRdude and Avrdude-GUI
  3. Microchip Xpress Board programmer
  4. Microchip IPE automation tool
  5. TinyMultiBootloaders

Great Cow BASIC distributions

The Great Cow BASIC toolchain is available for Windows, MacOS, and Linux users. Currently, the Great Cow Graphical BASIC will only run on Windows and requires the .NET Framework 1.1 or higher.

More information about the Great Cow BASIC, can be obtained from their website and the software can be downloaded from the Sourceforge page. Demonstration files for Great Cow BASIC.

Please follow and like us:
Pin Share
About Emmanuel Odunlade

Hardware Design Engineer | #IoT Consultant |All things #ML | Entrepreneur | Serial Writer | Passionate about Innovation and technology as tools for solving problems in developing countries. Spare time is spent around writing and advocacy for the growth of the Maker/DIY Culture in Africa.

view all posts by emmanuel
Notify of

Inline Feedbacks
View all comments

I’ve seen a ton of such great BASIC/Pascal/whatever graphical programming IDEs appear and vanish quietly of the years, and guess what? I’m still sitting here with my C compiler.

But I wanted to give it a try, as I’m currently developing a measurement tool for the lab, that uses an ATMega16Ma chip.

While the chip itself is supported by GCBasic, it isn’t by the flashing tool they’re using (avrdude), so I can’t write to the chip.
Also, I’m using the CAN controller of the atmega, and that isn’t supported, so I’d have to write to the special function registers manually, while there are several ready-made and tested libraries available for C.

This may be one far-fetched example, but in my experience, a tool like this is cool, as long as it supports everything you need, but if not, you’ll spend an insane amount of time doing it yourself, and trying to understand the tools internals.

I really appreciate that people are doing such projects, but if you want to help people get into programming, stay away from BASIC. It’s a one-way road that leads to nowhere. Write a tool that spits out well documented C code, use the standard libraries and the GCC compiler, and don’t try to reinvent the wheel.

Just my 2ct.

Rostislav Persion

When I set the oscillator type, I cannot read the right part of the elements because the drop down box is too small… is there a solution?

Get new posts by email:
Get new posts by email:

Join 97,426 other subscribers