Skip to content

Firmware

1060 words Estimated reading time 4 minutes

The firmware for System RED and BLUE can be downloaded here.

Downloads

Firmware 10.0b2 (2024-01-18) - Beta firmware

Download: BLUE RED

  • show system type in header instead of "PCB"
  • prepared for BLUE-Mini development
  • fix: prevent saving settings during firmware download
  • fix: no output over USB after entering debug mode via button on startup
  • fix: crash on enabling USB-VCOM on RED
  • fix: LED/Buzzer IP signaling now does 10 ticks for digit "0"
Firmware 10.0b1 (2024-01-11) - Beta firmware

Download: BLUE RED

  • new: encryption with AES-GCM and privacy options for signal packets
  • new: automatic firmware download and install
  • new: check signature of firmware
  • new: buzzer volume settings for ticks/beeps
  • new: option to disable webserver (i.e. for setups in foreign networks)
  • new: more privacy: do not send processor id, station id and position in signals to servers by default
  • new: sending signals without gps and/or just high precision counter value (on server request for GPSless TOA)
  • new: added Beidou GNSS option
  • new: support more GPS baudrates on BLUE
  • new: show CPU type and revision
  • new: support for ublox MAX-M10 GNSS module
  • new: ECDHE key exchange for remote config (enabling perfect forward secrecy)
  • fix: limited MTU to 1480 max
  • fix: not showing Galileo satellites due to missing ublox init
  • fix: warm start ublox GPS when firmware version can not be read
  • fix: SSI overflows on GPS status webpage
  • fix: compress packet only once for all servers
  • fix: stall on startup when network is up too fast (static config)
  • fix: sometimes not showing cert information in SSL debug messages
  • fix: weak encryption due to wrong random number generator configuration
  • updated lwip to 2.2.0
  • updated mbedtls to 2.28.6
  • updated CMSIS-DSP to 1.15.0
  • switched to arm-gnu-toolchain-13.2.rel1
  • lots of minor improvements and bugfixes
Firmware 9.5b1 (2023-03-21) - Beta firmware

Download: BLUE RED

  • new: TLS/HTTPS support for remote config (mbedtls 2.28.2)
  • new: switch to pre defined computing server in case remote config server is not available
  • changed remote config URLs for usage with own CA authority
  • lowered memory usage for webserver to lower risk of blank web pages
  • lowered memory usage for http client
  • show correct date on GPS modules with rollover bug for the next 19 years
  • fix: wrong quoting in status json
  • fix: show PCB 19.0 on RED stations with bad soldered PCB
  • fix: web status bar didn't show all errors
Firmware 9.4 (2022-11-12)

Download: BLUE RED

  • fix: memory leaks (by gerbold)
  • fix: GPS failure on low ADC sample rates
  • fix: crash on buzzer playing amp sounds but beeps are off
  • fix: detect lazy network errors and reset hardware
  • memory debugging (by gerbold)
  • changed compiler optimization to reduce flash file size
  • upgrade to newest lwip 2.1.3
  • upgrade to newest STM32F4 std peripherals library
  • switched to arm-gnu-toolchain-11.3.rel1
Full changelog
CHANGELOG.txt
Changelog
=========

Changes in Firmware for Blitzortung.org RED/BLUE controller. Not all changes/fixes are listed here.


10.0b2 (2024-01-18)
-------------------

 * show system type in header instead of "PCB"
 * prepared for BLUE-Mini development
 * fix: prevent saving settings during firmware download
 * fix: no output over USB after entering debug mode via button on startup
 * fix: crash on enabling USB-VCOM on RED
 * fix: LED/Buzzer IP signaling now does 10 ticks for digit "0"


10.0b1 (2024-01-11)
-------------------

