Skip to content

Instantly share code, notes, and snippets.

View NT7S's full-sized avatar

Jason Milldrum NT7S

View GitHub Profile
@NT7S
NT7S / Si5351_VFO.ino
Last active June 1, 2023 00:06
A simple VFO for the Si5351 for either LCD or OLED
/*
Si5351 VFO
By LA3PNA 27 March 2015
Modified by NT7S 25 April 2015
Modified to be Si5351 Arduino v2 compliant by NT7S 21 Nov 2016
This version uses the new version of the Si5351 library from NT7S.
see: http://arduino.cc/en/Reference/AttachInterrupt for what pins that have interrupts.
@NT7S
NT7S / Si5351A_PSK.ino
Last active April 23, 2023 19:53
Generate PSK31 with an Si5351A
#include <si5351.h>
#include "Wire.h"
Si5351 si5351;
uint16_t varicode[] =
{
0b1010101011000000, // 0 NUL
0b1011011011000000, // 1 SOH
0b1011101101000000, // 2 STX
@NT7S
NT7S / Si5351_WSPR.ino
Last active February 25, 2023 06:46
10 Milliwatt Si5351A WSPR Beacon
// Si5351_WSPR
//
// Simple WSPR beacon for Arduino Uno, with the Etherkit Si5351A Breakout
// Board, by Jason Milldrum NT7S.
//
// Original code based on Feld Hell beacon for Arduino by Mark
// Vandewettering K6HX, adapted for the Si5351A by Robert
// Liesenfeld AK6L <ak6l@ak6l.org>. Timer setup
// code by Thomas Knutsen LA3PNA.
//
@NT7S
NT7S / crc14.c
Last active June 5, 2022 13:32
FT8 Encoding test script
/**
* \file
* Functions and types for CRC checks.
*
* Generated on Thu Dec 6 17:52:34 2018
* by pycrc v0.9.1, https://pycrc.org
* using the configuration:
* - Width = 14
* - Poly = 0x2757
* - XorIn = Undefined
@NT7S
NT7S / Si5351_PSK_Ext.ino
Created April 2, 2015 16:40
Generate PSK with an Arduino and Si5351
#include <si5351.h>
#include "Wire.h"
Si5351 si5351;
uint16_t varicode[] =
{
0b1010101011000000, // 0 NUL
0b1011011011000000, // 1 SOH
0b1011101101000000, // 2 STX
@NT7S
NT7S / Feld_Hell_Si5351.ino
Last active January 16, 2022 18:25
Feld Hell beacon for Arduino and Si5351
//
// Simple Feld Hell beacon for Arduino, with the Etherkit Si5351a breakout
// board, by Jason Milldrum NT7S.
//
// Original Feld Hell code for Arduino by Mark Vandewettering K6HX, adapted
// for the Si5351A by Robert Liesenfeld AK6L <ak6l@ak6l.org>. Timer setup
// code by Thomas Knutsen LA3PNA.
//
//
// Copyright (c) 2015 Robert Liesenfeld AK6L <ak6l@ak6l.org>
@NT7S
NT7S / Si5351_WSPR_2560.ino
Last active July 5, 2021 19:10
JTEncode example with two different buffers
// Si5351_WSPR
//
// Simple WSPR beacon for Arduino Uno, with the Etherkit Si5351A Breakout
// Board by Jason Milldrum NT7S.
//
// Original code based on Feld Hell beacon for Arduino by Mark
// Vandewettering K6HX, adapted for the Si5351A by Robert
// Liesenfeld AK6L <ak6l@ak6l.org>. Timer setup
// code by Thomas Knutsen LA3PNA.
//
@NT7S
NT7S / DACZero.ino
Created January 18, 2017 16:18
DAC Sine Wave on Empyrean/Arduino Zero
uint8_t sine_wave[256] = {
0x80, 0x83, 0x86, 0x89, 0x8C, 0x90, 0x93, 0x96,
0x99, 0x9C, 0x9F, 0xA2, 0xA5, 0xA8, 0xAB, 0xAE,
0xB1, 0xB3, 0xB6, 0xB9, 0xBC, 0xBF, 0xC1, 0xC4,
0xC7, 0xC9, 0xCC, 0xCE, 0xD1, 0xD3, 0xD5, 0xD8,
0xDA, 0xDC, 0xDE, 0xE0, 0xE2, 0xE4, 0xE6, 0xE8,
0xEA, 0xEB, 0xED, 0xEF, 0xF0, 0xF1, 0xF3, 0xF4,
0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFC,
0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFD,
@NT7S
NT7S / EmpyreanEncoder.ino
Last active September 8, 2020 23:43
Very basic rotary encoder support for Empyrean
constexpr uint8_t encoder_pin_a = 5;
constexpr uint8_t encoder_pin_b = 6;
int16_t count = 0;
bool prev_b = false;
bool change = false;
void ISRENCA()
{
static bool prev_read = false;
@NT7S
NT7S / EmpyreanudevInstall.md
Last active January 21, 2020 22:45
How to Install Empyrean udev Rules

Please execute the following commands in a terminal in order to install the Empyrean udev rules to your Debian-based Linux PC:

curl -fsSL https://raw.githubusercontent.com/etherkit/ArduinoBoards/master/etherkit-samd-1.0.0/10-empyrean.rules | sudo tee /etc/udev/rules.d/10-empyrean.rules

sudo service udev restart