TEP DOWNLOAD CENTER

Project Files of STM32 Nucleo-F401RE Library for Proteus: BMP280 Data Logger

Libraries Code Projects Simulation
tep://download-terminal stm32-nucleo-f401re-tep-v1-0-a9e5175e5a3a4535a6eb68c0a6a38b30.zip ZIP archiveV1.0Verified0 downloadsFree
STM32 Nucleo-F401RE Library for Proteus: a weather data logger with a BMP280, a DS3231 and the Ethernet Shield 2
Proteus library · File 1 of 1

STM32 Nucleo-F401RE Library for Proteus V1.0

STM32 Nucleo-F401RE Library for Proteus V1.0 comes as a ZIP archive of 184 files (3.5 MB, 7.8 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch, an Arduino library, compiled HEX firmware and source code.

  • LIBProteus library
  • DLLProteus model
  • DSNProteus simulation
  • INOArduino sketch
  • LIBArduino library
  • HEXHEX firmware
  • SRCSource code

Description

STM32-Nucleo-F401RE-Library-for-Proteus-v1.0.zip with the STM32 Nucleo-F401RE in Proteus (your STM32 sketch with the Arduino pin numbers and their STM32 names, B1, B2, LD2 and a serial monitor; TEPNUCLEOF401RE.LIB, TEPNET.DLL and the TEP Boards for Proteus add-on 1.27.0), the BMP280, DS3231 and Ethernet Shield 2 libraries, the Laptop / Mobile WiFi Monitor symbols, the weather data logger demo with its sketch and a README.

Read STM32 Nucleo-F401RE Library for Proteus: BMP280 Data Logger

File Structure

stm32-nucleo-f401re-tep-v1-0-a9e5175e5a3a4535a6eb68c0a6a38b30.zip184 files · 92 folders · 7.8 MB unpacked
STM32-Nucleo-F401RE-TEP-v1.0/184 files · 7.8 MB
Arduino Code/169 files · 736 KB
Nucleo_Weather_Logger/1 file · 11.5 KB
INO Nucleo_Weather_Logger.inoArduino sketch 11.5 KB
TEP Boards for Proteus/168 files · 724.5 KB
hardware/168 files · 724.5 KB
tep/168 files · 724.5 KB
avr/168 files · 724.5 KB
cores/52 files · 259.3 KB
tep32/52 files · 259.3 KB
SRC abi.cppSource file 1.1 KB
SRC Arduino.hSource file 7.7 KB
SRC binary.hSource file 11 KB
SRC CDC.cppSource file 8.5 KB
SRC Client.hSource file 1.5 KB
SRC Esp.cppSource file 1.7 KB
SRC Esp.hSource file 1.8 KB
SRC esp32-hal-ledc.cSource file 5.6 KB
SRC esp32-hal-misc.cppSource file 4.9 KB
SRC esp32-hal-rgb.cSource file 1.1 KB
SRC esp32-hal.hSource file 5.8 KB
SRC HardwareSerial.cppSource file 9.6 KB
SRC HardwareSerial.hSource file 5.9 KB
SRC HardwareSerial0.cppSource file 2.5 KB
SRC HardwareSerial2.cppSource file 1.9 KB
SRC HardwareSerial_private.hSource file 4.4 KB
SRC hooks.cSource file 1.1 KB
SRC IPAddress.cppSource file 3 KB
SRC IPAddress.hSource file 3 KB
SRC main.cppSource file 1.8 KB
FILE newFile 2.5 KB
SRC new.cppSource file 3.5 KB
SRC new.hSource file 149 B
SRC PluggableUSB.cppSource file 2.7 KB
SRC PluggableUSB.hSource file 2 KB
SRC Print.cppSource file 6.4 KB
SRC Print.hSource file 3.2 KB
SRC Printable.hSource file 1.3 KB
SRC Server.hSource file 963 B
SRC Stream.cppSource file 8.6 KB
SRC Stream.hSource file 5.9 KB
SRC tep32_link.cSource file 5.8 KB
SRC tep32_link.hSource file 8.4 KB
SRC tep32_private.hSource file 1.5 KB
SRC Tone.cppSource file 14.7 KB
SRC Udp.hSource file 4.3 KB
SRC USBAPI.hSource file 6.1 KB
SRC USBCore.cppSource file 20.1 KB
SRC USBCore.hSource file 8.2 KB
SRC USBDesc.hSource file 2 KB
SRC WCharacter.hSource file 4.5 KB
SRC WInterrupts.cSource file 311 B
SRC wiring.cSource file 12.3 KB
SRC wiring_analog.cSource file 5.6 KB
SRC wiring_digital.cSource file 3.6 KB
SRC wiring_private.hSource file 2.2 KB
SRC wiring_pulse.cSource file 3.4 KB
SRC wiring_pulse.SSource file 5.9 KB
SRC wiring_shift.cSource file 1.5 KB
SRC WMath.cppSource file 1.6 KB
SRC WString.cppSource file 16.6 KB
SRC WString.hSource file 9.7 KB
libraries/84 files · 223.4 KB
Arduino_LED_Matrix/3 files · 7.8 KB
src/2 files · 7.4 KB
LIB Arduino_LED_Matrix.cppArduino library file 3.6 KB
LIB Arduino_LED_Matrix.hArduino library file 3.8 KB
LIB library.propertiesArduino library file 504 B
Arduino_RouterBridge/3 files · 19.8 KB
src/2 files · 19.3 KB
LIB Arduino_RouterBridge.cppArduino library file 8.3 KB
LIB Arduino_RouterBridge.hArduino library file 10.9 KB
LIB library.propertiesArduino library file 522 B
EEPROM/12 files · 22.6 KB
examples/8 files · 11 KB
eeprom_clear/1 file · 918 B
INO eeprom_clear.inoArduino sketch 918 B
eeprom_crc/1 file · 1.4 KB
INO eeprom_crc.inoArduino sketch 1.4 KB
eeprom_get/1 file · 1.8 KB
INO eeprom_get.inoArduino sketch 1.8 KB
eeprom_iteration/1 file · 1 KB
INO eeprom_iteration.inoArduino sketch 1 KB
eeprom_put/1 file · 1.3 KB
INO eeprom_put.inoArduino sketch 1.3 KB
eeprom_read/1 file · 1.4 KB
INO eeprom_read.inoArduino sketch 1.4 KB
eeprom_update/1 file · 1.8 KB
INO eeprom_update.inoArduino sketch 1.8 KB
eeprom_write/1 file · 1.4 KB
INO eeprom_write.inoArduino sketch 1.4 KB
src/1 file · 5.7 KB
LIB EEPROM.hArduino library file 5.7 KB
TXT keywords.txtText file 502 B
LIB library.propertiesArduino library file 463 B
MD README.mdReadme 5 KB
ESP32Servo/2 files · 2 KB
src/1 file · 1.6 KB
LIB ESP32Servo.hArduino library file 1.6 KB
LIB library.propertiesArduino library file 368 B
ESP8266HTTPClient/2 files · 872 B
src/1 file · 406 B
LIB ESP8266HTTPClient.hArduino library file 406 B
LIB library.propertiesArduino library file 466 B
ESP8266mDNS/2 files · 848 B
src/1 file · 404 B
LIB ESP8266mDNS.hArduino library file 404 B
LIB library.propertiesArduino library file 444 B
ESP8266WebServer/2 files · 937 B
src/1 file · 460 B
LIB ESP8266WebServer.hArduino library file 460 B
LIB library.propertiesArduino library file 477 B
ESP8266WiFi/2 files · 1.2 KB
src/1 file · 739 B
LIB ESP8266WiFi.hArduino library file 739 B
LIB library.propertiesArduino library file 448 B
ESPmDNS/2 files · 1.6 KB
src/1 file · 1.3 KB
LIB ESPmDNS.hArduino library file 1.3 KB
LIB library.propertiesArduino library file 350 B
ETH/3 files · 10.3 KB
src/2 files · 9.7 KB
LIB ETH.cppArduino library file 5.7 KB
LIB ETH.hArduino library file 4 KB
LIB library.propertiesArduino library file 562 B
HTTPClient/3 files · 11.6 KB
src/2 files · 11.3 KB
LIB HTTPClient.cppArduino library file 7.2 KB
LIB HTTPClient.hArduino library file 4.1 KB
LIB library.propertiesArduino library file 371 B
LEAmDNS/2 files · 868 B
src/1 file · 390 B
LIB LEAmDNS.hArduino library file 390 B
LIB library.propertiesArduino library file 478 B
Preferences/3 files · 10 KB
src/2 files · 9.6 KB
LIB Preferences.cppArduino library file 5.1 KB
LIB Preferences.hArduino library file 4.6 KB
LIB library.propertiesArduino library file 371 B
Servo/2 files · 652 B
src/1 file · 294 B
LIB Servo.hArduino library file 294 B
LIB library.propertiesArduino library file 358 B
SPI/6 files · 23.7 KB
examples/2 files · 6.4 KB
BarometricPressureSensor/1 file · 4.4 KB
INO BarometricPressureSensor.inoArduino sketch 4.4 KB
DigitalPotControl/1 file · 1.9 KB
INO DigitalPotControl.inoArduino sketch 1.9 KB
src/2 files · 16 KB
LIB SPI.cppArduino library file 5.6 KB
LIB SPI.hArduino library file 10.4 KB
TXT keywords.txtText file 835 B
LIB library.propertiesArduino library file 518 B
WebServer/3 files · 13.9 KB
src/2 files · 13.5 KB
LIB WebServer.cppArduino library file 9.1 KB
LIB WebServer.hArduino library file 4.4 KB
LIB library.propertiesArduino library file 439 B
WiFi/15 files · 46.7 KB
src/14 files · 46.2 KB
LIB tep_wifi_link.cppArduino library file 3.9 KB
LIB tep_wifi_link.hArduino library file 1.2 KB
LIB WiFi.cppArduino library file 9.3 KB
LIB WiFi.hArduino library file 7.1 KB
LIB WiFiClient.cppArduino library file 4.4 KB
LIB WiFiClient.hArduino library file 2.4 KB
LIB WiFiClientSecure.hArduino library file 388 B
LIB WiFiEvents.cppArduino library file 5.1 KB
LIB WiFiMulti.hArduino library file 893 B
LIB WiFiServer.cppArduino library file 667 B
LIB WiFiServer.hArduino library file 1.3 KB
LIB WiFiType.hArduino library file 5.5 KB
LIB WiFiUdp.cppArduino library file 2.3 KB
LIB WiFiUdp.hArduino library file 1.8 KB
LIB library.propertiesArduino library file 468 B
WiFiNINA/2 files · 1.4 KB
src/1 file · 882 B
LIB WiFiNINA.hArduino library file 882 B
LIB library.propertiesArduino library file 530 B
WiFiS3/2 files · 1.2 KB
src/1 file · 791 B
LIB WiFiS3.hArduino library file 791 B
LIB library.propertiesArduino library file 487 B
Wire/13 files · 45.5 KB
examples/7 files · 8.5 KB
digital_potentiometer/1 file · 894 B
INO digital_potentiometer.inoArduino sketch 894 B
i2c_scanner/1 file · 2 KB
INO i2c_scanner.inoArduino sketch 2 KB
master_reader/1 file · 730 B
INO master_reader.inoArduino sketch 730 B
master_writer/1 file · 646 B
INO master_writer.inoArduino sketch 646 B
SFRRanger_reader/1 file · 2.6 KB
INO SFRRanger_reader.inoArduino sketch 2.6 KB
slave_receiver/1 file · 977 B
INO slave_receiver.inoArduino sketch 977 B
slave_sender/1 file · 702 B
INO slave_sender.inoArduino sketch 702 B
src/4 files · 36 KB
utility/2 files · 22.4 KB
LIB twi.cArduino library file 20.6 KB
LIB twi.hArduino library file 1.8 KB
LIB Wire.cppArduino library file 10.4 KB
LIB Wire.hArduino library file 3.2 KB
TXT keywords.txtText file 596 B
LIB library.propertiesArduino library file 406 B
variants/27 files · 174.2 KB
blackpill_f411/1 file · 7.7 KB
SRC pins_arduino.hSource file 7.7 KB
d1_mini/1 file · 5.9 KB
SRC pins_arduino.hSource file 5.9 KB
d1_r2/1 file · 6.4 KB
SRC pins_arduino.hSource file 6.4 KB
esp32c3_supermini/1 file · 5.3 KB
SRC pins_arduino.hSource file 5.3 KB
esp32c6_devkitc1/1 file · 5.7 KB
SRC pins_arduino.hSource file 5.7 KB
esp32s3_devkitc1/1 file · 7.7 KB
SRC pins_arduino.hSource file 7.7 KB
esp32_devkitc_v4/1 file · 6.4 KB
SRC pins_arduino.hSource file 6.4 KB
esp32_devkit_v1/1 file · 6.3 KB
SRC pins_arduino.hSource file 6.3 KB
lilygo_t_display_s3/1 file · 8.3 KB
SRC pins_arduino.hSource file 8.3 KB
lolin_s2_mini/1 file · 7.2 KB
SRC pins_arduino.hSource file 7.2 KB
mkr_wifi_1010/1 file · 6 KB
SRC pins_arduino.hSource file 6 KB
nano_33_iot/1 file · 6.1 KB
SRC pins_arduino.hSource file 6.1 KB
nano_esp32/1 file · 6.3 KB
SRC pins_arduino.hSource file 6.3 KB
nano_every/1 file · 6 KB
SRC pins_arduino.hSource file 6 KB
nano_rp2040_connect/1 file · 6.2 KB
SRC pins_arduino.hSource file 6.2 KB
nodemcu_v2/1 file · 6.1 KB
SRC pins_arduino.hSource file 6.1 KB
nodemcu_v3/1 file · 5.8 KB
SRC pins_arduino.hSource file 5.8 KB
nucleo_f401re/1 file · 7 KB
SRC pins_arduino.hSource file 7 KB
pico2_w/1 file · 6.6 KB
SRC pins_arduino.hSource file 6.6 KB
pico_w/1 file · 6.5 KB
SRC pins_arduino.hSource file 6.5 KB
ttgo_t_display/1 file · 7.7 KB
SRC pins_arduino.hSource file 7.7 KB
uno_q/1 file · 7.1 KB
SRC pins_arduino.hSource file 7.1 KB
uno_r4_minima/1 file · 5.8 KB
SRC pins_arduino.hSource file 5.8 KB
uno_r4_wifi/1 file · 5.9 KB
SRC pins_arduino.hSource file 5.9 KB
uno_wifi_rev2/1 file · 5.9 KB
SRC pins_arduino.hSource file 5.9 KB
wt32_eth01/1 file · 7 KB
SRC pins_arduino.hSource file 7 KB
xiao_esp32c3/1 file · 5.5 KB
SRC pins_arduino.hSource file 5.5 KB
TXT boards.txtText file 13.5 KB
TXT LICENSE-LGPL-2.1.txtText file 25.9 KB
TXT LICENSE-MIT.txtText file 1.3 KB
TXT platform.txtText file 8.5 KB
TXT README.txtText file 18.3 KB
Proteus Library Files/6 files · 281.9 KB
LIB TEPBMP280.LIBProteus library 73.9 KB
LIB TEPDS3231.LIBProteus library 68.9 KB
LIB TEPETHSHIELD2.LIBProteus library 33.8 KB
LIB TEPLAPTOP.LIBProteus library 39.5 KB
LIB TEPMOBILE.LIBProteus library 13.1 KB
LIB TEPNUCLEOF401RE.LIBProteus library 52.8 KB
Proteus Model Files/3 files · 3.3 MB
DLL TEPBMP280.DLLSimulation model 537 KB
DLL TEPDS3231.DLLSimulation model 321.5 KB
DLL TEPNET.DLLSimulation model 2.5 MB
Proteus Simulation/5 files · 3.5 MB
DSN Nucleo-Weather-Logger.pdsprjProteus simulation 34.4 KB
HEX Nucleo_Weather_Logger.hexCompiled HEX file 120.7 KB
DLL TEPBMP280.DLLSimulation model 537 KB
DLL TEPDS3231.DLLSimulation model 321.5 KB
DLL TEPNET.DLLSimulation model 2.5 MB
TXT README.txtText file 15.4 KB

README

README.txt 194 lines
STM32 NUCLEO-F401RE LIBRARY FOR PROTEUS - V1.0 (YOUR STM32F401 SKETCH, ARDUINO SHIELDS, A WEATHER DATA LOGGER)
Designed by The Engineering Projects
www.TheEngineeringProjects.com

IMPORTANT LINKS
Article (read it first - pictures, step by step, every feature explained):
  https://www.theengineeringprojects.com/2026/10/stm32-nucleo-f401re-library-for-proteus.html
Report a bug or suggest a feature (our forum):
  https://www.theengineeringprojects.com/forum/category/stm32-nucleo-f401re-proteus-library
The demo's parts are our libraries (included) - their articles:
  BMP280:              https://www.theengineeringprojects.com/2026/09/bmp280-proteus-library.html
  DS3231:              https://www.theengineeringprojects.com/2026/10/ds3231-rtc-module-library-for-proteus-v1-0.html
  Ethernet Shield 2:   https://www.theengineeringprojects.com/2026/10/arduino-ethernet-shield-2-library-for-proteus.html
  Laptop and phone:
    https://www.theengineeringprojects.com/2026/10/laptop-wifi-monitor-library-for-proteus.html
    https://www.theengineeringprojects.com/2026/10/mobile-wifi-monitor-library-for-proteus.html
Support us (the libraries are free):
  https://www.theengineeringprojects.com/donate

FILE STRUCTURE
STM32-Nucleo-F401RE-TEP-v1.0/
|-- Proteus Library Files/
|   |-- TEPBMP280.LIB                                    73.9 KB   the BMP280 (demo), to LIBRARY
|   |-- TEPDS3231.LIB                                    68.9 KB   the DS3231 clock (demo), to LIBRARY
|   |-- TEPETHSHIELD2.LIB                                33.8 KB   the Ethernet Shield 2 (demo), to LIBRARY
|   |-- TEPLAPTOP.LIB                                    39.5 KB   the laptop (demo), to LIBRARY
|   |-- TEPMOBILE.LIB                                    13.1 KB   the phone (demo), to LIBRARY
|   |-- TEPNUCLEOF401RE.LIB                              52.8 KB   the STM32 Nucleo-F401RE, to LIBRARY
|-- Proteus Model Files/
|   |-- TEPBMP280.DLL                                   537.0 KB   the BMP280, to MODELS
|   |-- TEPDS3231.DLL                                   321.5 KB   the DS3231 clock, to MODELS
|   |-- TEPNET.DLL                                       2.46 MB   the board + monitors + network, to MODELS
|-- Arduino Code/
|   |-- Nucleo_Weather_Logger/Nucleo_Weather_Logger.ino   11.5 KB   the demo sketch
|   |-- TEP Boards for Proteus/hardware/                724.5 KB   the Arduino IDE add-on 1.27.0 (168 files)
|-- Proteus Simulation/
|   |-- Nucleo_Weather_Logger.hex                       120.7 KB   the demo sketch (U1)
|   |-- Nucleo-Weather-Logger.pdsprj                     34.4 KB   the demo: a weather data logger
|   |-- TEPBMP280.DLL                                   537.0 KB   copy of the model
|   |-- TEPDS3231.DLL                                   321.5 KB   copy of the model
|   |-- TEPNET.DLL                                       2.46 MB   copy of the model
|-- README.txt                                          ~14.6 KB   this file
Total: 7.76 MB (unzipped). The source code of the models is not included.

WHAT IS IT?
Proteus 8 has no STM32F401 (ARM Cortex-M4) processor model, so this is NOT a real STM32. It is ST's NUCLEO-F401RE - the
white NUCLEO-64 board with the STM32F401RET6, the ST-LINK/V2-1 debugger on its break-off end (mini-USB, LD1 COM), the
blue USER button B1, the black RESET button B2, the green LD2 and the red LD3, the Arduino UNO R3 headers and the two
ST Morpho headers - that runs YOUR STM32 sketch in Proteus:
  * You write a normal Nucleo sketch with the Arduino pin numbers or the STM32 names of the header pins (D0 .. D15,
    A0 .. A5, PA5, PB8 ..., LED_BUILTIN = PA5, USER_BTN = PC13, Serial, Serial1, Wire, SPI, analogRead 0 .. 1023,
    analogWrite, attachInterrupt ...) and compile it in the Arduino IDE with our board package "TEP Boards for Proteus"
    1.27.0 (in Arduino Code - see INSTALLATION).
  * Inside the board, Proteus's own ATmega2560 model runs the compiled sketch at 16 MHz; our model (TEPNET.DLL) wraps
    it: the 22 Arduino header pins with their STM32 names, 3.3 V logic, analogRead on A0 .. A5 (0 .. 1023 for 0 ..
    3.3 V), B2 RESET, B1 USER (PC13 LOW while pressed), LD2 on PA5 (D13, lit when HIGH), LD3 (power) and the built-in
    serial monitor on the ST-LINK USB (Serial).
  * The Nucleo takes Arduino shields. The demo plugs our Arduino Ethernet Shield 2 on it: the W5500 on SPI puts the
    board on our virtual router TEP-WiFi with the Laptop and Mobile WiFi Monitors, and the shield's micro SD card keeps
    a log.
TEP additions: the mini-USB port opens the serial monitor; the LEDs glow in the simulation. There is no panel: the board
has no Wi-Fi.
Limits (say them before you start): 16 MHz, 8 KB of RAM (the real STM32F401: 84 MHz, 96 KB), 256 KB of flash; int is 16
bits (use long / int32_t for big numbers); only the Arduino header pins are modelled (the Morpho pins that are on no
Arduino header are drawn); the STM32's own peripherals (HAL, LL, the timers, DMA and the DSP instructions by register,
the RTC) are not there - write Arduino code, not registers. See MODEL SCOPE AND LIMITS.

