JANOS Insiders Guide

Written by Kevin Cloutier on Jul 12, 2018 8:49 pm

The JNIOR Model 410 looks very much like your familiar model 310 but just how similar is it? This insiders’ guide takes you on a tour of the JANOS Operating System highlighting what’s new and what’s different. It’s a technical peek into the next generation of JNIOR.
This Guide is for those who are very familiar with the JNIOR Model 310, 312 or 314. While the new series of JNIOR provides all of the capabilities that you have come to enjoy there are many (sometimes subtle) improvements. It is here that we will outline those for you. Our goal is to remove any mystery, to make you comfortable with the new generation, and to help you efficiently assimilate these devices into your installations.

1 Appearance

First of all the Model 410 looks different but not all that different from the Model 310. It is important that you be able to continue to use the JNIOR 410 in every application where previously you would the 310. For this reason the product housing has not changed; There has been no change to the connections; And, the power supply requirements remain the same.
At the same time it is important that you be able to quickly identify a 410 limiting any possible confusion. To this aim the color scheme used in the labeling has changed. The 410 provides a sleek dark look with its predominantly black front label. In addition the GREEN power LED is no longer green. The model 410 uses a BLUE LED to indicate power which can be easily identified from a distance. Other than this color difference the LEDs serve an identical purpose.

2 Connections

All of the connections to the Model 410 are 100% compatible with the Model 310. This is so you are guaranteed to be able to remove a 310 from its application and directly replace it with the new 410. There is one very subtle change which you would likely be hard-pressed to identify unless we point it out. The tab on the Sensor Port jack is now located upwards. We flipped this connection over because with the JNIOR mounted to the wall and depending on the hardware used to mount it getting your finger under the RJ-l2 plug to press the tab was sometimes difficult. This is certainly one of the least significant differences in the product if not THE least significant but we did promise to outline ALL of the differences.

3 Under the Hood

With the Model 310 there was no real need to remove the cover to access the circuit board inside. For the most part this is true for the 410 as well. Here there are two differences under the hood that should be mentioned.

3.1 Battery

All JNIORs use a 3V non-rechargeable lithium battery cell. This battery is used to maintain the content of the non-flash memory holding that portion of the file system outside of the /flash folder. The battery has a life expectancy of several years. This is especially true when the JNIOR remains in use and powered during most of that period. With the Model 310 this battery is NOT user replaceable.
The Model 410 uses a standard 3V CR2032 coin cell which is readily available wherever batteries are sold. While we have not experienced any significant issue with the life of the batteries used in the 310 they are quite expensive and do not provide the advantages of a removable cell. If your battery has failed you would notice a lack of any entries in the jniorsys.log file prior to the removal of power. The loss of file data may or may not impact your application. With the 410 at least you can easily replace the battery by simply sliding the old one out of the holder and slipping a new one in. The CR2032 coin cell actually has more capacity than the permanent batteries that we have used in the 31X models.

3.2 Configurable Relays

As you know our relay outputs are normally open (N.O.) dry contact. Those familiar with the Model 312, which has 12 relay outputs and 4 isolated digital inputs, may know that there are two relays which can be configured by internal jumper to alternatively function as normally closed (N.C.). We have carried this feature into the Model 410 where Relay Output 1 and Relay Output 2 can be configured to be either N.O. or N.C. simply by moving the associated jumper. All units come factory configured for N.O. operation.

4 Performance

By far the majority of differences in the new Model 410, those beyond what have been mentioned already, become apparent when power is applied. The most significant of which is product performance. The Model 410 is considerably faster and much more responsive than its predecessor.
This key difference becomes immediately obvious when power is applied. You are likely aware that the YELLOW/ORANGE Status LED to the right of the Power LED on JNIORs remains on a during product boot. This is true also for the Model 410 however try not to be distracted by the BLUE Power LED as you may miss the boot indication entirely. The Model 410 operating system (OS) literally boots in a second. The status LED correspondingly merely flashes.
After a second any configured and enabled applications have been lunched and have begun to initialize. The network connection becomes active after about 5 seconds as the hardware completes the normal auto-negotiation with the interconnected hub. This means that after only 5 seconds the Model 410 JNIOR is ready to accept browser connections, process FTP transfers or otherwise handle all network traffic. Even the most complicated applications are generally up and running in no more than 15 seconds.

