MWSDK revision history
MWSDK Library Revision History
This section lists the main changes for each library.
Please also refer to the following individual libraries:
- mwx library (Documentation|Repository)
- twesettings library (Repository)
Version Names
The version name of the MWSDK is MWSDK{YYYY}_{MM}
, including the release year and month. Versions with UNOFFICIAL
have omitted the comprehensive verification process for a full release and are considered interim versions.
MWSTAGE{YYYY}_{MM}
, and the included MWSDK will have the same version name as MWSDK{YYYY}_{MM}
. The TWELITE STAGE SDK also includes major past MWSDK versions, which can be enabled by [rewriting the ini file in the TWELITE STAGE app]({{ <ref path="/manuals/twelite-stage-sdk/twelite-stage-app/latest/detailed-specs/cmdargs-and-ini"> }}).MWSDK2025_08 (2025-08-08)
Maintained for the release of TWELITE STICK.
Wks_TweApps
- Added TWELITE Apps.
- Implemented MULTINONE (TWELITE Apps) support for App_Twelite, App_UART, App_IO, and App_Wings.
- Added App_OTA (CUE/ARIA OTA settings app for TWELITE Apps).
- Implemented various fixes for TWELITE GOLD.
- Implemented TWELITE STICK support for App_Wings.
- In TWELITE Apps-compatible apps, interactive mode messages can now be selected between Japanese and English.
- In standalone builds of TWELITE Apps-compatible apps, the language for interactive mode can now be specified at build time.
- BLUE/RED apps that do not include GOLD-compatible code are now included in the SDK with folder names starting with
L_
(e.g., L_App_Aria). - Several issues were fixed:
- App_Uart:
- Set timeout digits to 3.
- Implemented the DB command.
- App_Wings:
- Memory clearing was not proper, which destructed the memory area and caused unexpected behavior.
- App_Uart:
Act_samples
- Implemented fixes for TWELITE GOLD.
MkFiles
- Implemented MULTINONE support (e.g., for library builds).
- Folder names can now be added to the build target source files.
APPSRC += mydir/myfile.c
TARGET_BIN
can be set by the user’s makefile.- When set, a version file will be generated like
$(TARGET_BIN).0-1-1
.
- When set, a version file will be generated like
- Added
TARGET_NAME_NO_VER_TWENET
option to remove the library version. - Introduced
_DISABLE_LTO
make variable to force LTO settings even ifDISABLE_LTO
is given as a make parameter.- Force non-Windows compilers to disable LTO.
- Introduced
TWELITE_SUPPORTED
make variable to specify the buildable target system, which should be put in the Makefile for projects with a limited target. - Introduced
TWELITE=LIST_SUPPORTED
make parameter just to list supported targets. - MkFIles: supported LANG selection for interactive mode.
- set
TWE_LANG_PREF
asJP
,US
ornone
for make a parameter - required to set
TWE_LANG_MULTI_SUPPORTED
in the project Makefile, likeTWE_LANG_MULTI_SUPPORTED=US JP
- if both
TWE_LANG_PREF
andTWE_LANG_MULTI_SUPPORTED
are set,-DUSE_LANG_INTERACTIVE={LANG CODE}
is set.
- set
- mwx and eastl are included for non-mwx builds (using mw.mk for C projects).
APP_SRC_DEFAULT_DIR
handling was wrong in mw.mk.INCFLAGS_CXX
has too many-I
s without a directory (some-I
… was ignored).
SDK General
- Based on NXP’s SDK library 2.6.12.
- Made a common SDK for BLUE/RED.
- Ensured memory allocation for BANK7.
_twenet_pv_twenet_reserve_base
- Ensured memory allocation for MULTINONE (TWENETmcu).
_MULTINONE_PS_APP_DATA
_MULTINONE_PS_APP_DATAEXT
_MULTINONE_U32_APP_CONFIG
_MULTINONE_U32_APP_AUX
The following is a list of excerpts of library fixes.
updated to MWX 0.2.2
TWENETcmpt (2025/04/25)
- Supportted alternative pins set for SPI by adding
vAHI_SpiSetLocation_MW()
. - added support on alternative I2C port by AHI API.
- fixed watchdog API due to limitation of TWELITE GOLD, WDT cannot stop nor restart.
- NTAGs
- Add nfc pthru init.
- moved
vAHI_NtagOnSleep_MW()
andvAHI_NtagOnWakeup_MW()
to TWENETmwf.
- Supportted alternative pins set for SPI by adding
TWENETcore 1.3.8
- added
vDebugInit_UART0()
to hide legacyvfPrintf()
. - added
ToCoNet_vDebugMsg_Force(const char* fmt, ...)
to force debug messages. (note: this should be called aftervDebugInit_UART0()
.) - for MULTINONE,
- added initialization function for dynamic memory allocation.
- added
ToCoNet_USE_MOD_TXRXQUEUE_MULTINONE
for common buffer size allocation for RF packets.
- added
ToCoNet_DupChk_psInit_Dynamic(uint8 COUNT)
to allocate memory used for DupChk module dynamically.
- added
TWENETutils 2.1.0
- fixed that RX queue count reports 0 when RX data is frequent. (local cache in
SERIAL_i16RxChar()
bothers, should report local cache count as well, however it WAS not implemented. Thus local cache code was removed.) - changed
EEPROM_6X_USER_SEGMENTS
from60
to56
, for reservation blocks for MULTINONE apps where chosen app and cofinguration information is stored.
- fixed that RX queue count reports 0 when RX data is frequent. (local cache in
TWENETstgs (twesttings) 0.2.8, 0.2.9, 0.2.10
- Added and fixed code for TWELITE GOLD.
- Implemented fixes for MULTINONE.
- Changed the default baud rate for
E_TWESTG_DEFSETS_UARTBAUD
(UART settings) from 38400bps to 115200bps. [37efb77] - added
TWESTG_vInit_tsFinal_Dynamic()
for BLUE/RED. - change
MW_MULTINONE_FIRM_DEFS[]
to*MW_MULTINONE_FIRM_DEFS
(has warning when linking) - added
Firms::clear_firm_id()
to callE_TWESTG_MULTINONE_CLEAR
. - Added
tweintarctive_walker.cpp, .hpp
andtermio.h
to allow referencing and setting the interactive mode configuration information and the applications stored in MULTINONE. - added
bool_t TWESTG_vInit_tsFinal_Dynamic()
- added
E_TWESTG_MULTINONE_CLEAR
onE_TWESTG_CMD_OP_MUITINONE_CONTROL
command.
- Changed the default baud rate for
- added
E_TWEINTCT_OP_GET_APPINFO
, asking app to inform application configuration data byTWEINTRCT_cbu32GenericHandler()
callback function. - renamed from
SerCmdTimeout
toTWESERCMD_Timout
- added
TWESERCMD_Ascii_vOutput_ADDR_CMD()
,TWESERCMD_Binary_vOutput_ADDR_CMD()
that the argument byte sequence was separated by the first two bytes and the remainder. - The mechanism for replacing interactive mode messages has been enhanced. A Japanese table has also been prepared. [2f44410]
- added 3 more message replace tables.
- added
TWEINTRCT_psQueryMsgReplace()
function to identify alternative message (other than English) - added
TWESTG_DEFSETS_BASE_MSG_JP[]
message table for BASE settings.
- When message output in interactive mode became long, such as for details, serial buffer overflow or watchdog timeout could occur. To prevent this, appropriate serial output wait (flush) and watchdog resets have been inserted. [a276f1b]
- Revised interactive mode messages.
- added TWEINPUTSTRING_BUFFER_SIZE (48 bytes) as the maximum number of characters for input prompts. [a38dbba]
- added TWEINTRCT_tsContext* TWEINTRCT_psQueryContext() to get a pointer to context of interactive mode. [a38dbba]
- added data type and maximum length check for loading data sequence. [a38dbba]
- added BINARY type (
E_TWEINPUTSTRING_DATATYPE_BINARY
) of input for intaractive mode settings. [a4be0ec] - added emphasis tag (*, **, ***) and some escape sequence (\n *) which outputting a description. [a4be0ec]
- Added
TWESTR_u32BinstrToNum(uint8 *p, uint8 u8len)
to convert a binary string to a numeric type (e.g.0011
⇒3
,FFTT
⇒3
). [a4be0ec] - Fixed an issue where the baud rate calculation was incorrect in
static uint16 s_GetUartBaudOpt(uint32 baud, uint8 bits, uint8 parity, uint8 stop)
. [a255260] - Modified the process so that the second argument of
TWESTG_CMD_u32CmdOp()
can beNULL
. [f1d3e61] - added an option
TWESTG_LOAD_OPT_IGNORE_KIND
to force load settings from flash/eep even KIND data is different. [a211e9c] - added
u8kind
andu8slot
toTWEINTRCT_tsContext
, which is intended to be used by application code. (previously, they were allocated by application code. now it’s convenent to have them in TWEINTRCT context.) [5987988] - introduced
TWEINTRCT_tsContext::config.u8UnhandeldKeyReport
to raise key callback when it’s not handled within menu screen. [2ebfeb7] - Added macros such as
TWESTG_DATATYPE_WITH_SIZE_UINT8 ((TWESTG_DATATYPE_UINT8 << 4) | 1)
. [a22bb18] - The interactive mode now accepts
-
for numeric input. [aa6ccb3] - support
u8,u16,i8,i16
for range parameters asTWESTG_tsElement::sValidate.d1
ord2
, whic is used for validatorTWE_APIRET TWESTGS_VLD_u32MinMax()
. [80a5f11] - added
TWEINTCT_tsContext::config.u32OptScreenOps
to change behavior of screens in interactive mode. [dc30d18]E_TWEINRCT_CONFIG_SCREEN_NO_EXIT_BY_ESC
– no exit from the default interactive mode screen by ESC keyE_TWEINRCT_CONFIG_SCREEN_NO_EXIT_BY_PULSPLUSPLUS
– no exit from interactive mode by +++ keysE_TWEINRCT_CONFIG_SCREEN_NOUSE_LEFT_RIGHT_ARROW
– no use of RIGHT/LEFT arrow key in interactive mode screen (will pass to application callback)
- Added NTAG-related code. [f64e8f9]
- added
E_TWEINTCT_OP_GET_APPINFO
, asking app to inform application configuration data byTWEINTRCT_cbu32GenericHandler()
callback function. [d67936d] - Implemented fixes for the EEPROM operation screen in interactive mode. [76d9eb3]
- fixed EEPROM erase sector behavior (cannot input Y to erase).
- modified sector display by key ‘0’ to ‘1’ to include sector number.
- When custom definitions were made in the interactive mode definition, there were issues where unexpected items were displayed or not displayed. [49f3ca4] [db98397]
- correct array operation when UNUSE settings operation in custom default data. (before, an entry has not been cleared properly)
- added debug message (needs update of TWENETutils when output message before UATR init.)
- The last element of internal array was not cleared when applying UNUSE.
- Added MULTINONE firmware selection and configuration features and menus to interactive mode. [6df39b7] [142eae7]
- added a function to save Boot App Firm ID to EEP as API,.
bool_t TWEINTCT_FIRMS_bSetApps(uint32_t firmid_to_set, uint8_t conf_to_set, uint8_t lang_to_set);
- added key op at interactive mode screen. (finally, the key
:
is used.)
- added a function to save Boot App Firm ID to EEP as API,.
- Implemented MULTINONE related fixes. [e15185b]
- added for BLUE/RED —
bool_t TWESTG_vInit_tsFinal_Dynamic(TWESTG_tsFinal *psFinal, uint8 COUNT, uint8 STRBUF, uint8 CUSTDEF);
- added
E_TWESTG_MULTINONE_CLEAR
onE_TWESTG_CMD_OP_MUITINONE_CONTROL
command. - added
Frims::clear_firm_id()
to callE_TWESTG_MULTINONE_CLEAR
. - added
TWESTG_vInit_tsFinal_Dynamic()
for BLUE/RED. - change
MW_MULTINONE_FIRM_DEFS[]
to*MW_MULTINONE_FIRM_DEFS
(has warning when linking for BLUE/RED)
- added for BLUE/RED —
- Implemented MULTINONE related fixes. [bf11746]
- added
firms::clear_firm_id_and_settings()
to clear whole EEP region. - added
E_TWESTG_MULTINONE_CLEAR_FULL
command to clear whole EEP region. - added support for serial condition (parity, wordlen, stop) on
TWETERM_vInitJen()
.
- added
- added
TWETERM_vInitJen_v()
to init uart by variable parameters. [c1ff769] - don’t show exit messages when resetting by key shortcut to firmware select. [e51ca45]
- fixed that
E_TWEINRCT_CONFIG_SCREEN_NO_EXIT_BY_PULSPLUSPLUS
option was not worked. [6fad76e] (the flagsSerCmd_P3.bverbose
is controlled byTWESERCMD_Plus3_u8Parse()
, however the prevous code was not aware of it. so new flag is introducedpsIntr->bVerbose
) - Removed the setting for UART bits, parity, and stop bits from the standard settings description.
- added
E_TWESTG_CMD_OP_REVERT
, to revert setting (note: require to save to take an effect) [94a1889] - Enabled timeout handling with
SerCmdChat
. [200e901]- introduced
E_TWEINRCT_CONFIG_ALWAYS_REPORT_VOID_KEY
mask option atconfig.u8AlwaysKeyReport
to pass void key event (to check timeout, etc) - save tick every key input at
SerCmdChat
.
- introduced
TWENETutils 2.1.0
- Fixed that RX queue count reports 0 when RX data is frequent. (Local cache in
SERIAL_i16RxChar()
is a bother, it should also report the local cache count, but this is not implemented.) [582eed6] - Changed
EEPROM_6X_USER_SEGMENTS
from60
to56
.
- Fixed that RX queue count reports 0 when RX data is frequent. (Local cache in
MWSDK2024_07G (2024/7/16)
Document updates only.
- Added TWELITE GOLD Datasheet.
- Other document revisions.
MWSDK2024_07G-RC1 (2024/6/26)
Includes fixes for problems found during release verification performed with MWSDK2024_06G-3.
- Fixed an issue where the pull-up register settings after waking up from sleep were not being set correctly.
The descriptions of version information and so on have been organized.
- The following adjustments were made to version descriptions such as
000README1ST
.000manifest
now primarily describes the version of the build library, with separate version descriptions for documents, accompanying applications, and sample code.- The document version (last updated date) is now stated in
000READEME1ST.md(html)
. - The versions of the app code and sample code accompanying the MWSDK are now listed in
000vers_Wks_TweApps.md(html)
,000vers_Act_samples.md(html)
, and000vers_Act_extaras.md(html)
, respectively (generated mechanically fromVersion.mk
).
MWSDK2024_06G-3 (2024/6/19) — hot fix
- Added the
G_TWENET_B_MAC_ALWAYS_RESET_ON_WAKE()
global variable for settings. Setting it to1
will re-initialize the MAC after waking up from sleep. The default is0
, which calls the API to restore the state from before sleep. - Moved some global variables (those that should be retained even during RAM OFF sleep) to BANK7 by changing them to macros like
G_TWENET_*()
. (Reference:TWENETmcu/board/bank7_reserve.h
)
MWSDK2024_06G-2 (2024/6/11) — hot fix
Added a process to completely initialize the MAC layer upon waking up from sleep (this process takes about 370µsec).
- The specification allows changing this behavior by including
"bank7_reserve.h"
and settingG_TWENET_B_MAC_ALWAYS_RESET_ON_WAKE()=0;
before sleeping. However, in this version, setting this will cause an infinite loop upon waking up (this is temporary code for verification).
- The specification allows changing this behavior by including
Added code to clear interrupt flags for interrupt sources that were set at startup.
- A bit set to
1
inuint64_t g_twenet_irq_bm_on_boot
corresponds to a pending interrupt. - By defining the
bool_t __twenet_irq_handler_pending_on_boot(int32_t IRQ_Type)
function (WEAK), processing can be performed before the interrupt is cleared. If this function returnsFALSE
,NVIC_ClearPendingIRQ()
will clear the interrupt. bool_t g_twenet_skip_checkirqpending;
has been removed.
- A bit set to
Changed the code to start the timer at an early stage in
ToCoNet_vSleep()
to measure the time until the actual timer count value is set. Previously, there was no compensation for the time when the timer was not running, which led to a large time error.Changed the timer count reading API to a safer code (it now includes a wait for the clock).
MWSDK2024_06G-1 (2024/06/06) — hot fix
- To address an issue where POWER DOWN would occasionally fail during sleep, a 100-microsecond delay has been added before retrying POWER DOWN.
- All interrupt flags are now cleared at the time interrupts are disabled.
- Clock stopping is now executed earlier.
MWSDK2024_05G (2024/5/30) — beta
- The transmission queue is now initialized upon waking up from sleep. (The unsent status before sleep is completely cleared).
- SRAM BANK7 is now retained during RAM OFF sleep, and the I/O output state and pull-up state from before sleep are now restored, whereas they were previously forced back to their default values. * For details on the memory map, please refer to this link. * The following process is performed after waking up to restore the I/O state: * For pins configured for output, the output setting is overwritten and the LO/HI values are restored. * The pull-up state of all pins is restored based on the saved values. * For I2C, PIO10 and 11 will have the ECS bit set when pull-up is disabled. * The IO RETENTION bit is reset after the above process.
- The code for determining the wake-up status (POR, wake from RAM OFF sleep, wake from RAM ON sleep, etc.) has been made more rigorous.
* This implementation is necessary for the aforementioned RAM OFF sleep determination.
* There were issues such as not being able to distinguish between RAM OFF Sleep and Software Reset from the return value of
u16AHI_PowerStatus()
. * A wake-up bit from WatchDog has been added tou16AHI_PowerStatus()
.
MWSDK2024_04G — beta
- I2C bus-related fixes
* The clock frequency can now be changed through re-initialization.
* The reference library code has been moved to the TWENETmwx library.
TWENETmwx/source/sensors/legacy/SMBus.[ch]
- Previously, to prevent unintentional overwriting of pins with enabled functions (I2C, SPI, etc.) by GPIO-related APIs, the global variable
g_twenet_u32_pio_special_func_attached
was used. However, because some code was found to cause inconsistencies, this is now handled by referencing the PIO register usingcheck_pio_if_gpio() TWENETcmpt
instead of the global variable. * This change does not affect user code that does not cause such inconsistencies.
MWSDK2024_01_2 (2024/2/13)
- Fixed an issue where DIO (GPIO) control was not possible after waking up from RAM OFF sleep.
- Added a 96-byte reserve area to BANK7 memory (unused in the current version).
Regarding Wake-up from RAM OFF Sleep
After waking up from RAM OFF sleep, the initialization procedure is the same as a normal hard reset or POR boot, and most of the pre-sleep state is not retained. This fix addresses the problem of not being able to change the DIO state after waking up from sleep.
The following behavior is implemented:
After
cbAppColdStart(TRUE)
finishes upon waking up from RAM OFF sleep, the bits in the register that holds the DIO state (SYSCON->RETENTIONCTRL
) are cleared.- Pins that were configured for output before sleep must have their output configuration and HI/LO values re-set during the
cbAppColdStart(TRUE)
process. - During the
cbAppColdStart(TRUE)
process, the pin state will not change even if you set the output configuration or HI/LO values. - There is no method provided to check the HI/LO designation of a pin during the
cbAppColdStart(TRUE)
process. - If you want to perform IO control during the
cbAppColdStart(TRUE)
process, you must set the pin’s output configuration and HI/LO values, then call the newvoid vAHI_DioRetentionRelease_MW()
function introduced in this fix. The HI/LO value set before the function call will change immediately, and subsequent HI/LO settings will be possible.
- Pins that were configured for output before sleep must have their output configuration and HI/LO values re-set during the
If woken up by a DIO interrupt, a bitmap indicating the corresponding DIO can be obtained as the return value of the
u32AHI_DioWakeStatus()
function. This bitmap can also be obtained in the same way with RAM OFF sleep.- The
u32AHI_DioWakeStatus()
function internally clears the bitmap after being called, so a second consecutive call will return0
. - When using the TWENET C API, the
u32AHI_DioWakeStatus()
function is executed during thecbAppColdStart(FALSE)
call. The MWX library calls it internally and saves the value.
- The
Regarding the Reserve Area in BANK7 Memory
This is a reserve area added during the course of the fix. When using the heap area for memory allocation APIs like malloc()
and BANK7 is used (including when not configured), a 96-byte area becomes a reserved area. Including the previous reserve area, a total of 128 bytes are reserved, so the usable space in BANK7 is 4096 - 128 = 3968 bytes.
MWSDK2022_08
TWELITE APPS
CUE App (App_CUE/App_CUE_OTA) v1.1.1
- Fixed an issue where the PAL ID would output an unintended value during the motion sensor PAL mode (single shot).
ARIA App (App_ARIA/App_ARIA_OTA) v1.1.1
- Fixed an issue where an abnormal value would be output when the measured temperature exceeded 42°C.
PAL App (App_PAL) v1.5.2
- Fixed an issue where an unintended PAL ID would be output during the single-shot mode of the motion sensor PAL.
- Fixed an issue where an abnormal value would be output when the measured temperature exceeded a certain level (this is a fix for TWELITE ARIA, so there are no changes to the environmental sensor PAL code).
Parent/Repeater App (App_PAL) v1.2.1
- Fixed an issue where the data output from the PAL app (CUE app, PAL app) could sometimes be an unintended value.
Serial Communication App (App_UART) v1.4.7
- Changed the default number of retransmissions to 2.
Act_extras
ActEx_AQM0802
- Added support for MWX stream output.
- Added support for AQM1602 (16x2 line LCD).
- Added a contrast adjustment feature.
MWSDK2022_07
Added new samples for Act, new features for TWELITE ARIA/TWELITE CUE/TWELITE PAL, and other changes.
TWELITE APPS
- Added English translations to 000desc.txt.
- Marked Samp_PingPong and Samp_I2C as newly adopted but deprecated.
CUE App (App_CUE/App_CUE_OTA) v1.1.0
- Added a function to transmit one acceleration sample at a specified interval.
- Added a function to transmit the average, minimum, and maximum values of acceleration measured over a certain period.
ARIA App (App_ARIA/App_ARIA_OTA) v1.1.0
- Added a function to apply an offset and a coefficient to temperature and humidity measurements.
PAL App (App_PAL) v1.5.1
- Added a function to transmit one acceleration sample at a time for the motion sensor PAL.
- Added a function to transmit the average, minimum, and maximum values of acceleration measured over a certain period for the motion sensor PAL.
- Added a function to apply an offset and a coefficient to temperature and humidity measurements for the environmental sensor PAL.
Parent/Repeater App (App_PAL) v1.2.0
- Added a function to output the average, maximum, and minimum values of acceleration.
Act_samples
- Added English translations to 000desc.txt.
- Added
BRD_I2C_TEMPHUMID
.- A sample that uses an I2C sensor device to perform periodic measurements and transmissions after waking up.
Act_extras
- Added English translations to 000desc.txt.
- Added
ActEx_AQM0802
.- A sample that uses the AQM0802 LCD module, which implements the Sitronix I2C LCD controller ST7032.
mwx - 0.2.0
- Changed the Wire object to allocate memory in the heap area.
- Changed function name from
G_OCTET()
toG_BYTE()
to avoid name conflicts inutils.h
. - Changed the order of
vAHI_DioInterruptEnable()
inattachIntDio()
. - Added
the_twelite.network2
to support a universal receiver (which can receiveNWK_LAYERED
,NWK_SIMPLE
, or network-less packets with the same executable code). - Added
NWK_LAYERED
(currently only supports parent device reception). - Introduced the
MWX_Set_Usder_App_Ver()
function to set the application version during MWX initialization. - Added
mwx::pnew()
to simplify the description of placement new. - Added EASTL support.
- Added the
new[]
operator for EASTL. - Precompiled most of the MWX source code to speed up compilation.
- Fixed an issue where DIO events were being passed to unrelated ports.
twesettings - 0.2.6
No changes since MWSDK2021_09. The compiled library remains 2.5. Source code only.
TWENET C - 1.3.05 (L1305)
No changes since MWSDK2021_09.
MWSDK2021_12
Fixes related to TWELITE ARIA support, and others.
TweApps
App_PAL (1.3.4)
- Added support for TWELITE ARIA.
App_UART (1.4.6)
- Fixed an issue where a NUL character was being output at the end; it is no longer output.
- The
>
(end of checksum range) now works with output customization.- For example, if you set
MSG;<*>;%X\\n
, for the transmission string “HELLO
”, the output will be “MSG;HELLO;nn<CRLF>
” (where nn is the XOR checksum ofHELLO
).
- For example, if you set
App_ARIA (1.0.0)
- Newly added.
App_ARIA_OTA (1.0.0)
- Newly added.
App_Wings (1.1.6)
- Fixed an issue where App_Wings configured as a repeater would not relay if the parent device was not App_Wings.
Act_samples
BRD_ARIA
A sample that performs intermittent operation with sleep, while measuring and transmitting wirelessly.
Unit_brd_ARIA
A sample that operates only the sensor, using the SHT4x sensor object .sns_SHT4x
included in the ARIA
board behavior.
mwx - 0.1.9
- Added support for TWELITE ARIA.
- Added board behavior
<ARIA>
(BrdARIA
class). - Added sensor definition
SnsSHT4x
.
- Added board behavior
- Fixed the built-in functionality (Extra Menu) of the
<STG_STD>
interactive mode settings menu so that it now works. (In mwx0.1.8, output via Serial was automatically suppressed during interactive mode, but a procedure has been provided to allow output from within the code of the built-in functions.)
twesettings - 0.2.6
No changes since MWSDK2021_09. The compiled library remains 2.5. Source code only.
TWENET C - 1.3.05 (L1305)
No changes since MWSDK2021_09.
MWSDK2021_09
- Enhanced VS Code support for each sample.
- By setting environment variables from TWELITE STAGE and opening VS Code via STAGE, code interpretation and build execution can be performed within VS Code without special configuration.
TweApps
App_CUE (1.0.3)
- Fixed an issue that occurred when the sleep time was set to 61 seconds or more.
App_IO (1.3.2)
- Fixed an issue where only up to 8 ports were reflected in the UART command processing.
App_PAL (1.3.3)
- Adjusted OTA messages.
- Ensured that the time delay for the MC3630 accelerometer initialization procedure is performed reliably.
- Enabled the threshold for MC3630 accelerometer interrupts to be changed in the settings.
App_Tag (2.2.4) (2525A)
- When obtaining sensor values from the ADXL345 accelerometer after each sleep wake-up, an appropriate sensor value might not be obtained. This has been fixed by acquiring multiple samples to exclude the influence of inappropriate samples.
- Explicitly provided appropriate parameters to the DUPCHK module for duplicate packet removal.
- Explicitly added a wait process for acquiring sensor data from MAX31855.
App_UART (1.4.1 -> 1.4.5)
- Added a dedicated build for TWELITE UART.
- When transmitting frequently, the packet ID could wrap around unexpectedly, causing packets to be removed by the duplicate checker. An option bit
0x0000:4000
was added to enable settings for high-frequency use. - Added Mode E and made it the default. In the previous Mode D (transparent mode), information from wireless packets such as the address of the arrived packet could not be obtained, but now it can be included in the output in a customizable form.
Act_samples
- The samples have been organized to be easier to understand in sequence, as follows:
- act0..4
- Scratch (transmitting with serial input)
- Slp_Wk_and_Tx (sleep -> wake up -> transmit)
- Parent_MONOSTICK (receiving)
- …
- Expanded samples supporting interactive mode.
- Added support for
on_rx_packet()
andon_tx_comp()
callback functions. - Enhanced the
Parent_MONOSTICK
sample to interpret packet contents and display sensor values, etc. - In samples that perform sleep, the
SM_SIMPLE
state machine is used to describe theloop()
concisely. - Added the
Unit_Cue_MagBuz
sample (rings a buzzer when a magnet is separated). - Added the
Unit_doint-bhv
sample (detects DIO interrupts using a behavior). - Renamed sample names:
PAL_MOT
->PAL_MOT-fifo
PAL_MOT-oneshot
->PAL_MOT-single
PAL_AMB-behave
->PAL_AMB_bhv
mwx - 0.1.8
- The definitions for
Serial1
’s ports and alternative ports were not appropriate. - Enabled the baud rate of
Serial
(UART0) to be changed. - Added event callbacks to notify of received packets (
on_rx_packet()
) and transmission completion (on_tx_comp()
).- The previous procedures are still available if the callback functions are not defined.
- Fixed an incorrect definition ID in the
<STG_STD>
interactive mode settings and changed some default values. - Enabled some settings for
the_twelite
and<NWK_SIMPLE>
objects to be done with the<STG_STD>
interactive mode object. - Enabled the default number of retransmissions to be set in
<NWK_SIMPLE>
. - Prevented
Serial
(UART0) input/output from the application while the<STG_STD>
interactive mode screen is displayed. - Added
CUE::PIN_SET
andPAL???"":PIN_SET
(since it is unnatural to usePIN_BTN
with CUE, which has no buttons). - Moved the
random()
namespace tomwx::
(aliased to the global name). - The MONOSTICK watchdog setting can now be done in 32ms units.
twesettings - 0.2.6
No changes. The compiled library remains 2.5. Source code only.
TWENET C - 1.3.05 (L1305)
- Fixed an issue where the wireless operation was not performed until the first channel change cycle when using the channel manager.
- When a channel switch fails, a variable indicating that a channel switch is pending is no longer cleared to 0, and a channel switch is re-attempted within 64ms (currently, the channel waits by polling until a switch is possible, so a pending state is not active, but the implementation has been made more natural).
- Suppressed frequent calls to the Mac initialization function (which does nothing if already initialized but could cause a slight overhead).
- The interrupt handling for
ByteQueue
has been made stricter. - When multiple hardware interrupts occur almost simultaneously and there are multiple events in the hardware event queue, events at the back of the queue could be delayed (as only the first event is processed before the processing loop is exited).
MWSDK2020_12
TweApps
App_CUE 1.0.1
- New
App_CUE_OTA 1.0.1
- New
App_Wings 1.1.4
- Supports TWELITE CUE
App_PAL 1.3.2
- Added code for TWELITE CUE
- Implemented a receive-only mode in NOTICEPAL
Act_samples
- Added
Unit_PktParser
(Serial message parser) - Added
Unit_EEPROM
(EEPROM read/write) - Added
Unit_ADC
(ADC reading) - Added
Unit_CUE
(Act support for TWELITE CUE)
mwx - 0.1.7
- See https://mwx.twelite.info/v/latest/ for details
- Added
pkt_parser
(interprets serial messages) - Added
EEPROM
class (EEPROM read/write) - Added
receive_nwkless_pkt
option. Under aNWK_SIMPLE
network, normal packets with matching application ID and channel can now be received.
twesettings - 0.2.6
The compiled library remains 2.5. Source code only.
- Fixed an issue with list display and selection behavior when the number of items exceeds 10 in the menus provided by
tweinteractive_defmenus.c
.
MWSDK2020_10
Updated the mwx library, added and updated samples, and included more practical samples from Act Extras (ActEx_???).
TweApps
App_PAL 1.2.1
- Supports NOTICE PAL.
- Enabled sending interval to be set to every one second.
App_Tag 2.2.2
- Fixed the sensor value calculation formula for BME280.
App_Twelite 1.9.1
- Added ACK response for liveness detection via serial messages.
App_UART 1.4.1
- Adjusted the timeout for duplicate packets (can be received at 100ms intervals, with a duplicate detection timeout of 1 second; if the same packet arrives again after this time, it is displayed again).
App_Wings 1.1.3
- Supports NOTICE PAL.
- Other fixes.
Act_samples
- Added
Unit_???
samples to check single functionalities. - Added a sample for LED driver control for NOTICE PAL (Unit_using_PAL_NOTICE).
- Added
Slp_Wk_and_Tx
, a template code for transmitting after waking up from sleep. - Rewrote
Pal_MOT_oneshot
’sloop()
using state transitions. - Added the
Setting
sample, which uses settings (interactive mode) in Act.
Act_extras
- Added
ActEx_DIO_Trans
(high-speed sampling of DI state and reproducing it on the destination DO). - Added
ActEx_Sns_BME280_SHT30
(environmental sensors BME280 and SHT30 devices). - Added
ActEx_Sns_MLX90614
(use of infrared temperature sensor MLX90614). - Added
ActEx_Sns_VL53L1X
(use of laser distance sensor VL53L1X).
mwx - 0.1.6
[0.1.6b4]
div100()
, which calculates quotient and remainder, can now be output to Serial, etc.- Implemented a change to the
smplbuf<>
array class. To reduce memory consumption, among other reasons, it no longer inherits frommwx::stream
, and a separate inheritance class and helper class were defined. - Added
mwx_printf()
andmwx_snprintf()
functions. - Added
the_twelite.stop_watchdog()
andthe_twelite.restart_watchdog()
. mwx::stream
maintenance: Deprecatedoperator bool()
. If0xff
is specified for the read timeout (.set_timeout(0xff)
), the timeout is disabled. Other<<
operator definitions were added.
[0.1.6b3]
- Added support for NOTICE PAL / PCA9632 (see explanation at https://mwx.twelite.info/v/latest/boards/pal/pal_notice and sample at https://github.com/monowireless/Act_samples/tree/master/Unit_using_PAL_NOTICE).
- Added non-division 8-bit and 0..1000 range scaling functions.
[6fd542c]
- Added
div10()
,div100()
,div1000()
, which perform division by 10, 100, and 1000 (calculating quotient and remainder simultaneously). These are optimized for a limited range of values, primarily using multiplication and bit shifts. - Added methods to support encrypted packets.
packet_rx::is_secure_pkt()
: Determines if a received packet is encrypted.STG_STD::u8encmode()
: Gets the encryption setting in interactive mode.STG_STD::pu8enckeystr()
: Gets the encryption key byte string in interactive mode.
[0.1.6b2]
- Serial1: The default ports according to the semiconductor specification, DIO14 and DIO15, overlap with I2C, so they were changed to DIO11 (TxD) and DIO9 (RxD), which are typically assigned to I2C.
- Serial: The calculation of
/100
that occurs when specifying the baud rate has been optimized for major baud rates. - Serial: The proxy function for performing
available()
andread()
externally has been changed to hold only avoid*
, reducing memory usage by 8 bytes. - Added
typedef boolean
. - Network: Added support for encryption.
- To enable encryption, set
NWK_SIMPLE::secure_pkt(const uint8_t*, bool = false)
. The first parameter is the encryption key, and setting the second totrue
also allows reception of plaintext packets.
- To enable encryption, set
auto&& nwk = the_twelite.network.use();
nwk << NWK_SIMPLE::logical_id(0xFE) // set Logical ID. (0xFE means a child device with no ID)
<< NWK_SIMPLE::secure_pkt((const uint8_t*)"0123456789ABCDEF");
;
- Added sensor support for SHT3x and BME280.
- Sensors: Added a mechanism for exchanging configuration parameters and states with legacy code (C library wrapper classes).
- Sensors: I2C addresses can now be specified for SHT3x and BME280.
- Settings: Added
hide_items()
to allow the removal of unnecessary settings. - Settings: Added the H/W UTIL menu, which displays DI status, performs I2C probes, and shows the contents of PAL EEPROM.
- Settings: Added encryption-related menus.
[4d8ce8b]
- Fixed I2C-related issues (fixes to improve compatibility with code implemented using the
TwoWire
class).NO_STOP
message was not sent correctly duringrequestFrom(false)
, causing the process to fail.- Added a class name alias for
TwoWire
. - Prevented multiple initializations in
begin()
processing. - Added a
setClock()
method (dummy function that does nothing). - Added
WIRE_CONF::WIRE_???KHZ
for common bus clock settings.
twesettings - 0.2.5
No changes.
TWENET C - 1.3.04 (L1304)
更新無し
MWSDK2020_08_UNOFFICIAL - 2020-08-05
The mwx library now includes settings (interactive mode).
mwx - 0.1.5
- Added the
<STG_STD>
settings behavior.- The built-in mwx library behaviors are now four types: network, board, application, and settings. Therefore, settings functionality was added to the main loop processing.
- The settings behavior hijacks the Serial input, so a separate FIFO queue for input was added to handle this, and
Serial.read()
was changed to get data from this queue. - The table for
<STG_STD>
is fixed, but an interface was added to allow swapping the setting names and labels.
- Added support for the channel manager (multiple channel usage).
twesettings - 0.2.5
- Prepared for adding interactive mode to mwx.
- Added table definitions for swapping setting names.
- The table for mwx was previously defined here, but has been moved to the mwx library.
TWENET C - 1.3.04 (L1304)
- Added support functions for registering internal modules from mwx.
- Added header definitions that allow the timeout and time scale values of the MOD_duplicate checker to be parametric.
MWSDK2020_07_UNOFFICIAL - 2020-07-27
Several issues were addressed and APIs for the mwx library were added.
mwx - 0.1.4
- Enhanced initialization process for MC3630.
- Improved accuracy of
delay()
duringsetup()
andwakeup()
. - Added declaration of
Serial1
instance. - Added
delayMilliseconds()
. - Added
digitalReadBitmap()
. - Fixed a bug where the
Analogue
callback function was sometimes not called.
twesettings - 0.2.4
- Added microsecond wait API
TWESYSUTIL_vWaitPollMicro()
.
TWENET C - 1.3.03 (L1303)
No changes.
MWSDK2020_05 - 2020-05-29
Starting with MWSDK2020_05, subsequent changes are listed below.