* new: encryption with AES-GCM and privacy options for signal packets
* new: automatic firmware download and install
* new: check signature of firmware
* new: buzzer volume settings for ticks/beeps
* new: signaling last number of IP via buzzer/LED
* new: option to disable webserver (i.e. for setups in foreign networks)
* new: more privacy: do not send processor id, station id and position in signals to servers by default
* new: sending signals without gps and/or just high precision counter value (on server request for GPSless TOA)
* new: added Beidou GNSS option
* new: support more GPS baudrates on BLUE
* new: show CPU type and revision
* new: support for ublox MAX-M10 GNSS module
* new: ECDHE key exchange for remote config (enabling perfect forward secrecy)
* fix: limited MTU to 1480 max
* fix: not showing Galileo satellites due to missing ublox init
* fix: warm start ublox GPS when firmware version can not be read
* fix: SSI overflows on GPS status webpage
* fix: compress packet only once for all servers
* fix: stall on startup when network is up too fast (static config)
* fix: sometimes not showing cert information in SSL debug messages
* fix: weak encryption due to wrong random number generator configuration
* updated lwip to 2.2.0
* updated mbedtls to 2.28.6
* updated CMSIS-DSP to 1.15.0
* switched to arm-gnu-toolchain-13.2.rel1
* changed compiler optimization from -O2 to -Os to reduce size
* lots of minor improvements and bugfixes


9.5b1 (2023-03-21)
------------------

* new: TLS/HTTPS support for remote config (mbedtls 2.28.2)
* new: switch to pre defined computing server in case remote config server is not available
* changed remote config URLs for usage with own CA authority
* lowered memory usage for webserver to lower risk of blank web pages
* lowered memory usage for http client
* show correct date on GPS modules with rollover bug for the next 19 years
* fix: wrong quoting in status json
* fix: show PCB 19.0 on RED stations with bad soldered PCB
* fix: web status bar didn't show all errors


9.4 (2022-11-12)
----------------

* fix: memory leaks (by gerbold)
* fix: GPS failure on low ADC sample rates
* fix: crash on buzzer playing amp sounds but beeps are off
* fix: detect lazy network errors and reset hardware
* memory debugging (by gerbold)
* changed compiler optimization to reduce flash file size
* upgrade to newest lwip 2.1.3
* upgrade to newest STM32F4 std peripherals library 
* switched to arm-gnu-toolchain-11.3.rel1


9.3 (2022-11-04)
----------------

* Version change to 9.3


9.3-b2 (2022-11-03)
-------------------

* code cleanup 
* remove BETA from alerts
* fix: completely removed GPS year checking
* fix: removed wrong check on guest access
* fix: no reboot with Tools -> Reboot

  Special thanks to gerbold for the help!


9.2 (2018-12-31)
----------------

* new: added HTTP proxy option for remote control
* new: rebooting via HTTP works now even when there's no memory left (..&action=do_reboot)
* new: prepared for sending noise signals to server
* new: debugging option for 1PPS counter
* fix: lowered memory usage for remote control requests
* due to space limitations, jquery and jqplot isn't included in firmware anymore and will be loaded from the web (RED)


9.1 (2018-08-08)
----------------

* send some more status information about each signal to server
* fix: sending control requests too often
* fix: out of memory when sending too much channels to signal plot
* fix: showed too high PCB version
* switched to GCC ARM Embedded 7 2018 q2 toolchain


9.0 (2018-06-09)
----------------

* new: support of PCB 19.5
* new: basic support of UBX message format for u-blox MAX-M8W GNSS module
* fix: messages on status page disappeared after one second  
* fix: limit frequencies for hardware filter to ~300kHz
* fix: init tracker settings after switching modes


9.0b1 (2018-05-13)
------------------

* new: DSP for checking/filtering signals (not functional yet)
* new: added option to correct the offset in the graph
* new: option to send debug log to a syslog server IP address (UDP) 
* new: support of u-blox module MAX-M8W (GNSS/SBAS-settings and reset-commands not working yet)
* improved(?) GNSS init process
* removed debug code and improved data structures to reduce memory usage (RAM and firmware size)
* lowered amount of data to reload status page
* reduced stack size
* fix: workaround for USB-VCOM not working on PCB 19.4 in case VBUS solder bridge is not closed (BLUE)
* fix: don't update existing server IP with empty IP address "0.0.0.0"
* fix: remote setting of sample rate not working
* fix: sending UDP packets to multiple servers
* fix: no automatic gain changes for RED amplifiers in certain situation 
* fix: timer in debug log twice as fast than normal


8.4 (2018-01-17)
----------------

