Code Monkey home page Code Monkey logo

modular-psu-firmware's Introduction

GitHub release license liberapay Downloads

Ownership and License

The contributors are listed in CONTRIB.TXT. This project uses the GPL v3 license, see LICENSE.TXT. EEZ psu-firmware uses the C4.1 (Collective Code Construction Contract) process for contributions. To report an issue, use the EEZ modular-psu-firmware issue tracker.

Introduction

Firmare for STM32F7 MCU used in EEZ BB3 Test & Measurement chassis. Currently supported modules:

  • DCP405 0 - 40 V / 5 A programmable power source
  • DCM220 dual 1 - 20 V / 4 A auxiliary power source
  • DCM224 dual 1 - 24 V / 4.9 A auxiliary power source
  • MIO168 mixed I/O module
  • PREL6 6 power relays module
  • SMX46 4 x 6 programmable switch matrix
  • MUX14D dual 7:1 reed relay 2-wire multiplexer

For EEZ H24005 firmware visit psu-firmware repository.

Build

Firmware Simulator

Linux

sudo apt-get update
sudo apt-get install -y git libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev cmake build-essential libbsd-dev
git clone https://github.com/eez-open/modular-psu-firmware
mkdir -p modular-psu-firmware/build/linux
cd modular-psu-firmware/build/linux
cmake ../..
make

Start simulator with:

./modular-psu-firmware

Emscripten

Download and install Emscripten

source /path/to/emsdk/emsdk_env.sh
export EMSCRIPTEN=/path/to/emsdk/upstream/emscripten
mkdir -p /path/to/modular-psu-firmware/build/emscripten
cd /path/to/modular-psu-firmware/build/emscripten
cmake -DCMAKE_TOOLCHAIN_FILE=../../cmake/Emscripten.cmake -DCMAKE_BUILD_TYPE=Debug -G "Unix Makefiles" ../..
make

Windows

Install Visual Studio Community 2017 and CMake.

Use git to clone https://github.com/eez-open/modular-psu-firmware.

Execute cmake.bat

Visual Studio solution is created in \path\to\modular-psu-firmware\build\win32.

STM32 firmware

Import project from /path/to/modular-psu-firmware/src/third_party/stm32_cubeide into STM32CubeIDE and build it.

modular-psu-firmware's People

Contributors

cat-ion avatar fietser28 avatar mvladic avatar prasimix avatar willg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

modular-psu-firmware's Issues

Add support for DCM224 module

The DCM224 is modified version of DCM220 module which include the following:

  • Output voltage up to 24 V
  • Output current up to 4.9 A
  • MCU controlled LT3763 controller switching frequency. We have to implement the following:
    • Base frequency settings (in kHz), range: 350-600 kHz, default: 500 kHz
    • Frequency dithering (on/off), range +/-10% of set base frequency. Sweep speed need to be determined.
    • Counterphase signals for Ch1 and Ch2 LT3763 controllers
  • Power output PWM control (dimming). Default duty is 100% (i.e. OFF) when OE is on.
  • Indication that channel is in "PWM mode" (Duty < 100%)

Two column display mode

Expand presentation of two modules to the full screen (i.e. that one third is not constantly occupied with "Not installed" text).

Add support for PREL6 module

Add the following SCPI commands to work with PREL6 resources:

  • Include module channels in INSTrument:CATalog? and INSTrument:CATalog:FULL?
  • ROUTe:CLOSe {<chanlist>} - activete (turn on) relay(s) from the channel list
  • ROUTe:CLOSe:EXCLusive {<channel>} - close selected channel and open all previously opened channels
  • ROUTe:OPEN {<chanlist>} - deactivate (turn off) relay(s) from the channel list
  • SYSTem:CHANnel:LABel {<chanlist>}, {<label>} - set channel label what will be visible on the display
  • SYSTem:RELay:CYCLes? {<chanlist>} - Returns the cycle count on the specified channel(s)
  • Labels & Colors

Other:

  • Safe power down and standby has to open all relays
  • Info page
  • Copy to ... (other PREL module)
  • Picture of module resources
  • Take into account latency of relay contacts in case of consecutive open and close actions (i.e. Rigol M300 uses ROUTe:DONE? to check status), see #182

