2023年12月24日 星期日

Malahit DSP1 SDR firmware update Q&A

I bought Malahit(Malachite DSP1) SDR from Taobao long time ago. I am interested about its wide frequency range, integrated LCD screen for spectrum display and demodulation, decoding to work as a standalone receiver without connecting to the computer. 

I just played it for a short time to check OK in function and left it in the drawer. Recently I took it out again and can't turn it on anymore after charging. It intrigued me to study more about the Malahit SDR. After reading the review document from Al Hearn(WA4GKQ) to know the history of the DSP1/DSP2/DSP3 and found the firmware release/update much confused to the users(Is the machine cloned ? What firmware can I update ? Can I bring the bricked machine back to purchase an activation code ? ...). The outlook, operation menu with test firmware and PCB of the DSP1 clone is shown below




From the PCB picture down left corner, you can see the FRAM chip(FM25W256) is not populated, so it will not store the last state at power-off and it start with initial state each time power-on. In addition, the original design team also store the activation info over the FRAM. If you load the formal released firmware for the machine without FRAM, it will be bricked. Firmware notation FW1.x/FW2.x/FW3.x means they are worked for DSP1/DSP2/DSP3 separately, wrong load the firmware will also brick your machine.

The bricked Malahit DSPx means,
a. No display when try to turn-on
b. Not into DFU mode(long push VOL button) when connect USB to computer

Besides lock the DSP1 with activation code, the original design team continue to improve the Malahit SDR in hardware and software and migrate the DSP1 to DSP2 and DSP3. The  start splash screen and operation menu is shown below. It is much different than the clone machine.



Before update firmware for the DSP1 clone
a. check if the FRAM chip(FM25W256) populated(see picture, above the SWD interface J2). If it is absent, the only workable firmware is “Reciever_msi001.hex”. If you try to update other firmware, it will brick your machine. Maybe the formal released firmware is tried to talk the FRAM and hang there without response
b. With FRAM installed, you can try FW 1.10a and calculate the activation code from website(reference 1).
c. Or you can try to find the patched firmware and update the DSP1 to the latest released FW 1.10d(reference 5)
d. For sure, buy the machine from original design team and don’t bother the FRAM chip soldering and firmware patch stuff
 
There are three ways to update the firmware
Method 1: put DSP1 in DFU mode and update the FW thru USB interface with STM32CubeProgrammer
Method 2: update the FW thru SWD interface with ST-Link(I borrowed the ST-Link interface from STM32F03Discovery EVB)
Method 3: put the DSP1 in DFU mode with board jumper(remove all the power, then short circuit JP1). This method worked for the bricked machine.
I worked in method 1 and 3 but never succeeded in method 2(I found why I can’t work method 2, the wrong connected SWD pin order😅, try next time)

*load with the test firmware, find no way to enter DFU mode with different button combination so go method 3 to enter DFU mode to update firmware. Remember to remove the JP1 short circuit after firmware update.
*other function for VOL and FREQ encoder 
=> long push VOL, then Power on to enter DFU mode(old)
=> long push both VOL & FREQ, then Power on to enter DFU mode(new)
=> long push VOL in power-on state to disable the capacitive touch screen
=> long push VOL & FREQ in power-on state to reset the machine
*With the same MSi001 silicon tuner chip, the SDRPlay’s receiver can cover the frequency gap from 250MHz to 400MHz. The Malahit SDR should also work that range with less sensitivity.

After populated FRAM chip over PCB and update the patched 1.10d firmware(rev 2 actually), the clone DSP1 is OK to work with much features and it can keep the last operation status!






Reference
0. Al Hearn WA4GKQ summary for Malahit DSP SDR
https://www.facebook.com/groups/malahitsdr/permalink/236094142500945/
 
1. Emil's Projects & Reviews - Malahit Software Defined Radio
https://uglyduck.vajn.icu/ep/archive/2020/12/Malahit_Software_Defined_Radio.html
 
2. N9EWO Reviews :  Malahit (Malachite)
https://www.qsl.net/n9ewo/malahit.html
 
3. Malachite DSP - SDR  Radio Receiver
https://linuxslate.com/cgi-bin/forum/YaBB.pl?num=1595619341
 
4. Kurt Poulsen discussion in Group IO
https://groups.io/g/malahit/topic/restore_demo_software/80260700?20

5. Malahit Malachite Patched Firmware Upgrade via DFU

 

