Source code for JackAl

The source code for JackAl is now available for download at our web site, hamradiodesigns.com. I apologize for the delay and that delay is totally on me. Al had his work done months ago. In my defense, it not easy to get 11,000+ lines of C/C++ code to play nice with each other. That said, we think the final result is worth the wait, with features we think everyone will appreciate.

Some details:

There are multiple files in the project. Only one file has a secondary file name of INO. This file contains the setup() and loop() functions and, therefore, all program control elements start in the INO file. All other files are CPP (i.e., C++) files. While this is different than some of you are used to, it brings two advantages to the party: 1) it allows for type checking across files, and 2) it allows for incremental compiles. This second feature can be a real time saver. Instead of compiling almost 400K of source code spread out over 19 files, incremental compiling causes the IDE to only compile those files that have been changed since the last compile.

Line number 4 in the JackAl.h header file contains this line:

  #define DEBUG

In setup(), you’ll see

#ifdef DEBUG

    Serial.begin(115200);

 #endif

In a few places you will also find:

#ifdef DEBUG

   Serial.print(“x = “);

   Serial.println(x);

 #endif

If you leave line 4 in the header file unchanged, the Serial object is compiled into the code which can be useful for debugging, like the Serial.print() lines above. If you comment out line 4, the Serial object is NOT compiled into your program, and all of the subsequent debug print statements are also not compiled into the program. This technique is called “scaffolding” and it allows you to “remove” debug statements without actually removing them from the code. Because you don’t have to retype your debug statements in the highly unlikely event your changes have a bug in them. This can be a real timesaver. You decide what to do with line 4.

Even if you’ve never programmed, you will eventually get tired of seeing Al’s and my names on the Splash screen. The Splash() function is in the INO file and feel free to change it to your own name and call. Note if you want to change something, you must have installed the Arduino IDE and the Teensyduino patch. Details are in manuals.

This code is Open Source, as is the hardware. This is an experimenters platform and we hope you will do just that. That said, we ask that you leave the file header comments unchanged and at the top of the file. Feel free to add whatever you wish after our comments.