* new: mouseover for satellites
* fix: try to initialize amplifier more often after reboot (RED)


8.4b5 (2018-01-07)
------------------

* new: added cpu info in status json file
* fix: also read GNSS data from GNGSA message


8.4b4 (2018-01-06)
------------------

* new: ability to send noise data to servers
* new: logo animation (click to disable) ;-)
* change: "00:00" isn't a valid reboot time any more (leave it disabled or use another random time)
* improve: faster startup time
* improve: amplitude filters with higher resolution (64 slots instead of 32)
* fix: watchdog will be disabled in rare cases -> enable watchdog periodically (again)
* fix: missing last byte in compressed UDP packets
* fix: buzzer ticks on every consecutive signals instead of every 20th
* fix: don't apply user gain level in auto-adaption (i.e. on startup), just use them as max. allowed gain
* fix: DHCP was not always assigned when "link up" condition was missing on startup due to race condition
* fix: DHCP was not assigned when same static IP was used as fallback
* fix: DHCP timeout due to disabled system timer for some seconds during startup 
* fix: voltage/PPS sampling resulted in unexpected behavior and hard faults due to developers stupidity
* fix: don't display usless unknown GPS sentences
* fix: auto refresh of status page did stop when controller ran out of memory 
* several minor fixes (debug messages etc.)
* switched to GCC ARM Embedded 7 2017 q4 toolchain


8.4b3 (2017-12-06)
------------------

* fix: static IP settings not working in last firmware


8.4b2 (2017-12-06)
------------------

* flash "Fault LED" when signal couldn't be sent due to network or GPS error
* improved and cleaned up DHCP and network stuff
* show GALILEO satellites with "G" in overview
* also show "Unsaved settings..." dialog on "Status" and "Signals" page
* enabled some DHCP debugging (BLUE only)


8.4b1 (2017-12-03)
------------------

* new: added GLONASS support (experimental!) [BLUE]
* changed to new logo
* fix: correct hiding of "save to flash and reboot message"
* improved: USB <-> GPS module passthrough
* upgraded lwip to version 2.0.x (needs testing!)


8.3 (2017-11-14)
------------------

* new: support of PCB 19.4
* new: added experimental support for GALILEO (firmware update of GNSS-module needed) [BLUE]
* new: GNSS data pass-through via USB (no fw update possible)  
* added some more checks for AD converters
* fix: integer overflow of "bytes sent" values
* fix: applied patch on lwip which fixes DHCP issues (untested)
* switched to GCC ARM Embedded 6 2017 q2 toolchain


8.3b2 (2016-10-03)
------------------

* slightly raised some network buffers
* fix: crash when no crash occured before reset


8.3b1 (2016-10-03)
------------------

Note: Firmware for BLUE has some additional debugging code in this version. A minor performace drop is possible. RED firmware is not affected due to size limitations. 

* new: browse last signals in signal view
* new: button for entering DFU mode over web-interface
* new: option for silent reboot on hardfault
* new: send call stack on errors [BLUE]
* change: automatic reboot just before firmware flashing
* fix: added correct text to button description in "guide" [BLUE]
* fix: removed memory leak in signal view javascript
* fix: repaired anti-ADC-watchdog-lock-watchdog from FW 8.2
* fix: HTTP-client sometimes used wrong port number to connect
* fix: wrong MD5 checksum of firmware when flashed external 
* switched to GCC ARM Embedded 5.4 2016q3 toolchain


8.2 (2016-09-28)
------------------

* fix: reset ADC watchdog interrupt when watchdog-flag is set for two seconds 
* fix: out of memory when sending to more than one region
* fix: memory allocation errors related to network stack


8.1 (2016-09-23)
----------------

* fix: improvements for hard fault crashes and some more debug information
* fix: workaround/test for possible crashes on some specific stations


8.1b1 (2016-08-29)
------------------

* fix: restart ADC-watchdog after offset refresh


8.0 (2016-08-24)
----------------

* support for PCB 19.3
* additional remote debug information in specific hard fault situations
* refresh offset error more often 
* fix: ignoring GPS messages from QZSS satellite
* fix: port number was ignored for http-requests
* fix: firmware upload under linux failed due to timeouts
* fix: use helvetia as fallback for arial on web-interface
* fix: hide analogue user input when not available [BLUE]
* fix: sometimes no restart or crash after firmware update