Appendix A: Key specifications of the Malahit DSP1 SDR
1. SDR Architecture - The functionality is determined by on board software.
2. Frequency Coverage : 10 kHz to 250 MHz and from 400 MHz to 2 GHz. (low 10 hz coverage was added with 1.10d Rev2 firmware)
3. Receiving Modes : AM, USB, LSB, NFM, WFM (adding CW, DSB and Synchronous Detection modes with firmware 1.10b).
4. Additional Features : RDS function with firmware 1.0b and up. Built in Morse Code Decoder, Variable filter width, adaptive squelch, threshold squelch, Noise Blanker, AGC, equalizer, FM Stereo with headphones (adding auto notch filter with firmware 1.10b for SSB modes and 1.10c for AM mode).
5. Mirics MSi001 multi mode tuner IC to achieve low cost.
6. Powerful STM32H743 Microprocessor with a clock frequency of 480 MHz.
7. 3.5-inch display with a capacitive touchscreen.
8. Built-in selectable pre-amp.
9. Receiver control is achieved with 2 front mounted rotary mechanical encoders (push in type) with a LCD touch screen.
10. Operational Power provided by internal lithium ion battery and or via USB (charging via USB). Capacity of the built-in battery is at least 1500mAh.
11. Low Power consumption - 300mA when using headphones.
12a. Top mounted female SMA jack for use with telescopic or external antennas.
12b. For improved HF reception with the high impedance telescopic antenna and more frontend filters, an optional board is provided.
13. Micro B USB(USB type C in the clone) for connection to a computer with the ability to transfer CAT, IQ and audio.
14. 160 kHz spectrum display span with scalability.
15. Sensitivity - 0.3 μV at frequencies up to 1 GHz.
16. Dynamic range approx. 85dB, due to characteristics of the Mirics MSi001 IC.
17. Robust aluminum body.
18. Display backlight control.
19. Dimensions : 120 x 88 x 39mm (4.72 x 3.46 x 1.53 inches).
 
Appendix B: Malahit DSP1 clone with test firmware
In the cloned Malahit DSP1 without activation, only a test firmware can be loaded, which is quite a receiver, but it does not know how to do a lot of things and has a lot of differences from the firmware that requires activation(described from the original design team)

1. the frequency range is limited to 250MHz
2. there is no stereo FM reception [Also no RDS]
3. there is no frequency error correction
4. there is no USB connections [Except charging -- Radio control and audio interfaces appear, but do not work]
5. a stick or a hole in the middle of the spectrum
6. there is no support for a shield with a power supply  
7. there is no normal msi001 gain control, which will cause problems when working on large antennas
8. an inconvenient interface
9. a brake interface - low fps and a long response to controls
10. no normal selection of the frequency step
11. no normal AGC
12. no frequency input function [No Direct frequency entry]
13. there is no display off function to minimize interference [Display timeout does work]
14. high consumption in the off state - 10mA
15. no visual spectrum and waterfall settings - there are many settings
16. there are clicks during restructuring
17. no telegraph decoder [No CW (Morse Code) Decoder.]
18. the number of memory cells is less and in them not all settings are saved
19. the interference from the display is much larger
With the test firmware, the clone DSP1 is a usable shortwave/VHF multi mode radio, but performance is not as good as commercial receivers due to the interference and AGC issues
 


Appendix C: Firmware Change Log
1.0a:
- added S-meter calibration
- S-meter error has been fixed due to which previously signals above 59 + 20dB were not   visible
- sound indication is entered during manual shutdown or touchscreen
- sound off indication is entered
- fixed frequency correction error (parameter F correct)
- introduced the function of filling the panorama - the FFT fill parameter in the HARD   menu
- added turning off the touch screen with a long press on the sound encoder
- something in the little things
 
1.0b:
- added RDS reception in WFM - to enable RDS, you need to click on the waterfall field   when receiving in WFM. RDS reception is only possible if the RDS level is high enough
- fixed bug of filter switching on additional board
- fixed error in msi001 settings - receiver at 50MHz goes through, without hole at 50MHz
- added a parameter to the hard menu - BEEP LVL - the volume of the tone when you press   the controls
- some minor bugs fixed

 1.0c:
- dsp filter settings are moved to the hard menu;
- added three operatively switchable filters - selection by means of a sound encoder;
- introduced deceleration of the encoder when switching pages band;
- introduced the deceleration of the sound encoder when switching the filter;
- minor fixes in the RDS part;
- in RDS mode added frequency markers 19, 38 and 57 kHz;
- minor improvements and bug fixes;

 1.0d:
- fixed USB operation - USB was unstable on version 1.0c
- protection against false switching is made - when switching on, press the button 3 times     within an interval of 5 seconds
 
1.0e:
- a possibly critical error has been fixed - there was an incorrect work with memory and   there could be problems with data processing;
- added additional characters in the font, when displaying RDS and CW decoder   information;
- corrected S-meter - now more accurate S scales;
- added the ability to indicate the signal level in dBm - in the HARD menu, the "Ind type"   parameter. Readings are displayed to the right of the S meter scale.
 
1.0f:
- introduced a stylized retro scale in the FM broadcast range;
- increased the degree of averaging of the S-meter;
- changed the frequency correction mechanism - now it should be more accurate and does   not depend on the frequency at which the calibration is done;
- detected and fixed error of switching DFT 120-150 MHz;
- renamed the state of the parameters: "Enable" to "Enabled", "Disable" to "Disabled";
- fixed a bug when working with a step of 8.33 kHz;
- fixed error with receiver stuck at low supply voltage;
- added selection of clock frequency depending on the processor revision:
  revision Y operates at 465MHz, revision V - at 480MHz;
