DFM-17 Radiosonde: Difference between revisions
Add part revision per https://siliconlabs.force.com/community/s/article/using-part-info-command-to-identify-ezradio-pro-part-number?language=en_US |
Add info from gx1400's data_dfm_RE repo, clean up formatting, add new graphics and new repo for T/H measurement |
||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 16: | Line 16: | ||
*Bandwidth: ~10 kHz (Website lists <12) | *Bandwidth: ~10 kHz (Website lists <12) | ||
*Frequency range: 400 - 405.99 MHz | *Frequency range: 400 - 405.99 MHz | ||
*Modulation: GFSK | *Modulation: GFSK @ 1250 bits/s | ||
*TX Power: ~100mW | *TX Power: ~100mW | ||
*Error Correction: Code-spreading, interleaving | *Error Correction: Code-spreading, interleaving | ||
| Line 22: | Line 22: | ||
*GPS: U-Blox MAX-M8C-0-10 | *GPS: U-Blox MAX-M8C-0-10 | ||
*Transmitter: Si4063 | *Transmitter: Si4063 | ||
*Optional: | |||
**XDATA interface (24 bytes/s) | |||
**NFC ground check | |||
**Barometric pressure sensor. | |||
==Peripheral attachment points== | ==Peripheral attachment points== | ||
| Line 32: | Line 36: | ||
*LED_R = PB12 | *LED_R = PB12 | ||
====uBlox GPS (USART_2)==== | ====uBlox GPS (USART_2) - U11==== | ||
*PA3(RX) = GPS TXD (Pin 2) | *PA3(RX) = GPS TXD (Pin 2) | ||
*PA2(TX) = GPS RXD (Pin 3) | *PA2(TX) = GPS RXD (Pin 3) | ||
*PB8 = GPS 1pps (Pin 4) (LED next to flex cable connector) | *PB8 = GPS 1pps (Pin 4) (LED next to flex cable connector) | ||
*PC14 = RESET | |||
====UART via USB Port (USART_1)==== | ====UART via USB Port (USART_1)==== | ||
| Line 42: | Line 47: | ||
*PA9(TX) = USB D+ | *PA9(TX) = USB D+ | ||
*PA10(RX) = USB D- | *PA10(RX) = USB D- | ||
*PC2 = GND/VBus Pin? | |||
====Si4063 (SPI_1)==== | ====Si4063 (SPI_1) - U10==== | ||
*PB2 = CS/nSEL (Pin 15) | *PB2 = CS/nSEL (Pin 15) | ||
| Line 50: | Line 56: | ||
*PA6 = SDO (Pin 13) | *PA6 = SDO (Pin 13) | ||
*PA5 = SCLK (Pin 12) | *PA5 = SCLK (Pin 12) | ||
*PD0 = GPIO2 (Pin 19) | |||
*PA4 = GPIO3 (Pin 20) | |||
====XDATA Header (2x2 pin unpopulated)==== | |||
* | *PB11 = Pin 3 | ||
* | *PB10 = Pin 2 | ||
**Pads need solder bridge or 0 ohm links. Pin 1 or 4 can be bridged to act as GND. I suspect the SOT23-6 footprint is populated when xdata is in use. Unknown where the xdata perhipheral would get VCC. | |||
<gallery> | |||
File:Xdata_pinout_dfm17.jpg|alt=xdata interface pinout|XDATA interface pinout, numbered for clarity. Not official. | |||
</gallery> | |||
==IC Attachment Points== | |||
===STG719 (DPST) - U2=== | |||
*PC11 = IN (Pin 1) | *PC11 = IN (Pin 1) | ||
===STG719 (DPST) - U3=== | |||
*PD2 = IN (Pin 1) | *PD2 = IN (Pin 1) | ||
===STG719 (DPST) - U4=== | |||
*PB5 = IN (Pin 1) | *PB5 = IN (Pin 1) | ||
===STG719 (DPST) - U5=== | |||
*PB4= IN (Pin 1) | *PB4= IN (Pin 1) | ||
===DG636 (Dual DPST) - U6=== | |||
*VDD = ENABLE (always HIGH) (Pin 2) | *VDD = ENABLE (always HIGH) (Pin 2) | ||
* | *PA11, PB0, PA1 = A0 (Pin 1) | ||
* | *PC10 = A1 (Pin 14) | ||
===STG719 (DPST) - U7=== | |||
* | *PC10 (routes under STM) = IN (Pin 1) | ||
===SN74LV4053 (Triple 2Ch Mux/Demux) - U8=== | |||
*PB13 & PB14 = A (Pin 11) | *PB13 & PB14 = A (Pin 11) | ||
**STM pins connected by trace? ''Why? Read back?'' | **STM pins connected by trace? ''Why? Read back?'' | ||
* | *PC10 = B (Pin 10) & C (Pin 9) | ||
**IC pins connected by trace | **IC pins connected by trace | ||
===LMV761 (Comparator) - U9=== | |||
*PA12 & PB15 = OUT (Pin 4 via cap) | |||
===Analog Inputs to STM32=== | |||
*PA0 - Vbatt/Power supply voltage (needs confirmation, V measured at pin is VCC) | |||
*PB1 - Vbatt/Power supply current monitor (needs confirmation, V measured at pin seems to match 1V = 1A) | |||
===Battery Management IC=== | |||
*PC0 - Hold high to prevent BMS from removing battery power after boot up | |||
* | ===NFC/RFID 4k EEPROM - U12=== | ||
* | |||
*PC13 = RF WIP/Busy (Pin 7) | |||
*PB6 = SCL (Pin 6) | |||
*PB7 = SDA (Pin 5) | |||
*PC0 connected to Pin 1 (Vout) | |||
** NFC antenna pads are below left side 3 pins of uBlox module | |||
<br /> | <br /> | ||
| Line 188: | Line 217: | ||
|4BEB 8150 | |4BEB 8150 | ||
|[https://www.st.com/resource/en/datasheet/m24lr04e-r.pdf STMicroelectronics] | |[https://www.st.com/resource/en/datasheet/m24lr04e-r.pdf STMicroelectronics] | ||
|'' | |''Stores configuration of serial ports, sonde serial(?), calibration, and measurement sequences'' | ||
|- | |- | ||
|U13 | |U13 | ||
| Line 218: | Line 247: | ||
|- | |- | ||
|U16 | |U16 | ||
| | |??? | ||
| | |??? | ||
| | |??? | ||
| | |??? | ||
|AL | |AL | ||
___ | |||
| | | | ||
|''In-line with battery power, need more information; chip marking'' | |''In-line with battery power, need more information; chip marking'' | ||
|- | |- | ||
|U17 | |U17 | ||
| | |??? | ||
| | |??? | ||
| | |??? | ||
| | |??? | ||
| | |??? | ||
| | |??? | ||
|''Connected to USB data lines, likely a UART, isolation, and/or level shifter'' | |''Connected to USB data lines, likely a UART, isolation, and/or level shifter'' | ||
|} | |} | ||
* Do note these reference designators are not official and are here for us to keep track. The PCB has no markings. | |||
<br /> | <br /> | ||
==Photos== | ==Photos== | ||
<gallery> | <gallery> | ||
| Line 249: | Line 278: | ||
File:V719 and others removed.jpg|V719 SOT-23-6 packages removed as well as 636EE (SPDT Switch) and LW053A (Mux/Demuxer) | File:V719 and others removed.jpg|V719 SOT-23-6 packages removed as well as 636EE (SPDT Switch) and LW053A (Mux/Demuxer) | ||
File:Stalk pinout mapping.png|Mapping of the pins on the sensor stalk to the connector and their corresponding IC/IO lines. '''''<u>Top of sensor stalk corresponds to bottom of pictured connector!</u>''''' | File:Stalk pinout mapping.png|Mapping of the pins on the sensor stalk to the connector and their corresponding IC/IO lines. '''''<u>Top of sensor stalk corresponds to bottom of pictured connector!</u>''''' | ||
File: | File:Dfm17_barepcb_back_traces.jpg|Bare PCB without major ICs on it and rear traces colored in purple. Any other via goes directly to main groundplane. | ||
</gallery> | </gallery> | ||
==Disassembly== | ==Disassembly== | ||
| Line 282: | Line 312: | ||
*VBUS: 5 Volts DC | *VBUS: 5 Volts DC | ||
*D-: TX | *D- (typically white): TX | ||
*D+: RX | *D+ (typically green): RX | ||
*GND: GND | *GND: GND | ||
| Line 291: | Line 321: | ||
==Hardware modifications== | ==Hardware modifications== | ||
====SMA Port | ====SMA Port==== | ||
The | The DFM17 antenna section has pads sized for an SMA connector (likely leftover from development). Any board edge mount conector should work. | ||
====SWD Header==== | |||
To program the DFM, you will need to connect to the SWD header. If you want to do it properly, an [https://adafru.it/4048 Adafruit Skinny SWD SMT] connector will fit. You can also 3D print [https://www.printables.com/model/594752-dfm17-swd-programming-jig-clip-thing this model] by trickv to clamp the connector to the pads for a solderless approach. | |||
I suggest also ordering [https://www.adafruit.com/product/1675 this ribbon cable] and [https://www.adafruit.com/product/2743 this breakout] to be able to attach to your STLink much easier. | |||
Do note that if you wish to put the PCB back in the styrofoam housing, you will need to slice away some of the inside to allow the connector to fit. Approximately 40mm or so. You will need to do this if you attach pin headers for xdata as well. | |||
====Minimizing transmit range | ====Minimizing transmit range==== | ||
As amateurs we are not licensed to transmit in the 400-406MHz band, so for testing purposes one should perform this mod. | As amateurs we are not licensed to transmit in the 400-406MHz band, so for testing purposes one should perform this mod. If you have an appropriate SMA connector, solder it in place of the antenna wire and connect a 50 ohm dummy load to it (reminder that the power is approx 100mW). | ||
If no connector is available, unsolder the antenna wire and take two 100 ohm resistors and twist them in parallel, then solder them to the center pad and one of the side pads on the SMA footprint. This creates a 50 ohm dummy load for the Si4036 to transmit into. The range is reduced to a couple tens of feet. | |||
<u>'''Also if you are running a radiosonde_auto_rx instance, don't forget to turn it off during testing to avoid feeding erroneous data to Sondehub!'''</u> | |||
<gallery> | |||
File:Modified DFM-17 Radiosonde.jpg|MrARM's modified DFM-17 with a SWD connector and an SMA antenna port | File:Modified DFM-17 Radiosonde.jpg|MrARM's modified DFM-17 with a SWD connector and an SMA antenna port | ||
File:Dfm 17 swd and resistors.jpg|Trevor229's DFM with ST-Link SWD pins connected to debug interface and 50 ohm dummy load mod. | File:Dfm 17 swd and resistors.jpg|Trevor229's DFM with ST-Link SWD pins connected to debug interface and 50 ohm dummy load mod. | ||
</gallery> | </gallery> | ||
==Developing and Programming the board== | ==Developing for and Programming the board== | ||
[[File: | [[File:Dfm17_swd_pinout_pretty.jpg|thumb|Pinout of the SWD Port]] | ||
When lab testing, you can power the board from the USB header. It also appears to run fine supplying 3.3V to the SWD port (STLink and clones do this). | |||
The board uses a STM32, and requires a ST-Link to program. The process used to upload code to the MCU is the same as the Vaisala RS41 radiosonde, you will need to connect the VTRef(3.3V), Ground, SWDIO, SWDCLK and RST pins to your ST-Link. | |||
The board can run without external power being supplied when programming. This board has read-out protection enabled similar to the RS41 and this must be disabled before you can flash firmware to the board. | |||
==Software== | |||
A few attempts have been made to build replacement firmware for these devices, the key goal being to be able to re-fly a sonde as an amateur payload. | |||
There was an early attempt called dfm17_hamradio [https://github.com/gx1400/dfm17_hamradio here] and [https://github.com/trickv/dfm17_hamradio/tree/aprs-fifo-gps-superhacky here]. | |||
The most mature looking effort is [https://github.com/mikaelnousiainen/RS41ng RS41ng] which has experimental support. | |||
There is now a repository that uses code from RS41ng to run the sampling circuitry and read from the original temperature and humidity sensors [https://github.com/robots/radiosonde_dfm17 here.] | |||
<references /> | <references /> | ||