8.0b5 (2016-06-08)
------------------

* filter settings visible when solder bridge J0 closed [BLUE]
* description for input selection instead of input numbers [BLUE]
* sending information about inputs and filters to computing server [BLUE]
* minor changes in server urls for remote config
* lowered max opened and listening tcp connection
* factory settings/debug mode with BOOT1 button: press and hold for 2s/10s just after reset [BLUE]
* fix: raised stack memory size and added collision check
* fix: network LED stayed off after blinking, even when status is good [BLUE]
* fix (maybe): threshold/signal detection stopped after some when time in manual mode w/o noise adaption 
* fix: minor issue that click on Firmware Update button had no effect
* switched to GCC ARM Embedded 5.3 2016q1 toolchain


8.0b4 (2016-04-05)
------------------

* re-added debug output via USB connector [BLUE]
* blue LED now blinks every second to show good GPS [BLUE]
* static gain information of onboard amps modified (not the final value) [BLUE]
* fix: no sampling after startup in case all thresholds are default values (120mV) [BLUE]


8.0b3 (2016-04-03)
------------------

* final changes regarding PCB 19.1 [BLUE]
* try to test whether on-board amplifier is "connected" by raising gains to maximum [BLUE/dev]
* less CPU usage when playing signals through buzzer
* not so much beeping on GPS error
* fix: disabling LEDs by LCD sleep resulted in broken LCD and amplifier1 communication [RED] or other disabled pins [BLUE/dev]
* fix: after firmware flash update procedure, the reset was broken
* fix: infinitife loop in rare cases due to non-initialized debug UART DMA
* fix: button has to be released after reset to factory settings to prevent too much writes to flash on boards without button
* fix: display stays dark with factory settings [RED]
* fix: network performance problems with on board MAC due to DMA buffer underflow handling [dev]

Not fixed yet: Loosing amplifiers (RED only so far) and sudden reboots. 


8.0b2 (2016-02-14)
------------------

* added basic signal wave generator for testing amplifier [BLUE] 
* improved sampling of external voltages/1pps and added more channel(s)
* show only usable channels on amplifier to buzzer output
* no more automatic reboot at 00:00 by default
* added possibility to completely disable amplifier channel
* changed behaviour of LEDs [BLUE]
* enabled button [BLUE/dev]
* added more channels colors to the LCD display [dev]
* manual change of link speed (not working yet) [dev]
* use interrupt instead of polling for Ethernet [dev]
* fix: don't show username to guests
* fix: sometimes corrupted data due to encoding
* fix: transmitted non-encoded data with wrong channel number
* fix: calculated sample rate had minor deviations
* fix: amplifier sometimes doesn't get recognized after reconnect 
* fix: static IPs not working / sometimes crash when releasing DHCP
* fix: some memory allocation bugs
* fix: wrong ADC <-> amplifier channel assignment / restart ADC in case of failure
* fix: handle ADC overrun condition
* switched to GCC ARM Embedded 5.2 2015q4 toolchain (-> smaller firmware size)

--> reached over 40000 lines of own code - aaargh... :-/


8.0b1 (2016-01-24)
------------------

Note: Due to minor changes in the settings structure, some (or all) settings have been set to defaults.
Please check your configuration! 

Note: System RED and BLUE share the same code base. If there are specific changes for just one
system, then it will be noted in the changelog entry.

* new: added support of BLUE final and development PCBs, which includes:
  - MEDIATEK MT3333 GPS chipset
  - gain and input changes of op amps through SPI
  - clock output for low pass filter ICs
  - more LEDs
  - STM32F42x CPU-Line [dev]
  - Ethernet through integrated MAC [dev]
  - ILI9341 TFT display [dev]
  - Reading touch screen values through STM32 ADCs [dev]
* new: direct adjusting sampling frequency through timer
* new: compression of UDP packets (lzfx)
* new: delta encoding of channel 
* new: non-lossless encoding of channel data by cutting out noise
* new favicon depending on system
* fix: uploading firmware fails occacionally
* improvement: lots of general changes "under the hood"
* improvement: minor style changes in the signal graph
* lots of bugfixes