ONE DEVICE (search "NUCLEO" or "STM32" in Pick Devices):
  STM32 NUCLEO-F401RE  "STM32 Nucleo-F401RE" V1.0 (Microprocessor ICs > STM32 Boards), prefix U, model TEPNET.DLL. The
  serial monitor (115200 baud) has Monitor, Plotter and Board tabs (the Board tab: the LEDs, B2, B1, every pin). Like
  every TEP window it has no Windows title bar.
The same TEPNET.DLL also runs our other sketch boards, the Ethernet Shield 2 and the Laptop / Mobile WiFi Monitors; it
replaces any older TEPNET.DLL (keep only this newest one in MODELS).

TEST STATUS
V1.0: verified in Proteus 8.5 on 26 Oct 2026 with the demo project as shipped. What the Proteus run showed:
* Nucleo-Weather-Logger: the monitor printed "BMP280 ready, DS3231 ready, SD card ready", "W5500: 192.168.1.90, link
  ON", "Page: http://192.168.1.90/", then "2026-03-21 08:00:00  25.0 C  1013.2 hPa  STEADY" every 2 s (the DS3231 set
  to 2026-03-21 08:00:00); LD3 on, LD2 lit by the SPI clock; LOG.CSV on the shield's card.
* The laptop (192.168.1.21) and the phone (192.168.1.41) opened http://192.168.1.90/ (HTTP 200).
* STORM on the BMP280's pop-up: "22.0 C  980.0 hPa  FALLING", ">> Pressure FALLING: rain or a storm on the way"; LOG
  on the laptop: the end of LOG.CSV; MARK on the phone: ">> Mark 1 at 2026-03-21 08:00:16 (the web page)"; SEA LEVEL:
  ">> Pressure STEADY", then ">> Pressure RISING: fair weather ahead".