4.1 Processing Core

The Model 410’s leap in performance comes from a significant upgrade in processor. The internal system clock, which governs the pace of machine instructions, is 3 times faster than the Model 310. Furthermore the new processor uses leading-edge technology to combine a variable length instruction set with an advanced instruction pipeline to achieve a one instruction per clock cycle execution rate. On average the Model 310 requires about 3 clock cycles per instruction. On this basis alone we would expect a 10X speed improvement with the Model 410.
The new processor is 32-bit where the Model 310’s processor was only 8-bit. Numbers are generally represented by programming languages as 4-byte (32-bit) integers. The simple act of adding two integers in an 8-bit system requires dozens of machine instructions whereas with a 32-bit processor it takes just one. In our case this difference is perhaps on average a factor of 20. This would imply that the Model 410 might be as much as 200 times faster than the 310.
In addition, on the Model 410, the operating system code is run out of flash memory internal to the processor which has a 10 nano-second access time. This is extremely fast for flash especially when compared to the external flash used by the Model 310 where access requires 70 nanoseconds. In order for the prior 310 to avoid having to wait for memory, programs are copied to RAM and executed there. The impact on performance in having to copy code and the increased load on memory management cannot be directly quantified.
As a further advantage the new processor has built-in functionality to perform multiplications, divisions and floating point calculations. The benefit of all of this is also difficult to quantify. The bottom line is that on the basis of hardware alone the Model 410 should be some 250 times faster than the 310 if not much more.

4.2 JANOS Operating System

As with any product the operating system brings life to the hardware. This is complex programming that is tightly coupled with the hardware design. In order for INTEG to move the JNIOR line to a new processor platform a new operating system had to be developed. For this new operating system to retain functionality closely matching (and indeed indistinguishable from) the existing 31X line we had to create it completely in-house. Therefore with the new Model 410 we introduce the JNIOR Automation Network Operating System of “JANOS” for short.
In ancient Roman religion and myth, Janus is the god of beginnings and transitions, and also of gates, doors, passages, endings and time. With this in mind the acronym JANOS is appropriate for an I/O system controlling inputs and outputs.
Unlike its predecessor the JniorOS (built upon the Dallas/Maxim TINI OS) which was written in Java, JANOS is written in C language directly generating efficient machine instructions which are optimized for the new processor core. Where previously the Java code interpreted sequences of bytecodes pacing OS performance, the new operating system performs dramatically faster and significantly more efficiently executing directly in machine language.
As a result the new Model 410 out-performs the Model 310 by orders of magnitude opening up possibilities for new and exciting applications.

5 File Storage

Beyond the improvement in processing speed the Model 410 also has the capability to store more file data. By default the area preserved for the /flash folder is 32MB which is over 40 times that provided by the Model 310. This providing ample space to store a fully featured website inclusive of graphics or for the storage of data covering long periods of time in data logging applications. The internal flash memory may even be expanded by special order to as much as 128MB and perhaps beyond.

6 JANOS Command Line

As with its predecessor the Model 410’s command line is accessed through a serial connection to the RS-232 port or via the network through a Telnet connection or application support such a connection. The prompt should be very familiar and all of the commands that you have used to manage your JNIORs are there. There are some differences which will be high-lighted in the next section.

6.1 Editing

The entry of commands has been improved. In addition to the UP/DOWN ARROW command history that JNIOR provides you may now use a number of other editing keys. The RIGHT/LEFT ARROW keys together with the HOME, END, BACKSPACE, DEL and INS keys can be used to flexibly edit and enter commands. This is welcome relief and a definite improvement over the previously limited editing available in the Model 31X series.

6.2 Auto-fill (TAB)