7.4 (2014-08-17)
------------------

* minified css/js files
* fix: IE gets confused by .gz file ending --> use normal file ending


7.3 (2014-08-16)
------------------

* added information about current mode and some color to the status page


7.3b1 (2014-08-09)
------------------

* GPS: added availability value in web interface
* NET: added MTU config option
* change outgoing UDP port every 5 minutes
* changed Google Maps link to ".com"
* fix: prevent sending accidentaly triggered signals 
* fix: small bug in action numbering
* fix: lower browser memory usage for status page


7.2 (2014-07-13)
----------------

* TOA-ALERTS: general improvements
* fix: problem with remote control of filter


7.1 (2014-07-04)
----------------

* TOA-ALERTS: general improvements
* fix: memory leak in action URL call


7.0 (2014-06-29)
----------------

* show hint when amp 12 is on input 2 or amp 13 is on input 1
* AS3935: minor fixes, automatic calibraton checks
* fix: filter and adaption disable option per channel couldn't be disabled 
* fix: possible memory leak in actions
* fix: remote control messages


7.0b5 (2014-05-18)
------------------

BETA release!

* fix: auto gain adjustment sometimes stalled
* AS3935: several minor changes in error handling


7.0b4 (2014-05-11)
------------------

BETA release!

* AS3935: raised IRQ level
* improvments regarding remote control


7.0b3 (2014-04-23)
------------------

BETA release!

* NEW: sampling of 5V power supply with rate of 8.5MSps
* raised thresholds for auto amplitude filters a lot to prevent loosing too much signals
* fix: no more mysterious gain changes (introduced in 7.0b1) 
* fix: raised max. length of action URL again


7.0b2 (2014-04-20)
------------------

BETA release!

* added filter debug checkbox
* show filters for each channel in signal view
* reset network hardware if remote config connection fails too often
* fix: urlencode strings in user URLs
* fix: load user gains/threshold on disabling auto adapt feature


7.0b1 (2014-04-18)
------------------

BETA release!

* NEW: Filter by occurence of max. amplitudes in signals
* NEW: LEDs can be switched off when LCD dimmed
* improved support for new E-field amplifier
* improvements in some other filters
* noise adaption can be disabled for single channels
* some improvents in noise adaption
* force lower gain, if to high/low voltage (noise) affects ADC accuracy
* support manufacturer GNS as GPS device
* fix: GPS data sync bug
* fix: raised max. length of URL 
* fix: noise adaption stuck in gain 2*2
* fix: minor LCD distortions
* switched to GCC ARM Embedded 4.8 2014q1 toolchain


6.8 (2014-03-13)
----------------

* AS3935: added URL parameters: strokes_all, disturbers_all, events
* minor changes in communication with amplifier
* fix: memory leak when too much HTTP ressources needed
* fix: enabling potentiometer through LCD working again


6.7 (2014-03-02)
----------------

* WEB: responsive design for smartphones (beta!)
* WEB: added station id in head - click to show it in the title
* removed antenna selection and information
* raised some network resources and lowered memory consumption
* fix: connection issues with HTTP control in combination with some routers/firewalls (thx to Don)
* fix: noise adaptation not working when threshold is zero (in automatic mode)
* fix: plot and satellite not showing just after firmware update
* fix: clarified the "Pending..." message after firmware upload and auto refresh of the page
* fix: no more log out after firmware upload when auth is enabled


6.6 (2014-02-20)
----------------

* WEB: show link to changelog when new FW available
* WEB: show NTP request count
* WEB: some style changes
* WEB: seconds converted to days/hours/minutes
* no-connection reboot/timeout set to 2 hours 
* fix: web alert sounds
* fix: memory curruption on boot caused by alert settings
* fix: stack curruption due to AS3935 actions (!)
* fix: ADC hangs on re-init


6.5 (2014-02-16)
----------------

Note: Firmware update via web-interface had some strange bugs in 6.3/6.4 ! 
Chance is high, that it won't work. If upload fails (you won't see a warning message), then
you must save your settings again. Otherwise they are lost on the next reboot!

