Skip to content

Releases

OpenESL v0.10.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 19:22
3f294a7

New on the AP and the web page: font files made in the browser, rotated text, layout files shared between models with the same screen, up to 16 fields and 256 bytes of text per tag with fields by name, up to four C6 radios over WiFi per S3 (not tried on hardware with several C6 boards yet), and a warning (API, webhook and Home Assistant) when an S3 loses its C6 radio. The web page has a new look with a light/dark button, the designer works on a phone, and http://openesl.local/ opens the dashboard. Tags on the new firmware keep their screen with a small "no AP" mark when the AP is gone, instead of "No AP found". The update is safe for tags out of range: update the AP; the tag firmware is optional, and the C6 radios need nothing.

AP firmware 0.10.0

  • AP: / leads to the dashboard, status page removed, /setup gets the dashboard's look (#345)
  • Designer on mobile: layout picker, Fields/Elements/Layouts tabs, scrolling main menu (#344)
  • Flash AP: help new users choose the right setup (#343)
  • Web page: shorten the Set up tab to five points with wiki links (#342)
  • Designer: clearer layout count, Use button, template titles and a first-time intro (#341)
  • Web page: a shared design scale and a light/dark/auto button (#340)
  • Dashboard: hidden layout box, layout counts past 200 tags, 1.54" previews (#338)
  • Bring the radio lost warning (#336) into development (#337)
  • More fields, longer text and fields by name in tag content (#182) (#300)
  • Several radios over WiFi per S3 AP (#259) (#299)
  • Add the SoluM 2.9" black/white/red label (ST-GR29000) as an experimental model (#298)
  • Font files: fonts as data on the AP instead of firmware (#177) (#297)
  • Share a layout file between models with the same screen (same_as) (#296)
  • Layouts: rotated text (rotate 90/180/270 on text elements) (#295)
  • Tag: keep the content and draw a "no AP" mark when the AP is gone (#294)

Tag firmware 0.10.0

  • More fields, longer text and fields by name in tag content (#182) (#300)
  • Add the SoluM 2.9" black/white/red label (ST-GR29000) as an experimental model (#298)
  • Share a layout file between models with the same screen (same_as) (#296)
  • Layouts: rotated text (rotate 90/180/270 on text elements) (#295)
  • Tag: keep the content and draw a "no AP" mark when the AP is gone (#294)

Web page

  • AP: / leads to the dashboard, status page removed, /setup gets the dashboard's look (#345)
  • Designer on mobile: layout picker, Fields/Elements/Layouts tabs, scrolling main menu (#344)
  • Flash AP: help new users choose the right setup (#343)
  • Web page: shorten the Set up tab to five points with wiki links (#342)
  • Designer: clearer layout count, Use button, template titles and a first-time intro (#341)
  • Web page: a shared design scale and a light/dark/auto button (#340)
  • Dashboard: hidden layout box, layout counts past 200 tags, 1.54" previews (#338)
  • Bring the radio lost warning (#336) into development (#337)
  • Wiki: building the flasher with a Wemos D1 mini (#332)
  • More fields, longer text and fields by name in tag content (#182) (#300)
  • Several radios over WiFi per S3 AP (#259) (#299)
  • Add the SoluM 2.9" black/white/red label (ST-GR29000) as an experimental model (#298)
  • Font files: fonts as data on the AP instead of firmware (#177) (#297)
  • Share a layout file between models with the same screen (same_as) (#296)
  • Layouts: rotated text (rotate 90/180/270 on text elements) (#295)

Tools, docs and CI

  • esl-client: cut PUT /api/tags batches by the AP's token and body limits (#347)
  • Version 0.10.0: summary and upgrade notes (#346)
  • AP: / leads to the dashboard, status page removed, /setup gets the dashboard's look (#345)
  • Web page: a shared design scale and a light/dark/auto button (#340)
  • Home Assistant guide: openesl.send takes fields by name from integration 0.4.0 (#339)
  • Bring the radio lost warning (#336) into development (#337)
  • Add a calendar template inspired by Calendar Card Pro (#333)
  • More fields, longer text and fields by name in tag content (#182) (#300)
  • Several radios over WiFi per S3 AP (#259) (#299)
  • Add the SoluM 2.9" black/white/red label (ST-GR29000) as an experimental model (#298)
  • Font files: fonts as data on the AP instead of firmware (#177) (#297)
  • Share a layout file between models with the same screen (same_as) (#296)
  • Tag: keep the content and draw a "no AP" mark when the AP is gone (#294)
  • README: show the openESL logo next to the project name (#293)

Upgrading from 0.9.2 to 0.10.0

Order: the AP, then the tags when you want the new "no AP" mark; neither C6 radio needs an update. Nothing has to be done on the tags: a tag on 0.9.2 or older works with a 0.10.0 AP as before, and a tag that is out of range during the update simply keeps working on the firmware it has. No tag draws again after the AP update. Use font files, rotated text, more than 6 fields or 96 bytes of text, and several radios over WiFi only once the AP will stay on 0.10.0: an AP that goes back to 0.9.2 drops such content and layout files, and knows only one radio (the tags keep their screen and stay under control).

All details, and what going back costs: docs/release.md. From an older release: upgrading over more than one release.

Full changelog: v0.9.2...v0.10.0

OpenESL v0.9.2

Choose a tag to compare

@github-actions github-actions released this 30 Oct 20:00
78a99c8

Pairing and the radio key from 0.9.0 are taken out again (#290): a paired tag could only be brought back in the flashing jig if the AP's key was lost, too big a risk on a site with many tags. The work is kept for later (#289). Everything else from 0.9.0 and 0.9.1 stays: radio channel and channel scan, signal history, battery saving, date fields and whole-krone prices. The tag firmware keeps the drawing fix from 0.9.1 (#283), so tags on 0.9.0 should move to 0.9.2. Unpair every paired tag before updating the AP. Use 0.9.2 instead of 0.9.0 and 0.9.1.

AP firmware 0.9.2

  • Take radio security out again (#260) (#290)

Tag firmware 0.9.2

  • Take radio security out again (#260) (#290)

Web page

  • Take radio security out again (#260) (#290)

Tools, docs and CI

  • Version 0.9.2 (#291)
  • Take radio security out again (#260) (#290)

Upgrading from 0.9.1 to 0.9.2

Order: unpair every paired tag first, then the AP, then the tags. 0.9.2 takes radio security out again (#260: #273, #280, #281): a paired tag never drops its key and has no way back without the AP's radio key, so an AP lost without a backup of its key meant flashing every paired tag again in the jig. The work is kept on the branch paring-og-radionokkel and in #289 until that has a safe answer. Everything else from 0.9.0 and 0.9.1 stays.

All details, and what going back costs: docs/release.md. From an older release: upgrading over more than one release.

Full changelog: v0.9.1...v0.9.2

OpenESL v0.9.1 (retracted)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 17:11
0574995

A patch release for the tags. Tag firmware 0.9.0 could draw a grey, half-finished image with the old one showing through, while it told the AP the image was shown; 0.9.1 waits awake through the display refresh again, as 0.8.2 did (#283). Every tag on 0.9.0 should get it. The AP and the C6 radios have not changed.

AP firmware 0.9.1

  • Tag: wait awake through the display refresh again (0.9.0 draws half an image) (#283)

Tag firmware 0.9.1

  • Tag: wait awake through the display refresh again (0.9.0 draws half an image) (#283)

Web page

  • no changes

Tools, docs and CI

  • Release notes 0.9.1: summary (#286)
  • Version 0.9.1 (#284)
  • Tag: wait awake through the display refresh again (0.9.0 draws half an image) (#283)
  • Release notes: short summary, then the changes, then short upgrade instructions (#282)

Upgrading from 0.9.0 to 0.9.1

Order: only the tags. Every tag on 0.9.0 firmware should get the tag image of 0.9.1, one of each model first as usual (section 3). Nothing the AP or either C6 radio does has changed, so neither needs an update: their images say 0.9.1 only because the AP builds some of the tag's source files too (tools/fw_version.py), and the file that changed (tag/src/epd.c) is not one of them. Updating the AP anyway does no harm. Nothing is one-way: a tag on 0.9.1 talks to the AP as a 0.9.0 tag does, keeps its settings, radio key and channel, and takes older firmware as before.

All details, and what going back costs: docs/release.md. From an older release: upgrading over more than one release.

Full changelog: v0.9.0...v0.9.1

OpenESL v0.9.0 (retracted)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 13:56
56f7eeb

Radio security: tags can be paired with the AP, so only that AP can change them, and the AP's radio key is shown after flashing and kept in the backup. The radio channel can be changed, and tags that missed the move find the AP again by scanning. Tags use less battery and report their signal, and layouts get date fields and whole-krone prices (199,-).

AP firmware 0.9.0

  • Radio key: review fixes for the erase, restore and browser copy (#281)
  • Web: show the AP's radio key after flashing and on the dashboard, keep a copy in the browser (#280)
  • Price format: whole kroner with ",-" and checkboxes in the designer (#278)
  • Version 0.9.0 (#274)
  • Radio security: signed frames, pairing from the dashboard (#260) (#273)
  • GET /api/tags?since=: a deleted or evicted tag in a reused slot counts as removed (#272)
  • GET /api/tags?since=: only the tags that changed (#270) (#271)
  • Date fields in layouts: {weekday}, {date}, {date_short}, {week} (#183) (#268)
  • Designer: icons from SVG files (#192) (#267)
  • Tags look for the AP on other channels after three missed polls (#258) (#266)
  • Layouts: send to a tag from the browser, fold the card, API button in the designer (#265)
  • Change the radio channel from the Settings page; the tags follow (#256) (#264)
  • Signal history on the dashboard, power saving in the tag, measure.py (#261) (#262)
  • Show which layouts are on the AP, in the designer and the dashboard (#253)
  • Send layouts to the AP over USB or WiFi from the designer (#252)
  • AP settings page: time zone, NTP server and backup in the dashboard (#250)
  • Weather on the tags: data sources on the S3 and C5 APs (#249)
  • Dashboard: send a picture to the ticked tags (#248)

Tag firmware 0.9.0

  • Price format: whole kroner with ",-" and checkboxes in the designer (#278)
  • Radio security: signed frames, pairing from the dashboard (#260) (#273)
  • Tags look for the AP on other channels after three missed polls (#258) (#266)
  • Change the radio channel from the Settings page; the tags follow (#256) (#264)
  • Signal history on the dashboard, power saving in the tag, measure.py (#261) (#262)
  • Weather on the tags: data sources on the S3 and C5 APs (#249)

Web page

  • Radio key: review fixes for the erase, restore and browser copy (#281)
  • Web: show the AP's radio key after flashing and on the dashboard, keep a copy in the browser (#280)
  • Price format: whole kroner with ",-" and checkboxes in the designer (#278)
  • Version 0.9.0 (#274)
  • Radio security: signed frames, pairing from the dashboard (#260) (#273)
  • Date fields in layouts: {weekday}, {date}, {date_short}, {week} (#183) (#268)
  • Designer: icons from SVG files (#192) (#267)
  • Tags look for the AP on other channels after three missed polls (#258) (#266)
  • Layouts: send to a tag from the browser, fold the card, API button in the designer (#265)
  • Change the radio channel from the Settings page; the tags follow (#256) (#264)
  • Signal history on the dashboard, power saving in the tag, measure.py (#261) (#262)
  • Show which layouts are on the AP, in the designer and the dashboard (#253)
  • Send layouts to the AP over USB or WiFi from the designer (#252)
  • Templates: guest WiFi heading as fixed text (#251)
  • AP settings page: time zone, NTP server and backup in the dashboard (#250)
  • Weather on the tags: data sources on the S3 and C5 APs (#249)
  • Dashboard: send a picture to the ticked tags (#248)

Tools, docs and CI

  • Radio key: review fixes for the erase, restore and browser copy (#281)
  • Web: show the AP's radio key after flashing and on the dashboard, keep a copy in the browser (#280)
  • Docs: whole-kroner prices (0-dash) come with 0.9.0 (#279)
  • Wiki: one page per supported label, photos, easier start for newcomers (#277)
  • CI: fewer runner minutes (ccache, build only what a PR can change) (#276)
  • Version 0.9.0 (#274)
  • Radio security: signed frames, pairing from the dashboard (#260) (#273)
  • GET /api/tags?since=: only the tags that changed (#270) (#271)
  • Docs and wiki: the Home Assistant integration (#269)
  • Tags look for the AP on other channels after three missed polls (#258) (#266)
  • Change the radio channel from the Settings page; the tags follow (#256) (#264)
  • Signal history on the dashboard, power saving in the tag, measure.py (#261) (#262)
  • Add a roadmap to the wiki and README (#254)
  • Templates: guest WiFi heading as fixed text (#251)
  • AP settings page: time zone, NTP server and backup in the dashboard (#250)
  • Weather on the tags: data sources on the S3 and C5 APs (#249)
  • Dashboard: send a picture to the ticked tags (#248)
  • Upgrade notes 0.8.2: settable radio transmit power (#243) (#246)

Upgrading from 0.8.2 to 0.9.0

Order: the AP, then a few test tags for some days, then the rest of the tags. Take a backup after the AP update: it now holds the radio key, which a paired tag needs. Pair tags and change the radio channel only once every tag runs 0.9.0, if at all. With an S3 and a C6 over WiFi, update the C6 too before you change the channel or set the long backoff per tag.

All details, and what going back costs: docs/release.md. From an older release: upgrading over more than one release.

OpenESL v0.8.2

Choose a tag to compare

@github-actions github-actions released this 27 Oct 13:09
33896e8

Upgrading from 0.8.1 to 0.8.2

Order: the AP, then, only with an S3 and a C6 on a cable, the C6 if you want to update it over the cable from now on. The tag firmware has not changed (the tag image of this release is 0.6.0), and neither has the C6 over WiFi (netradio). Nothing the AP stores changes: an AP that goes back to 0.8.1 keeps its data, its layout files and its name.

The S3 with a C6 on a cable can update its C6 radio over the cable (#240): the release has openesl-ap-radio-esp32c6-<version>-ota.bin (and -lcd-), sent like AP firmware with esl-client ota ... --wait or from the dashboard, which shows the radio under Firmware. This needs the radio on 0.8.2 once, over USB: a C6 flashed before 0.8.2 has one app slot and link v1 (radio.ota false in GET /api/ota). It keeps working with a 0.8.2 S3, so this flash can wait. The Flash AP tab erases the radio's flash anyway; pick the -lcd image for a radio with the screen. One-way for the radio only (#240: a new partition table and link v2): going back to an older radio image means the Flash AP tab, since older releases have no radio -ota.bin. Host and radio of link v1 and v2 work together in both directions. The S3 + plain C6 on a cable is supported now (tried on hardware on 2026-10-26); the C6 with screen as the radio is still experimental.

seen_s_ago in GET /api/tags and /api/health no longer shows a huge number (an unsigned wrap of about 2^64 ms) when a tag polls while the AP builds the reply (#244). The same wrap could flag such a tag silent and show it as long gone in the dashboard. Clients that turned it into a date (Prisjakt did) got a year far in the past.

From an older release: upgrading over more than one release. Every detail: docs/release.md.

AP firmware 0.8.2

  • seen_s_ago: no unsigned wrap when a POLL is newer than the request's clock (#244)
  • AP: settable radio transmit power, with the EU limits named (#243)
  • ap: s3-n16r8-c6 comment says supported, as board.json does (#242)
  • C6 radio firmware through the S3 over the UART cable (#240)

Tag firmware 0.6.0 (unchanged since v0.8.1: nothing new to flash)

  • no changes

Web page

  • AP: settable radio transmit power, with the EU limits named (#243)
  • C6 radio firmware through the S3 over the UART cable (#240)

Tools, docs and CI

  • Version 0.8.2 (#245)
  • AP: settable radio transmit power, with the EU limits named (#243)
  • C6 radio firmware through the S3 over the UART cable (#240)

Full changelog: v0.8.1...v0.8.2

OpenESL v0.8.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:06
0333a7a

Upgrading from 0.8.0 to 0.8.1

Order: the AP, then, only with an S3 and a C6 over WiFi (netradio), the C6. A patch release: update the AP over the air as usual. The tag firmware has not changed (the tag image of this release is 0.6.0), and neither has the C6 radio on a cable. Nothing is one-way: an AP that goes back to 0.8.0 keeps its data, its layout files and its name. Do not go back while tags are part way through a firmware download with the global poll interval at 0: such a tag keeps the 5 s it was told, since a 0.8.0 AP answers its polls with 0 (#234) until it gets a new image. Set a global poll interval for a while if it happens.

Two fixes to the poll interval the AP tells the tags:

  • With the global poll interval at 0 (the default: tags use their own), an image tag that had been told to come back in 2 s while its image was being drawn, and then had nothing to fetch (as after an AP restart), kept polling every 2 s. It now gets the built-in 60 s back (#234).
  • A tag part way through a firmware or image download is told to come back in 5 s for the next blocks, instead of after its normal interval, so a firmware update no longer takes three or four poll intervals per tag (30 to 40 minutes at 600 s). The last block brings the normal interval back (#236).

The C6 over WiFi answers the tags from its own cache, so it gives the 5 s for downloads only once it runs 0.8.1: in the Flash AP tab, pick "S3 + C6 over WiFi", skip the S3 and flash the C6 without "Erase" (it keeps its WiFi and the S3's address). Without it, downloads through it work as in 0.8.0. The fix for the 2 s polling (#234) is on the S3 and needs nothing on the C6.

A fix for tags that stay "new content waiting" (#238). The AP drew a tag's screen while the tag waited for its reply, which can take longer than the tag listens (20 ms). With many tags waiting at once (a new AP, many new tags, a new layout file) the reply came too late every time, and those tags never got their screen. The AP now tells such a tag to come back in 2 s and draws the screen in the meantime. Tried on a C6 with a screen: 17 tags that had waited for hours had their screens within one poll interval. The fix is in the AP's own radio (a C6 AP, or an S3 with a C6 on a cable) and needs nothing on the C6; an S3 with a C6 over WiFi answers the tags from the C6's cache and works as in 0.8.0. GET /api/tags shows how the AP's own radio answers under ap.replies (slow counts replies later than 5 ms).

esl-client --url takes an address without http:// (#235), and the user guide has its own page for moving to a new AP.

From an older release: upgrading over more than one release. Every detail: docs/release.md.

AP firmware 0.8.1

  • AP: draw a tag's image after the reply, not in its listening window (#238)
  • AP: a tag part way through a download comes back in 5 s (#236)

Tag firmware 0.6.0 (unchanged since v0.8.0: nothing new to flash)

  • no changes

Web page

  • no changes

Tools, docs and CI

  • AP: draw a tag's image after the reply, not in its listening window (#238)
  • Version 0.8.1 (#237)
  • Wiki: own page for moving to a new AP; esl-client adds http:// to --url (#235)

Full changelog: v0.8.0...v0.8.1

OpenESL v0.8.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 07:30
93e1ee3

Upgrading from 0.7.x to 0.8.0

Order: the AP, then, only with an S3 and a C6 over WiFi (netradio), the C6 if you want a browser that opens its address sent to the S3's dashboard (#229). The tag firmware has not changed (the tag image of this release is 0.6.0): tags on 0.6.0 need nothing, tags on 0.5.x take it as in "Upgrading over more than one release". The C6 radio on a cable has not changed. Nothing is one-way: an AP that goes back to 0.7.0 keeps its data, its layout files and its name, and the C6 radio over WiFi of 0.7.0 and of 0.8.0 each work with either S3. Content that 0.8.0 held back because it does not fit its file (below) is drawn again by 0.7.0, with that code left blank.

The AP checks the content of every tag against its model's layout file, at boot and when a file is uploaded (#221), as it already did for new content in PUT /api/tags. A tag whose barcode, QR code or number does not fit its box in the file keeps the screen it shows, and its content is held back until it gets content that fits or a file it fits: content_error in GET /api/tags says so, and PUT /api/layouts/{model} lists such tags in content_errors. So after the update, look for content_error in GET /api/tags (or the dashboard) and send those tags content that fits; under 0.7.0 such a tag got its screen with that code left blank, and nothing said so.

The C6 radio over WiFi now sends a browser that opens its address to the S3's dashboard (#229). It is optional and changes nothing else: in the Flash AP tab, pick "S3 + C6 over WiFi", skip the S3 and flash the C6 without "Erase" (it keeps its WiFi and the S3's address).

esl-client backup notes the AP's name and the tag firmware, and the user guide describes moving to another AP board (#222). The designer has a template library (#230); on the AP it reads the templates from the GitHub Pages site, so the browser needs internet for them, else it offers the AP's example layouts as before.

From an older release: upgrading over more than one release. Every detail: docs/release.md.

AP firmware 0.8.0

  • AP: show content_error when a new layout file no longer fits a tag's content (#232)
  • Designer: template library with a picker, 18 templates for the 2.9" and 1.54" (#230)
  • netradio: send a browser on the C6 radio to the S3 dashboard (#229)
  • Home Assistant: a 3d-printer layout for any printer, on the 2.9" and 1.54" (#228)
  • AP layout files: check the tags' content on upload, keep each file at its size (#221)

Tag firmware 0.6.0 (unchanged since v0.7.0: nothing new to flash)

  • no changes

Web page

  • Designer: template library with a picker, 18 templates for the 2.9" and 1.54" (#230)
  • AP layout files: check the tags' content on upload, keep each file at its size (#221)

Tools, docs and CI

  • Version 0.8.0 (#231)
  • Designer: template library with a picker, 18 templates for the 2.9" and 1.54" (#230)
  • esl-client: note the AP's name and tag firmware in backups; document moving to another board (#222)
  • AP layout files: check the tags' content on upload, keep each file at its size (#221)
  • Release notes: upgrade instructions in every release (#220)

Full changelog: v0.7.0...v0.8.0

OpenESL v0.7.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 17:43
b5d7136

AP firmware 0.7.0

  • CI: build the AP boards side by side, and no firmware for documentation-only pull requests (#219)
  • Show the network radio's link on the AP dashboard (#218)
  • Flash AP and Flash tag: step-by-step wizards, C6 radio in the flasher, AP board on the dashboard (#211)
  • AP: a new AP is openesl-xxxx.local, with the digits of its setup network (#206)

Tag firmware 0.6.0 (unchanged since v0.6.0: nothing new to flash)

  • no changes

Web page

  • Show the network radio's link on the AP dashboard (#218)
  • Flash AP: an erase option in step 2, and the S3 drawing with USB on the right (#216)
  • Flash AP and Flash tag: step-by-step wizards, C6 radio in the flasher, AP board on the dashboard (#211)
  • AP: a new AP is openesl-xxxx.local, with the digits of its setup network (#206)

Tools, docs and CI

  • CI: build the AP boards side by side, and no firmware for documentation-only pull requests (#219)
  • Show the network radio's link on the AP dashboard (#218)
  • docs: upgrading from 0.6.x to 0.7.0 (#215)
  • Version 0.7.0 (#212)
  • AP: a new AP is openesl-xxxx.local, with the digits of its setup network (#206)
  • check.py ap-fw: a build without Emscripten counts as skipped (#205)

Full changelog: v0.6.0...v0.7.0

OpenESL v0.6.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 12:50
88b6e8a

AP firmware 0.6.0

  • AP: a formatted number that does not fit is refused, not cut short (#209)
  • check.py ap-fw without Emscripten, more renderer inputs (#201)
  • Wireless C6 radio: link protocol and first firmware for both ends (#200)
  • AP Design tab: check the packed renderer on incremental builds too (#199)
  • AP Design tab: renderer in the firmware, review fixes from #190 (#198)
  • Wireless C6 radio: the S3's side of a sync (#197)
  • Image compression: send the shorter of RLE and 2D (#196)
  • Wireless C6 radio: reply cache, and docs with its limits (#195)
  • Designer: show the connected AP's layout limits, set per AP board (#194)
  • Image compression: 2D column code (fmt 2) for the radio transfer (#193)
  • Layouts: fixes from the reviews of #174 and #175 (#191)
  • AP page: tabs per board, the designer on the AP, and the setup page's network menu (#190)
  • Docs: lines are 1 to 16 px wide, and icons come from a PNG, JPEG or GIF (#189)
  • Layouts: QR codes from a field (#175)
  • Layouts: lines, rounded and open boxes, and icons (layout format 2) (#174)
  • AP: PUT /api/tags/{mac}/image for a picture on a tag (#173)
  • Price format in layouts: decimals and thousands separator (#171)
  • Dashboard: poll interval for all tags (#170)
  • AP status screen: tags in the dashboard's states, IP in white (#169)
  • AP LCD: fix overlapping text rows and swapped colours (#168)
  • Add text20 and price44 fonts for the AP's layouts (#167)

Tag firmware 0.6.0

  • Image compression: send the shorter of RLE and 2D (#196)
  • Designer: show the connected AP's layout limits, set per AP board (#194)
  • Image compression: 2D column code (fmt 2) for the radio transfer (#193)
  • Layouts: fixes from the reviews of #174 and #175 (#191)
  • Layouts: QR codes from a field (#175)
  • Layouts: lines, rounded and open boxes, and icons (layout format 2) (#174)
  • Price format in layouts: decimals and thousands separator (#171)
  • Add text20 and price44 fonts for the AP's layouts (#167)

Web page

  • AP: a formatted number that does not fit is refused, not cut short (#209)
  • check.py ap-fw without Emscripten, more renderer inputs (#201)
  • Wireless C6 radio: link protocol and first firmware for both ends (#200)
  • AP Design tab: check the packed renderer on incremental builds too (#199)
  • AP Design tab: renderer in the firmware, review fixes from #190 (#198)
  • Designer: show the connected AP's layout limits, set per AP board (#194)
  • Layouts: fixes from the reviews of #174 and #175 (#191)
  • AP page: tabs per board, the designer on the AP, and the setup page's network menu (#190)
  • Docs: lines are 1 to 16 px wide, and icons come from a PNG, JPEG or GIF (#189)
  • Layouts: QR codes from a field (#175)
  • Layouts: lines, rounded and open boxes, and icons (layout format 2) (#174)
  • Price format in layouts: decimals and thousands separator (#171)
  • Dashboard: poll interval for all tags (#170)
  • Add text20 and price44 fonts for the AP's layouts (#167)

Tools, docs and CI

  • docs: going back to 0.5.x also drops pictures; what comes back after (#208)
  • esl-client ota: a timeout that covers the whole upload (#207)
  • Release notes: sort pull requests by their own changes; upgrade notes for 0.6.0 (#204)
  • VERSION 0.6.0 (#202)
  • check.py ap-fw without Emscripten, more renderer inputs (#201)
  • Wireless C6 radio: link protocol and first firmware for both ends (#200)
  • AP Design tab: check the packed renderer on incremental builds too (#199)
  • AP Design tab: renderer in the firmware, review fixes from #190 (#198)
  • Image compression: 2D column code (fmt 2) for the radio transfer (#193)
  • AP page: tabs per board, the designer on the AP, and the setup page's network menu (#190)
  • Wiki: lines, rounded boxes, icons and QR codes in the layout pages (#188)
  • AP: PUT /api/tags/{mac}/image for a picture on a tag (#173)
  • Wiki: keep the user guide in wiki/ and publish it from master (#172)

Full changelog: v0.5.0...v0.6.0

OpenESL v0.5.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 06:06
333f550

AP firmware 0.5.0

  • Designer: three columns, a bar by the selected element, fields with their sample text (#162)
  • AP C6: tagfw partition to the end of the flash, 7 tag models instead of 2 (#160)
  • Docs: upgrading from 0.4.x to 0.5.0, and the unpinned C5/S3 builds (#159)
  • Comments: S3 and radio images in firmware.yml, NVS sizes in store_nvs.c, the 0xF400 test and error text (#158)
  • README: the C6 holds about 700 tags, not 256 (#156)
  • Tag: a chip is a table entry in build.py and its own folders (#155)
  • Layouts: 32 text lines and 20 boxes per screen, compiled file up to 2048 bytes, JSON size meter in the designer (#154)
  • Docs: the radio protocol and the tag firmware without CONTENT and LAYOUT (#153)
  • AP: a radio link interface; 802.15.4 is one driver behind it (#152)
  • AP: ESP32-S3 host with an ESP32-C6 (with or without screen) as its 802.15.4 radio over UART (#150)
  • AP: room for far more than 256 tags (#149)
  • Web flasher for every AP board, and the docs for the AP drawing the screens (#147)
  • AP: drop CONTENT and LAYOUT; tags only get the image the AP draws (#145)
  • AP: tag firmware uploads in 2 KB pieces, and download progress that stays put (#144)
  • Registry: maker, radio, protocol and image format per model, and a supported-tags list in the README (#143)
  • Tag: show only the AP's image; drop CONTENT, LAYOUT and the layout drawing (#142)
  • Web: the designer draws with the AP's esl_render instead of the tag's code (#141)
  • AP radio: send a refused reply again while the tag listens (#138)
  • Docs: flashing the AP over USB without losing its data (#137)
  • Run-length coded screen images (#136)
  • Dashboard: show each tag's screen as the AP draws it (#135)
  • web/build.py --firmware: refuse files it cannot place (#129)
  • Add IMG and IMG_REQ messages for AP-drawn screen images (#128)
  • AP: draw a tag's screen on the AP (esl_render) (#126)
  • Layouts: red text and rectangles on a model with red (#119)
  • Tag: move the panel-specific parts of epd.c into tag/src/panels/ (#118)
  • AP: hold a layout file in RAM only for the models that have one (#117)

Tag firmware 0.5.0

  • Tag: a chip is a table entry in build.py and its own folders (#155)
  • Layouts: 32 text lines and 20 boxes per screen, compiled file up to 2048 bytes, JSON size meter in the designer (#154)
  • Docs: the radio protocol and the tag firmware without CONTENT and LAYOUT (#153)
  • AP: drop CONTENT and LAYOUT; tags only get the image the AP draws (#145)
  • Registry: maker, radio, protocol and image format per model, and a supported-tags list in the README (#143)
  • Tag: show only the AP's image; drop CONTENT, LAYOUT and the layout drawing (#142)
  • Run-length coded screen images (#136)
  • web/build.py --firmware: refuse files it cannot place (#129)
  • Add IMG and IMG_REQ messages for AP-drawn screen images (#128)
  • Tag firmware version per model (#127)
  • Layouts: red text and rectangles on a model with red (#119)
  • Tag: move the panel-specific parts of epd.c into tag/src/panels/ (#118)

Web page

  • Designer: three columns, a bar by the selected element, fields with their sample text (#162)
  • Comments: S3 and radio images in firmware.yml, NVS sizes in store_nvs.c, the 0xF400 test and error text (#158)
  • Layouts: 32 text lines and 20 boxes per screen, compiled file up to 2048 bytes, JSON size meter in the designer (#154)
  • AP: ESP32-S3 host with an ESP32-C6 (with or without screen) as its 802.15.4 radio over UART (#150)
  • AP: room for far more than 256 tags (#149)
  • Web flasher for every AP board, and the docs for the AP drawing the screens (#147)
  • AP: drop CONTENT and LAYOUT; tags only get the image the AP draws (#145)
  • AP: tag firmware uploads in 2 KB pieces, and download progress that stays put (#144)
  • Registry: maker, radio, protocol and image format per model, and a supported-tags list in the README (#143)
  • Web: the designer draws with the AP's esl_render instead of the tag's code (#141)
  • Docs: flashing the AP over USB without losing its data (#137)
  • Dashboard: show each tag's screen as the AP draws it (#135)
  • Per-model firmware version: findings from the review of #127 (#130)
  • web/build.py --firmware: refuse files it cannot place (#129)
  • Tag firmware version per model (#127)
  • Layouts: red text and rectangles on a model with red (#119)

Tools, docs and CI

  • Version 0.5.0 (#164)
  • Comments: S3 and radio images in firmware.yml, NVS sizes in store_nvs.c, the 0xF400 test and error text (#158)
  • Docs: the access point comparison moves from the README to docs/access-points.md (#157)
  • Tag: a chip is a table entry in build.py and its own folders (#155)
  • Layouts: 32 text lines and 20 boxes per screen, compiled file up to 2048 bytes, JSON size meter in the designer (#154)
  • AP: ESP32-S3 host with an ESP32-C6 (with or without screen) as its 802.15.4 radio over UART (#150)
  • AP: room for far more than 256 tags (#149)
  • Web flasher for every AP board, and the docs for the AP drawing the screens (#147)
  • AP: drop CONTENT and LAYOUT; tags only get the image the AP draws (#145)
  • AP: tag firmware uploads in 2 KB pieces, and download progress that stays put (#144)
  • Registry: maker, radio, protocol and image format per model, and a supported-tags list in the README (#143)
  • Tag: show only the AP's image; drop CONTENT, LAYOUT and the layout drawing (#142)
  • sim: reference CRCs for the AP's screens before the tag's drawing code goes (#140)
  • Per-model firmware version: findings from the review of #127 (#130)
  • web/build.py --firmware: refuse files it cannot place (#129)
  • Tag firmware version per model (#127)
  • AP: draw a tag's screen on the AP (esl_render) (#126)
  • Layouts: red text and rectangles on a model with red (#119)
  • Tag: move the panel-specific parts of epd.c into tag/src/panels/ (#118)
  • AP: hold a layout file in RAM only for the models that have one (#117)

Full changelog: v0.4.7...v0.5.0