Merge pull request #268 from alanbjohnston/pico-v0.41

Pico v0.41
pico-v0.41-aprs-vhf
alanbjohnston 3 years ago committed by GitHub
commit de29bef45c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -78,7 +78,7 @@
#define TEMPERATURE_PIN 28 // Diode temperature analog pin
#define PORT 8080
#define FREQUENCY_OFFSET 0
//#define FREQUENCY_OFFSET 0
#define TRUE 1
#define FALSE 0
@ -131,6 +131,7 @@
#define PROMPT_I2CSCAN 14
#define PROMPT_WIFI 15
#define PROMPT_CAMERA 16
#define PROMPT_OFFSET 17
#define PAYLOAD_QUERY 1
#define PAYLOAD_RESET 2
@ -145,7 +146,7 @@ float get_cpu_temp();
//#define WAV_DATA_LENGTH (50000 * 8)
uint32_t tx_freq_hz = 434900000 + FREQUENCY_OFFSET;
uint32_t tx_freq_hz = 434900000; // + FREQUENCY_OFFSET;
//uint8_t data[1024];
uint32_t tx_channel = 0;
@ -224,6 +225,7 @@ void load_sstv_image_2_as_cam_dot_jpg();
void get_input();
void transmit_led(bool status);
void reset_min_max();
int frequency_offset = 0;
#ifndef STASSID
#define STASSID "Pico"
@ -374,6 +376,7 @@ bool voltage_read = false;
bool ina219_started = false;
bool camera_detected = false;
bool rotate_flag = true;
bool clockgen_present = false;
int led_builtin_pin;