* NEW: StratumOne NTP time-server (not as accurate as similar products due to hardware restrictions) 
* ALERTS: settings always visible, even when server is not capable for it
* AS3935: Tune capacitor value can be manually adjusted
* ACTIONS: more parameters added to the URL depending on calling peripheral
* ACTIONS: can be called by URL now 
* ACTIONS: added status on main page 
* WEB/ACTIONS: alert sounds through browser on action (toggle by clicking on name in status, saved in a cookie)
* WEB: changed method of loading javascripts (one big file instead of several small ones)
* WEB: menu instead of dropdown-box on settings page
* fix: no more gain changes by noise adaptation when amplifier potentiometer is enabled
* fix: hardened web-based firmware update, so that it retries on flash write error (and does not stop as it was before)


6.4 (2014-01-22)
----------------

* new map of GPS satellite constellation
* fix for fix for problems with negative smoothed GPS coordinates after boot (sorry again)
* other minor fixes


6.3 (2014-01-20)
----------------

* some changes on auto noise adaptation
* fix: web-interface firmware update repaired and implemented some function to warn developer when not working ;-)
* fix: problems with negative smoothed GPS coordinates after boot (sorry region 2+3)


6.2 (2014-01-19)
----------------

* improved auto adapt to noise level adjustment (shared channel support, remote configurable)
* I2C: frequency can be changed
* fix: don't display "STR" when no alerts are enabled and AS3935 is not present
* fix: auto-config stays in interference mode when noise level was too high 
* fix: minor signal display issues


6.1 (2014-01-12)
----------------

* NEW: automatic gain/threshold <-> noise level adjustment (very beta!)
* WEB: minor improvments on signal view
* WEB: message when firmware update check fails
* LOG: Enable USB-Virtual-COM-Port when pressing blue button before booting 
* SYS: faster boot, but show boot screen for some seconds
* AS3935: don't create new event when no lightning has been detected
* fix: on multiple alert events, call action with highest priority only (for TOA and AS3935)
* fix: bug, which caused too high CPU usage
* fix: wait some time before reset GPS smoothing
* fix: memory leak in webserver



6.0 (2014-01-05)
----------------

NOTE: Due to minor changes in the settings structure, some settings have been set to defaults.
Please check your configuration or reset them to defaults. 


Major changes and improvements:

* NEW: ACTIONS and lightning ALERTS - individual combinations of TOA-lightning, AS3935, I/Os and buzzer sounds :-)
* WEB: open parts of webpages in a separate popup window
* WEB: live plot with received/sent signals on status page
* TRACKER: filter out spikes caused by digital signals the controller hardware (lower thresholds possible)
* TRACKER: record noise level of 10 times per second (can be displayed in signal view)
* TRACKER: prevent overlap of two consecutive signals (up to 50% overlapping before)
* ADC: Alternate channel mapping when two amps connected: use same threshold for whole amplifier instead of same channel of both amplifiers 
* LOG: Option to use micro-USB-jack as virtual COM-port to see debug output (very beta!)
* AS3935: nicer display of events in web-interface


Minor changes, improvments and fixes:

* WEB: signal rate in title
* WEB: using dynamic memory for webpage contents
* WEB: slightly darker fonts on the web-interface
* WEB: improved data transmission signal view: can now be used on more than one device at the same time
* WEB: thresholds in graph
* AMP: Option for a channel, so that it won't be transmitted to servers (for experiments) 
* SYS: Option to reboot once per day at given time
* SYS: Option for CPU sleep mode, which saves up to 40mA@3V (CPU usage calculation doesn't work with it)
* SYS: Option for voltage check toggle, for those who have problems here
* SYS: Option for flash prefetch toggle, which eliminating some (very low) noise in ADCs 
* SYS: Check whether uploaded FW is equal to running firmware
* LCD: Option to disable LCD page looping: page will stay on user selected one (and return there after an event)
* BUZZER: different way of playing sounds (unfortunately deep beep is not as loud as before)
* LOG: introduced console-commands: r=reboot, m=free dynamic mem, s=show memory content
* LOG: logging debug output via UDP (like good old tracker XT; enabled by server)
* GPS: smooth values stay after reset (using backup SRAM)
* GPS: faster availability of GPS after reboot
* AS3935: sending events to server via remote config
* AS3935: auto noise floor adjustemnt
* USER-I/O: added high-impedance output option
* NET: (maybe bugfix) reset network when no ingoing packet for some time
* fix: don't touch USER-I/O when not enabled (may solve issue with buzzer)
* fix: several bugs on AS3935 and USER-I/O functions
* switched to GCC ARM Embedded 4.8 2013q4 toolchain (-> smaller binary on the same optimization level)



5.0 (2013-12-01)
----------------

* NEW: 1PPS-sampling with 8.4MSps to check timings and 1PPS quality
* NEW: Live status display in web-interface
* NEW: Possibility to connect AS3935 lightning sensor via I2C (experts only)
* NEW: I/Os for own purposes (experts only !!!)
* minor changes in networking
* supports PCB-Id 2 (10.4)
* minor layout changes
* fix: reset ENC28J60 on error and no more ENC28J60 interrupt on error (fixes high CPU usage)
* fix: signal page timeout detection on refresh
* fix: some values on http remote config weren't updated


4.5 (2013-10-06)
----------------

* reboot when no http-connection or no valid information got over remote config
* improved GPS smoothing behavior and lowered tolerance
* LCD can be rotated by 180 degrees
* fix: memory not freed when control connection could not be established
* fix: some more memory leaks closed
* fix: no more init loops for non Mediatek GPS modules 
* fix: DHCP renew works now
* fix: blue LED forgets blinking on some 1PPS pulses
* updated to GCC ARM Embedded 4.7 2013q3 toolchain


4.4 (2013-09-15)
----------------

* buzzer signal output settings can be saved to flash now
* GPS individual command text field
* GPS PA6H init enables AIC and disables EASY (see PA6H datasheet for more info)
* signal view: settings saved in cookies
* fix: don't show valid uploaded firmware when it's no more available in flash


4.3 (2013-09-12)
----------------

* volume changes for signal pass-through
* fix: controller-id scrambled on LCD on station setup
* fix: faster update of signal times in LCD


4.2 (2013-09-12)
----------------

* fix: firmware upload works now in Chrome 
* fix: GPS improvements, EM406 should work now


4.1 (2013-09-10)
----------------

* Amplifier -> Buzzer output improved! Hear stroke discharges during normal operation :-)
* CPU-Load estimation
* Show save-button when unsaved settings exist 
* LCD boot image
* added a small guide in under "About"
* several small improvements and bugfixes


4.0 (2013-09-03)
----------------

* NEW: Firmware-Update with browser
* NEW: LCD-Driver by Roland (some fine-tuning needed)
* NEW: filter signals on too high amplitudes (currently only via remote config)
* show info when settings are not saved
* show warning when javascript disabled
* check auth also for debug log and signal data requests
* fix: DHCP retry when failed
* fix: could not save settings on first start

Note: New settings storage position. Settings will be reset to default values after update!


3.3 (2013-08-26)
----------------

* reboot after 2 hours when not getting any connection 
* fix: could not save LCD contrast/backlight
* fix: smoothing wrong GPS values when running >1day


3.2 (2013-08-23)
----------------

* averaging and beep on signal page
* fix: live signal stopped working after some seconds on non-Firefox browsers
* fix: DHCP and Network timeout beavior 
* fix: Potentiometer setting not working
* fix: Wrong samplerate in graph
* fix: Antenna not shown to guest


3.1 (2013-08-18)
----------------

* fix: LCD not working with factory settings
* fix: Logout on maximize
* fix: wrong reset value was sent


3.0 (2013-08-18)
----------------