The TAB key is used to auto-fill file names. While entering any command you may type one or more characters representing the beginning of a file or folder name and then use the TAB keystroke to to toggle through potential files and folders matching that criteria. This is very useful to avoid having to enter lengthy file names in their entirety. The TAB key can even be used to construct paths to files located deep in the file system. For instance the sequence
cat f[TAB]/j[TAB][RETURN]
will likely execute the following as if entered directly.
cat flash/jnior.ini[RETURN]
The TAB key also enhances the registry command discussed in the next section.

6.3 Prompt Abbreviation (DEL)

The prompt itself displays the current Hostname together with the current working folder (directory). If you have used the cd command to move about folders in the file system and depending on the length of the Hostname defined, your prompts can be quite lengthy. You might be starting to enter commands 1/3rd of the way across a line and depending on the application used for access may have to contend with command line wrap.
If this becomes an issue, you may now use the DEL key immediately at a new prompt to squelch the display of the Hostname. If you do so, all subsequent command line prompts will omit the Hostname. Once another character is type after the prompt the DEL key will perform its editing function as expected.

6.4 Command History

As with its predecessor the Model 410 provides a command history wherein the UP/DOWN ARROW keys may be used to access and repeat a previously entered command. This is very useful.
The 410 however remembers up to 8 unique command entries sorted so that the UP ARROW supplies the most recently entered commands first. By doubling the number of remembered lines, eliminating duplicates, and sorting by age the command history becomes a more effective time saver. Add this to other editing and auto-fill functionality and you find that the command line is much easier to use.

6.5 Custom Command Creation

The java command is used to execute application programs. As will be covered later these are stored in .JAR files. The Model 410 allows you to execute a program using simply its name. So these two command lines equivalently execute the target application. Note also that file names are case-independent.
java MyApp.jar -debug
myapp -debug
This in effect allows you to create a custom command.

7 Commands

All of the commands available with the Model 310 are also provided in the new Model 410. In many cases the output may be formatted slightly differently, some additional information might be provided, or there may be additional functionality. We will review each command here focusing on significant differences.

7.1 The arp Command (New!)

7.2 The bye Command (New!)

The bye command terminates the current Command session. It is equivalent to the exit command.

7.3 The cat Command

Ctrl-C can be used to interrupt the listing of a lengthy file. If you cat a lengthy file and decide that you do not need to see the whole thing, hit the Control-C key combination to stop the listing.
The cat command can be used with the -h option to dump the content of a file in hexadecimal. This allows you to view the binary content of a file. For example:

JANOS_Rev04 /> cat -h jniorboot.log
00000000  30 38 2f 31 32 2f 31 33  20 31 39 3a 33 36 3a 31  08/12/13 .19:36:1
00000010  31 2e 35 39 38 2c 20 4d  6f 64 65 6c 20 34 31 30  1.598,.M odel.410
00000020  20 2d 20 4a 41 4e 4f 53  20 76 30 2e 38 2e 35 2d  .-.JANOS .v0.8.5-
00000030  72 63 34 2e 31 0d 0a 30  38 2f 31 32 2f 31 33 20  rc4.1..0 8/12/13.
00000040  31 39 3a 33 36 3a 31 31  2e 35 39 39 2c 20 43 6f  19:36:11 .599,.Co
00000050  70 79 72 69 67 68 74 20  28 63 29 20 32 30 31 32  pyright. (c).2012
00000060  2d 32 30 31 33 20 49 4e  54 45 47 20 50 72 6f 63  -2013.IN TEG.Proc
     .
     .
     .

This is useful in debugging applications that may store information in a binary form.

7.4 The date Command

The date command has 3 new options. The -s option disables the use of Daylight Savings Time for the current Timezone; Correspondingly the -d option enables Daylight Savings Time; And, the -v (verbose) option provides additional detail regarding the current time. For example.

JANOS_Rev04 /> date -v
 utc: 1376337540
 Mon Aug 12 15:59:00 EDT 2013
 Current Timezone is EST for the America/New_York area.
 Abbrieviated EDT when Daylist Savings is in effect.
 Daylight Savings Time begins at 02:00 on the Sun on or after Mar 8th.
 Daylight Savings Time ends at 02:00 on the Sun on or after Nov 1st.
 When in effect Daylight Savings Time sets clocks ahead by 1 hour.
 Daylight Savings Time is currently in effect.