* About 32 s of simulation in 218 s, with the three pop-ups, the monitor and both tools open; no errors.

INSTALLATION (about 3 minutes)
1. Close Proteus. Extract the WHOLE ZIP to a normal folder (e.g. Desktop).
2. Copy everything in "Proteus Library Files" to the LIBRARY folder of Proteus, for example:
     C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY
   (on some PCs: C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\LIBRARY). TEPNUCLEOF401RE.LIB is the
   board; the others are the demo's parts: TEPBMP280.LIB, TEPDS3231.LIB, TEPETHSHIELD2.LIB, TEPLAPTOP.LIB and
   TEPMOBILE.LIB.
3. Copy the DLLs from "Proteus Model Files" (TEPNET.DLL, TEPBMP280.DLL, TEPDS3231.DLL) to the MODELS folder (...\Proteus
   8 Professional\MODELS) - replace an older TEPNET.DLL (this one is the first that knows the Nucleo-F401RE).
4. Delete TEPNUCLEOF401RE.IDX from the LIBRARY folder if it is there.
5. The Arduino IDE (only to compile your own sketches - the demo has its HEX file): copy the folder
   "Arduino Code\TEP Boards for Proteus\hardware" into your sketchbook folder (normally Documents\Arduino), so that
   Documents\Arduino\hardware\tep\avr\boards.txt exists (replace an older copy); restart the IDE. The Arduino AVR Boards
   platform must be installed (it comes with IDE 1.8.x; in IDE 2.x install "Arduino AVR Boards" from the Boards Manager
   once). Tools > Board > TEP Boards for Proteus > STM32 Nucleo-F401RE (TEP Proteus). The demo also needs Ethernet, SD,
   Adafruit BMP280, Adafruit Unified Sensor, Adafruit BusIO and RTClib (Library Manager).
