Welcome to the Jalv2 & Jallib website!

JAL (Just Another Language, version 2) is an open source programming language built for programming PIC microcontrollers. If electronics is your thing, JAL is for you!

Jallib is a set of open source JALv2 libraries to make things work. Download our libraries to see what is available.

Check out our FREE The Tutorial Book for PIC microcontroller how-to's:


We are looking for more libraries and more fun! Please share and contribute!


MP3 Player

This is an MP3 schematic I've created. See the attached PDF.

It includes the following features:

- SD Card
- Hard Disk
- VS1053B mp3 decoder (with line in, line out & microphone).
- 23k256 for extra ram (used by FAT32 lib), not required.
- 74HC08 to allow for additional SPI devices.
- Serial port
- LCD (Not yet connected). May have run out of pins.

The schematic needs to be tested for errors.

FET H-Bridge Motor Controller

Circuit for H-Bridge Motor Speed Controller for PIC microcontroller.


Note: I have not tested with the Schottky diodes. I have ordered them. I may blow my FETs with feedback voltage spikes from the motor.



I want split a word variable to two bytes, or into bits, what's the best way to do it in JAL?

A common way to address the individual bytes of a word (or larger)
variable is to split it as an array of bytes.

This can be done as follows

var word w
var byte wb[2] at w

You can then refer the two bytes of the word w as wb[0] and wb[1]

To define bits within a byte, you may do the following:
var byte my_byte
var bit my_bit at my_byte : 0
var bit*3 my_bits at my_byte : 1

If the individual bytes of an array need a specific name alias keyword can be used as given below.

Search JAL Sites

This is a custom google search on the following jal related sites and mailing lists.


Where can I get a good introduction for JAL and PICs

This website has a very good introduction PICs and JAL available at http://justanotherlanguage.org/content/jallib/tutorials/tutorial_getting_started
The original author, Wouter too has a Starting With PIC guide which is a bit dated.

What does JAL stand for ?

JAL is TLA (Three Letter Acronym) which stands for Just Another Language

Print & Format

Formatting output data with Print & Format

Print & Format

In a previous tutorial (Serial Port and RS-232 for communication) You probably noticed it is annoying to have to change RealTerm from ASCII to HEX in order to see output of numbers. It is also not easy to view raw HEX data. You will probably want to be able to output decimal numbers to make it easy on us humans. This is where the print and format libraries come in!