Channel numbering (n is module slot number): (@n01) to (@n06)

Add support for MIO168 module

MIO168 is mixed digital and analog signals module that requires support for the following:

  • 8 digital inputs with two levels (+5 / +12 V)
  • 8 digital outputs (low-side) with fault detection
  • 2 PWM outputs (set default to 10 Hz, 10%)
  • 2 voltage/current bipolar output DACs
  • 2 voltage bipolar output DACs
  • Detection and working with plugged in AFE expansion board that provides 4 analog inputs
  • This task also requires redesign of DLOG and LIST functionalities to support faster sampling rates and possibly some primitive math operations (min, max, avg).
  • Fan control (depending on the measured current to cool the shunt and fuses)
  • Implement software auto-ranging
  • Support for AFE3

Correction of typo's, cleaning up pixel fonts, introduce "°C" symbol

Issue:
1- Typo's in some pages text strings.
2- Small text font glyphs needed some cleaning up.
3- Create icon for °C.

Proposed solution:

Attachment here with the files that worked for me.

The edited psu.eez-project file and it's auto-edited gui_document.cpp for issues 1,2 and 3.
The edited value.cpp for issue 3 with text string for "°C" actually "\u0097"

Github.zip

Profile 0 when auto recall is enabled

Saving changes in Profile 0 are continuously performed when auto recall is enabled even if other profile (1 to 9) is selected. Saving to Profile 0 should happen only if it is selected for auto recall.

SCPI via UART

Accepting SCPI commands via UART will enables simple device without USB or Ethernet support to communicate and control BB3.

  • Add BOOKmark mode to SYSTem:COMMunicate:UART:MODE

Initial task list for adding support for STM32F7 MCU board

Initial list that include tasks and changes required for adding support for new modular PSU with STM32F7 MCU board.

TFT LCD and touchscreen controller

TFT LCD is replaced with 4.3" (480x272, landscape). It comes with 24-bit RGB interface (only 18-bit is wired on the board). Firmware should support 16-bit, or 18-bit color space. Since new TFT LCD doesn't include touch screen controller, a AR1201-I/SS is selected (Note: Microchip recently changed its status to "not recommended for new design"). Used interface is I2C, configured for 4-wire sensor. Controller include 128 bytes of user EEPROM that should be used to store calibrations data.

EEPROM

New MCU board comes with EEPROM that share the same I2C bus as peripheral (power) modules and fan controller (on the new AUX PS board). Its address lines are hard-wired as 111. Therefore it can be accessed for read operations on address 0xA1 and for write operations on 0xA2.
Note that power modules also can have on-board I2C EEPROM. Its address lines wiring reflect module connector number (i.e. 001 for slot No.1, etc.).

Binding posts IC (TLC5925)

This IC is completely removed due to new approach used for connecting power modules. Therefore we have to take into account the following:

  • Serial and parallel coupling functionality would remain but it require more complex wiring using "backplane" PCB. If we failed to manage that on the hardware side, we still can offer software functionality that will inform user how to wire channels outputs externally, and cumulative output value will be displayed.
  • Sense relay is now located on the power module and it is controlled using channel's I/O expander. Sense LED activation does not require firmware attention.
  • Output Enable (OE) LED is also implemented on the power module. It's now bi-color (green-red, require two I/O expander's output pins) to indicate uncoupled and coupled mode of operation!
  • Remote programming LED is also implemented on the power module.
  • Standby LED remains, but it doesn't required additional firmware attention. It's implemented as inverted PWR_DIRECT (Power On) signal.

Watchdog

No dedicated reset/supervisor IC is used anymore. STM32 has internal watchdog that has to be activated.

Module SPI devices

Each power module has dedicated SPI channel and two CS (chip select) lines to address up to 4 devices:

Address Device
00 I/O expander (MCP23S17)
01 DAC (DAC8552)
10 ADC (ADS1120)
11 Temp. sensor (TC77)

DC fan control