- reduced interference from the touchscreen;
- changed the frequency of the PWM backlight for a more complete range of brightness   control;
- The error of saving settings in the Visual and Audio menus has been fixed - earlier   settings   might not be saved when they were changed;
- S-meter correction made when UHF is turned on - made the mode of enabling and   disabling the image of the panorama and waterfall - in the Visual menu the parameter "View Pan & Wtf. In this mode, the data in the display is only clamped when changing the   settings by the user. This reduces the level of interference.
- fixed a bug with step selection - the bug led to a frequency failure when
  choosing a step;
- added shutdown timer - in the HARD menu the Activity timer button;
- the switching mechanism is changed - one press at a time in three;
- in the Visual menu, the bug with the backlight of the "LCD Sleep" button has been fixed.
 
1.10a:
- changed the inscription on the splash screen;
- changed the inscription of the Vbat control option - Standart is replaced by Standard;
- at the request of the users, the sensitivity of the touchscreen returned -
  please do not complain about the possible interference, we were not supporters of this return :)
- changed the setting of the reverse encoders. This is now one option on the hard menu;
- added autosearch of stations for Retroscale in VHF FM;
- added the option step "<-NEXT->" on the Retroscale for transition by rotating the knob   from station to station (if available on the scale);
- added color selection (one of three) for Retroscale;
- added IQ swap option to the HARD menu - to solve problems with Chinese clones, in   which I and Q signals are mixed;
- on the main screen the AGC adjustment is replaced by ATT;
- added a DC suppression adjustment function to the VISUAL menu - this is a hump in the   center of the panorama.
 
1.10b:
- fixed error in the S-meter readings for frequencies above 30MHz;
- the panorama scale injection has been changed - now instead of x1, x2, x4,
  160kHz, 80kHz, 40kHz are shown;
- in SSB the 100kHz step is excluded and the 25Hz step is added;
- the touchscreen sensitivity is lowered again :);
- added synchronous AM detector;
- the frequency at which the low-pass filter 500000 is turned on is increased to 540,000, for   better suppression of signals above the frequency of 500 kHz;
- added Auto Notch filter to the Audio menu;
- stretched grunginess adjustment;
- added DSB mode - as a kind of SSB;
- added CW mode - as a kind of SSB;
 
1.10c:
- improved graphical display of the spectrum
- improved optimization of algorithms, increased display speed, especially in WFM mode
- added the ability to determine the type of inclusion - one or three clicks.
  If PD15 (pin 7 of the RESERVED field) is open, then turn on by one press; if this pin is        shorted to a common wire, then turn on by three clicks
- the HARD menu has been improved
- changed battery indication - voltage is indicated over the picture
- added the ability to control user equipment using a discrete signal - PD14 (pin 8 of the RESERVED field)
- added a button for switching audio output in the HARD menu. It duplicates the audio output switch. Made by user request.
- added modes SAM-U and SAM-L
- added engineering settings to the HARD menu
- added automatic Notch filter in AM mode
- added saving of retro scale type
- changed the management of high-frequency filters at the input of the receiver
- fixed error during frequency tuning
- fixed bugs in automatic station search in FM mode
- added Pseudo Stereo function
- added "CCIR / JAPAN" Retroscale band selector to AUDIO menu
- respectively, added Retroscale for the Japanese VHF FM band 76.1 MHz - 94.9
  MHz and 6 presets for different regions of Japan, agreed with Japanese users.
- Fixed a bug when canceling the autosearch mode for stations and when exiting the   autosearch without saving the found one (refusing to save the found). In previous versions,   in these cases, all stations that were on the scale before the start of the autosearch were   erased and the scale became empty. Now, in these cases, the original scale is restored.
- the design of the regular end of autosearch has been changed, a table-grid of frequencies   for found stations has been added, messages about the absence or the number of stations   found have been added.
- autosearch is no longer dependent on the inclusion of the stereo mode and the state of the   activated outputs to the speaker and headphones, it works in any combination of states,   after the end of the search, the original state of the stereo mode is restored.
- in some places of the editing menu, the retroscales of the CANCEL key names are   changed to EXIT, as they are closer in the meaning of the action being performed.
- Added a limitation on the number of stations on Retroskale - 69 for the CCIR band and 63   for JAPAN - as the maximum number with an interval between neighboring stations from   300 kHz and above.
- fixed minor bugs of previous versions related to preserving the color of the scales and   saving the step type (50 kHz / NEXT) for each scale.
- reduced the speed of switching stations in the NEXT step mode.
- the operation of the synchronous AM detector has been fixed (07/26/2021)
 
1.10d(assume the last release for DSP1)
- fixed the error indicating the firmware version. The version is now indicated on the splash   screen in the lower right corner
- added display noise reduction function to HARD menu
- WTF replaced with WF
- changed encoder control - now, being in the menu, the frequency encoder is used for   control
- added 9kHz step in SSB
- added the ability to select colors in the Visual menu
- excluded Sleeptime parameter for backlight control
- no delay when switching between menus
- small bugs fixed
- lower receiving frequency reduced to 10 kHz