JANOS_Rev04 />

7.5 The extern Command

The extern command manages external devices. In JANOS it remembers and displays the addressing and type for each module used with the unit.

JANOS_Rev04 /> extern
  TypeFB_1 = CD111090708109FB  present
  TypeFB_2 = BE111120220410FB  not present
  TypeFB_3 = 79111130517082FB  not present
  TypeFA_1 = C7100511100083FA  not present
  TypeFE_1 = 23111130619007FE  not present
  TypeFD_1 = 4B111110510241FD  not present
JANOS_Rev04 />

Note that the first two TypeFB (4ROUT) devices (TypeFB_1 and TypeFB_2) extend the Relay Output functionality of the unit. On the 410 the first represents Relay Outputs 9 through 12 and the second 13 through 16. JANOS like its predecessor works to maintain the proper association between the Relay Output and the physical module. This is done through this addressing.
Unlike its predecessor, the Model 410 does not automatically forget modules should they be removed and the unit rebooted. This greatly reduces the risk that the order of 4ROUTs and their associated Relay Outputs be confused and improperly assigned. If you do need to reset this addressing, use the -r option as follows:
extern -r
This will ‘remove’ any modules that are no longer present. The 4ROUTs will be reassigned in the order that they are detected.
The Model 410 also scans for new modules and verifies existing modules every 5 seconds. A reboot is no longer required (or use of the extern command) to detect newly connected devices.
Procedure for Assigning 4ROUT Modules
1) Remove all modules.
2) Issue the extern -r command.
3) Connect the 4ROUT module to be associated with Relay Output channels 6 through 12.
4) Wait 5 – 10 seconds (or use extern command until you see that the module is assigned).
5) Connect the 4ROUT for channels 13 through 16.
The 4ROUT and Power 4ROUT modules are TypeFB and are interchangeable as far as channel assignments are concerned. All other modules are addressed directly by their address in all protocols.

7.6 The iolog Command (New!)

7.7 The jar Command (New!)

7.8 The jrupdate Command (New!)

7.9 The manifest Command (New!)

7.10 The mode Command (New!)

7.11 The nv Command (New!)

7.12 The reg Command (New!)

The reg command is an alias (abbreviation) for the registry command.

7.13 The registry Command

Listing Registry Content
The registry command can now be used with wildcards to list matching Registry entries. Wildcards adhere to the DOS standards using ‘?’ and ‘*’ wilds. For example:

JANOS_Rev04 /> reg Ip*
    IpConfig/Hostname = JANOS_Rev04
    IpConfig/DHCP = disabled
    IpConfig/IPAddress = 10.0.0.71
    IpConfig/SubnetMask = 255.255.255.0
    IpConfig/GatewayIP = 10.0.0.1
    IpConfig/PrimaryDNS = 10.0.0.4
JANOS_Rev04 />

Auto-fill Registry Keys
The TAB key can be used to auto-fill Registry Key names. For example:
reg Ip[TAB]/[TAB][TAB][TAB] =
This results in the following command line wherein you may complete it by adding the IP address.
reg IpConfig/IPAddress =
Note the use of repeated TAB keys to toggle through the various subkeys to end up with the one you want. The keys appear in alphabetical order and if you continue through all available the original command line re-displays. You may then proceed through the list again. This only works for existing defined keys. To define a new key you will need to type it out.
Recall Current Value
You may use the TAB key immediately following the ‘=’ to recall the current value of an existing Registry key. For example:
reg IpConfig/IpAddress =[TAB]
This results in the following line which may then be edited if desired.
reg IpConfig/IPAddress = 10.0.0.71
Specifying Files
The TAB key functions as in any other command line when used following the the ‘=’ sign but not immediately after. For example:
reg Run/TaskManager = f[TAB]/T[TAB][RETURN]
This results in the following entry and can be used to easily define the key to start TaskManager.
reg Run/TaskManager = flash/TaskManager.jar
Combined with the newly available LEFT/RIGHT ARROW, BACKSPACE, DEL and INS editing this can greatly improve the command line experience.

