Introduction
I'm happy to present RazManager, my free and open-source Microsoft Windows-based Race Management System (RMS) for Slot.it's oXigen, Scalextric Sport Digital (SSD) and the Digital Advanced 6 Car Powerbase (C7042), and various sensors for analog tracks. After years of things that have been in the way, like work, I've finally started serious development on it.
The presentation of the first public release will be different, but for this development presentation I will assume that you already are familiar with slot car racing and have used some RMS programs before. RazManager will have the usual RMS features; lap counting, lap timing, championship management, car management, driver management, team management, track management, pre/in/after-race reports, penalties, handicapping, and digital racing features like fuel and pit-stop functions and pace/ghost/computer cars, etc.
But I've tried to use a little bit different mindset when implementing these, and other, features. For me, it wouldn't make any sense to write a RMS program similar to the ones that are already out there. RazManager has instead more of a public event and entertainment twist to things. I of course get inspiration from reading this and other forums, and also being a race fan in general and F1 fan in particular. But most inspiration for this project comes from having a family with three kids. This means that game consoles, tablets, smartphones, etc, are now a natural part of our lifestyle, and I want to include these devices, and the user experience on these devices, in my RMS.
My goal with this project is not really what it might seem to be. I run my own business as a software developer/architect, using mostly Microsoft's products but also Oracle's databases. New software technologies arrive now and then and I need to catch up with them, but is not that often I get to try these out in my professional assignments, especially when they still are in beta or are very new. You can read web sites, forums, blogs and books, try example code, take a training course, etc, but to really learn these things and get some experience you need to try it yourself with something larger than a little test application. I have a passion for developing software, but I also have a passion for slot car racing. By combining these things, I can have fun while learning stuff useful for my daily work. The main goal I really have with this project is to use it as a playground for trying out new Microsoft-oriented software techniques.
This means that RazManager is not meant to be "everything to everyone", though you'll find a lot of features both for club- and home-style racing, for two of the digital systems and for some input methods for analog tracks. OK, if there's one area I'll try to be best at, then it's "public slot car events where people come and go and want to be entertained". In opposite to my professional assignments, this project is technology-driven, meaning you'll find features like a smartphone app, and e.g. using it and the phone's camera for registering new participants. When I'll try to learn and explore techniques that are new to me, I'll add features not usually found in a RMS program. They might not be on top of your priority list, but can in some cases be useful.
If RazManager is a personal project mainly driven by my own needs, are there any reasons for you to have any interest in it? I of course think it would be fun if its feature set interest some of you, build a small user community, get some feedback, improve things, and learn from it. There are also some opportunities for other developers to add their own extensions; it will be interesting to see how that will be received and where that will lead to.
Here are some things that might catch your interest:
User interface
If you've used a RMS program before, you are probably familiar with the 2D grid style race status window, where in most cases the rows in the grid are sorted after race position, and I'll make a version of that as well. Though that type of screen is informative, I wanted (at least have an option) to present race status, etc, with the look and feel of what people that are using modern game consoles and multimedia center programs are used to; 3D-look, 3D-animations and reflections.
The screenshots you see in this post are from an early prototype I made back in 2009 (a lot of the text in this post also comes from that old presentation). The screenshots are low-resolution, 8-bit color, hard compressed images, shrinked in size to comply with the forum rules. Each of them is available as a high resolution image, which should be viewed to get a better feeling of what the screen looks like (although these images are also in 8-bit color to keep the file size down to a reasonable level (~1Mb)). Be sure though that your image viewer really displays them in full resolution. E.g, Internet Explorer's viewer has a habit of making lines look "jagged" when downsizing an image.
Cropped low-resolution screenshot of a 2x3=6 car grid
Also available in a high-resolution 1920x1200 widescreen version
The basic idea is to have images of the cars in their own 3D-frame, order them after their current race position, and animate the car frames in different fancy ways when the race positions change.
Cropped low-resolution screenshot of a car frame
Also available in a high-resolution 1920x1200 widescreen version
The car frame contains some basic race data, and a fuel meter on the top bar (I got the direction of the fuel meter wrong in that old prototype, will fix that). A "team flag" can be used as a background; otherwise the background will have a darker version of the car frame color.
Low-resolution screenshot of a 3x4=12 car grid overview
Also available in a high-resolution 1920x1200 widescreen version
The grid can be changed to have any number of lanes.
Low-resolution screenshot of a 4x5=20 car grid
Also available in a high-resolution 1920x1200 widescreen version
Although 20 cars can be displayed, it looks a bit crowded and the text becomes harder to read for the cars at the back of the field. It might be good to combine this with one or two extra monitors with a 2D grid (if using 2 monitors, one grid screen with the drivers in position 1-10 for the first monitor, and a second grid screen with the drivers in position 11-20 for the second monitor).
Cropped low-resolution screenshot of two cars changing race positions
Also available in a high-resolution 1920x1200 widescreen version
Race position changes are animated, as well as camera position, camera angle, and different spotlights. This, together with automated speech, gives an impression not really reflected in these screenshots. A 3D image really begs for animation, it's what makes it come alive.
Different race reports can also have an animated 3D look. Below you see a screenshot from the Swedish pre-race F1 show. I want to have something similar to this (but animated, of course):
Hardware sensor support
Scalextric's Digital Advanced 6 Car Powerbase (C7042)
For a Scalextric Sport Digital (SSD) track, RazManager supports the Digital Advanced 6 Car Powerbase (C7042). There are no current plans to support the older SSD 6 car powerbase (C7030).
Besides the usual features, like automatic throttle calibration, throttle profiles, pace/ghost/computer cars, using the buttons for track call, etc, the buttons and the throttle can also be used for navigating some RazManager screens. For race oriented screens, it will actually be sufficient to use the buttons and the throttle on the controllers to setup a race and control it. Not really more complicated than playing a multi-user game on a game console (in fact, the inspiration for this comes from the Buzz PlayStation game series). Some parts of the race setup let the drivers enter their own details simultaneously with the other drivers.
The communication protocol between the C7042 and the PC (as well as firmware updates to the C7042) can be downloaded from the SSDC site. The raw data from the controllers are sent to the PC and it's up to the RMS to control what is sent to the cars. There are some extensions to the original SSD protocol meant to support car chips with the InCar-Pro firmware. However, RazManager won't support these extensions, as I haven't seen them being used that much, and I have no chips with modified firmware myself.
Slot.it's oXigen
Slot.it's digital system oXigen is also supported by RazManager. The oXigen "Dongle To PC" protocol is rather different compared to the SSD protocol. Instead of sending a lot of raw data and let the RMS program control everything, the oXigen dongle is a little RMS program itself. It sends laps times, lap counts, etc, to the PC and let the PC control a few things like start/stop, track call and maximum speed.
When a button on a SCP-1 controller is pressed or released, this is not reported to the PC. I had hoped it would be, but this might get included in the protocol in the future. Anyway, currently the buttons cannot be used to initiate a track call, and cannot be used for RMS navigation as in the SSD example above.
Pit-Pro
When using SSD/C0742 (and oXigen in SSD mode), the modified Scalextric Pit Lane Game called Pit-Pro (from the Pit-Pro team) is supported. You can use more than one Pit-Pro for multiple pit bays/stops, and the Pit-Pro can also be used for other purposes. See the features section later for more details.
I haven't tested yet that the Pit-Pro really works with an oXigen chip in SSD mode, hopefully it will.
Phidget
The http://www.phidgets.com/products.php?product_id=1012" target="_blank">PhidgetInterfaceKit 0/16/16</a> with its 16 digital inputs and 16 digital outputs can be used to interface to start/finish line sensing and power control for analog tracks, and track calls, start lights and speed traps for all systems.
Parallel port
You don't find a parallel port on PCs sold for the last couple of years, but it has been a popular way to connect to an analog slot car track. As RazManager's hardware requirements are rather high, your PC cannot be too old, but I want to include support for the parallel port anyway. Haven't tried it yet, hopefully it will work. If it does, the supported functions will be the same as the PhidgetInterfaceKit 0/16/16 (see above).
Web camera
When I've shown early versions of RazManager to non-slotters, like colleagues and friends, many have said that they got to buy their kids a slot car kit, or try to find their own old kit lying somewhere on their parents loft. They want to try the software, but don't have the time or commitment to add sensors to their analog kit like we slotcar people would have done before breakfast. I would therefore like it to be possible to use a web camera as a start/finish line sensor. Not that elegant, but no soldering iron required.
Smartphone camera
An alternative to the above would be to use a smartphone camera.
Other hardware
I myself have the equipment for SSD, oXigen and an analog track, so these are the only systems I'm able to test and support. I have an N-Digital 1.05 console, but as that version don't send any timing data, it's useless for my RMS. However, other developers can write plug-ins to let RazManager support more hardware.
I am myself not too keen on supporting customized hardware that is only used by a handful of people. One piece of customized hardware I do support is the Pit-Pro, but it is also rather common in the SSD community, and really adds a lot of value. I perhaps really use it too much, as RazManager will not only support several Pit-Pros for pit-stop functions, but also for non-pit-stop functions like sector timing, sector based pace/ghost/computer cars, and speed trap identification (again, see the features section later for more details). Using the Pit-Pro only as a SSD car identifier is maybe an expensive and complex method, but right now it's the only (non-powerbase) method for SSD. If something else gets a wide acceptance, I'll be happy to support that. Maybe it will be there some day…
Simulator
There's hardware simulator available that lets you (and me) test RazManager without connecting to a real track.
Multi-user and multi-client
Overview
RazManager's functionality is divided into three parts/layers/tiers. The first part is the so called client; it handles the user interface. It is connected to the second part, the server, which is responsible for the race management logic and other logic as well as the hardware communications. The server uses a third part, the database server, for all data storage.
You can do all this on the same PC, of course. But if that is the only thing you want to do, dividing the functionality into three separate programs/services isn't really needed (and that's why most other RMS programs have all the functionality within the same program).
However, if you want to use several PCs not only for pure displaying purposes but also for entering data, and/or use other type of devices like a tablet or a smartphone for the same thing, separating the user interface from the race management logic makes this easy. Here is one of many examples on how you can have several user interface client programs connected to the same RazManager server:
You can, as in the picture above, have a computer with only the RazManager server program and the database server, and run clients on other computers and devices. Of course, you can also run a RazManager client on the same computer as the RazManager server program; not shown in the picture above, but probably what most people would do.
If you have several tracks at the same location, you can have several RazManager servers connected to the same database, so you e.g. don't have to enter the same drivers more than once. You can also run races at the different tracks at the same time, but that are a part of the same championship.
In many respects, RazManager's architecture is like the architecture of a line-of-business application that you might already use at your office. I haven't seen this architecture being used in the slot car world yet, but variations of this has been very common elsewhere since the end of the nineties; the technologies used to implement them are changing all time time, though.
Clients
Windows 7/Vista/XP
There is a client program for Windows 7/Vista/XP (that also runs on Windows 8).
RazManager will contain a lot of configuration. But instead of having a few configuration screens with a lot of tasks in them, there will be rather many configuration screens but with only one or very few tasks in them. These configuration screens follows a user interface model known as inductive user interface. It basically means that it should be very easy to understand what a screen is used for. One part of accomplish this is to focus on a single task, and trying not to do too much in the same screen. Though that may not always be productive for someone that uses an application most of the day, it makes an application like a RMS program easier to use where you really don't go into the configuration screens that often. RazManager also follows the Windows User Experience Interaction Guidelines for Windows 7 and Windows Vista, so you should feel familiar with how the screens are used in general.
Due to some differences in graphic driver models between Windows XP and Windows 7/Vista, and the way that some lower level part of the 3D functions uses them, the 3D screens in RazManager looks a bit jagged when running Windows XP. So Windows 7/Vista is really recommended if you want to use these screens.
Windows 8
The Windows 8 app will of course have a different user interface. Although you perform the same tasks as with the Windows XP/Vista/7 client, the Windows 8 app instead follows the User interface guidelines for Windows Store apps.
I know there are mixed feelings about Windows 8, but if you have a tablet with Windows 8, its touch interface will make it really easy to use. The RazManager Windows 8 app of course takes advantage of this, so you don't have to mess around with a keyboard and a mouse while administering your race, etc. It'll give you the same freedom as wireless slot car controllers do.
Windows Phone 8
Windows 8 tablets are not available yet, and it will perhaps take a while before they become common, but most people nowadays have a smartphone. RazManager will have an app for Windows Phone 8. It will be similar to the full Windows 8 app, but without most configuration screens. With the RazManager Windows Phone 8 app, you will be able to:
iOS (iPod/iPhone/iPad) and Android
I won't myself develop an iOS (iPod/iPhone/iPad) or an Android app for RazManager, since I don't develop for these systems. But hopefully some of you will be interested in writing apps that can connect iOS and Android devices to the RazManager server.
Web
Initially, there won't be a web client (and web server) for RazManager, but in the distant future I hope to get this done. A graphic intense HTML5 client, both for smartphones and larger displays, would be fun to write some day, but it's not going to happen next week…
Xbox
It would also be fun some day to develop an Xbox client, but that is even further into the future. The new Xbox has most probably already arrived when I get a chance to have a look at this…
Other clients
You could write your own client, and use it instead or in addition to the RazManager clients I write. You could use any programming language and operating system you wish, as long as you can connect to the RazManager server's XML web service interfaces and network streams.
Server
The RazManager server program runs on Windows 7/Vista/XP (and also on Windows 8). It doesn't have much of a user interface, but you'll see it in the Windows notification bar.
Database
RazManager uses Microsoft's SQL Server 2012. Though the most advanced versions of SQL Server that has all the features cost a lot of money, there are also some free versions available, and it's one of them that is recommended and sufficient for RazManager, the one with Reporting Services so you can make your own web based race reports. I you wish, a lot of data is logged for you to dive into.
You would usually install the database server on the same computer as you run the RazManager server, but it could be installed on another computer as well.
Features
Here are some features I would like to highlight:
Pit-lane and multi pit-bay for SSD
Pit stops will only be supported for digital systems.
When using SSD and one Pit-Pro, a combined pit lane and single pit bay will be supported. But if using more than one Pit-Pro, you can have a pit lane with one or several pit bays, and use the pit lane for drive-thru penalties.
For oXigen, only a combined pit lane and single pit bay will be supported, that's a limitation in the protocol (although I had hoped it would be possible to use a layout as the one above).
Sector based timing
For analog tracks, you can get sector times if you have the sensors and input ports for it. But you can also get sector times for SSD (and oXigen in SSD mode) using one or several Pit-Pros as sector sensors. You won't be using the Pit-Pro for pit stops then, so you can take off the tower part if you want to.
Sector based speed for pace/ghost/computer cars for SSD/C0742 (and oXigen in SSD mode)
When not having enough drivers to fill the grid for a digital system, it's popular to use extra cars controlled by the power base or the computer. These cars run as any other human controlled car, counting laps, changing lanes, etc.
These are often referred to as pace cars, which I think is a bit confusing. They don't act as a pace car you see on a real race track. They are not ghost cars either, as they can run into you, or you can run into them yourself. RazManager instead refers to these cars as computer cars.
With RazManager, you cannot run a lap, record the throttle and use this as a playback for a computer car. The speed is either fixed or adjusted according to a target time. When using SSD (or oXigen in SSD mode), instead of using the total lap time as a target time, one or several Pit-pros can be used as sector sensors and each section can have its own fixed speed or target time.
Speed trap
One perhaps unusual but fun feature is to have one or several speed traps. This works by having two analog sensors approximately a full length track piece apart and on the same lane, the car speed can then be measured. Two sensors are required per lane, but one of them can double as the start/finish line sensor. Many analog tracks uses light bridges combined with photo transistors, but for the speed sensing you may want to use slotted switches instead:
With some limitations, speed traps also work for digital systems. The digital system's start/finish line sensor cannot be used as a part of the speed sensing, I don't think it will be accurate enough, it won't be for oXigen. You still need two analog sensors per lane to measure car speed. The digital system's start/finish line can be used to identify the car, so the speed measuring section has to be as close as possible before or after the start/finish line. If a speed can be measured, and there's one and only one car identified in a very short period of time close to the speed measurement, then the speed for that car can be displayed.
When using SSD (and oXigen in SSD mode), a Pit-Pro can also be used to identify the car close to the speed trap. With this configuration, the Pit-Pro can also be used in combination with sector timing and sector based computer cars.
Public events
If you have a race evening at home or at your club, and you have more drivers than you have lanes/controllers, there are various ways of organizing the races/heats, but you usually rely on that all drivers are known and registered before you generate all the races/heats. But if you have a public event, where people come, stay for a while, then leave, then the all races/heats cannot be generated at the start; all drivers are not yet known.
In addition to the usual race modes, RazManager will also have a come-and-go race mode. For the first round, the racers known at that time are randomly divided into groups. For the second round, the 1-2 last racers in group 1 are moved down to group 2 and the first 1-2 racers in group 2 are moved up to group 1. The 1-2 last racers in group 2 are moved down to group 3 and the first 1-2 racers in group 3 are moved up to group 2, and so on. After a few rounds, the heats will eventually have drivers with the same skill (or luck). New drivers that arrive enter in the last group, and groups are adjusted when drivers drop off. New drivers can be entered from a second computer, tablet or through the Windows Phone 8 app using the phone's camera; this can be done at the same time that others are racing.
Presentation scheduler
Those that are currently racing might want to have the same type of race status screen all the time, but for people not racing you may want to show other types of screens as well, e.g. various race reports, standings, who's running the next heat, etc. But you may not want to have a dedicated monitor for each of these things, but instead automatically rotate among these different screens on the same monitor. RazManager will have a presentation scheduler let you arrange how different RazManager screens should be used on the different monitors.
Open source
RazManager is developed with Microsoft Visual Studio 2012, C#, and .NET Framework 4.5 for the non-Windows 8 parts. The code will be "open-source" and free, but I have not yet decided the exact license model for this.
But even if the source code will have some sort of license, please feel free to use any ideas in RazManager for your own use. As a RMS program, RazManager of course shares most of its features with other RMS programs; we are all trying to model essentially the same thing. There are perhaps a few things in this post that you haven't seen before, but I hope that others pick up these ideas as well and make something useful of them. As always, my view is that forums are for sharing ideas, not protect them.
Open source projects are often developed by several persons, but as RazManager is my playground for trying out new things, I would like develop the core code myself. However, there are opportunities for other developers to write their own clients and hardware plug-ins using RazManager's software interfaces.
When using these software interfaces, how you license your extensions, and whether you share your code or not is up to you; you're not changing or extending my code. If you want to sell your iPhone or Android RazManager client for $10, I'm of course OK with that.
Should you change to RazManager?
Choice is usually a good thing, and slot racers are lucky because there are a lot of RMS programs to choose from. There are an enormous amount of RMS programs for analog racing, there are more and more programs for SSD (even if it took longer to get to that point than I expected). Oxigen is still relatively new, but I'm sure there will be an increasing number of RMS programs supporting it.
But should you change from your current RMS program to RazManager? Well, probably not! If you make a quick top 10 list of things that make a good race evening, then what the RMS does is probably not on that list. It's simply there, and you focus on other more important things. So if you are happy with what you've got, there are really no reasons to switch to something else.
If you're using a 10 year old computer for your RMS, then a RazManager client, the RazManager server and the database server won't run very well on that. You'll need something better to run all these pieces on the same computer. But even then, you might not gain that much compared to your current RMS if you only want to use a single computer with a single monitor.
But if you are using several monitors, computers, and perhaps want to use tablets and smartphones, and/or you are interested in RazManager's entertainment take on what an RMS should do, maybe how it can be extended by yourself and others, you can of course try it. After all, it's free. OK, it will cost you your time, and maybe upgraded and/or new hardware.
Be aware though, that it's a bit complicated to install and configure all the software components, and setup the network. Not a problem if you work at an IT department, but might be a problem if you're not a friend with your computer. If that's your case, perhaps someone of your friends can become friend with your computer. Once everything is installed and configured, RazManager will be quite easy to use.
Summary
After presenting some projects I never finished, like the RazNBox N-Digital semi-compatible console and RazNManagement RMS that later became RazNTime and RazNChip - my own N-Digital chip, and presenting a very early prototype, it feels good to present this project and at last get started on my RMS, something I have wanted to do since ~2006.
I guess I don't have any good reputation here on the forum for finishing things, but this time I'm not letting any electronics development or work get in the way. I seem to be a person who always is working too much, and with a family with 3 kids, a house, etc, it doesn't leave that much room for hobbies. Now I'm not taking any new professional assignments until I'm reasonable finished with this project, so at last, I'm able to focus on it.
Depending on your feedback, some things might change and some other things might be added for a first release. I don't know when that will be; there are both hardware and software I want to use that haven't even been released yet.
It's easy to see that I'm not a Twitter-type. I find it hard to express myself with only 140 characters. I usually think, re-think, write off-line and then re-write, before I enter something into the forum. Then instead a long article pops up, like this one. Even so, there are a lot of things and thoughts I haven't put into this post, it's too long anyway. But if you got this far, thanks for reading!
I'm happy to present RazManager, my free and open-source Microsoft Windows-based Race Management System (RMS) for Slot.it's oXigen, Scalextric Sport Digital (SSD) and the Digital Advanced 6 Car Powerbase (C7042), and various sensors for analog tracks. After years of things that have been in the way, like work, I've finally started serious development on it.
The presentation of the first public release will be different, but for this development presentation I will assume that you already are familiar with slot car racing and have used some RMS programs before. RazManager will have the usual RMS features; lap counting, lap timing, championship management, car management, driver management, team management, track management, pre/in/after-race reports, penalties, handicapping, and digital racing features like fuel and pit-stop functions and pace/ghost/computer cars, etc.
But I've tried to use a little bit different mindset when implementing these, and other, features. For me, it wouldn't make any sense to write a RMS program similar to the ones that are already out there. RazManager has instead more of a public event and entertainment twist to things. I of course get inspiration from reading this and other forums, and also being a race fan in general and F1 fan in particular. But most inspiration for this project comes from having a family with three kids. This means that game consoles, tablets, smartphones, etc, are now a natural part of our lifestyle, and I want to include these devices, and the user experience on these devices, in my RMS.
My goal with this project is not really what it might seem to be. I run my own business as a software developer/architect, using mostly Microsoft's products but also Oracle's databases. New software technologies arrive now and then and I need to catch up with them, but is not that often I get to try these out in my professional assignments, especially when they still are in beta or are very new. You can read web sites, forums, blogs and books, try example code, take a training course, etc, but to really learn these things and get some experience you need to try it yourself with something larger than a little test application. I have a passion for developing software, but I also have a passion for slot car racing. By combining these things, I can have fun while learning stuff useful for my daily work. The main goal I really have with this project is to use it as a playground for trying out new Microsoft-oriented software techniques.
This means that RazManager is not meant to be "everything to everyone", though you'll find a lot of features both for club- and home-style racing, for two of the digital systems and for some input methods for analog tracks. OK, if there's one area I'll try to be best at, then it's "public slot car events where people come and go and want to be entertained". In opposite to my professional assignments, this project is technology-driven, meaning you'll find features like a smartphone app, and e.g. using it and the phone's camera for registering new participants. When I'll try to learn and explore techniques that are new to me, I'll add features not usually found in a RMS program. They might not be on top of your priority list, but can in some cases be useful.
If RazManager is a personal project mainly driven by my own needs, are there any reasons for you to have any interest in it? I of course think it would be fun if its feature set interest some of you, build a small user community, get some feedback, improve things, and learn from it. There are also some opportunities for other developers to add their own extensions; it will be interesting to see how that will be received and where that will lead to.
Here are some things that might catch your interest:
- RazManager will always be free. I see no business in selling a (very optimistic) few hundred licenses. I see business though in taking what a learn from all aspects of this project, and using that in my professional life, as well as arranging fun slot car events and marketing myself.
- Animated 3D presentation of current race status, and some reports. To me, it makes the program come alive and a lot more entertaining. The 3D screens are optional though, you may prefer the more traditional 2D grid type screens that are also included.
- Sector based timing. Not only for analog tracks, but also for SSD/C0742 (and oXigen in SSD mode) using one or several Pit-Pros as sector sensors.
- Sector based speed for pace/ghost/computer cars for SSD/C0742 (and oXigen in SSD mode), also using one or several Pit-Pros as sector sensors.
- Speed trap. By using two analog sensors approximately a full length track piece apart and on the same lane, the car speed can be measured. With some limitations, this also works for digital systems.
- Connect several computers, tablets and smartphones in a multi-user network. Not only for presenting data on several monitors and type of devices, but also for entering data and e.g. control the race from more than a single PC (and some external buttons connected to it).
- Windows 7/Vista/XP client (will also run on Windows 8), Windows 8 app client, and a Windows Phone 8 app client. Hopefully some of you will be interested in writing an iOS (iPod/iPhone/iPad) client and an Android client. In a distant future, I would like to add an Xbox client, and a web server part with web pages for computers, tablets and smartphones.
- Windows 7/Vista/XP server (will also run on Windows 8). You might not necessarily be aware of the server part when you run a RazManager client, but the server can be used by other developers and their own clients (and they can release their work for you to use).
- Plug-in format for track interfaces. Suport for the digital systems and analog sensors I myself have will be written as plug-ins to RazManager. But other developers can also write a track interface plug-in to RazManager, and thereby make it support more digital systems and analog sensors than I have a chance to do.
- RazManager uses Microsoft SQL Server 2012 as its database. There are free editions available for download from Microsoft's site, but if you have a commercial edition installed at your office, you can use that as well. I guess for most of you the database format isn't that interesting, but for those of you that like to make your own reports, the data is available.
If you have more than one track at the same location, they can use the same database so you don't have to enter the same drivers more than once, have multi-track championships with races at the same time at different tracks (with different drivers…, etc.
User interface
If you've used a RMS program before, you are probably familiar with the 2D grid style race status window, where in most cases the rows in the grid are sorted after race position, and I'll make a version of that as well. Though that type of screen is informative, I wanted (at least have an option) to present race status, etc, with the look and feel of what people that are using modern game consoles and multimedia center programs are used to; 3D-look, 3D-animations and reflections.
The screenshots you see in this post are from an early prototype I made back in 2009 (a lot of the text in this post also comes from that old presentation). The screenshots are low-resolution, 8-bit color, hard compressed images, shrinked in size to comply with the forum rules. Each of them is available as a high resolution image, which should be viewed to get a better feeling of what the screen looks like (although these images are also in 8-bit color to keep the file size down to a reasonable level (~1Mb)). Be sure though that your image viewer really displays them in full resolution. E.g, Internet Explorer's viewer has a habit of making lines look "jagged" when downsizing an image.