MCU doesn't control directly DC cooling fan anymore. Instead a dedicated fan controller AMC6821 is used (located on the AUX PS board). We'll use its internal temperature sensor to measure temperature inside chassis (previously directly measured as AUX sensor). Its I2C address is 0x18.

Power module temperature sensing

NTC for temperature sensing on the power module is replaced with the SPI TC77 temperature sensor.

RTC

Internal MCU's RTC functionality is used instead of dedicated IC used in previous design. Replaceable Lithium battery instead of supercap is used as power backup. RTC input/reference clock is derived from master clock (25 MHz) and scaled down to 1 MHz (not 32.768 kHz).

Ethernet

W5500 controller is replaced with built-in MCU Ethernet MAC resources and external PHY IC (DP83843) is used for interfacing with the network (via RJ45).

I/O Expander

As already stated, some Arduino shield functionalities (accomplished using the TLC5925) is now moved to power modules to improve overall modularity (i.e. peripheral module independence). New power module could also include some new functionalities as stated below.

Bit Function Direction
0 Remote sense polarity error Input
1 CC Input
2 CV Input
3 Power good Input
4 OVP fault (NEW, optional?) Input
5 OVP enable (NEW, optional?) Output
6 OE uncoupled LED (modified) Output
7 OE coupled LED (modified) Output
8 Down programmer (DP) disable Output
9 Output Enable Output
10 Remote sense (NEW) Output
11 Remote programming Output
12 Current range 5 A Output
13 Current range 500 mA Output
14 Current range 50 mA Output
15 Extra Cout (NEW, optional?) Output

Low ripple

Power module pre-regulator bypass functionality ([SOURce[]]:LRIPple) is not applicable since new module doesn't include on-board pre-regulator (it is powered from AC/DC power module which acts as pre-regulator, too).

OE control and sync

New power module require usage of OE_SYNC output in combination with OE output (I/O expander) to set output enable circuit. It allows simultaneous control of two or more power module's output state.

User.config file

Firmware should read some advanced configuration parameters during the boot from /user.config file on SD card.

TFT display test

Add option which will paint a whole display in red, green, blue and white for death-pixel detection. Switch between colors or exit could be done by tapping anywhere on the screen or by e.g. user switch or encoder knob (we have to show that to user before).

Further improvement of SCPI LIST feature

We already have [SOURce[<n>]]:ARB SCPI subsystem in our roadmap that should enable advanced definition of output voltage and current. However, the suggestions of the forum members from the EEVblog listed below should also be taken into account.

Comment from Jan28:
I played around with the trigger, list and ramp features in the simulator and am wondering: Why is ramp a separate function instead of a property of the list implementation? I will try to explain using SCPI commands. If there would be an command like:

[SOURce[]]:LIST:TYPE {ramptype}[, ...] where ramptype = 0 mean step, 1 = linear ramp, 2 = exponential ramp, ... = use imagination...

This would make:

  • [SOURce[]]:CURRent:MODE STEP, CURRent:TRIGgered and CURRent:RAMP:DURation {} (and voltage equivalents) obsolete
  • programmability more flexible because a list can generate ramps arbitrary up/down steps, etc.
  • UI could stil have a menu to program a STEP in a simple way: This would just create a LIST with the right properties. The user can even edit the list afterwards to add steps (in that case going back to STEP menu would clear the list after a warning/conformation)
  • The list edit menu would also need a type selection (icon?) for voltage and current. I think this would fit.

...

The R&S NGP800 has an 'interpolate' option in there implementation of a list which they call ARB. It's not exactly defined what interpolation it does, but looks like linear interpolation, which I called lineair ramp before. On there product page they have a screenshot of it (under Arbitrary Function): https://www.rohde-schwarz.com/nl/product/ngp800-productstartpage_63493-670592.html

The word Interpolate/Interpolation is a much more specific description of the functionality compared to the TYPE I made up.

The R&S SCPI implementation is not so nice (to my taste), because you quickly get into some kind of comma-counting-hell >:D and it doesn't allow for adding options/features later on in a backwards compatible way:
ARB:BLOC:DATA 1,1,1,1,0,2,2,2,1,1,3,3,1,0 (its a repeat of volt, current,time,interpolate)