7.14 The touch Command (New!)

7.15 The usermod Command (New!)

7.16 The users Command (New!)

8 User Management

9 Registry

10 Web Server

The JANOS Web Server introduces 2 new enhancements in addition to improvements in performance. The JANOS Web Server supports built-in websocket functionality as well as a form of server-side scripting consistent with the Hypertext PreProcessor (PHP).

10.1 Websockets

JANOS allows a web connection to be promoted to the websocket protocol through the HTML port (default 80). In this case JSON formatted messages can be exchanged over a single persistent connection with the client browser providing AJAX type services in support of dynamic web pages. This offers an alternative to the older Java Applets and implements the approach which has become the norm for many websites.

10.2 Server-side Scripting

The JANOS Web Server implements a small subset of the well-known scripting language known as PHP. Documented separately this server-side scripting function complements websocket and dynamic HTML by providing the ability to generate context specific web content on demand.

11 JAVA Applications Programming

12 I/O Logging

13 External Modules

14 Firmware Updates

A key advantage with the new Model 410 is the ability to update 100% of the operating firmware. With its predecessor, the Model 31X series, a percentage of the operating firmware is supplied by a third party in binary form. It was not possible to field update that portion of the JNIOR Model 310 code. We in fact had not changed that portion of the operating system through the entire life of the Model 31X product. This has forced us to work-around some (permanent) deficiencies that had been discovered over the years.
JANOS on the other hand was completely developed by INTEG and this includes every single byte of operating code. Correspondingly we are able to update the system in its entirety. We are able to service an issue that may arise and better yet, we are able to extend the function of the operating system in any way conceivable.
Each Model 410 may be updated manually or through programs like the JNIOR Support Tool. The firmware update is supplied in a .UPD file which must first be copied into the JNIOR file system using FTP. This file is typically between 600KB and 700KB and so it is recommended that it be transferred to the /flash folder where the 410 provides ample space. Unlike its predecessor the Model 410 does not automatically detect the .UPD file on boot nor does it automatically remove the file after updating. The jrupdate command is used to install the update. For example:
jrupdate -u flash/filename.upd
This initiates the firmware update. Note that a reboot will be required to complete the OS replacement.

14.1 Java System Library

The Java library is stored in the /etc/JanosClasses.jar file. This is the system built-in library residing in the Read-Only /etc folder. This contains all of the base classes required to build Java applications to run on the JNIOR Model 410. A .UPD file my optionally carry new content for the /etc folder. Note that the folder is replaced immediately upon execution of the jrupdate command in the form shown above.
Since Java applications cache referenced classes, the library .JAR can be swapped while Java applications are running. An application may throw an unexpected exception if it should attempt to load a new class during the update. If this is a concern you might want to stop any running application before performing the update.

14.2 OS Update and Rollback

The Model 31X series maintained two JniorOS images, the field update and the original factory installed OS. These, of course, are images of that part of the OS that can be field updated. It is possible with the 310 to rollback to the factory installed OS. We have found that doing so is rarely desirable given that the factory installation can quickly become outdated. It is likely that JNIOR applications would fail to run under the original OS. The rollback in this case has not been recommended and practically never used.
The Model 410 on the other hand also supports two JANOS images one of which is the currently executing operating system. The other image is a copy of the previously installed version. The rollback then becomes seriously useful in that it will restore any previous version of OS which can be assumed to have been recently operational unlike a potentially aged original factory version. The jrupdate -r command performs the rollback.
In actuality the jrupdate -r command schedules a swap of the OS images on reboot. In this case on reboot the “Saved OS” becomes the executing OS and the previously running OS is “saved”. One can use the jrupdate -r command to toggle between an updated version of JANOS and a prior version. The stats command displays the current and saved versions of the operating system.
The jrupdate -u command as described above merely overwrites the “Saved OS” image with the supplied update and schedules the OS swap on the next reboot. The jrupdate -c command can be used to cancel any scheduled swap.
The Model 410 then performs any scheduled OS swap on boot bringing up the desired copy of JANOS in its entirety. While we recommend that the reboot be caused using the reboot command it is not strictly required with the new JNIOR. The Model 410 has been designed to perform properly in the face of the practice of pulling power to force a reboot. This is not the case with the 31X series where issues (namely the loss of configuration changes) may result if the reboot command is not used. We continue to recommend that the reboot command be used with with all Model 310, 312 and 314 JNIORs.