Cropped low-resolution screenshot of a 2x3=6 car grid
Also available in a high-resolution 1920x1200 widescreen version
The basic idea is to have images of the cars in their own 3D-frame, order them after their current race position, and animate the car frames in different fancy ways when the race positions change.

Cropped low-resolution screenshot of a car frame
Also available in a high-resolution 1920x1200 widescreen version
The car frame contains some basic race data, and a fuel meter on the top bar (I got the direction of the fuel meter wrong in that old prototype, will fix that). A "team flag" can be used as a background; otherwise the background will have a darker version of the car frame color.

Low-resolution screenshot of a 3x4=12 car grid overview
Also available in a high-resolution 1920x1200 widescreen version
The grid can be changed to have any number of lanes.

Low-resolution screenshot of a 4x5=20 car grid
Also available in a high-resolution 1920x1200 widescreen version
Although 20 cars can be displayed, it looks a bit crowded and the text becomes harder to read for the cars at the back of the field. It might be good to combine this with one or two extra monitors with a 2D grid (if using 2 monitors, one grid screen with the drivers in position 1-10 for the first monitor, and a second grid screen with the drivers in position 11-20 for the second monitor).

Cropped low-resolution screenshot of two cars changing race positions
Also available in a high-resolution 1920x1200 widescreen version
Race position changes are animated, as well as camera position, camera angle, and different spotlights. This, together with automated speech, gives an impression not really reflected in these screenshots. A 3D image really begs for animation, it's what makes it come alive.
Different race reports can also have an animated 3D look. Below you see a screenshot from the Swedish pre-race F1 show. I want to have something similar to this (but animated, of course):