6. Start Proteus. In Pick Devices (P) search "NUCLEO".

RUN THE DEMO
Keep the .hex file and the DLLs beside the project in "Proteus Simulation".
Nucleo-Weather-Logger.pdsprj - U1 the Nucleo-F401RE (Nucleo_Weather_Logger.hex) is a barometer that keeps a diary:
U3 = the BMP280 (I2C address 0x76: SDO on GND, CSB on VCC for I2C) and U4 = the DS3231 clock (0x68) on one I2C bus (SDA
D14 / PB9, SCL D15 / PB8); U2 = the Arduino Ethernet Shield 2 on SPI (MOSI D11, MISO D12, SCK D13): its W5500 (CS D10,
the fixed address 192.168.1.90) and its micro SD card (CS D4, an empty card at Run). PC1 the Laptop WiFi Monitor and
MOB1 the Mobile WiFi Monitor open http://192.168.1.90/. The BMP280 and the DS3231 are the Advance versions: each opens
its pop-up window at Run, as the shield does.
Every 2 s the sketch reads the temperature and the pressure, stamps them with the DS3231's date and time (the demo
starts the clock at 2026-03-21 08:00:00: the DS3231's TIME property) and appends a line to LOG.CSV on the card:
date,time,temperature_c,pressure_hpa. The pressure trend compares the newest reading with the one 10 s before: more than
0.5 hPa up is RISING (fair weather ahead), down is FALLING (rain or a storm on the way), else STEADY - a real station
compares 3 hours, the demo is quicker. The blue USER button B1 (PC13) writes a MARK line into the log (an event); so do
the page's MARK link and the monitor's MARK command.
Press Run. The monitor prints the address and a line every 2 s. On the BMP280's pop-up click STORM: the pressure drops
and the monitor says ">> Pressure FALLING". LOG on the laptop shows the end of LOG.CSV; MARK on the phone; SEA LEVEL on
the BMP280: RISING.
The modules' supplies: in the demo the VCC of the BMP280, the DS3231 and the shield go to Proteus' power rail (power
terminals) - their models read the supply as a digital level, which the board's +3V3 and +5V (analog sources) do not
give them; on a real board the shield sits on the headers and the modules on +3V3. Closed the monitor? Click the
board's mini-USB port. The monitor (115200) takes STATUS, LOG, NEW, MARK, TIME YYYY-MM-DD HH:MM:SS and HELP.
LD2 is D13, SPI's clock: with the shield on the bus it flickers (on the real board too) - not a user LED any more.