BB3 equivalent:
LIST:VOLT 1,2,3
LIST:CUR 1,2,3
LIST:DWEL 1,1,1
LIST:INTerpolate 0,1,0 (new, instead of TYPE, 0= step, 1= interpolate)

Both sets of commands do the same:

  • 1V,1A for 1 sec as a step
  • rising from 1V,1A to 2V,2A in 1 sec (this is the function we're talking about)
  • 3V,3A for 1 sec as a step

I agree that more complex ways of interpolation (e.g. exponential) might be better handled with the ARB subsystem. Just adding the interpolation makes the list function very powerful (in my opinion).


Comment from Rerouter:

That method while possibly needing a little polish would leave room for odd ramps, e.g. a sine wave could be done by adding type classes for the 3 sine segments, step gets you square like waves, interpolate gets you ramps, and other modes gets you sine and other,
Sine I see as being 3 main options, either crest / peak with the slow start and then fast change,
fast change to slow crest / peak
or from crest to peak or vice versa as a half sine wave.

If you wanted to you might then later make use of that chunk of code to generate some of the simple shapes via UI.

This way a sine wave would just be an arb table of the min / max voltage and the smooth type with the frequency being the inverse of the interpolation time.

Edit: and things like simulating a rectifier output would just be a fast start segment + a ramp down in a cycle.
Edit2: while probably not the easiest thing, allowing things like % as an input for the values would make things a bit more powerful, so e.g. adjusting the maximum amplitude, the min being set at 60% then tracks along at 60% of that start value, or vice versa if the end was a % and the start a fixed value. this would be more for UI than SCPI, but I'm dreaming.
Edit3: or relative values, e.g. *-2V for 2V less than the start value, probably again for UI.
sine interpolation

Group topics for MQTT

Add possibility that BB3 can subscribe to MQTT group topics to perform group operations such as:

  • Shutdown
  • Restart
  • Power channels OE on/off
  • Send/clear textual message (DISP:TEXT and DISP:TEXT:CLE)

Add "Group topic" option in MQTT settings. Which can be left empty if you don't want this feature.

Energy counters and display settings

This is a follow up on #70: under display view settings we have to offer two more options:

  • Energy (Wh)
  • Energy (Ah)

Also we need new counters per channels for total energy delivered and after last reset (not OE).
The following SCPI commands has been added or updated:

  • FETCh:AHOur?
  • FETCh:WHOur?
  • SENSe:AHOur:RESet
  • SENSe:WHOur:RESet
  • SYSTem:CHANnel:INFOrmation:AHOur:TOTal?
  • SYSTem:CHANnel:INFOrmation:WHOur:TOTal?
  • SYSTem:CHANnel:INFOrmation:AHOur:LAST?
  • SYSTem:CHANnel:INFOrmation:WHOur::LAST?

PWR_SSTART signal after soft-start

The PRW_START signal remains active after the soft-start sequence. In some situations the NTC thermistor for inrush current limiting start to overheat for higher loads. Therefore, the PRW_START signal should be turned off as we initially had.

USB Host HID mode

Add support for USB host HID mode. That has to include USB ID pin detection for OTG (on-the-go) mode. Replace Serial page in System settings with USB settings where USB Mode and Class can be selected. Existing Serial params will be displayed when Device of Class Virtual COM Port is selected.
The following changes are required in SCPI:

  1. Replace SERial with USB in SYSTem:COMMunicate:ENABle
  2. Add SYSTem:COMMunicate:USB:MODE {DEVice|HOST|OTG}
  3. Add SYSTem:COMMunicate:USB:CLAss {VCOM|MSTOrage|HID}

Add support for SMX46 module

Add the following SCPI commands to work with SMX46 resources:

  • Expand existing calibration commands to accept voltage calibration for AO1 and AO2 CALibration[:MODE] {<bool>}, {<password>}, CALibration:CLEar {<password>}, CALibration:PASSword:NEW {<old>}, {<new>}, CALibration:REMark {<user remark>}, CALibration:SAVE, CALibration:STATe {<bool>}, CALibration:VOLTage[:DATA] {<value>} and CALibration:VOLTage:LEVel {<point>}, {<level>}
  • DIAGnostic[:INFOrmation]:CALibration?
  • Include module channels in INSTrument:CATalog? and INSTrument:CATalog:FULL?
  • ROUTe:CLOSe {<chanlist>} - activete (turn on) relay(s) from the channel list
  • ROUTe:LABel:COLumn {<slot>},{<column>},{<label>}, ROUTe:LABel:ROW {<slot>},{<row>},{<label>} - set row/column label that will be visible on the display
  • ROUTe:OPEN {<chanlist>} - deactivate (turn off) relay(s) from the channel list
  • SYSTem:RELay:CYCLes? {<chanlist>} - Returns the cycle count on the specified channel(s)

Channel numbering (n is module slot number, r is row number, c is column number):

  • (@n01) - AO1 (analog output 1)
  • (@n02) - AO2 (analog output 2)
  • (@n03) - power relay
  • (@nrc) - switch matrix crosspoint r = 1-4 and c = 1-6

Output voltage offset when RSENse is not active

Maybe we should think about voltage offset when remote sense is not active. This issue is relate to the fact that due to built-in coupling circuity sense inputs are not connected right to the output terminals. Some manufacturers calls this "load compensation". Therefore with increased current we can expect significant drop when voltage is measured right on the output terminals. That can be corrected by calculating resistance value of the path between Rsense inputs and output terminals and that it into account to adjust voltage depending of measured output current.

If we are going to do something about this a related SCPI command could be [SOURce[<n>]]:VOLTage:SENSe[:SOURce] ADJusted

This compensation can be define in percentages, for each channel separately (e.g. 1.5 %). It's always negative value.

New feature: AC-mode

Would it be possible to make an “AC-mode” there a predefined list or similar is doing the half wave for each channel. The channels are external serial coupled to make a midpoint reference.
If it’s possible to calculate the list in the firmware just by typing in AC voltage and frequency that would be great, but some predefined voltages at 50 and 60Hz should possible cover many cases.

Option to lock set and limit current

Add new GUI feature that current limit is "locked" (follow) set current. The result will be that on bar graph views current full scale will be always programmed current.

lock limit

Action recorder

"Action recorder" should record all user activities via local console (touchscreen display) as sequence of SCPI commands. Activities could be stored locally on the SD Card or send in real time via established connection with EEZ Studio. Recorded SCPI commands sequence could be further edited and used for automating process of programming the PSU.

LIST jitter

LIST jitter is recently degraded, the 1 ms shift is happen too often.

Power channel coupling issues

  • Hardware error is reported on power up if active profile has coupling that cannot be performed (e.g. required modules are not present). Replace that error with Recall from profile not possible.
  • Coupling in series and parallel is not saved in user profiles.

Wrong display of power on bar graph views

If Power is selected on the bar graph view (horizontal, or vertical) its bar length is wrongly displayed. It's referenced to set current limit, not power limit that was 100 W in this case. Therefore the bar length of measured value (51.90 W) should be a little bit above middle scale, instead of full scale.

Screenshot_from_2019-04-06_14-20-29

Build issues with STM32CubeIDE 1.1.0 on Windows7

I'm using windows 7 Pro 64bits SP1 + STM32CubeIDE 1.1.0 (Latest version available)

Step to reproduce the issue:

  • I have cloned this repository https://github.com/eez-open/modular-psu-firmware.git to my directory D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/
  • STM32CubeIDE 1.1.0 steps:
    • I select File->Import... -> Existing Projects into Workspace ->Select root directory: D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_cubeide
    • I click on Finish (bb3 project is found)
    • I right click on bb3 project -> Build project

I obtain the error:

08:03:32 **** Build of configuration Debug for project bb3 ****
make -j8 all 
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/argcheck.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/argcheck.d" -MT"micropython/py/argcheck.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/argcheck.o"
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmarm.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/asmarm.d" -MT"micropython/py/asmarm.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/asmarm.o"
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmbase.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/asmbase.d" -MT"micropython/py/asmbase.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/asmbase.o"
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmthumb.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/asmthumb.d" -MT"micropython/py/asmthumb.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/asmthumb.o"
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmx64.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/asmx64.d" -MT"micropython/py/asmx64.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/asmx64.o"
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmx86.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/asmx86.d" -MT"micropython/py/asmx86.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/asmx86.o"
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmxtensa.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/asmxtensa.d" -MT"micropython/py/asmxtensa.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/asmxtensa.o"
arm-none-eabi-gcc "D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/bc.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DSTM32F769xx -DDEBUG '-DEEZ_BP3C_REVISION_R3B1=1' '-DOPTION_SDRAM=1' '-DEEZ_MCU_REVISION_R1B5=1' '-DLWIP_NETIF_HOSTNAME=1' '-DSCPI_USER_CONFIG=1' '-DLZ4_FORCE_MEMORY_ACCESS=0' '-DHAVE_STDBOOL=1' -DEEZ_PLATFORM_STM32 '-DOPTION_ETHERNET=1' '-DOPTION_EXT_RTC=1' '-DOPTION_SD_CARD=1' '-DOPTION_EXT_EEPROM=1' '-DOPTION_BP=0' '-DOPTION_FAN=1' '-DOPTION_DISPLAY=1' '-DOPTION_AUX_TEMP_SENSOR=1' '-DOPTION_WATCHDOG=1' '-DOPTION_ENCODER=1' '-DLODEPNG_NO_COMPILE_ALLOCATORS=1' '-DLODEPNG_NO_COMPILE_DECODER=1' '-DLODEPNG_NO_COMPILE_DISK=1' '-DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1' '-DLODEPNG_NO_COMPILE_ERROR_TEXT=1' '-DLODEPNG_NO_COMPILE_CPP=1' -c -I../Middlewares/Third_Party/FreeRTOS/Source/include -I"../../libscpi/inc" -I"../../micropython" -I"../../micropython/port" -I"../../.." -I"../../../eez/scpi" -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/Third_Party/LwIP/system/arch -I../Middlewares/Third_Party/LwIP/src/include -I../Inc -I../Drivers/CMSIS/Include -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FatFs/src -I../Middlewares/Third_Party/LwIP/system -I../Middlewares/Third_Party/LwIP/src/include/netif -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"micropython/py/bc.d" -MT"micropython/py/bc.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "micropython/py/bc.o"
In file included from ../../micropython/py/obj.h:29:0,
                 from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmbase.c:30:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [micropython/py/subdir.mk:370: micropython/py/asmbase.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from ../../micropython/py/mpstate.h:31:0,
                 from ../../micropython/py/runtime.h:29,
                 from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/argcheck.c:30:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [micropython/py/subdir.mk:366: micropython/py/argcheck.o] Error 1
In file included from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmarm.c:32:0:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [micropython/py/subdir.mk:368: micropython/py/asmarm.o] Error 1
In file included from ../../micropython/py/mpstate.h:31:0,
                 from ../../micropython/py/runtime.h:29,
                 from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/bc.c:32:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [micropython/py/subdir.mk:380: micropython/py/bc.o] Error 1
In file included from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmx86.c:32:0:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
In file included from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmxtensa.c:30:0:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
In file included from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmx64.c:32:0:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [micropython/py/subdir.mk:376: micropython/py/asmx86.o] Error 1
make: *** [micropython/py/subdir.mk:378: micropython/py/asmxtensa.o] Error 1
In file included from D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/micropython/py/asmthumb.c:31:0:
../../micropython/py/mpconfig.h:62:10: fatal error: mpconfigport.h: No such file or directory
 #include <mpconfigport.h>
          ^~~~~~~~~~~~~~~~
make: *** [micropython/py/subdir.mk:374: micropython/py/asmx64.o] Error 1
compilation terminated.
make: *** [micropython/py/subdir.mk:372: micropython/py/asmthumb.o] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.

08:03:44 Build Failed. 17 errors, 0 warnings. (took 11s.870ms)

Measure output voltage before output is switched on

This task is inspired with TSP6 - Rigol DP1116A and DP1308A Programmable Power Supply Review Part 4/6) presentation.

A new option under channel Protection settings has to be added: Prohibit output enable if external voltage detected. Default is ON. It is applicable only to DCP405 power module!

If this option is turned on, the ADC must continuously measure the voltages on the output terminals even when OE (Output Enable) is turned off. If no load is connected through which the output capacitor would be discharged, the residual voltage will be displayed (below OFF text), flashing red while this voltage is greater than 500 mV. Display of the measured voltage will stop when it drops below 100 mV.
When it is active, the output cannot be turned on as long as the measured voltage is greater than 500 mV.

For remote programming we have to add a new command OUTPut:PROTection:MEASure ON|OFF that if activate will generate the following errors when measured voltage is above 500 mV:

510,"External voltage on CH1 detected"
511,"External voltage on CH2 detected"
...
514,"External voltage on CH5 detected" 

Adaptive protections

When a new output value is set, we can add an option that e.g. OCP is enabled after x amount of time (in seconds). In addition we can after the same delay reduce max. current to last measured value increased by some percentage (e.g. 10 or 20%).
Possible SCPI commands:

  • [SOURce[<n>]]:SCP:DELay[:TIME]
  • [SOURce[<n>]]:SCP:STATus
  • [SOURce[<n>]]:SCP:TRIPped?

Build issues with Atollic TrueStudio for STM32 v9.3.0 on Windows7

I'm using windows 7 Pro 64bits SP1 + Atollic TrueStudio for STM32 v9.3.0 (Last version available)

Step to reproduce the issue:

  • I have cloned this repository https://github.com/eez-open/modular-psu-firmware.git to my directory D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/
  • Atollic TrueStudio for STM32 v9.3.0 steps:
    • I select File->Import... -> Existing Projects into Workspace ->Select root directory: D:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio
    • I click on Finish (bb3 project is found)
    • I right click on bb3 project -> Build project

I obtain the error:

07:58:38 **** Rebuild of configuration Debug for project bb3 ****
Info: Internal Builder is used for build
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o Middlewares\Third_Party\FreeRTOS\Source\event_groups.o ..\Middlewares\Third_Party\FreeRTOS\Source\event_groups.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o micropython\py\showbc.o ..\..\micropython\py\showbc.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o eez\libs\lz4\lz4.o ..\..\..\eez\libs\lz4\lz4.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o micropython\py\objproperty.o ..\..\micropython\py\objproperty.c 
arm-atollic-eabi-g++ -c ..\..\..\eez\gui\widgets\text.cpp -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=c++11 -DSTM32F769xx -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLWIP_NETIF_HOSTNAME=1 -DSCPI_USER_CONFIG=1 -DLZ4_FORCE_MEMORY_ACCESS=0 -DDEBUG -DHAVE_STDBOOL=1 -DEEZ_PLATFORM_STM32 -DUSE_HAL_DRIVER -D__packed=__attribute__((__packed__)) -D__weak=__attribute__((__weak__)) -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_EXT_EEPROM=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -g -fstack-usage -Wall -fno-threadsafe-statics -o eez\gui\widgets\text.o 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o micropython\py\nlrpowerpc.o ..\..\micropython\py\nlrpowerpc.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o micropython\py\objbool.o ..\..\micropython\py\objbool.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_addr.o ..\Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_addr.c 
In file included from d:\_proj\__lab_tools\powersupply\eez-bb3\modular-psu-firmware\src\eez\gui\assets.h:21:0,
                 from d:\_proj\__lab_tools\powersupply\eez-bb3\modular-psu-firmware\src\eez\gui\gui.h:23,
                 from ..\..\..\eez\gui\widgets\text.cpp:26:
d:\_proj\__lab_tools\powersupply\eez-bb3\modular-psu-firmware\src\eez\gui\document.h:33:36: fatal error: eez/gui/document_stm32.h: No such file or directory
 #include <eez/gui/document_stm32.h>
                                    ^
compilation terminated.
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o Src\bsp_driver_sd.o ..\Src\bsp_driver_sd.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o micropython\py\lexer.o ..\..\micropython\py\lexer.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -std=gnu11 -DUSE_HAL_DRIVER -DEEZ_BP3C_REVISION_R3B1=1 -DOPTION_SDRAM=1 -DLWIP_NETIF_HOSTNAME=1 -DSTM32F769xx -DEEZ_PLATFORM_STM32 -DDEBUG -DLZ4_FORCE_MEMORY_ACCESS=0 -DSCPI_USER_CONFIG=1 -DOPTION_ETHERNET=1 -DOPTION_EXT_RTC=1 -DOPTION_SD_CARD=1 -DOPTION_BP=0 -DOPTION_DISPLAY=1 -DOPTION_FAN=1 -DOPTION_AUX_TEMP_SENSOR=1 -DOPTION_WATCHDOG=1 -DOPTION_ENCODER=1 -DOPTION_EXT_EEPROM=1 -DEEZ_MCU_REVISION_R1B5=1 -DLODEPNG_NO_COMPILE_ALLOCATORS=1 -DLODEPNG_NO_COMPILE_DECODER=1 -DLODEPNG_NO_COMPILE_DISK=1 -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS=1 -DLODEPNG_NO_COMPILE_ERROR_TEXT=1 -DLODEPNG_NO_COMPILE_CPP=1 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -I../Inc -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/posix -I../Middlewares/Third_Party/LwIP/src/include/posix/sys -I../Middlewares/Third_Party/LwIP/system/arch -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../libscpi/inc -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../micropython/ports/bb3 -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/.. -ID:/_proj/__Lab_Tools/PowerSupply/EEZ-BB3/modular-psu-firmware/src/third_party/stm32_truestudio/../../eez/scpi -ID:\_proj\__Lab_Tools\PowerSupply\EEZ-BB3\modular-psu-firmware\src\third_party\stm32_truestudio\Middlewares\Third_Party\FatFs\src -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FatFs/src -Og -ffunction-sections -fdata-sections -g -fstack-usage -Wall -o Drivers\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_sdram.o ..\Drivers\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_sdram.c 
Info: Parallel threads used: 6

07:58:39 Build Finished (took 630ms)

Maybe Atollic TrueStudio for STM32 v9.3.0 shall be dropped (as it is end of life and replaced by STM32CubeIDE) and keep only STM32CubeIDE see other issue #16

Wrong message when AUX temp OTP tripped

If AUX temp sensor OTP tripped and you try to turn on the channel you will get the wrong message:

aux temp tripped

The Clear option has no effect and you have to go to System settings to clear this event.

New SCPI commands for addressing modules

Add the following new SCPI commands for addressing modules:

  • SYSTem:SLOT[:COUNT]? - returns number of available slots, for BP3C it is 3
  • SYSTem:SLOT:MODel? <slot_index>
  • SYSTem:SLOT:VERSion? <slot_index>
  • SYSTem:SLOT:FIRMware? <slot_index>

If slot is not occupied SYSTem:SLOT:MODel?, SYSTem:SLOT:VERSion? and SYSTem:SLOT:FIRMware? returns ""

Type of mandatory parameter <slot_index> is NR1.

Encoder operations while display is off

If display is turned off and encoder knob is turned in any direction or press to select another parameter that changes will take into effect when display is turned on again. That could be dangerous for connected load and must be prohibited.

DCP405 temp sensor error in standby mode

10 seconds after entering standby mode, CHn temp failed error will be generated. Tested on DCP405 r3B2.
Query for temperature measurement should return -200 error in standby mode instead of zero temperature.

Monitoring max. power while channels are coupled in PARallel

We need to include into balancing monitoring of max. power. The problem become visible when output voltage is set to max. and with connected load power on single channel can exceed capability of the AC/DC module (that is 155 W). When that is happen, it seems that AC/DC module cannot deliver needed output voltage and as results a significant oscillation can be recorded on the PSU output, not due to the instability but simply because pre-regulator cannot deliver desired voltage (voltage drop becomes too large).
Therefore we have to insure that is not possible in any moment that output power exceed 155 W on any channel.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.