Hardware sensor support
Scalextric's Digital Advanced 6 Car Powerbase (C7042)
For a Scalextric Sport Digital (SSD) track, RazManager supports the Digital Advanced 6 Car Powerbase (C7042). There are no current plans to support the older SSD 6 car powerbase (C7030).
Besides the usual features, like automatic throttle calibration, throttle profiles, pace/ghost/computer cars, using the buttons for track call, etc, the buttons and the throttle can also be used for navigating some RazManager screens. For race oriented screens, it will actually be sufficient to use the buttons and the throttle on the controllers to setup a race and control it. Not really more complicated than playing a multi-user game on a game console (in fact, the inspiration for this comes from the Buzz PlayStation game series). Some parts of the race setup let the drivers enter their own details simultaneously with the other drivers.
The communication protocol between the C7042 and the PC (as well as firmware updates to the C7042) can be downloaded from the SSDC site. The raw data from the controllers are sent to the PC and it's up to the RMS to control what is sent to the cars. There are some extensions to the original SSD protocol meant to support car chips with the InCar-Pro firmware. However, RazManager won't support these extensions, as I haven't seen them being used that much, and I have no chips with modified firmware myself.
Slot.it's oXigen
Slot.it's digital system oXigen is also supported by RazManager. The oXigen "Dongle To PC" protocol is rather different compared to the SSD protocol. Instead of sending a lot of raw data and let the RMS program control everything, the oXigen dongle is a little RMS program itself. It sends laps times, lap counts, etc, to the PC and let the PC control a few things like start/stop, track call and maximum speed.
When a button on a SCP-1 controller is pressed or released, this is not reported to the PC. I had hoped it would be, but this might get included in the protocol in the future. Anyway, currently the buttons cannot be used to initiate a track call, and cannot be used for RMS navigation as in the SSD example above.
Pit-Pro
When using SSD/C0742 (and oXigen in SSD mode), the modified Scalextric Pit Lane Game called Pit-Pro (from the Pit-Pro team) is supported. You can use more than one Pit-Pro for multiple pit bays/stops, and the Pit-Pro can also be used for other purposes. See the features section later for more details.
I haven't tested yet that the Pit-Pro really works with an oXigen chip in SSD mode, hopefully it will.
Phidget
The http://www.phidgets.com/products.php?product_id=1012" target="_blank">PhidgetInterfaceKit 0/16/16</a> with its 16 digital inputs and 16 digital outputs can be used to interface to start/finish line sensing and power control for analog tracks, and track calls, start lights and speed traps for all systems.
Parallel port
You don't find a parallel port on PCs sold for the last couple of years, but it has been a popular way to connect to an analog slot car track. As RazManager's hardware requirements are rather high, your PC cannot be too old, but I want to include support for the parallel port anyway. Haven't tried it yet, hopefully it will work. If it does, the supported functions will be the same as the PhidgetInterfaceKit 0/16/16 (see above).
Web camera
When I've shown early versions of RazManager to non-slotters, like colleagues and friends, many have said that they got to buy their kids a slot car kit, or try to find their own old kit lying somewhere on their parents loft. They want to try the software, but don't have the time or commitment to add sensors to their analog kit like we slotcar people would have done before breakfast. I would therefore like it to be possible to use a web camera as a start/finish line sensor. Not that elegant, but no soldering iron required.
Smartphone camera
An alternative to the above would be to use a smartphone camera.
Other hardware
I myself have the equipment for SSD, oXigen and an analog track, so these are the only systems I'm able to test and support. I have an N-Digital 1.05 console, but as that version don't send any timing data, it's useless for my RMS. However, other developers can write plug-ins to let RazManager support more hardware.
I am myself not too keen on supporting customized hardware that is only used by a handful of people. One piece of customized hardware I do support is the Pit-Pro, but it is also rather common in the SSD community, and really adds a lot of value. I perhaps really use it too much, as RazManager will not only support several Pit-Pros for pit-stop functions, but also for non-pit-stop functions like sector timing, sector based pace/ghost/computer cars, and speed trap identification (again, see the features section later for more details). Using the Pit-Pro only as a SSD car identifier is maybe an expensive and complex method, but right now it's the only (non-powerbase) method for SSD. If something else gets a wide acceptance, I'll be happy to support that. Maybe it will be there some day…
Simulator
There's hardware simulator available that lets you (and me) test RazManager without connecting to a real track.
Multi-user and multi-client
Overview
RazManager's functionality is divided into three parts/layers/tiers. The first part is the so called client; it handles the user interface. It is connected to the second part, the server, which is responsible for the race management logic and other logic as well as the hardware communications. The server uses a third part, the database server, for all data storage.
You can do all this on the same PC, of course. But if that is the only thing you want to do, dividing the functionality into three separate programs/services isn't really needed (and that's why most other RMS programs have all the functionality within the same program).
However, if you want to use several PCs not only for pure displaying purposes but also for entering data, and/or use other type of devices like a tablet or a smartphone for the same thing, separating the user interface from the race management logic makes this easy. Here is one of many examples on how you can have several user interface client programs connected to the same RazManager server:

You can, as in the picture above, have a computer with only the RazManager server program and the database server, and run clients on other computers and devices. Of course, you can also run a RazManager client on the same computer as the RazManager server program; not shown in the picture above, but probably what most people would do.
If you have several tracks at the same location, you can have several RazManager servers connected to the same database, so you e.g. don't have to enter the same drivers more than once. You can also run races at the different tracks at the same time, but that are a part of the same championship.
In many respects, RazManager's architecture is like the architecture of a line-of-business application that you might already use at your office. I haven't seen this architecture being used in the slot car world yet, but variations of this has been very common elsewhere since the end of the nineties; the technologies used to implement them are changing all time time, though.
Clients
Windows 7/Vista/XP
There is a client program for Windows 7/Vista/XP (that also runs on Windows 8).
RazManager will contain a lot of configuration. But instead of having a few configuration screens with a lot of tasks in them, there will be rather many configuration screens but with only one or very few tasks in them. These configuration screens follows a user interface model known as inductive user interface. It basically means that it should be very easy to understand what a screen is used for. One part of accomplish this is to focus on a single task, and trying not to do too much in the same screen. Though that may not always be productive for someone that uses an application most of the day, it makes an application like a RMS program easier to use where you really don't go into the configuration screens that often. RazManager also follows the Windows User Experience Interaction Guidelines for Windows 7 and Windows Vista, so you should feel familiar with how the screens are used in general.
Due to some differences in graphic driver models between Windows XP and Windows 7/Vista, and the way that some lower level part of the 3D functions uses them, the 3D screens in RazManager looks a bit jagged when running Windows XP. So Windows 7/Vista is really recommended if you want to use these screens.
Windows 8
The Windows 8 app will of course have a different user interface. Although you perform the same tasks as with the Windows XP/Vista/7 client, the Windows 8 app instead follows the User interface guidelines for Windows Store apps.
I know there are mixed feelings about Windows 8, but if you have a tablet with Windows 8, its touch interface will make it really easy to use. The RazManager Windows 8 app of course takes advantage of this, so you don't have to mess around with a keyboard and a mouse while administering your race, etc. It'll give you the same freedom as wireless slot car controllers do.
Windows Phone 8
Windows 8 tablets are not available yet, and it will perhaps take a while before they become common, but most people nowadays have a smartphone. RazManager will have an app for Windows Phone 8. It will be similar to the full Windows 8 app, but without most configuration screens. With the RazManager Windows Phone 8 app, you will be able to:
- Present race data to the race audience
- Present personal race data. Even you can have lots of computers and monitors connected to the RazManager race server for presentation, and hopefully see what you want to know, it may perhaps be easier sometimes to have a quick look at your smartphone for your own data.
- Adjust personal parameters both before and during a race, instead of everyone sharing the same PC before the race.
- Connect a headset to hear lap times, fuel level, etc.
- Fuel levels can be excluded on the public screens, and only being shown (and/or heard) on the personal phone.
- Race administration, e.g. start, track call, and penalties.
- Register new drivers using the smartphone's camera.
iOS (iPod/iPhone/iPad) and Android
I won't myself develop an iOS (iPod/iPhone/iPad) or an Android app for RazManager, since I don't develop for these systems. But hopefully some of you will be interested in writing apps that can connect iOS and Android devices to the RazManager server.
Web
Initially, there won't be a web client (and web server) for RazManager, but in the distant future I hope to get this done. A graphic intense HTML5 client, both for smartphones and larger displays, would be fun to write some day, but it's not going to happen next week…
Xbox
It would also be fun some day to develop an Xbox client, but that is even further into the future. The new Xbox has most probably already arrived when I get a chance to have a look at this…
Other clients
You could write your own client, and use it instead or in addition to the RazManager clients I write. You could use any programming language and operating system you wish, as long as you can connect to the RazManager server's XML web service interfaces and network streams.
Server
The RazManager server program runs on Windows 7/Vista/XP (and also on Windows 8). It doesn't have much of a user interface, but you'll see it in the Windows notification bar.
Database
RazManager uses Microsoft's SQL Server 2012. Though the most advanced versions of SQL Server that has all the features cost a lot of money, there are also some free versions available, and it's one of them that is recommended and sufficient for RazManager, the one with Reporting Services so you can make your own web based race reports. I you wish, a lot of data is logged for you to dive into.
You would usually install the database server on the same computer as you run the RazManager server, but it could be installed on another computer as well.
Features
Here are some features I would like to highlight:
Pit-lane and multi pit-bay for SSD
Pit stops will only be supported for digital systems.
When using SSD and one Pit-Pro, a combined pit lane and single pit bay will be supported. But if using more than one Pit-Pro, you can have a pit lane with one or several pit bays, and use the pit lane for drive-thru penalties.

