Author: Wojciech Kaczmarski

  • CC1200 hotspot – spectral purity

    I performed a quick test to check the harmonic content of the RF signal generated by a CC1200 hotspot. Here’s the spectrum plot for a +14dBm M17 signal at 433.475MHz:

  • CC1200 hotspot is now available at PCBWay

    CC1200 hotspot is now available at PCBWay

    The CC1200 hotspot shield for Raspberry Pi can now be ordered through PCBWay. This shield offers frequency mod/demod capabilities, and can be used for analog FM, M17, and APRS. DMR support was not tested.

    See our ADF7021 and CC1200 comparison: https://m17project.org/2025/02/06/quick-adf7021-and-cc1200-comparison

    As with any other design released through PCBWay, the sales commission goes to M17 Foundation. Follow the link below to learn more.

    https://www.pcbway.com/project/member/shareproject/?bmbno=F449C8A5-E71A-41

  • SX1255 all-mode hotspot is now available for purchase

    SX1255 all-mode hotspot is now available for purchase

    The SX1255 RF hotspot shield for Raspberry Pi can now be ordered through PCBWay. The sales commission goes to M17 Foundation. Follow the link below to learn more.

    https://www.pcbway.com/project/shareproject/SX1255_Raspberry_Pi_RF_shield_18f0397d.html

  • A quick introduction to soft (fuzzy) logic – part I

    You can’t have your cake and eat it, a well-known proverb says. The state of this proverbial cake is strictly determined – it exists in exactly one of two possible states. This is very similar to the rules of Boolean logic – there are two (bi-nary) significantly different values for a logic sentence – true or false, or 1 and 0.

    Real-world problems, including measurements, might not always have a strictly defined logical value. Imagine a blue square. The statement “the square is blue” is obviously true, whereas “the square is green” is undeniably false. But what if the square was turquoise, having a shade that’s a mix of both colors? What the logical value of “the square is blue” would be then? False? Or maybe something in between? This is exactly where Boolean logic fails, but soft logic offers a solution.

    (more…)
  • Receiving M17 text messages with an MD-380 running OpenRTX

    TYT MD-380 was one of the first platforms to receive M17 support through OpenRTX open-source firmware. A small modification was found out to be required to make it work with our protocol (its stream mode for digital voice). Many MD-380 users performed the required surgery.

    Fast forward to Jan 2025: Rick KD0OSS provided a piece of code making it possible to receive and transmit M17 packets – text messages!

    The test binary files are available here.

    An iconic trio: MD-380 running OpenRTX, CC1200 hotspot and a modified Nokia 3310/3330
    (more…)
  • Identifying basic parameters of an obscure digital voice mode

    Retevis C62, offering a secret digital voice mode

    I recently came into possession of a C22 handheld transceiver from Retevis.

    The C22 is an alternative version of the C62, which is believed to be the same (or a very similar) radio, just with different firmware (with its interface using cyrillic script)1. Both C22 and C62 are advertised as analog FM handhelds with some super-duper fancy AI noise cancelling technology. A fellow ham, Ferdy EB5DQ, recently shared a video on YouTube2 showing the C62 with a cryptic “Digital” mode enabled. The mode is undocumented and can only be enabled through the CPS.

    (more…)
  • New hardware: Raspberry Pi shields with CC1200 and SX1255 chips!

    After seeing how successful the M17 packet mode is becoming (and how everyone around seems to be interested in text messaging with M17) I decided to finally revive our forgotten and unmaintained CC1200 hotspot HAT. I quickly bumped up the KiCAD version to 8.0.8, cleaned up the PCB design, and reviewed its bill of materials. Looks like the device should be ready for testing! I already ordered a batch at PCBWay 🙂

    The repository with the CC1200 shield is here:
    https://github.com/M17-Project/CC1200_HAT-hw

    The firmware for it is somewhat functional – it already allows for M17 signal transmission and reception. It might be buggy though, as it was created in a hurry before Pacificon 2023, where we showcased it.

    Firmware is available through a separate repository:
    https://github.com/M17-Project/CC1200_HAT-fw

    Quick details behind the design:

    • 420-450 MHz range
    • approx. 20mW power output
    • frequency mod/demod1 only, excellent M17 capabilities
    • can be flashed over SWD, RPI’s UART, or USB-C2
    • half-duplex
    CC1200 Raspberry Pi Zero shield.

    Now, when all the hotspots (or at least a vast majority of them) support FM-based analog and digital modes only, we offer you a new solution. A truly all-mode hotspot with full quadrature (IQ) modulation/demodulation available. Want to go beyond 4FSK and try out TETRA’s pi/4-DQPSK or fancy 64QAM instead? With our shield, it is finally possible to do so, on the cheap. The hotspot works in full duplex.

    SX1255 – inexpensive IQ mod/demod Raspberry Pi Zero shield.

    You can finally run GUI-less GNU Radio flowgraphs on the Raspberry Pi with whatever back-end supporting M17 or any other mode. Sky is the limit. Supported frequency range covers the whole 420-450MHz (70cm) amateur band. The default sample rate is 125 kHz.

    It is all, of course, open-source. The GitHub repository with the SX1255 shield is here:
    https://github.com/M17-Project/SX1255_HAT-hw

    The device acts as an I2S master, meaning that it generates the sample and channel clocks for the RPi. You need to enable an appropriate (I2S-slave) GPIO overlay. Details are in the readme, see the link above.

    1. On-Off Keying (OOK, also known as CW) is also possible. ↩︎
    2. Flashing over USB remains untested. ↩︎
  • Quick ADF7021 and CC1200 comparison

    The ADF7021 is used by a vast majority, if not all, of amateur hotspots (RaspberryPi shields) out there. Back in the days when this kind of hardware was a novelty, this chip seemed to be one of the best options to choose. It supports 4FSK and raised-cosine (RC) baseband filtering out-of-the-box, the user only has to sustain a transfer of the symbol stream. Sounds good so far, but the problem is that the RC filter in the hotspot’s RF chip, when combined with a square-root-raised-cosine (RRC) filter at the user’s radio side, gives significant intersymbol interference. This is what renders the signal from hotspots unusable at longer distances – the eye plot is not opened wide enough, even at excellent signal-to-noise ratios. The signal transmitted with ADF7021 is just bad, right at the antenna.

    Let’s take a closer look at my measurements taken a while back. The first comparison shows eye diagrams, as received with an SVA1032X with a reference RRC filter. The selected frequency, power, and SNR were roughly equal in both tests. A pseudorandom symbol stream was used.

    Now, let’s take a look at adjacent channel power ratio (ACPR). It tells us how much power “leaks out” into adjacent channels, potentially interfering with the transmissions happening there. I performed two measurements: one for the channel immediately adjacent to the used radio channel (+/-12.5 kHz), the other for +/-25 kHz offsets.

    It’s immediately obvious that the CC1200 gives much better ACPR. Last, but not least, let’s have a look at harmonics and other distortion.

    With the measurement’s settings used, the CC1200’s harmonic content couldn’t even be detected.