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!


JAL Library for the DFPlayer Mini module

This JAL Library supports all features of the DFPlayer Mini, an audio playback device. The DFPlayer Mini is controlled via the serial interface using a fixed baudrate of 9600 baud. It can operate on 5 Volt but it is recommended to use 1k resistors in the serial communication lines between the PIC and the DFPlayer Mini.

Cat Repellent

Schematic diagram of a simple Cat repellent device. It is based on a PIC12F615 microcontroller that has on-board electronics to generate a Pulse Width Modulation (PWM) signal. Because of that hardware, hardly any external components are needed

JAL Library for Si5351a clock generator module

This was the most challenging JAL library that I created so far. The JAL library for the Si5351a supports all features of the Si5351a clock generator module, offering an easy to use API. The module is controlled via IIC and operates on a power supply of 5 Volt due to a voltage regulator circuit on the breadboard since the chip itself operates at 3.3 Volt. This breadboard makes it easy to interface it with a PIC that is connected to 5 Volt.

JAL Library for the nRF905 transceiver module

The JAL library for the nRF905 supports all features of the nRF905 transceiver module, offering an easy to use API. The module is controlled via an SPI interface and operates on a power supply of 3.3 Volt. If your PIC is connected to 5 Volt you need a bidirectional level shifter to connect to the module.

JAL library for the SSD1306 graphic display module

The JAL library glcd_ssd1306.jal supports the graphic display module using the SSD1306 display controller with a resolution of 128 pixels horizontal and 64 pixels vertical. Text and graphics can be shown on the display where for text the JAL font libraries are used. For the graphics features, the JAL glcd_common.jal library is used.

JAL library for the TM1637

The TM1637 has been around for quite some time but there was no JAL library available but it is now. You can purchase modules that have a TM1637 on board including four 7-Segment LED displays. The TM1637 device is, however, capable of controlling 6 LED displays and the device supports the scanning of a keyboard with a maximum of 16 keys.

The JAL library tm1637.jal supports up to six LED displays and it supports the use of the keyboard. The number of LED displays controlled by the library is configurable but uses 6 LED displays as default.

JAL nRF24L01+ Library

There was a request for a JAL Library of the nRF24L01+ wireless transmitter/receiver module. The nice thing about this module is that it uses its own protocol to transmit and receive data, including automatic acknowledge handling. This reduces the amount of work that needs to be done by the PIC. You just have to send some bytes and verify if the transmission was OK. It has sufficient FIFO’s on board to buffer the received messages and it interfaces with the PIC via an SPI interface.

Nokia 5110 Display Library

JAL had a library for the very popular Nokia 3310 display. Unfortunately the library was not part of the release since there were some issues with the graphics features of it. In the meantime the 3310 display has been replaced by the 5510 which has the same functionality since it still uses the Philips PCD8544 display controller.

The Virtual Wire Library

In one of my projects I needed an inexpensive but reliable RF link over which I could send a few bytes of data. A popular and inexpensive transmitter and receiver is available on the 433 MHz frequency band using Amplitude Shift Keying (ASK). The challenge was to set up a reliable link using these devices.