14.3 Removing Power During Firmware Update

You might be familiar with the warning: “Updating firmware DO NOT remove power.” if you, like everyone else, use new products that support network firmware updates. The assumption is that if you remove power and their update process has not completed you will be left with a product with half an operating system which is potentially no longer operational. This is not a concern with the Model 410 JNIOR.
On reboot the Model 410 handles a scheduled OS swap. The JANOS images are indeed physically swapped in program flash memory. If a traditional memory copy operation were employed then we would indeed need to warn you. But the Model 410 uses an algorithm for the swap that insures success even if you flip power off and on as fast as you can possibly do so during the procedure. Try it!
The YELLOW/ORANGE status LED flashes slowly during the swap which typically takes only a few seconds. The updated JANOS will subsequently boot in just another second no matter the stability of power during the swap. This was a critical concern because otherwise if power is pulled to effect the reboot and not restored decisively a lazy update process would risk failure. This risk is unacceptable and unlike other products we address the issue head-on with a fault-tolerant update procedure so you can update with confidence.

15 Safe Mode

The Model 410 may be started in SAFE MODE. In this mode applications that are programmed to start automatically through Registry “Run” keys are not started.
In order to access SAFE MODE a jumper must be inserted onto the pins accessible through the small opening between the Ethernet connector and the RS-232 Command Port. The unit is then rebooted or powered up. When the command line mode is subsequently accessed either through the serial connection or via the network, “SAFE MODE” will be indicated below the welcome banner. This is the only indication that the mode has been enabled. The jumper must be removed and the unit must be rebooted in order to exit SAFE MODE.
Note that you may ‘borrow’ a jumper from the N.O./N.C. relay jumpers if you remove the unit’s cover. Do so only if disconnecting that relay will not adversely affect any system connected to it. Use a unused channel if available. Once you are done with SAFE MODE be sure to return the jumper to the original position. Jumpers placed close to the relay output connector are set for Normally Open (N.O.) operation (default).
There are two situations in which SAFE MODE is useful.

15.1 Application Generated Boot Loops

If an application that is programmed to automatically start upon boot misbehaves and immediately causes a reboot, a boot loop will result. In this case the JNIOR will rapidly reboot and it will be impossible to regain control of the unit through normal means. The solution is to insert the SAFE MODE jumper. On the next reboot the application will not be restarted and you will be able to log into command line mode. Once at the command line you can proceed with debugging. The SAFE MODE jumper should be removed and you might want to also remove the application’s “Run” key until you are certain the issue is resolved.

15.2 Forgotten Administrator Username or Password

If you have lost and forgotten the administrator’s password (‘jnior’ user for instance), you will need to contact INTEG to obtain the “backdoor” password for your unit. This password will allow you to log into all accounts (even disabled accounts) but only in SAFE MODE. Once you have logged into the administrator’s account you should use the passwd command to change the administrator’s password.
In case you have removed the default administrator’s accounts (‘jnior’ and ‘admin’) and replaced them with your own account name which now you may have forgotten, SAFE MODE will restore a DISABLED account for ‘jnior’ with the standard default password. You may log into disabled accounts in SAFE MODE using the backdoor password. Use the ‘jnior’ account to manage your user accounts.
A unit should not be left in SAFE MODE as this enables the backdoor password wherever a password is requested. That means that it would be valid for web page login, FTP, etc. as well. This would represent a serious security concern. Remember to remove the SAFE MODE jumper once you are done and reboot!

On this page