@ -8,7 +8,7 @@
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* but WITHOUT ANY WARRANTY; without even the implied warranty ofF
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
@ -93,6 +93,22 @@ void setup() {
Serial.begin(115200);
config_gpio();
/**/
if (check_for_wifi()) {
wifi = true;
led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W
pinMode(LED_BUILTIN, OUTPUT);
// configure_wifi();
} else {
led_builtin_pin = 25; // manually set GPIO 25 for Pico board
// pinMode(25, OUTPUT);
pinMode(led_builtin_pin, OUTPUT);
}
/**/
blink(50);
delay(10000);
LittleFS.begin();
@ -112,25 +128,18 @@ void setup() {
// otherwise, run CubeSatSim Pico code
Serial.println("CubeSatSim Pico v0.39 starting...\n");
Serial.println("CubeSatSim Pico v0.41 starting...\n");
/**/
if (check_for_wifi()) {
wifi = true;
led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W
pinMode(LED_BUILTIN, OUTPUT);
// configure_wifi();
} else {
led_builtin_pin = 25; // manually set GPIO 25 for Pico board
// pinMode(25, OUTPUT);
pinMode(led_builtin_pin, OUTPUT);
}
/**/
config_gpio();
//// config_gpio();
get_input();
if (wifi)
Serial.println("\nPico W detected!\n");
else
Serial.println("\nPico detected!\n");
start_clockgen();
EEPROM.begin(512);
@ -438,7 +447,6 @@ void read_config_file() {
sprintf(buff, "%s %d", "AMSAT", 0);
config_file.write(buff, strlen(buff));
config_file.close();
config_file = LittleFS.open("/sim.cfg", "r");
@ -447,10 +455,10 @@ void read_config_file() {
// char * cfg_buf[100];
config_file.read((uint8_t *)buff, 255);
// sscanf(buff, "%d", &cnt);
sscanf(buff, "%s %d %f %f %s", callsign, & reset_count, & lat_file, & long_file, sim_yes);
sscanf(buff, "%s %d %f %f %s %d", callsign, & reset_count, & lat_file, & long_file, sim_yes, & frequency_offset);
config_file.close();
if (debug_mode)
Serial.printf("Config file /sim.cfg contains %s %d %f %f %s\n", callsign, reset_count, lat_file, long_file, sim_yes);
// if (debug_mode)
Serial.printf("Config file /sim.cfg contains %s %d %f %f %s %d\n", callsign, reset_count, lat_file, long_file, sim_yes, frequency_offset);
reset_count = (reset_count + 1) % 0xffff;
@ -490,7 +498,7 @@ void write_config_file() {
else
strcpy(sim_yes, "no");
sprintf(buff, "%s %d %f %f %s", callsign, reset_count, latitude, longitude, sim_yes);
sprintf(buff, "%s %d %f %f %s %d", callsign, reset_count, latitude, longitude, sim_yes, frequency_offset);
Serial.println("Writing string ");
// if (debug_mode)
print_string(buff);
@ -574,18 +582,19 @@ void transmit_on() {
ret = clockgen.enableOutputs(true);
Serial.println("Enable clock outputs!");
}
*/
*/ if (clockgen_present) {
if (clockgen.enableOutputs(true)) {
start_clockgen();
if (mode == BPSK)
clockgen.setClockBPSK();
clockgen.setClockBPSK(frequency_offset);
else
clockgen.setClockFSK();
clockgen.setClockFSK(frequency_offset);
clockgen.enableOutputs(true);
Serial.println("Enable clock outputs!");
} else {
Serial.println("Enable clock outputs");
}
}
}
else if (mode == CW) {
// Serial.println("Transmit on!");
@ -614,7 +623,7 @@ void transmit_off() {
Serial.println("Disable clock outputs!");
}
// clockgen.enableOutputs(false)
*/
*/ if (clockgen_present) {
if (clockgen.enableOutputs(false)) {
start_clockgen();
clockgen.enableOutputs(false);
@ -622,6 +631,7 @@ void transmit_off() {
} else {
Serial.println("Disable clock outputs");
}
}
}
else if (mode == SSTV)
@ -2247,10 +2257,13 @@ void config_radio()
if (sr_frs_present)
digitalWrite(PD_PIN, HIGH); // Enable SR_FRS
else {
start_clockgen();
if (clockgen.setClockFSK()) {
// if (!clockgen_present)
if (mode != CW)
start_clockgen();
if (clockgen_present) {
if (clockgen.setClockFSK(frequency_offset)) {
start_clockgen();
clockgen.setClockFSK();
clockgen.setClockFSK(frequency_offset);
Serial.println("Config clock for CW without SR_FRS!");
} else {
Serial.println("Config clock for CW without SR_FRS");
@ -2259,6 +2272,7 @@ void config_radio()
clockgen.enableOutputs(false);
digitalWrite(BPSK_CONTROL_B, LOW);
digitalWrite(BPSK_CONTROL_A, LOW);
}
}
@ -2271,14 +2285,15 @@ void config_radio()
Serial.println("Config clock for BPSK");
}
*/
if (clockgen.setClockBPSK()) {
if (clockgen_present) {
if (clockgen.setClockBPSK(frequency_offset)) {
start_clockgen();
clockgen.setClockBPSK();
clockgen.setClockBPSK(frequency_offset);
Serial.println("Config clock for BPSK");
} else {
Serial.println("Config clock for BPSK");
}
}
transmit_on();
}
else if (mode == FSK) {// || (mode == SSTV))
@ -2289,14 +2304,15 @@ void config_radio()
ret = clockgen.setClockFSK();
Serial.println("Config clock for FSK");
}
*/
if (clockgen.setClockFSK()) {
*/ if (clockgen_present) {
if (clockgen.setClockFSK(frequency_offset)) {
start_clockgen();
clockgen.setClockFSK();
clockgen.setClockFSK(frequency_offset);
Serial.println("Config clock for FSK");
} else {
Serial.println("Config clock for FSK");
}
}
transmit_on();
}
@ -2396,7 +2412,7 @@ void read_ina219()
loadvoltage = busvoltage + (shuntvoltage / 1000);
if ((debug_mode) || (voltage_read)) {
Serial.print("+Bat (1 0x44) Voltage: ");
Serial.print("Bat (1 0x44) Voltage: ");
Serial.print(loadvoltage);
Serial.print("V Current: ");
Serial.print(current_mA);
@ -3268,9 +3284,9 @@ void start_ina219() {
i2c_bus1 = i2c_1 || i2c2 || i2c3;
Wire1.setSDA(2);
Wire1.setSCL(3);
Wire1.begin();
// Wire1.setSDA(2);
// Wire1.setSCL(3);
// Wire1.begin();
if (!(i2c5 = ina219_2_0x40.begin(&Wire1))) // check i2c bus 2
Serial.println("I2C +Z sensor (bus 2 0x40) not found");
@ -3775,11 +3791,6 @@ void config_gpio() {
pinMode(27, INPUT);
pinMode(28, INPUT);
/// pinMode(PI_3V3_PIN, INPUT);
/// Serial.print("Pi 3.3V: ");
/// Serial.println(digitalRead(PI_3V3_PIN));
/// if (digitalRead(PI_3V3_PIN) == HIGH) {
{
Serial.print("Pi Zero present, so running Payload OK code instead of CubeSatSim code.");
start_payload();
@ -3824,7 +3835,7 @@ void config_gpio() {
Serial.println("BPF not present - no transmitting after CW ID");
if (digitalRead(TXC_PIN) == FALSE) {
// if (true) { // force SR_FRS not present
// if (false) { // force SR_FRS not present
Serial.println("SR_FRS present");
sr_frs_present = true;
}
@ -4013,11 +4024,11 @@ bool check_for_wifi() {
// if (result < 0x100) {
if (result < 0x10) {
Serial.println("\nPico W detected!\n");
// Serial.println("\nPico W detected!\n");
return(true);
}
else {
Serial.println("\nPico detected!\n");
// Serial.println("\nPico detected!\n");
return(false);
}
}
@ -4159,14 +4170,19 @@ void transmit_cw(int freq, float duration) { // freq in Hz, duration in millise
digitalWrite(AUDIO_OUT_PIN, LOW);
}
else {
// Serial.println("No sr_frs present!");
unsigned long start = micros();
// clockgen.enableOutputs(true);
clockgen.enableOutputOnly(0);
digitalWrite(BPSK_CONTROL_A, HIGH);
if (clockgen_present) {
clockgen.enableOutputOnly(0);
digitalWrite(BPSK_CONTROL_A, HIGH);
}
while((micros() - start) < duration_us) { }
digitalWrite(BPSK_CONTROL_A, LOW);
clockgen.enableOutputs(false);
if (clockgen_present) {
digitalWrite(BPSK_CONTROL_A, LOW);
clockgen.enableOutputs(false);
}
}
// if (!wifi)
@ -4199,18 +4215,25 @@ void transmit_callsign(char *callsign) {
print_string(id);
if (!sr_frs_present) {
start_clockgen();
if (clockgen.setClockFSK()) {
start_clockgen();
clockgen.setClockFSK();
Serial.println("Config clock for CW without SR_FRS!");
} else {
Serial.println("Config clock for CW without SR_FRS");
// Serial.println("before start");
// start_clockgen();
// Serial.println("after start");
if (clockgen_present) {
if (clockgen.setClockFSK(frequency_offset)) {
start_clockgen();
if (clockgen_present)
clockgen.setClockFSK(frequency_offset);
Serial.println("Config clock for CW without SR_FRS!");
} else {
Serial.println("Config clock for CW without SR_FRS");
}
}
digitalWrite(PD_PIN, LOW); // disable SR_FRS
clockgen.enableOutputs(false);
digitalWrite(BPSK_CONTROL_B, LOW);
digitalWrite(BPSK_CONTROL_A, LOW);
if (clockgen_present) {
clockgen.enableOutputs(false);
digitalWrite(BPSK_CONTROL_B, LOW);
digitalWrite(BPSK_CONTROL_A, LOW);
}
}
/*
if (reset_count == 0) {
@ -4479,11 +4502,15 @@ void serial_input() {
break;
case 'o':
case 'O':
Serial.println("Read diode temperature");
prompt = PROMPT_TEMP;
break;
case 'O':
Serial.println("Set frequency offset");
prompt = PROMPT_OFFSET;
break;
case 'l':
case 'L':
Serial.println("Change the Latitude and Longitude");
@ -4559,10 +4586,11 @@ void prompt_for_input() {
Serial.println("? Query sensors");
Serial.println("v Read INA219 voltage and current");
Serial.println("o Read diode temperature");
Serial.println("O Set frequency offset");
Serial.println("d Change debug mode");
Serial.println("w Connect to WiFi\n");
Serial.printf("Software version v0.39 \nConfig file /sim.cfg contains %s %d %f %f %s\n\n", callsign, reset_count, lat_file, long_file, sim_yes);
Serial.printf("Software version v0.41 \nConfig file /sim.cfg contains %s %d %f %f %s %d\n\n", callsign, reset_count, lat_file, long_file, sim_yes, frequency_offset);
switch(mode) {
@ -4701,13 +4729,6 @@ void prompt_for_input() {
read_ina219();
break;
case PROMPT_REBOOT:
Serial.println("Rebooting...");
Serial.flush();
watchdog_reboot (0, SRAM_END, 500); // restart Pico
sleep(20.0);
break;
case PROMPT_FORMAT:
LittleFS.format();
// Serial.println("Reboot or power cycle to restart the CubeSatSim");
@ -4730,6 +4751,42 @@ void prompt_for_input() {
write_config_file();
break;
case PROMPT_OFFSET:
if (frequency_offset != 0)
Serial.println("Frequency offset is currently on");
else
Serial.println("Frequency offset is currently off");
Serial.println("Do you want Frequency offset on (y/n)");
get_serial_char();
if ((serial_string[0] == 'y') || (serial_string[0] == 'Y')) {
Serial.println("Turning Frequency offset on");
frequency_offset = -15000; // set frequency offset
write_config_file();
program_radio();
Serial.println("Rebooting...");
Serial.flush();
watchdog_reboot (0, SRAM_END, 500); // restart Pico
sleep(20.0);
} else if ((serial_string[0] == 'n') || (serial_string[0] == 'N')) {
Serial.println("Turning Frequency offset off");
frequency_offset = 0; // turn off frequency offset
program_radio();
write_config_file();
Serial.println("Rebooting...");
Serial.flush();
watchdog_reboot (0, SRAM_END, 500); // restart Pico
sleep(20.0);
} else
Serial.println("No change to frequency offset.");
break;
case PROMPT_REBOOT:
Serial.println("Rebooting...");
Serial.flush();
watchdog_reboot (0, SRAM_END, 500); // restart Pico
sleep(20.0);
break;
case PROMPT_RESTART:
prompt = false;
// Serial.println("Restart not yet implemented");
@ -4916,7 +4973,7 @@ void get_serial_string() {
int input = 0;
int i = 0;
unsigned int elapsed_time = (unsigned int) millis();
while ((input != '\n') && (input!= '\r') && (i < 128) && ((millis() - elapsed_time) < 20000)) {
while ((input != '\n') && (input!= '\r') && (i < 128) && ((millis() - elapsed_time) < 40000)) { // was 20
if (Serial.available() > 0) {
input = Serial.read();
if ((input != '\n') && (input!= '\r')) {
@ -4996,7 +5053,7 @@ void program_radio() {
mySerial.begin(9600);
for (int i = 0; i < 5; i++) {
sleep(0.5); // delay(500);
sleep(0.5); // delay(500);
// Serial1.println("AT+DMOSETGROUP=0,434.9100,434.9100,1,2,1,1\r");
// mySerial.println("AT+DMOSETGROUP=0,434.9000,434.9000,1,2,1,1\r");
// mySerial.println("AT+DMOSETGROUP=0,434.9000,434.9000,0,8,0,0\r");
@ -5011,6 +5068,7 @@ void program_radio() {
sleep(0.5);
mySerial.println("AT+DMOSETMIC=8,0\r"); // was 8
}
}
digitalWrite(PD_PIN, LOW); // disable SR_FRS
@ -5058,19 +5116,39 @@ void write_mode(int save_mode) {
}
void start_clockgen() {
clockgen_present = false;
if (clockgen.begin() != ERROR_NONE)
Wire1.setSDA(2);
Wire1.setSCL(3);
Wire1.begin();
if (clockgen.begin(&Wire) != ERROR_NONE)
{
/* There was a problem detecting the IC ... check your connections */
Serial.println("No Si5351 detected ... Check your wiring or I2C ADDR!");
return;
Serial.println("No Si5351 detected on bus 1");
if (clockgen.begin(&Wire1) != ERROR_NONE)
{
/* There was a problem detecting the IC ... check your connections */
Serial.println("No Si5351 detected on bus 2 ... Check your wiring or I2C ADDR!");
clockgen.begin(&Wire); // go back to Wire so that it doesn't lock up with no clockgen
return;
} else {
Serial.println("Si5351 detected on bus 2");
clockgen_present = true;
}
} else {
Serial.println("Si5351 detected on bus 1");
clockgen_present = true;
}
Serial.println("Starting clockgen frequency 434.9 MHz");
if (clockgen_present) {
Serial.println("Starting clockgen frequency 434.9 MHz");
// clockgen.setClockFSK(); // default to FSK
clockgen.enableOutputs(false);
clockgen.enableOutputs(false);
}
}
void get_input() {

@ -1,12 +1,8 @@
This code runs on the ESP32-CAM camera module
The board is ESP32 Arduino/AI Thinker ESP32-CAM such as from here:
You need the ESP32 library on Arduino. here's how to install it: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
I follow the instructions here https://all3dp.com/2/esp32-cam-arduino-tutorial/
I use the ESP32-CAM MB USB programmer as described in the section "Esp32-Cam MB Micro-USB Programmer"
The Arduino IDE 1.x instructions are in the section "Installing the Esp32 Library"
The board is ESP32 Arduino/AI Thinker ESP32-CAM
Select the USB Serial port

@ -0,0 +1 @@
JP4 12.80 78.69 90 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK

@ -0,0 +1 @@
J1 32.68 74.23 0 CONN_20X2 2X20

@ -0,0 +1,7 @@
"Part";"Value";"Device";"Package";"Description";"";
"BT1";"2477";"2477";"2477PCB_62P99X57P99_KEY";"";"";
"J1";"CONN_20X2";"CONN_20X2";"2X20";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"JP1";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
"JP2";"";"CONN_01PTH_NO_SILK_KIT";"1X01NS_KIT";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"JP3";"";"CONN_01PTH_NO_SILK_KIT";"1X01NS_KIT";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"JP4";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 KiB

@ -0,0 +1 @@
The Battery board for the Pico

@ -0,0 +1 @@
These are the updated frame parts. You need to print two of each.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

@ -1,5 +1,19 @@
Here is information about the 4th Beta version of CubeSatSim Pico PCB
Changes from v0.3
- Fix soldermask on USB-C board
- Move Si5351 board up
- Make chip antenna longer
- Add SMD RBF
- Change analog switch SMD footprints to SOT-23-5
- Fixed crystal pin 1 label
- Replace JP5 with a normally open pad on top with solder paste on it
- Solder resist on top of SMA for ground pins
- VBUS on Pico to USB-C through Diode - red charging light will illuminate, RBF work except for when micro USB connected to Pico
- Camera connector mounted on PCB bottom
The files here are for a single board, the CubeSatSim Pico which replaces the STEM Payload Board and the Raspberry Pi Zero.
cubesatsim-pico-0.4.G* -- All gerber files used to fabricate PCBs along with .TXT drill file

@ -0,0 +1,21 @@
D1 19.74 46.48 0 DNI/1N5817 D-2.5
D3 66.09 65.79 0 1N5817 D-2.5
D5 46.33 11.13 180 DNI-1N5817 D-2.5
D6 50.06 9.96 270 DNI/5V1 Zener 1W ZDIO-2.5
D7 72.77 9.70 0 1N5817 D-2.5
D9 67.95 10.62 180 1N4148 D-2.5
JP1 75.41 18.06 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP2 34.49 46.08 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP3 5.51 69.16 270 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP4 29.79 54.89 0 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP5 74.93 68.28 270 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP6 22.12 23.72 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP7 75.03 45.06 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP8 64.97 45.06 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP9 52.48 62.28 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP10 36.55 62.31 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP11 22.12 26.67 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP12 22.10 20.83 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP13 22.02 29.72 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
X1 73.61 73.10 270 SC1464-ND PG203J
X11 5.36 74.55 180 SMA-VERT SMA-VERT

@ -0,0 +1,20 @@
C6 6.20 65.48 0 DNI/0.47uF C0603
E1 17.94 77.42 0 ANT-916-CHP-T XDCR_ANT-916-CHP-T
FL1 16.48 72.14 90 DNI/SF2176E SF2176E
J1 32.55 66.61 0 CONN_20X2 2X20
J4 34.16 10.95 180 1x8 female right angle header 1X08_NO_SILK
J8 39.17 71.55 0 Sparkfun USB-C Breakout 1X06_NO_SILK
J9 39.34 73.70 180 DNI/USB4105-GF-A or GT-USB-7010B USB-C-16P-2LAYER-PADS
R2 56.11 62.23 0 DNI/1k R0603
R5 33.10 75.97 180 DNI/5.1k R0603
R6 45.62 76.02 0 DNI/5.1k R0603
R10 60.73 62.23 180 DNI/1k R0603
R23 64.24 41.91 90 DNI/4.7k R0603
R25 77.95 41.81 90 DNI/4.7k R0603
R28 10.74 75.59 0 DNI/0R R0603
S2 77.82 9.55 270 DNI/DTSM-6 DTSM-6
U1 54.43 24.61 270 Raspberry Pi Pico PICO-PKG-NO_DEBUG
U6 39.24 51.22 270 SRFRS0W5 SR_FRS_0W5
U7 12.34 71.68 90 U7 B39871B3725U410_TDK
U10 7.09 62.13 180 SI5351A-B-GT 10MSOP_3X3_SIL
Y1 12.47 62.00 0 ABM8G-25.000MHZ-07-B1G-T3 CRYSTAL_ABM8G_ABR

@ -0,0 +1,79 @@
"Part";"Value";"Device";"Package";"Description";"";
"C2";"100nF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
"C4";"47uF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
"C5";"100nF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
"C6";"DNI/0.47uF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
"D1";"DNI/1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D3";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D5";"DNI-1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D6";"DNI/5V1 Zener 1W";"ZENER-DIODEZD-2.5";"ZDIO-2.5";"Z-Diode";"";
"D7";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D9";"1N4148";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"E1";"ANT-916-CHP-T";"ANT-916-CHP-T";"XDCR_ANT-916-CHP-T";"868MHz ISM, LoRa, Sensor Networks, SigFox Chip RF Antenna 863MHz ~ 873MHz 0.5dBi Solder Surface Mount Check prices";"";
"FL1";"DNI/SF2176E";"SF2176E";"SF2176E";"Signal Conditioning FILTER, SAW, 433.92 MHZ, 6SMD";"";
"J1";"CONN_20X2";"CONN_20X2";"2X20";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J2";"MPU6050";"M08NO_SILK_FEMALE_PTH";"1X08_NO_SILK@1";"Header 8";"";
"J3";"BME280";"M04NO_SILK_ALL_ROUND";"1X04_NO_SILK_ALL_ROUND";"Header 4";"";
"J4";"1x8 female right angle header";"CONN_08NO_SILK_FEMALE_PTH";"1X08_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J5";"DNI/Sparkfun QWIIC Breakout";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J6";"DNI/Sparkfun Si5351 Breakout";"CONN_07NO_SILK";"1X07_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J7";"DNI/1x4 pin header";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J8";"Sparkfun USB-C Breakout";"CONN_06NO_SILK_FEMALE_PTH";"1X06_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J9";"DNI/USB4105-GF-A or GT-USB-7010B";"USB_C_2-LAYER_PADS";"USB-C-16P-2LAYER-PADS";"USB Type C 16Pin Connector";"";
"J10";"DNI/Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
"J11";"DNI/Test Point for MIC_IN";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J13";"";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"JP1";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP2";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP3";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP4";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP5";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP6";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP7";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP8";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP9";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP10";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP11";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP12";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP13";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"LED1";"Green 5mm";"LED3MM";"LED3MM";"LED";"";
"LED2";"Blue 5mm";"LED3MM";"LED3MM";"LED";"";
"LED3";"Green 5mm";"LED3MM";"LED3MM";"LED";"";
"LED4";"Blue 5mm";"LED3MM";"LED3MM";"LED";"";
"LED5";"Red 5mm";"LED3MM";"LED3MM";"LED";"";
"R1";"1K";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R2";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R3";"220";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R5";"DNI/5.1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R6";"DNI/5.1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R8";"100";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R9";"1K";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R10";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R11";"10K";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R13";"1k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R14";"100";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R20";"4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R21";"DNI/4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R22";"4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R23";"DNI/4.7k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R24";"DNI/4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R25";"DNI/4.7k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R26";"68";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R28";"DNI/0R";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R29";"180";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R31";"68";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R32";"1k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R34";"100";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R35";"220";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"S1";"RA-SPST";"RA-SPST";"RA-SPST";"";"";
"S2";"DNI/DTSM-6";"DTSM-6";"DTSM-6";"";"";
"U1";"Raspberry Pi Pico";"RASPBERRY_PICO-NO_DEBUG";"PICO-PKG-NO_DEBUG";"";"";
"U2";"TS12A4514PG4";"TS12A4515PG4";"P8_TEX";"";"";
"U4";"TS12A4514PG4";"TS12A4515PG4";"P8_TEX";"";"";
"U6";"SRFRS0W5";"SR_FRS_0W5";"SR_FRS_0W5";"";"";
"U7";"U7";"B39871B3725U410";"B39871B3725U410_TDK";"";"";
"U8";"TS12A4514PG4";"TS12A4515PG4";"P8_TEX";"";"";
"U10";"SI5351A-B-GT";"SI5351A-B-GT";"10MSOP_3X3_SIL";"";"";
"X1";"SC1464-ND";"PG203J";"PG203J";"MIC/HEADPHONE JACK";"";
"X11";"SMA-VERT";"SMA-VERT";"SMA-VERT";"";"";
"Y1";"ABM8G-25.000MHZ-07-B1G-T3";"ABM8G-25.000MHZ-07-B1G-T3";"CRYSTAL_ABM8G_ABR";"";"";

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

@ -0,0 +1,43 @@
Here is information about the Beta version of the CubeSatSim Pico PCB
Changes since the v0.4 board:
- 68 Ohm resistor SMD is now 0805
- Added cutable trace JP1 so Pico 5V is supplied through the RBF
- Moved AUDIO_OUT on GPIO to a Pi Zero PWM pin
- Moved SWTX on GPIO to Pi Zero TX pin
- Added back GPIO clock pin to RF
- Added a Pico GPIO connection to a pin to test wake for Camera
- Made solering Pico pins easier
- Moved diode D3 away from GPIO header
The files here are for a single board, the CubeSatSim Pico which replaces the STEM Payload Board and the Raspberry Pi Zero.
cubesatsim-pico-0.5_gerbers.zip -- All gerber files used to fabricate PCBs along with .TXT drill file
cubesatsim-pico-0.5_schematic.pdf -- Schematic
cubesatsim-pico-0.5_pcb.png -- View of board
cubesatsim-pico-0.5_pour.png -- View of board with fill
cubesatsim-main-pico-0.5_top.png -- Top view of PCB generated by gerbers
cubesatsim-main-pico-0.5_bottom.png -- Bottom view of PCB generated by gerbers
cubesatsim-main-pico-0.5_tNames.pdf -- Top outline of components
cubesatsim-main-pico-0.5_bNames.pdf -- Bottom outline of components
cubesatsim-main-pico-0.5.mnt -- top SMD component placement data
cubesatsim-main-pico-0.5.mnb -- bottom SMD component placement data
cubesatsim-main-pico-0.5_bom.csv.txt -- Bill of Materials in CSV format
I use PCBWay to fabricate PCBs https://pcbway.com
Here is a very draft bill of materials https://octopart.com/bom-tool/DjMqIbKX
Draft wiki instructions: https://github.com/alanbjohnston/CubeSatSim/wiki/Pico-v0.4-Board

@ -0,0 +1,23 @@
D1 19.74 46.48 0 DNI/1N5817 D-2.5
D3 66.09 65.79 0 1N5817 D-2.5
D5 46.33 11.13 180 DNI-1N5817 D-2.5
D6 50.06 9.96 270 DNI/5V1 Zener 1W ZDIO-2.5
D7 72.77 9.70 0 1N5817 D-2.5
D9 67.95 10.62 180 1N4148 D-2.5
JP1 75.41 18.06 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP2 34.49 46.08 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP3 5.51 69.16 270 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP4 29.79 54.89 0 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP5 74.55 68.07 270 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP6 22.12 23.72 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP7 75.03 45.06 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP8 64.97 45.06 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP9 52.48 62.28 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP10 36.55 62.31 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP11 22.12 26.67 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP12 22.10 20.83 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP13 22.02 29.72 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
JP14 46.61 8.18 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
JP15 18.21 37.59 90 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
X1 73.61 73.10 270 SC1464-ND PG203J
X11 5.36 74.55 180 SMA-VERT SMA-VERT

@ -0,0 +1,48 @@
C1 56.41 45.62 270 DNI/100nF C0603
C3 55.68 55.50 0 DNI/47uF C0603
C6 6.63 65.18 0 DNI/0.47uF C0603
C7 68.35 4.14 270 DNI/100nF C0603
D2 65.96 68.20 180 DNI/B5817WS SOD-323F
D4 46.36 8.64 0 DNI/B5817WS SOD-323F
D8 68.05 8.28 0 DNI/4148WS SOD-323F
D10 72.59 7.21 180 DNI/B5817WS SOD-323F
E1 17.94 77.42 0 ANT-916-CHP-T XDCR_ANT-916-CHP-T
FL1 16.48 72.14 90 DNI/SF2176E SF2176E
J1 32.55 66.61 0 CONN_20X2 2X20
J4 34.16 10.95 180 1x8 female right angle header 1X08_NO_SILK
J8 39.17 71.55 0 Sparkfun USB-C Breakout 1X06_NO_SILK
J9 39.34 73.70 180 DNI/USB4105-GF-A or GT-USB-7010B USB-C-16P-2LAYER-PADS
J12 72.03 72.70 90 MJ-3523-SMT CUI_MJ-3523-SMT
LED6 65.43 78.08 90 DNI/Lite-On LTST-C191KGKT Green LED-0603
LED7 28.78 78.16 90 DNI/Lite-On LTST-C191TBKT Blue LED-0603
LED8 51.97 78.05 90 DNI/B1911USD-20D000114U1930 RED LED-0603
LED9 1.96 50.75 180 DNI/B1911NG--20D000214U1930 GREEN LED-0603
LED10 2.08 59.74 180 DNI/Lite-On LTST-C191TBKT Blue LED-0603
R2 56.11 62.23 0 DNI/1k R0603
R4 55.60 42.98 0 DNI/220 R0603
R5 33.10 75.97 270 DNI/5.1k R0603
R6 45.62 76.02 90 DNI/5.1k R0603
R7 56.54 51.41 90 DNI/100 R0603
R10 60.73 62.23 180 DNI/1k R0603
R12 63.58 8.38 0 DNI/10k R0603
R15 1.65 43.28 90 DNI/1.0K 0603-RES
R16 2.62 63.27 270 DNI/100 0603-RES
R17 65.43 71.70 90 DNI/1.0K 0603-RES
R18 28.85 72.24 90 DNI/3.3K 0603-RES
R19 52.10 72.39 90 DNI/220 0603-RES
R23 64.24 41.91 90 DNI/4.7k R0603
R25 77.95 41.81 90 DNI/4.7k R0603
R27 27.10 59.72 0 DNI/68 R0805
R28 10.74 75.59 0 DNI/0R R0603
R30 23.83 59.72 270 DNI/180 R0603
R33 19.96 59.74 0 DNI/68 R0805
S2 77.82 9.55 270 DNI/DTSM-6 DTSM-6
S3 57.04 77.34 270 DNI/DTSM-6 DTSM-6
U1 54.43 24.61 270 Raspberry Pi Pico PICO-PKG-NO_DEBUG
U6 39.24 51.22 270 SRFRS0W5 SR_FRS_0W5
U7 12.34 71.68 90 U7 B39871B3725U410_TDK
U9 19.63 53.06 270 TS12A4514DBVR DBV5
U10 7.09 62.13 180 SI5351A-B-GT 10MSOP_3X3_SIL
U11 9.25 55.25 270 TS12A4514DBVR DBV5
U12 9.47 45.01 270 TS12A4514DBVR DBV5
Y1 12.47 62.00 0 ABM8G-25.000MHZ-07-B1G-T3 CRYSTAL_ABM8G_ABR

@ -0,0 +1,110 @@
"Part";"Value";"Device";"Package";"Description";"";
"C1";"DNI/100nF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
"C2";"100nF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
"C3";"DNI/47uF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
"C4";"47uF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
"C5";"100nF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
"C6";"DNI/0.47uF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
"C7";"DNI/100nF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
"D1";"DNI/1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D2";"DNI/B5817WS";"DIODESOD-323F";"SOD-323F";"Diode";"";
"D3";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D4";"DNI/B5817WS";"DIODESOD-323F";"SOD-323F";"Diode";"";
"D5";"DNI-1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D6";"DNI/5V1 Zener 1W";"ZENER-DIODEZD-2.5";"ZDIO-2.5";"Z-Diode";"";
"D7";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D8";"DNI/4148WS";"DIODESOD-323F";"SOD-323F";"Diode";"";
"D9";"1N4148";"DIODE-D-2.5";"D-2.5";"DIODE";"";
"D10";"DNI/B5817WS";"DIODESOD-323F";"SOD-323F";"Diode";"";
"E1";"ANT-916-CHP-T";"ANT-916-CHP-T";"XDCR_ANT-916-CHP-T";"868MHz ISM, LoRa, Sensor Networks, SigFox Chip RF Antenna 863MHz ~ 873MHz 0.5dBi Solder Surface Mount Check prices";"";
"FL1";"DNI/SF2176E";"SF2176E";"SF2176E";"Signal Conditioning FILTER, SAW, 433.92 MHZ, 6SMD";"";
"J1";"CONN_20X2";"CONN_20X2";"2X20";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J2";"MPU6050";"M08NO_SILK_FEMALE_PTH";"1X08_NO_SILK@1";"Header 8";"";
"J3";"BME280";"M04NO_SILK_ALL_ROUND";"1X04_NO_SILK_ALL_ROUND";"Header 4";"";
"J4";"1x8 female right angle header";"CONN_08NO_SILK_FEMALE_PTH";"1X08_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J5";"DNI/Sparkfun QWIIC Breakout";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J6";"DNI/Sparkfun Si5351 Breakout";"CONN_07NO_SILK";"1X07_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J7";"DNI/1x4 pin header";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J8";"Sparkfun USB-C Breakout";"CONN_06NO_SILK_FEMALE_PTH";"1X06_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J9";"DNI/USB4105-GF-A or GT-USB-7010B";"USB_C_2-LAYER_PADS";"USB-C-16P-2LAYER-PADS";"USB Type C 16Pin Connector";"";
"J10";"DNI/Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
"J11";"DNI/Test Point for MIC_IN";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J12";"MJ-3523-SMT";"MJ-3523-SMT";"CUI_MJ-3523-SMT";"3.5 mm, Mono, Right Angle, Surface Mount (SMT), Audio Jack Connector";"";
"J13";"";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"J14";"";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
"JP1";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP2";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP3";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP4";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP5";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP6";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP7";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP8";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP9";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP10";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP11";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP12";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP13";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"JP14";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
"JP15";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
"LED1";"Green 5mm";"LED3MM";"LED3MM";"LED";"";
"LED2";"Blue 5mm";"LED3MM";"LED3MM";"LED";"";
"LED3";"Green 5mm";"LED3MM";"LED3MM";"LED";"";
"LED4";"Blue 5mm";"LED3MM";"LED3MM";"LED";"";
"LED5";"Red 5mm";"LED3MM";"LED3MM";"LED";"";
"LED6";"DNI/Lite-On LTST-C191KGKT Green";"LED-GREEN0603";"LED-0603";"Green SMD LED";"";
"LED7";"DNI/Lite-On LTST-C191TBKT Blue";"LED-BLUE0603";"LED-0603";"Blue SMD LED";"";
"LED8";"DNI/B1911USD-20D000114U1930 RED";"LED-BLUE0603";"LED-0603";"Blue SMD LED";"";
"LED9";"DNI/B1911NG--20D000214U1930 GREEN";"LED-GREEN0603";"LED-0603";"Green SMD LED";"";
"LED10";"DNI/Lite-On LTST-C191TBKT Blue";"LED-GREEN0603";"LED-0603";"Green SMD LED";"";
"R1";"1K";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R2";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R3";"220";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R4";"DNI/220";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R5";"DNI/5.1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R6";"DNI/5.1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R7";"DNI/100";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R8";"100";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R9";"1K";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R10";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R11";"10K";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R12";"DNI/10k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
"R13";"1k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R14";"100";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R15";"DNI/1.0K";"RESISTOR0603";"0603-RES";"Resistor";"";
"R16";"DNI/100";"RESISTOR0603";"0603-RES";"Resistor";"";
"R17";"DNI/1.0K";"RESISTOR0603";"0603-RES";"Resistor";"";
"R18";"DNI/3.3K";"RESISTOR0603-RES";"0603-RES";"Resistor";"";
"R19";"DNI/220";"RESISTOR0603-RES";"0603-RES";"Resistor";"";
"R20";"4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R21";"DNI/4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R22";"4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R23";"DNI/4.7k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R24";"DNI/4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
"R25";"DNI/4.7k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R26";"68";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R27";"DNI/68";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
"R28";"DNI/0R";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R29";"180";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R30";"DNI/180";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
"R31";"68";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R32";"1k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R33";"DNI/68";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
"R34";"100";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"R35";"220";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
"S1";"RA-SPST";"RA-SPST";"RA-SPST";"";"";
"S2";"DNI/DTSM-6";"DTSM-6";"DTSM-6";"";"";
"S3";"DNI/DTSM-6";"DTSM-6";"DTSM-6";"";"";
"U1";"Raspberry Pi Pico";"RASPBERRY_PICO-NO_DEBUG";"PICO-PKG-NO_DEBUG";"";"";
"U2";"TS12A4514PG4";"TS12A4515PG4";"P8_TEX";"";"";
"U4";"TS12A4514PG4";"TS12A4515PG4";"P8_TEX";"";"";
"U6";"SRFRS0W5";"SR_FRS_0W5";"SR_FRS_0W5";"";"";
"U7";"U7";"B39871B3725U410";"B39871B3725U410_TDK";"";"";
"U8";"TS12A4514PG4";"TS12A4515PG4";"P8_TEX";"";"";
"U9";"TS12A4514DBVR";"TS12A4514DBVR";"DBV5";"";"";
"U10";"SI5351A-B-GT";"SI5351A-B-GT";"10MSOP_3X3_SIL";"";"";
"U11";"TS12A4514DBVR";"TS12A4514DBVR";"DBV5";"";"";
"U12";"TS12A4514DBVR";"TS12A4514DBVR";"DBV5";"";"";
"X1";"SC1464-ND";"PG203J";"PG203J";"MIC/HEADPHONE JACK";"";
"X11";"SMA-VERT";"SMA-VERT";"SMA-VERT";"";"";
"Y1";"ABM8G-25.000MHZ-07-B1G-T3";"ABM8G-25.000MHZ-07-B1G-T3";"CRYSTAL_ABM8G_ABR";"";"";

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

@ -0,0 +1,41 @@
Here is information about the Beta version of the CubeSatSim Pico PCB
Changes since the v0.5 board:
- No solder paste on Pico pads
- Added wiring between SMD and through hole LED resistors, so the resistors can be SMD and the LEDs through hole
- Moved AUDIO_OUT to GPIO pin 12
- Added a cut pad on 3.3V to ESP32-CAM and a pin for 5V to try powering from 5V
- Added an open pad on GPIO pin 7 to RF
- Added U1a and U1b labels to the two parts of the Pico female sockets
- Added SQUELCH to GPIO pin 15
The files here are for a single board, the CubeSatSim Pico which replaces the STEM Payload Board and the Raspberry Pi Zero.
cubesatsim-pico-0.6s_gerbers.zip -- All gerber files used to fabricate PCBs along with .TXT drill file
cubesatsim-pico-0.6s_schematic.pdf -- Schematic
cubesatsim-pico-0.6s_pcb.png -- View of board
cubesatsim-pico-0.6s_pour.png -- View of board with fill
cubesatsim-main-pico-0.6s_top.png -- Top view of PCB generated by gerbers
cubesatsim-main-pico-0.6s_bottom.png -- Bottom view of PCB generated by gerbers
cubesatsim-main-pico-0.6s_tNames.pdf -- Top outline of components
cubesatsim-main-pico-0.6s_bNames.pdf -- Bottom outline of components
cubesatsim-main-pico-0.6s.mnt -- top SMD component placement data
cubesatsim-main-pico-0.6s.mnb -- bottom SMD component placement data
cubesatsim-main-pico-0.6s_bom.csv.txt -- Bill of Materials in CSV format
I use PCBWay to fabricate PCBs https://pcbway.com
Here is a very draft bill of materials https://octopart.com/bom-tool/qqEuO6mB
Draft wiki instructions: [https://github.com/alanbjohnston/CubeSatSim/wiki/Pico-v0.4-Board](https://github.com/alanbjohnston/CubeSatSim/wiki/Pico-and-Solar-SMD)

@ -0,0 +1,16 @@
"Qty";"Value";"Device";"Package";"Parts";"Description";"COPYRIGHT";"DIGI-KEY_PART_NUMBER_1";"DIGI-KEY_PART_NUMBER_2";"DIGI-KEY_PART_NUMBER_3";"DIGI-KEY_PART_NUMBER_4";"MANUFACTURER_PART_NUMBER";"MFR_NAME";"PROD_ID";"REFDES";"TYPE";"VALUE";
"2";"";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"J2, J3";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";"";"";"";"";"";"";"";"";"";"";
"7";"0.1µF";"CAP_CERAMIC0603";"0603";"C1, C2, C3, C4, C5, C6, C7";"Ceramic Capacitors";"";"";"";"";"";"";"";"";"";"";"";
"6";"1A/23V/620mV";"DIODE-SCHOTTKY-BAT20J";"SOD-323";"D7, D8, D9, D10, D11, D12";"Schottky diode";"";"";"";"";"";"";"";"DIO-11623";"";"";"1A/23V/620mV";
"6";"1N5817";"DIODE-D-2.5";"D-2.5";"D1, D2, D3, D4, D5, D6";"DIODE";"";"";"";"";"";"";"";"";"";"";"";
"2";"4.7k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"R3, R4";"Resistor";"";"";"";"";"";"";"";"";"";"";"";
"1";"CONN_20X2";"CONN_20X2";"2X20";"J1";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";"";"";"";"";"";"";"";"";"";"";
"2";"DNI-4.7k";"R-US_R0603";"R0603";"R11, R12";"RESISTOR, American symbol";"";"";"";"";"";"";"";"";"";"";"";
"2";"DNI-4.7k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"R7, R8";"Resistor";"";"";"";"";"";"";"";"";"";"";"";
"1";"Female socket 1x4";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"J4";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";"";"";"";"";"";"";"CONN-09696";"";"";"";
"7";"INA219 purple board";"INA219";"INA219";"U1, U3, U4, U5, U6, U7, U8";"";"";"";"";"";"";"";"";"";"";"";"";
"7";"INA219AIDR";"INA219AIDR";"D0008A_N";"U2, U9, U10, U11, U12, U13, U14";"";"Copyright (C) 2022 Ultra Librarian. All rights reserved.";"296-23978-1-ND";"296-23978-2-ND";"296-23978-6-ND";"2156-INA219AIDR-ND";"INA219AIDR";"Texas Instruments";"";"RefDes";"TYPE";"";
"1";"Micro JST";"CONN_021X02_NO_SILK";"1X02_NO_SILK";"JP8";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";"";"";"";"";"";"";"";"";"";"";
"13";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"JP1, JP2, JP3, JP4, JP5, JP6, JP7, JP10, JP11, JP12, JP13, JP14, JP15";"Standard 2-pin 0.1" header. Use with";"";"";"";"";"";"";"";"";"";"";"";
"7";"R100";"R-US_R0805";"R0805";"R1, R2, R5, R6, R9, R10, R17";"RESISTOR, American symbol";"";"";"";"";"";"";"";"";"";"";"";
"2";"VDD-EN";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"JP9, JP16";"Normally closed trace jumper";"";"";"";"";"";"";"";"";"";"";"";

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

@ -0,0 +1,39 @@
Here is information about the Beta version of the CubeSatSim Solar PCB
Changes since the v0.3 board:
- Moved U4 so that it isn't covered up by U6
- Moved bridging labels so they can be better seen
- Flipped U2 and U12 so they are the same direction as all the other ICs
- J4 test pins are now 6 pins and used on the top
The files here are for a single board, the CubeSatSim Pico which replaces the STEM Payload Board and the Raspberry Pi Zero.
cubesatsim-solar-0.4s_gerbers.zip -- All gerber files used to fabricate PCBs along with .TXT drill file
cubesatsim-solar-0.4s_schematic.pdf -- Schematic
cubesatsim-solar-0.4s_pcb.png -- View of board
cubesatsim-solar-0.4s_pour.png -- View of board with fill
cubesatsim-solaro-0.4s_top.png -- Top view of PCB generated by gerbers
cubesatsim-solar-0.4s_bottom.png -- Bottom view of PCB generated by gerbers
cubesatsim-solar-0.4s_tNames.pdf -- Top outline of components
cubesatsim-solar-0.4s_bNames.pdf -- Bottom outline of components
cubesatsim-solar-0.4s.mnt -- top SMD component placement data
cubesatsim-solar-0.4s.mnb -- bottom SMD component placement data
cubesatsim-solar-0.4s_bom.csv.txt -- Bill of Materials in CSV format
I use PCBWay to fabricate PCBs https://pcbway.com
Here is a very draft bill of materials https://octopart.com/bom-tool/g1Fkrhew
Draft wiki instructions: https://github.com/alanbjohnston/CubeSatSim/wiki/Pico-and-Solar-SMD
Loading…
Cancel
Save

Powered by TurnKey Linux.