There is a JackAl group now (https://groups.io/g/JackAl) and all comments, questions, and support will be done via that Forum. Please check the site from time-to-time, as we know we want to improve a number of things in the software.

Jack, W8TEE

Al, AC8GY

Reference

Differences between the JackAl and Nextion displays

Most people don’t understand and won’t want to understand the differences between different types of display technologies.

Unfortunately,  the µBITx community has fractured its user base amongst competing screen technologies.   There are many different types of LCD display screens and they are not compatible at all.   

Differences between the Nextion and JackAl displays have been discussed on the BITX20 IO Group list following discussion about whether a Nextion screen used with the KD8CEC firmware could be ported across to the JackAl.  The simple answer is “No”!

Brian N8BDB notes that  it’s not going to be as simple as replacing a driver and rebuilding the application.  The Nextion display works in a very different way than the normal displays most people use for microprocessors like arduino and teensy.

Normally the display is a “dumb” device that just handles displaying the dots.  Software libraries are used to provide basic functionality like drawing lines, boxes, and text.  Touch events are handled completely separately by other libraries.

The Nextion display is the opposite.  The display has it’s own microcontroller, memory, etc. and the arduino communicates with it through a serial interface.  All of the buttons, text, gauges, etc. are prebuilt in the Nextion editor.  The application doesn’t know where they are on the screen.  It just has a name such as “button1” that is associated with a button on a particular screen for instance.  The application just sends a command to the display to change the text of “button1” to “abcd”.  It would require a significant rewrite of the JackAl UI code to make it work with a Nextion display.

The other thing as Jack pointed out is about resolution.  The Nextion displays most people have are much lower resolution than the display used by the JackAl board.  The 2.4″ and 2.8″ Nextion displays are 320×240.  The 5″ Nextion display ($60) is the closest one with similar resolution (800×480) and that is 33% more in price than the display ($40) that JackAl currently uses.  Even the 4.3″ Nextion display is only 480×272.

There are pros and cons of both screen types.  The Nextion costs a bit more per pixel because it has a processor on board, but the demand (in terms of memory and processing power) on the main µBITx is minimal.   The processor and screen communicate using a series of codes.   The Nextion (in theory) can be adapted to have quite different user interfaces for the same functions.  There are, in fact, at least two distinctly different versions of “look and feel” available already.   However, setting up these requires a fairly steep learning curve on the screen management environment.

On the other hand, the JackAl screen (along with all other types of LCD screens) is strongly tied into the firmware of the JackAl teensy processor and amending the “look and feel” of the display requires detailed knowledge of the processor, firmware and the screen programming environment on which the JackAl is built.  It is unlikely that the Nextion will be ported across to the JackAl environment any time soon.  Bite the bullet and buy a new screen!

Reference

Jackal Board for the uBITx released

Jack, W8TEE and Al, AC8GY have announced that QRP Guys is ready to take orders for the JackAl support board for the µBITX. A link to a list of its feature set, a video of it in action, and some photos can be seen at

http://hamradiodesigns.com/index.php/photos/

Note that the AGC implements both audio and IF AGC. The appendix to the manual shows a plot of its characteristics. DSP filters are available, including user-defined filters (CUST in figure below). A CW keyer and decoder are also included. The main screen looks like this:

The decoded CW can be seen along the bottom. (In all honesty, that is a guy sending almost perfect code at about 22wpm.  Jack is still playing with the decoder and expects some really smart user to make it much better. It’s got real possibilities as it is based on the FFT bin counts.)

QRP Guys is offering the JackAl board for $40 for the first 50 boards.

After those are gone, the price will be $50.

Shipping in the CONUS is $5 and DX is $15. This is what the JackAl board you’ll get looks like:

The board has all of the SMD’s mounted (including the Si5351 and the display buffer IC). The user does have to supply additional parts: A Teensy 3.6 and associated audio board (both from PJRC.com) and either a 5″ or 7″ TFT touch screen display (BuyDIsplay.com). You should also consider case size when you select your display size. (Note: BuyDisplay.com has actual sizes for each display and they are measured like a TV, so the case can be smaller than you think.)  If addition, there are some IC’s, connectors, audio isolation xfmrs, and header pins that most of you will want to add. The cost of these additional parts should be less than $15 depending on your junk box. The board with these in place looks like this:

The connectors are not required but, since you are also give about a dozen free I/O pins for experimenting, you may want to add them. (The yellow pins above are test points.)

The assembly manual can also be found on the website.

This is an intermediate to advanced semi-kit project. Our intention is to not only give the µBITX additional capability, but to serve as a platform for experimentation, which we hope you will share with the rest of us. You will have approximately 700K of flash and 200K of SRAM free for your inventive side to exploit.

Al and Jack already have some (software) extensions we want to implement. Note JackAl does NOT fix the harmonic or spur issues. However, our test µBITX’s right out of the box were well within spec for 80 and 40 meters and spot on for 20M (15M and 10M, not so much). If you have doubts about your µBITX, check it out. It could well be that your favorite band is within spec. If you don’t have a spectrum analyzer, check with members of your club or the physics department of your local high school,. junior college, or university. Most will be glad to help.

You need to provide your own Teensy.  The reason for ordering a Teensy without pins is that you will need to use header sockets with long pins on the Teensy so that the Audio shield can plug into the Teensy and the Teensy plug into the JackAl board. The Teensy pins do not have the header sockets and are difficult to change without damaging the Teensy.

Note that the power jumper on the bottom of the Teensy 3.6 also has to be cut.

Reference

Getting prepared for the JackAl

Some of you are waiting with baited breath for the JackAl Board, announced by Jack W8TEE.   You can get yourself geared up for the JackAl by pre-purchasing some of the kit required, as it is due to be released shortly.  You will need a colour touch display panel, a Teensy 3.6 processor and associated Teensy audio board.

Display panel

There are two display options for the JackAl board: 5″ or 7″.  Neither is likely to fit in your existing µBITx enclosure, so you may also want to purchase a new enclosure.

The panels can be purchased from BuyDisplay.com. Their order numbers are:

ER-TFTM050-3 (5″)
ER-TFTM070-5 (7″)

Both displays use the following options:

4-wire SPI interface
3.3V
Resistive touch
No font (the library is being used for fonts)

Both are 800×480 displays using the RA8875 chip. If you run the samples using a touch screen, make sure you run the Calibration sample program first.

Teensy 3.6 and audio board

The Teensy 3.6 and its associated audio board can be purchased from the manufacturer’s website or from other sources.

Reference

JackAl Board

Now you can have a look at a partially populated JackAl board thanks to this photo from Jack W8TEE in response to a question about a LA4425 as a replacement to the TDA2822.

The highlighted square in green is the audio amp stage of the JackAl board: a 7W TDA7266M.  Seems like you could really blast the neighbours with that one!

In case you haven’t figured out what the JackAl board is about: it is a supplementary board that hsould be released in the next few weeks by Jack and Al, that adds a Teensy 3.6 processor, and a number of other mods, all on one board.  The Teensy will give the µBITx new features like DSP.

JackAl is here!

Jack W8TEE and Al AC8GY have  released details of the JackAl board following FDIM (preceding Dayton Hamvention).

Friday night is a sort of Show-and-Tell at FDIM and they used that opportunity to show their JackAl board in action. The photo above shows a little more about what it is and does.

At the show, Al hooked up a noise generator to the µBITX to show how the filters work. (There are 4 preset filters for CW and 4 for SSB.) In addition, you can customise one CW and SSB filter to the bandwidth you desire. You might be able to see that the skirts are pretty steep for the filters on the scope in the background. The setting of the CW custom skirts are set differently, in that you pick a centre frequency (e.g., 700Hz in the shot below), press the encoder, and then you see this:

In this case, turning the encoder CCW increases the bandspread (i.e., the 440 red number above, although it looks orange in the photo) by simultaneously moving the skirts (480Hz and 920Hz) further apart. If you turn the encoder CW, you narrow the bandspread. Most CW users will probably center the bandpass on their favorite sidetone frequency, which centers the bandpass on that frequency.

The demo used a 5″ display, although a 7″ display is also available. The third knob on the front is for a second encoder that we use for everything from setting the CW keyer speed to adjusting the filter skirts. You can see some of the plots on the panel at the rear of the picture above for some of the board’s features (e.g., filter responses, compression, etc.) Those will be included in the documentation when the (downloadable) manual is finished.

The JackAl board has the following features:

  • 5″ or 7” touch screen 800×480 TFT color display
  • Dual VFO’s
  • RIT
  • S meter
  • RTC
  • CW keyer, 5 to 50wpm (we could go up to 100wpm, but…really?)
  • Up to 50 CW preset messages, selectable at runtime…perfect for contest messages
  • Touch screen function and control selection (e.g., band changes, RIT, mode, VFO, VFO increment, LSB/USB, etc.)
  • Automatic LSB/USB selection based on frequency (overrideable)
  • One touch frequency increment changes (1Hz to 1MHz in multiples of 10…the white underscore in the frequency window)
  • Dual encoders (frequency, features)
  • EEPROM storage of user preferences (one-click reset to “factory” defaults)
  • Uses Teensy 3.6 processor (1Mb flash @180MHz) and companion audio board
  • Support for 3 external CW push button switches (NO) for sending stored CW messages (e.g., contesting)
  • Hardware AGC using IF take-off
  • Audio AGC with adjustable threshold
  • Mic compressor with adjustable threshold
  • 8 band audio equalizer
  • Receive audio filter: 48dB/octave (8 pole equivalent DSP filters)
  • 4 CW presets (150, 300, 400, 600, [or none] Hz 3dB bandwidth) + 1 user-defined knee frequencies (at runtime!) filter
  • 4 SSB presets (1500, 1800, 2200, 3000, [or none] Hz 3dB bandwidth) + 1 user-defined knee frequencies (at runtime!) filter’
  • Variable Notch filter, encoder adjustable, use specified Q
  • 7 watt power amplifier

The board will be distributed with all (surface mounted) parts in place. The user must supply the Teensy 3.6 ($30), its supporting audio board ($15), and the 5″ ($34) or 7″ ($44) touch screen displaying (using the RA8875 controller chip, BuyDisplay.com).

We expect the JackAl board to sell for $50.

We may need to adjust this price as we have only received “ballpark” cost estimates for the board since we only have the Gerber files for the Beta board.

Currently, we are using less than 20% of the available flash memory (out of 1Mb) and less than 15% of the SRAM (256K), so there is plenty of memory resources available for adding “stuff”. The board also brings out a number of I/O pins to help your experimentation. With the exception of removing one SMD resistor on the µBITX board and soldering two wires to those pads, all interconnections are via existing connectors.

Our best guess is that after finishing the modified Gerber files, production, Beta testing, and writing support manuals, it will be probably two months before we begin distribution. We will announce its availability here as soon as we can. BTW, if anyone knows a high-quality PCB manufacturer who also does pick-and-place at reasonable prices, we are getting quotes and would like to know about them.

Reference

W8TEE JackAL Board at FDIM

Jack W8TEE provides a bit more insight into the JackAL board that uses the Teensy 3.6 to give lots of processing grunt.

Jack suggests that he and Al were going to put an SWR meter on the JackAl board, but have backed away from it for this iteration. The main reason was because of the board size. The nano-acres it would take on the board would raise the PCB cost above the 100x100mm size to do it right for the possible power levels that might be involved. That doesn’t mean you can’t add one…

The good news: Right now, there are about a dozen “empty” pins available on the board for experimenting.  They are currently using less that 15% of the 1MB of flash memory and less than 10% of the 256K of SRAM.   That includes code space for some features that we’ve coded for (e.g., a RTC) but have not implemented yet (e.g, adding a button battery to power the Teeny’s RTC in sleep mode).

The Teensy is a 3.3V device, so we have an onboard regulators for 5V and 3.3V. Al and Jack think this will up the “fun level” for hackers considerably…at least that’s our intention.

The bad news: They got caught in some kind of Chinese holiday and other “delays” to get the PCB. Al ordered the board since he did all the work on the EE design. It seems our Beta PCB order got pushed to the back of the line.

When Jack wrote to them and pointed out that he was disappointed with their service, especially after ordering more than 1000 boards from them last year, the order suddenly went from “In line” to “shipped” in under 24 hours. They received the board this week and discovered errors on the board (2 from the design team, 1 from the manufacturer of the board).  The Beta board will have some “hairs” on it.

Jack and Al will be demoing JackAl at FDIM, but not all of the features will be implemented. The order for the new board will be sent this week.  We’ll immediately send it to our Beta testers and then make it available via an announcement on the BITX20 list.

Al and Jack look forward to seeing uBITx constructors at FDIM!

Reference