For oXigen, only a combined pit lane and single pit bay will be supported, that's a limitation in the protocol (although I had hoped it would be possible to use a layout as the one above).
Sector based timing
For analog tracks, you can get sector times if you have the sensors and input ports for it. But you can also get sector times for SSD (and oXigen in SSD mode) using one or several Pit-Pros as sector sensors. You won't be using the Pit-Pro for pit stops then, so you can take off the tower part if you want to.
Sector based speed for pace/ghost/computer cars for SSD/C0742 (and oXigen in SSD mode)
When not having enough drivers to fill the grid for a digital system, it's popular to use extra cars controlled by the power base or the computer. These cars run as any other human controlled car, counting laps, changing lanes, etc.
These are often referred to as pace cars, which I think is a bit confusing. They don't act as a pace car you see on a real race track. They are not ghost cars either, as they can run into you, or you can run into them yourself. RazManager instead refers to these cars as computer cars.
With RazManager, you cannot run a lap, record the throttle and use this as a playback for a computer car. The speed is either fixed or adjusted according to a target time. When using SSD (or oXigen in SSD mode), instead of using the total lap time as a target time, one or several Pit-pros can be used as sector sensors and each section can have its own fixed speed or target time.
Speed trap
One perhaps unusual but fun feature is to have one or several speed traps. This works by having two analog sensors approximately a full length track piece apart and on the same lane, the car speed can then be measured. Two sensors are required per lane, but one of them can double as the start/finish line sensor. Many analog tracks uses light bridges combined with photo transistors, but for the speed sensing you may want to use slotted switches instead:

With some limitations, speed traps also work for digital systems. The digital system's start/finish line sensor cannot be used as a part of the speed sensing, I don't think it will be accurate enough, it won't be for oXigen. You still need two analog sensors per lane to measure car speed. The digital system's start/finish line can be used to identify the car, so the speed measuring section has to be as close as possible before or after the start/finish line. If a speed can be measured, and there's one and only one car identified in a very short period of time close to the speed measurement, then the speed for that car can be displayed.
When using SSD (and oXigen in SSD mode), a Pit-Pro can also be used to identify the car close to the speed trap. With this configuration, the Pit-Pro can also be used in combination with sector timing and sector based computer cars.
Public events
If you have a race evening at home or at your club, and you have more drivers than you have lanes/controllers, there are various ways of organizing the races/heats, but you usually rely on that all drivers are known and registered before you generate all the races/heats. But if you have a public event, where people come, stay for a while, then leave, then the all races/heats cannot be generated at the start; all drivers are not yet known.
In addition to the usual race modes, RazManager will also have a come-and-go race mode. For the first round, the racers known at that time are randomly divided into groups. For the second round, the 1-2 last racers in group 1 are moved down to group 2 and the first 1-2 racers in group 2 are moved up to group 1. The 1-2 last racers in group 2 are moved down to group 3 and the first 1-2 racers in group 3 are moved up to group 2, and so on. After a few rounds, the heats will eventually have drivers with the same skill (or luck). New drivers that arrive enter in the last group, and groups are adjusted when drivers drop off. New drivers can be entered from a second computer, tablet or through the Windows Phone 8 app using the phone's camera; this can be done at the same time that others are racing.
Presentation scheduler
Those that are currently racing might want to have the same type of race status screen all the time, but for people not racing you may want to show other types of screens as well, e.g. various race reports, standings, who's running the next heat, etc. But you may not want to have a dedicated monitor for each of these things, but instead automatically rotate among these different screens on the same monitor. RazManager will have a presentation scheduler let you arrange how different RazManager screens should be used on the different monitors.
Open source
RazManager is developed with Microsoft Visual Studio 2012, C#, and .NET Framework 4.5 for the non-Windows 8 parts. The code will be "open-source" and free, but I have not yet decided the exact license model for this.
But even if the source code will have some sort of license, please feel free to use any ideas in RazManager for your own use. As a RMS program, RazManager of course shares most of its features with other RMS programs; we are all trying to model essentially the same thing. There are perhaps a few things in this post that you haven't seen before, but I hope that others pick up these ideas as well and make something useful of them. As always, my view is that forums are for sharing ideas, not protect them.
Open source projects are often developed by several persons, but as RazManager is my playground for trying out new things, I would like develop the core code myself. However, there are opportunities for other developers to write their own clients and hardware plug-ins using RazManager's software interfaces.
When using these software interfaces, how you license your extensions, and whether you share your code or not is up to you; you're not changing or extending my code. If you want to sell your iPhone or Android RazManager client for $10, I'm of course OK with that.
Should you change to RazManager?
Choice is usually a good thing, and slot racers are lucky because there are a lot of RMS programs to choose from. There are an enormous amount of RMS programs for analog racing, there are more and more programs for SSD (even if it took longer to get to that point than I expected). Oxigen is still relatively new, but I'm sure there will be an increasing number of RMS programs supporting it.
But should you change from your current RMS program to RazManager? Well, probably not! If you make a quick top 10 list of things that make a good race evening, then what the RMS does is probably not on that list. It's simply there, and you focus on other more important things. So if you are happy with what you've got, there are really no reasons to switch to something else.
If you're using a 10 year old computer for your RMS, then a RazManager client, the RazManager server and the database server won't run very well on that. You'll need something better to run all these pieces on the same computer. But even then, you might not gain that much compared to your current RMS if you only want to use a single computer with a single monitor.
But if you are using several monitors, computers, and perhaps want to use tablets and smartphones, and/or you are interested in RazManager's entertainment take on what an RMS should do, maybe how it can be extended by yourself and others, you can of course try it. After all, it's free. OK, it will cost you your time, and maybe upgraded and/or new hardware.
Be aware though, that it's a bit complicated to install and configure all the software components, and setup the network. Not a problem if you work at an IT department, but might be a problem if you're not a friend with your computer. If that's your case, perhaps someone of your friends can become friend with your computer. Once everything is installed and configured, RazManager will be quite easy to use.
Summary
After presenting some projects I never finished, like the RazNBox N-Digital semi-compatible console and RazNManagement RMS that later became RazNTime and RazNChip - my own N-Digital chip, and presenting a very early prototype, it feels good to present this project and at last get started on my RMS, something I have wanted to do since ~2006.
I guess I don't have any good reputation here on the forum for finishing things, but this time I'm not letting any electronics development or work get in the way. I seem to be a person who always is working too much, and with a family with 3 kids, a house, etc, it doesn't leave that much room for hobbies. Now I'm not taking any new professional assignments until I'm reasonable finished with this project, so at last, I'm able to focus on it.
Depending on your feedback, some things might change and some other things might be added for a first release. I don't know when that will be; there are both hardware and software I want to use that haven't even been released yet.
It's easy to see that I'm not a Twitter-type. I find it hard to express myself with only 140 characters. I usually think, re-think, write off-line and then re-write, before I enter something into the forum. Then instead a long article pops up, like this one. Even so, there are a lot of things and thoughts I haven't put into this post, it's too long anyway. But if you got this far, thanks for reading!