<commit_before>Another Control Bus
===================

or Accessory Control Bus - a CBUS like control bus for model railway accessories such as control panels, servos,
signals and the like. More details on CBUS can be found on the <http://www.merg.org.uk/merg_resources/cbus.php> website.
These modules should be compatible with CBUS as described in the Developers Guide version 6a to CBUS 4.0 Specification 
Revision 8c. The modules only support FLiM (The Full Layout implementation Model)

Further documentation can be found <http://the-nw1-group.github.io/acb-modules>.

The Modules
-----------

The modules are based around either STM32F042 ARM Cortex-M0 microcontroller, or various PIC24/dsPIC33 microcontrollers. 
All of the boards have been designed, with only the ACB-16IO requiring the Gerbers to be drawn. 

| Module     | Microcontroller  | Description |
| ---------- | ---------------- | ------------------------------------------------------------------------------------- |
| ACB-4TC    | STM32F042K6      | For 4 turnouts, operates 4 servos, 4 relays, and 8 inputs for proving                 |
| ACB-8IOMV  | STM32F042F6      | 8 configuration input or outputs, configurable for various voltages and other options |
| ACB-8IO    | STM32F042F6      | 8 configurable open drain inputs or outputs, 5V tolerant                              |
| ACB-16IO   | STM32F042F6      | 16 configurable open drain inputs or outputs, 5V tolerant                             |
| ACB-16LED  | STM32F042F6      | 16 constant current LED outputs                                                       |
| ACB-90LED  | STM32F303CB      | 90 LED driver using Charlie Plexing to drive LEDs                                     |
| ACB-RF     | dsPIC33EPxxGP502 | Wireless link                                                                         |
| ACB-ETH    | STM32F767V6      | CAN to CAN and Ethernet bridge                                                                |
 
Most of the code is written in assembler - yeah I know...  

Other Projects
--------------

Whilst developing the modules listed above, a number of side projects have evolved.

| Module        | Microcontroller  | Description |
| ------------- | ---------------- | --------------------------------------------------------------------------------- |
| Signal Tester | STM32F042F6      | For testing serial RGB LEDs and for testing and positioning Servos                |
| CBUS Monitor  | STM32F042F6      | Display messages on the CAN bus, decode, graph, and send test messages            |
| QUAD-IR       | STM32F030F4      | Based on the MERG "Hector", use reflected IR to detect trains                     | 

Building and Debugging
----------------------

You'll need the following tools to build the source code:
* Eclipse CDT - I'm using Eclipse Mars Release (4.5.1) Build id: 20150924-1200
* GNU ARM Eclipse plug-in - I'm using version v2.12.1-201604190915 
* Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors - I'm using version 5-2016-q1-update
* OpenOCD - I'm using the one prebuilt by the GNU ARM Eclipse plug-in team
* GNU build tools (for Windows) - again, I'm using the one prebuilt by the GNU ARM Eclipse plug-in team
* Saxon XSLT and XQuery Processor - I'm using version Saxon-HE 9-6-0-6J

You might need to add the following 2 substitution strings (Windows > Preferences > Run/Debug > String Substitution),
as I think these are workspace, rather than project settings:

| Variable        | Value              | Description            |
| --------------- | ------------------ | ---------------------- |
| saxon_xslt_jar  | saxon9he.jar       | Name of Saxon XSTL Jar |
| saxon_xslt_path | *path to JAR file* | Path to Saxon XSLT Jar |<commit_msg>Documentation fix<commit_after>Another Control Bus
===================

or Accessory Control Bus - a CBUS like control bus for model railway accessories such as control panels, servos,
signals and the like. More details on CBUS can be found on the <http://www.merg.org.uk/merg_resources/cbus.php> website.
These modules should be compatible with CBUS as described in the Developers Guide version 6a to CBUS 4.0 Specification 
Revision 8c. The modules only support FLiM (The Full Layout implementation Model)

Further documentation can be found <http://the-nw1-group.github.io/acb-modules>.

The Modules
-----------

The modules are based around either STM32F042 ARM Cortex-M0 microcontroller, or various PIC24/dsPIC33 microcontrollers. 
All of the boards have been designed, with only the ACB-16IO requiring the Gerbers to be drawn. 

| Module     | Microcontroller  | Description |
| ---------- | ---------------- | ------------------------------------------------------------------------------------- |
| ACB-4TC    | STM32F042K6      | For 4 turnouts, operates 4 servos, 4 relays, and 8 inputs for proving                 |
| ACB-8IOMV  | STM32F042F6      | 8 configuration input or outputs, configurable for various voltages and other options |
| ACB-8IO    | STM32F042F6      | 8 configurable open drain inputs or outputs, 5V tolerant                              |
| ACB-16IO   | STM32F042F6      | 16 configurable open drain inputs or outputs, 5V tolerant                             |
| ACB-16LED  | STM32F042F6      | 16 constant current LED outputs                                                       |
| ACB-90LED  | STM32F303CB      | 90 LED driver using Charlie Plexing to drive LEDs                                     |
| ACB-RF     | dsPIC33EPxxGP502 | Wireless link                                                                         |
| ACB-ETH    | STM32F767V6      | CAN to CAN and Ethernet bridge                                                                |
 
Most of the code is written in assembler - yeah I know...  

Other Projects
--------------

Whilst developing the modules listed above, a number of side projects have evolved.

| Module        | Microcontroller  | Description |
| ------------- | ---------------- | --------------------------------------------------------------------------------- |
| Signal Tester | STM32F042F6      | For testing serial RGB LEDs and for testing and positioning Servos                |
| CBUS Monitor  | STM32F042F6      | Display messages on the CAN bus, decode, graph, and send test messages            |
| QUAD-IR       | STM32F030F4      | Based on the MERG "Hector", use reflected IR to detect trains                     | 

Building and Debugging
----------------------

You'll need the following tools to build the source code:
* Eclipse CDT - I'm using Version: Eclipse Neon.1 Release (4.6.1) Build id: 20160913-0900
* GNU ARM Eclipse plug-in - I'm using version v3.1.1-201606210758 
* Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors - I'm using version 5.4-2016-q3-update
* OpenOCD - I'm using the one prebuilt by the GNU ARM Eclipse plug-in team
* GNU build tools (for Windows) - again, I'm using the one prebuilt by the GNU ARM Eclipse plug-in team
* Saxon XSLT and XQuery Processor - I'm using version Saxon-HE 9-6-0-6J

You might need to add the following 2 substitution strings (Windows > Preferences > Run/Debug > String Substitution),
as I think these are workspace, rather than project settings:

| Variable        | Value              | Description            |
| --------------- | ------------------ | ---------------------- |
| saxon_xslt_jar  | saxon9he.jar       | Name of Saxon XSTL Jar |
| saxon_xslt_path | *path to JAR file* | Path to Saxon XSLT Jar |
{'fraction_non_alphanumeric': 0.14534574468085107, 'fraction_numerical': 0.03922872340425532, 'mean_word_length': 1.722041259500543, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 19, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2510178', 'n_tokens_mistral': 2151, 'n_tokens_neox': 1866, 'n_words': 784}