* NEW: more info and options on the signal page
* NEW: live message log window (see tools)
* added header for IE10 (press Alt+S if it's still not working)
* fixed backlight=0% could not be saved
* fixed (maybe) some hard fault conditions
* fixed sudden disconnect on changing network settings


2.5 (2013-08-05)
----------------

* sending program counter to server after hardfault reset
* LCD brightness 100% on reset
* fixed buffer overflow on parsing antenna string from server


2.4 (2013-08-04)
----------------

* check position accuracy on smoothing
* fixed wrong visibility of gain settings


2.3 (2013-08-03)
----------------

* added debug output on hardfault (serial+LCD)
* enable antenna status for PA6H with newer firmware 
* signal page works now with resolution != 12bit
* disable LCD backlight PWM on 100% brightness
* Change amplifier LEDs remotely 
* fixed crash in http client
* fixed crash on wrong pcb-id
* fixed threshold value display


2.2 (2013-07-27)
----------------

* added expire header for IE
* added warm start tool for GPS
* added trigger statistics for channels
* GPS startup timeout increased to 300s
* GPS firmware requests improved + support for SiRF (untested)
* possibility to add small help buttins on the web interface 
* even more interference mode improvements
* fixed crash/reboot on high signal rate (network stall)
* fixed LED bootup sequence indicator (for debug purposes)
* fixed missing new line in remote request
* fixed LCD refresh
* fixed broken station control POST request


2.1 (2013-07-23)
----------------

* Better handling of interference mode: instead of switching on-off-on-off... it stays in interference mode for a while
* Adjust buzzer beep on interference mode delay
* Webserver port can be changed
* info about station-id/user-id on LCD
* GPS tools for your module
* GPS position smoothing
* fixed some remote-control bugs
* fixed signal view not updating in IE


2.0 (2013-07-14)
----------------

* Initial release for all participants

Warning

Older firmwares than version 9.4 shouldn't be used any more!

Firmware update

Automatic update

With firmware version 10 we introduced a new automatic update feature. In case of a new firmware release the controller itself can download the firmware file from our server. After that the downloaded firmware will be verified and can be written to the flash. Both, download and flashing can be triggered manually by you or by the server.

Automatic updates help us a lot to hold the whole network up to date. You as station owners don't have to care so much about checking for new firmwares and installing them.

Signature verification

The download itself will be made over a secure https connection by default. However, for maximum security firmware files will all be signed since version 10. The controller checks the signature with his public key and sha256 digest. An automated flash will only be made if the signature is valid.

You will see the result just after firmware download. The signature check is completely independent from the verification of the hash which just asks the server if it is a known hash. You can still flash even with failed signature/hash verification. However, a failed signature verification may indicate a wrong or broken firmware. The signature is also different between RED and BLUE.

Firmware verified

The screenshot shows a successful verification of the signature and the firmware hash.

Warning

You should never flash a new firmware when signature verification fails! On the other hand, a failed hash verification might just indicate a communication failure with the servers.

For experts: You can download the public signature keys for RED and BLUE.

Manual update

The manual upload of a firmware file over the web interface was the standard procedure upon firmware version 10. You just need to download one of the firmware files from above to your computer. Then upload it under Tools -> Firmware. After a few seconds you should see the uploaded firmware and verification status.

Downgrade

When downgrading to a lower version you may loose your saved settings depending on the firmware versions!

DFU firmware upload via USB

Info

Until 2023 we provided special .dfu files. These are no longer necessary as all tools can now flash the .bin files directly.

In case of a failed firmware update every controller has an internal DFU boot loader which can not be erased. Just connect your controller board via USB to your computer. Ony System BLUE hold the BOOT0 button while doing a reset or power cycle. On System RED use a jumper to connect the BOOT0 and VDD pins on the Discovery board, then power up the system.

After that procedure your computer should recognize a new USB device.

STM32CubeProgrammer (Windows/Mac/Linux)

The tool can be downloaded in the Internal section (password required) or on the ST website ⧉.

dfu-util (Linux)

Download it here ⧉ or install it via apt install dfu-util (Debian/Ubuntu). To flash a .bin file enter:

dfu-util -a 0 -s 0x08000000:leave -D /path/to/image.bin

Warning

This procedure is normally not needed. For security reasons the ST-Link interface has been disabled since Firmware version 10.

The firmware can be upgraded via the SWD interface with the ST-LINK/V2 in-circuit debugger/programmer. This programming device is also contained at the STM32F4DISCOVERY board used for System RED through the Mini-USB port.

On System BLUE it is connected to the SWD interface as follows.

The software (STM32 ST-LINK Utility) for programming the controller with ST-LINK/V2 can be found on the website of STMicroelectronics. The board additionally must be powered via the USB power supply during programming.