THE PINS (the label on the board, the STM32 pin, what it can do in the simulation)
  D0 / D1            PA3 / PA2: GPIO, PWM, interrupt (on the real board Serial's lines to the ST-LINK)
  D2 / D8            PA10 / PA9: Serial1 RX / TX (USART1), GPIO
  D3 .. D7, D9       PB3, PB5, PB4, PB10, PA8, PC7: GPIO, PWM, interrupt
  D10 .. D13         PB6, PA7, PA6, PA5: SPI SS / MOSI / MISO / SCK, GPIO; D13 is also LD2
  D14 / D15          PB9 / PB8: Wire SDA / SCL (I2C), GPIO
  A0 .. A5           PA0, PA1, PA4, PB0, PC1, PC0: analogRead 0 .. 1023 for 0 .. 3.3 V, GPIO, PWM, interrupt
  RESET              B2 / NRST (LOW holds the board in reset)
  +3V3, +5V, IOREF   3.3 V (the logic), 5 V, 3.3 V;  GND  ground
  AVDD, VIN, NC      drawn, not modelled
B1 USER is PC13 (USER_BTN, LOW while pressed). Serial is the ST-LINK USB (the board's monitor), not D0 / D1. The pins
are 3.3 V logic.

PROPERTIES (double-click the board > Edit Properties)
  PROGRAM   the sketch's HEX (Arduino IDE: Sketch > Export Compiled Binary with STM32 Nucleo-F401RE (TEP Proteus))
  MONITOR   YES = the built-in serial monitor on the ST-LINK USB (Serial);  BAUD  its speed (115200, or AUTO)
  AUTOOPEN  YES = the monitor window opens at Run (the demo: YES)
One Nucleo per design (its USB serial lines and B1 are hidden pins, and Proteus joins hidden pins of the same name
across parts).

TROUBLESHOOTING
* Nothing happens at Run: the HEX was not built with TEP Boards for Proteus - select STM32 Nucleo-F401RE (TEP Proteus)
  and export the binary again.
* "BMP280 NOT FOUND": SDA on D14, SCL on D15, CSB on VCC (CSB LOW switches it to SPI), SDO on GND (0x76) or VCC (0x77).
* "NO SD CARD": the shield's SDCS on D4, its CS on D10 HIGH while SD.begin() runs (the demo sets both HIGH first); the
  shield's SDCARD property must not be NONE.
* "link OFF": the shield's CABLE property is OUT, or its VCC has no digital supply (the power terminal, as in the demo).
* The times show 2000-01-01: the DS3231's TIME is LOST or its BATTERY is OUT - set TIME (PC or a date) or send TIME.
* An integer goes wrong above 32767: int is 16 bits on the hidden AVR - use long.
* The page shows old values: tap REFRESH (the monitors do not reload by themselves).

BUG REPORTS AND FEATURE REQUESTS
Please post them in our forum with a screenshot and the Serial Monitor text:
  https://www.theengineeringprojects.com/forum/category/stm32-nucleo-f401re-proteus-library

LICENCES AND THIRD-PARTY NOTES
* The board model and the network (TEPNET.DLL, which also runs the Ethernet Shield 2), the symbols and artwork
  (TEPNUCLEOF401RE.LIB, TEPETHSHIELD2.LIB, TEPLAPTOP.LIB, TEPMOBILE.LIB) and the module models (TEPBMP280, TEPDS3231
  .LIB / .DLL) are made by The Engineering Projects. The board's processor is Proteus's own ATmega2560 model. The source
  code of the models is not included.
* TEP Boards for Proteus (Arduino Code): its core, the variants and the EEPROM, SPI and Wire libraries are modified
  copies of the Arduino AVR core 1.8.6 - GNU Lesser General Public License 2.1 (LGPL 2.1, the text:
  LICENSE-LGPL-2.1.txt); its other libraries and our core files are MIT (LICENSE-MIT.txt).
* The demo sketch uses Ethernet and SD (Arduino, LGPL / GPL), Adafruit BMP280, Adafruit Unified Sensor, Adafruit BusIO
  and RTClib (BSD / MIT / Apache) - install them in the Arduino IDE (Library Manager) to compile it; the .hex is
  included.
* Proteus is a product of Labcenter Electronics and is not included. STM32 and Nucleo are trademarks of
  STMicroelectronics. This library is not made or endorsed by STMicroelectronics or by Labcenter.

REBUILDING THE FIRMWARE (OPTIONAL)
The HEX file is supplied. Install TEP Boards for Proteus (INSTALLATION step 5) and the libraries, open Arduino
Code\Nucleo_Weather_Logger, select STM32 Nucleo-F401RE (TEP Proteus) and use Sketch > Export Compiled Binary. For a real
Nucleo-F401RE install "STM32 MCU based boards" (STM32duino) in the Boards Manager, select "Nucleo-64" with the board
part number "Nucleo F401RE" and upload over the ST-LINK (it shows up as a USB drive) - the same sketch.

MODEL SCOPE AND LIMITS
Modelled: the Nucleo's 22 Arduino header pins on a hidden ATmega2560 (Proteus's AVR model, 16 MHz, 3.3 V); digital I/O,
analogRead (A0 .. A5) 0 .. 1023 for 0 .. 3.3 V, PWM (analogWrite) and attachInterrupt on any pin through the board
model; B2 RESET, B1 USER on PC13, LD2 on PA5, LD3 (power); Serial (the ST-LINK USB, the board's monitor), Serial1 on D8
/ D2, Wire on D14 / D15 and SPI on D10 .. D13 (the AVR's hardware); Ethernet through a TEP Ethernet Shield 2 or W5500
module. Not modelled: the STM32F401 itself (84 MHz, 96 KB RAM, the FPU and DSP, HAL / LL, its timers, DMA, the RTC, USB
OTG), the Morpho pins that are on no Arduino header, the ST-LINK (LD1 COM, CN2, SWD: drawn), JP5 and the solder bridges.
The ST-LINK's mass-storage upload is not used (Proteus loads the HEX). The simulation runs below real time.

VERSION
TEP STM32 Nucleo-F401RE library V1.0 (Oct 2026). Device STM32 NUCLEO-F401RE (TEPNUCLEOF401RE.LIB / TEPNET.DLL), TEP
Boards for Proteus 1.27.0 (adds the Nucleo-F401RE). Demo sketch Nucleo_Weather_Logger V1.0. Demo parts: BMP280 and
DS3231 (the Advance versions), ARDUINO ETHERNET SHIELD 2 W5500, LAPTOP WIFI MONITOR and MOBILE WIFI MONITOR.
Advertisement

Development1 release

  1. V1.0STM32 Nucleo-F401RE Library for Proteus V1.0this page

    V1.0 is the only release in the Download Center so far. When a newer version is published, it appears above with its own download page.

Installation10 steps

From the download to a working project, in order. The steps follow what the package contains.

You will need

  • Proteus Design SuiteProteus 8 or newer (Labcenter), on Windows
  • Arduino IDE1.8 or 2.x, with the board of the tutorial chosen under Tools → Board
  • The compiler named in the tutorialto build the source files into firmware
  • Any archive toolWindows, macOS and Linux extract ZIP files on their own

Steps

  1. 1

    Extract the archive

    Right-click stm32-nucleo-f401re-tep-v1-0-a9e5175e5a3a4535a6eb68c0a6a38b30.zip and choose Extract All (or open it with 7-Zip or WinRAR) into a folder you can find again. Keep its folder structure (STM32-Nucleo-F401RE-TEP-v1.0) as it is.

  2. 2

    Copy the library files into Proteus

    Move TEPBMP280.LIB, TEPDS3231.LIB and TEPETHSHIELD2.LIB and 3 more and the files into the LIBRARY folder of your Proteus installation: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY for Proteus 8, or the matching Proteus 7 folder. Older versions keep it under ProgramData\Labcenter Electronics. If Proteus is open, close it first.

  3. 3

    Add the simulation model

    Copy TEPBMP280.DLL, TEPDS3231.DLL and TEPNET.DLL into the MODELS folder next to LIBRARY, so the component can run, not only be drawn.

  4. 4

    Restart Proteus and place the component

    Start Proteus, open a schematic, press P (Pick Devices) and search for the component by the name used in the tutorial. It appears with its pins ready to wire.

  5. 5

    Install the Arduino library

    In the Arduino IDE choose Sketch → Include Library → Add .ZIP Library and pick the library, or copy its folder into Documents\Arduino\libraries. Restart the IDE to see its examples.

  6. 6

    Open the sketch in the Arduino IDE

    Open Nucleo_Weather_Logger.ino, eeprom_clear.ino and eeprom_crc.ino and 15 more, select your board and port under Tools, then Verify. Sketch → Export Compiled Binary writes the HEX file a simulation needs.

  7. 7

    Build the source code

    Open abi.cpp, Arduino.h and binary.h and 49 more in the compiler named in the tutorial (MikroC, Keil, MPLAB, Code Composer or the Arduino IDE) and build it to get the firmware.

  8. 8

    Load the HEX file

    In Proteus double-click the microcontroller, set Program File to Nucleo_Weather_Logger.hex and run the simulation. For real hardware, flash the same file with your programmer.

  9. 9

    Open the example simulation

    Open Nucleo-Weather-Logger.pdsprj in Proteus to see the wiring exactly as in the tutorial. Check the controller's Program File path, then press Play.

  10. 10

    Follow the tutorial

    STM32 Nucleo-F401RE Library for Proteus: BMP280 Data Logger explains every connection and setting in order; keep it open beside the files while you build.

How to add a library in Proteus 8

FAQs9 questionsContact TEP

How do I download STM32 Nucleo-F401RE Library for Proteus V1.0?

Wait for the 30-second guest countdown on this page, then press the download button; the file comes straight from our storage. Members who are logged in skip the wait. If the browser opens the file instead of saving it, use its Save as option. The download link is made for you when the countdown ends and works for 15 minutes; a saved or shared link stops working, so share this page instead.

What is inside the archive?

STM32 Nucleo-F401RE Library for Proteus V1.0 comes as a ZIP archive of 184 files (3.5 MB, 7.8 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch, an Arduino library, compiled HEX firmware and source code. Open the File Structure tab for the full list of 184 files.

What should I do if the download does not start?

Check the browser's download list first; an ad blocker or a company firewall can also hold it back, so try another browser or network. If the file arrives incomplete, download it again. For an installation problem, read the Install tab or tell us in the comments with your software version and the exact error message.

Is this file free?

Yes. Every file in the TEP Download Center is free for learning, personal and student projects. If you share it, link back to this page or the tutorial so others find the latest version.

How do I check that the file arrived complete?

Compare its SHA-256 with the one on this page, dcfc82156c53592fff9806a88e5e79bb1378136340cfb9d807524be0b0754d17. In PowerShell run Get-FileHash "stm32-nucleo-f401re-tep-v1-0-a9e5175e5a3a4535a6eb68c0a6a38b30.zip"; on macOS or Linux run shasum -a 256 "stm32-nucleo-f401re-tep-v1-0-a9e5175e5a3a4535a6eb68c0a6a38b30.zip". The same value means the file is exactly the one in our storage; a different one means the download broke off, so download it again.

Do I need WinRAR to open the ZIP file?

No. Windows, macOS and Linux open ZIP archives on their own (Extract All, or double-click). WinRAR and 7-Zip work too. Extract the whole archive before using the files.

Where do I put the LIB and IDX files?

Both files go into the LIBRARY folder of your Proteus installation (Proteus 8: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY; Proteus 7 has the same folder under its own name). Restart Proteus afterwards and search for the component with P.

Which Proteus version does the library need?

The tutorial names the Proteus version the library was made and tested with. Most TEP libraries work in Proteus 7 and Proteus 8; if the component does not appear after a restart, check that both the LIB and the IDX file were copied and that Proteus was fully closed while copying.

How do I get the HEX file into the simulation?

Compile the sketch in the Arduino IDE (Sketch → Export Compiled Binary gives you the HEX next to the sketch), then in Proteus double-click the board, set Program File to that HEX and run.

preparing · stm32-nucleo-f401re-tep-v1-0-a9e5175e5a3a4535a6eb68c0a6a38b30.zip
Rating
Your download will be ready shortly
Preparing your download…

Members skip the wait. Log in or join TEP.

  • 0Total downloads
  • 4%Popularity
  • ProteusCategory
  • 0Comments
  • ssyedzainnasirUploaded by
  • 27 Oct 2026Uploaded at
Last 14 days0 downloads
SHA-256 dcfc82156c53592fff9806a88e5e79bb1378136340cfb9d807524be0b0754d17
DocumentationSTM32 Nucleo-F401RE Library for Proteus: BMP280 Data Logger
Need help with this file? Bug report Ask a question Download problemsGet updates
Advertisement

Comments

0

Join the conversation

Start the conversationAsk a question or share how you used this download.