Full Code of scottalford75/Remora for AI

main 09d7e2416da4 cached
813 files
3.7 MB
1.0M tokens
3091 symbols
1 requests
Download .txt
Showing preview only (4,087K chars total). Download the full file or copy to clipboard to get everything.
Repository: scottalford75/Remora
Branch: main
Commit: 09d7e2416da4
Files: 813
Total size: 3.7 MB

Directory structure:
gitextract_caxq2qkb/

├── .gitignore
├── Firmware/
│   ├── ConfigSamples/
│   │   ├── BTT_Octopus/
│   │   │   ├── OCTOPUS_ENDER3/
│   │   │   │   └── config.txt
│   │   │   └── OCTOPUS_xyz/
│   │   │       └── config.txt
│   │   ├── BTT_SKRv13/
│   │   │   └── config.txt
│   │   ├── BTT_SKRv14/
│   │   │   ├── SKRv14_3dp/
│   │   │   │   └── config.txt
│   │   │   ├── SKRv14_TMC2209/
│   │   │   │   └── config.txt
│   │   │   └── SKRv14_xyz/
│   │   │       └── config.txt
│   │   ├── BTT_SKRv2/
│   │   │   ├── SKRv2_TMC2209/
│   │   │   │   └── config.txt
│   │   │   ├── SKRv2_ender3/
│   │   │   │   └── config.txt
│   │   │   └── SKRv2_xyz/
│   │   │       └── config.txt
│   │   ├── Fysetc_Spider/
│   │   │   └── config.txt
│   │   ├── Fysetc_Spider_King/
│   │   │   └── config.txt
│   │   ├── Hypercube-evolution/
│   │   │   └── config.txt
│   │   ├── MKS_Monster8/
│   │   │   └── config.txt
│   │   ├── MKS_Robin_E3/
│   │   │   └── Robin_E3/
│   │   │       └── config.txt
│   │   ├── MKS_Sbase/
│   │   │   └── MKS Sbase/
│   │   │       ├── Ender3/
│   │   │       │   └── config.txt-Ender3
│   │   │       └── config.txt
│   │   └── TMC2209 Example/
│   │       ├── SKRv14_TMC2209/
│   │       │   └── config.txt
│   │       └── SKRv2_TMC2209/
│   │           └── config.txt
│   └── FirmwareSource/
│       ├── .gitignore
│       ├── Remora-OS5/
│       │   ├── .gitignore
│       │   ├── .mbed
│       │   ├── MODDMA.lib
│       │   ├── README.md
│       │   ├── SoftwareSerial/
│       │   │   ├── SoftwareSerial.cpp
│       │   │   └── SoftwareSerial.h
│       │   ├── TARGET_OCTOPUS_429/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_OCTOPUS_446/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_ROBIN_E3/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_SKRV1_4/
│       │   │   ├── drivers/
│       │   │   │   ├── comms/
│       │   │   │   │   ├── MODDMA/
│       │   │   │   │   │   ├── .hg/
│       │   │   │   │   │   │   ├── 00changelog.i
│       │   │   │   │   │   │   ├── branch
│       │   │   │   │   │   │   ├── cache/
│       │   │   │   │   │   │   │   ├── branch2-base
│       │   │   │   │   │   │   │   ├── rbc-names-v1
│       │   │   │   │   │   │   │   ├── rbc-revs-v1
│       │   │   │   │   │   │   │   └── tags2-visible
│       │   │   │   │   │   │   ├── dirstate
│       │   │   │   │   │   │   ├── hgrc
│       │   │   │   │   │   │   ├── requires
│       │   │   │   │   │   │   ├── store/
│       │   │   │   │   │   │   │   ├── 00changelog.i
│       │   │   │   │   │   │   │   ├── 00manifest.i
│       │   │   │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   │   │   ├── _c_o_n_f_i_g.h.i
│       │   │   │   │   │   │   │   │   ├── _change_log.c.i
│       │   │   │   │   │   │   │   │   ├── _d_a_t_a_l_u_t_s.cpp.i
│       │   │   │   │   │   │   │   │   ├── _i_n_i_t.cpp.i
│       │   │   │   │   │   │   │   │   ├── _m_o_d_d_m_a.cpp.i
│       │   │   │   │   │   │   │   │   ├── _m_o_d_d_m_a.h.i
│       │   │   │   │   │   │   │   │   ├── _s_e_t_u_p.cpp.i
│       │   │   │   │   │   │   │   │   ├── example1.cpp.i
│       │   │   │   │   │   │   │   │   ├── example1.h.i
│       │   │   │   │   │   │   │   │   ├── example2.cpp.i
│       │   │   │   │   │   │   │   │   ├── example2.h.i
│       │   │   │   │   │   │   │   │   ├── example3.h.i
│       │   │   │   │   │   │   │   │   ├── example4.h.i
│       │   │   │   │   │   │   │   │   └── iomacros.h.i
│       │   │   │   │   │   │   │   └── fncache
│       │   │   │   │   │   │   ├── thgstatus
│       │   │   │   │   │   │   └── wcache/
│       │   │   │   │   │   │       └── manifestfulltextcache
│       │   │   │   │   │   ├── CONFIG.h
│       │   │   │   │   │   ├── ChangeLog.c
│       │   │   │   │   │   ├── DATALUTS.cpp
│       │   │   │   │   │   ├── INIT.cpp
│       │   │   │   │   │   ├── MODDMA.cpp
│       │   │   │   │   │   ├── MODDMA.h
│       │   │   │   │   │   ├── SETUP.cpp
│       │   │   │   │   │   ├── example1.h
│       │   │   │   │   │   ├── example2.h
│       │   │   │   │   │   ├── example3.h
│       │   │   │   │   │   ├── example4.h
│       │   │   │   │   │   └── iomacros.h
│       │   │   │   │   ├── MODDMA.lib
│       │   │   │   │   ├── RemoraComms.cpp
│       │   │   │   │   └── RemoraComms.h
│       │   │   │   ├── pin/
│       │   │   │   │   ├── pin.cpp
│       │   │   │   │   └── pin.h
│       │   │   │   └── qei/
│       │   │   │       ├── qeiDriver.cpp
│       │   │   │       └── qeiDriver.h
│       │   │   └── thread/
│       │   │       ├── createThreads.h
│       │   │       ├── interrupt.cpp
│       │   │       ├── interrupt.h
│       │   │       ├── irqHandlers.h
│       │   │       ├── pruThread.cpp
│       │   │       ├── pruThread.h
│       │   │       ├── qeiInterrupt.cpp
│       │   │       ├── qeiInterrupt.h
│       │   │       ├── timer.cpp
│       │   │       └── timer.h
│       │   ├── TARGET_SKRV2/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_SKR_MINI_E3/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_STM32F1/
│       │   │   ├── drivers/
│       │   │   │   ├── comms/
│       │   │   │   │   ├── RemoraComms.cpp
│       │   │   │   │   └── RemoraComms.h
│       │   │   │   ├── pin/
│       │   │   │   │   ├── pin.cpp
│       │   │   │   │   └── pin.h
│       │   │   │   └── qei/
│       │   │   │       ├── qeiDriver.cpp
│       │   │   │       └── qeiDriver.h
│       │   │   └── thread/
│       │   │       ├── createThreads.h
│       │   │       ├── interrupt.cpp
│       │   │       ├── interrupt.h
│       │   │       ├── irqHandlers.h
│       │   │       ├── pruThread.cpp
│       │   │       ├── pruThread.h
│       │   │       ├── timer.cpp
│       │   │       └── timer.h
│       │   ├── TARGET_STM32F103xC/
│       │   │   ├── device/
│       │   │   │   ├── TOOLCHAIN_ARM/
│       │   │   │   │   ├── startup_stm32f103xe.S
│       │   │   │   │   └── stm32f103xe.sct
│       │   │   │   ├── cmsis_nvic.h
│       │   │   │   ├── stm32f103xe.h
│       │   │   │   ├── stm32f1xx.h
│       │   │   │   ├── system_stm32f1xx.h
│       │   │   │   └── us_ticker_data.h
│       │   │   └── objects.h
│       │   ├── TARGET_STM32F4/
│       │   │   ├── drivers/
│       │   │   │   ├── SDIO/
│       │   │   │   │   ├── SDIOBlockDevice.cpp
│       │   │   │   │   ├── SDIOBlockDevice.h
│       │   │   │   │   ├── sdio_device.c
│       │   │   │   │   └── sdio_device.h
│       │   │   │   ├── comms/
│       │   │   │   │   ├── RemoraComms.cpp
│       │   │   │   │   └── RemoraComms.h
│       │   │   │   ├── pin/
│       │   │   │   │   ├── pin.cpp
│       │   │   │   │   └── pin.h
│       │   │   │   └── qei/
│       │   │   │       ├── qeiDriver.cpp
│       │   │   │       └── qeiDriver.h
│       │   │   └── thread/
│       │   │       ├── createThreads.h
│       │   │       ├── interrupt.cpp
│       │   │       ├── interrupt.h
│       │   │       ├── irqHandlers.h
│       │   │       ├── pruThread.cpp
│       │   │       ├── pruThread.h
│       │   │       ├── timer.cpp
│       │   │       └── timer.h
│       │   ├── TMCStepper/
│       │   │   ├── .hg/
│       │   │   │   ├── 00changelog.i
│       │   │   │   ├── branch
│       │   │   │   ├── cache/
│       │   │   │   │   ├── branch2-base
│       │   │   │   │   ├── rbc-names-v1
│       │   │   │   │   ├── rbc-revs-v1
│       │   │   │   │   └── tags2-visible
│       │   │   │   ├── dirstate
│       │   │   │   ├── hgrc
│       │   │   │   ├── requires
│       │   │   │   ├── store/
│       │   │   │   │   ├── 00changelog.i
│       │   │   │   │   ├── 00manifest.i
│       │   │   │   │   ├── data/
│       │   │   │   │   │   ├── _c_h_o_p_c_o_n_f.cpp.i
│       │   │   │   │   │   ├── _d_r_v___s_t_a_t_u_s.cpp.i
│       │   │   │   │   │   ├── _g_c_o_n_f.cpp.i
│       │   │   │   │   │   ├── _i_h_o_l_d___i_r_u_n.cpp.i
│       │   │   │   │   │   ├── _p_w_m_c_o_n_f.cpp.i
│       │   │   │   │   │   ├── _t_m_c2208__bitfields.h.i
│       │   │   │   │   │   ├── _t_m_c2208_stepper.cpp.i
│       │   │   │   │   │   ├── _t_m_c2209__bitfields.h.i
│       │   │   │   │   │   ├── _t_m_c2209_stepper.cpp.i
│       │   │   │   │   │   ├── _t_m_c___m_a_c_r_o_s.h.i
│       │   │   │   │   │   ├── _t_m_c_stepper.cpp.i
│       │   │   │   │   │   └── _t_m_c_stepper.h.i
│       │   │   │   │   └── fncache
│       │   │   │   ├── thgstatus
│       │   │   │   └── wcache/
│       │   │   │       └── manifestfulltextcache
│       │   │   ├── CHOPCONF.cpp
│       │   │   ├── COOLCONF.cpp
│       │   │   ├── DRV_STATUS.cpp
│       │   │   ├── GCONF.cpp
│       │   │   ├── IHOLD_IRUN.cpp
│       │   │   ├── PWMCONF.cpp
│       │   │   ├── TMC2208Stepper.cpp
│       │   │   ├── TMC2208_bitfields.h
│       │   │   ├── TMC2209Stepper.cpp
│       │   │   ├── TMC2209_bitfields.h
│       │   │   ├── TMCStepper.cpp
│       │   │   ├── TMCStepper.h
│       │   │   └── TMC_MACROS.h
│       │   ├── WIZnetInterface-OS5/
│       │   │   ├── .hg/
│       │   │   │   ├── 00changelog.i
│       │   │   │   ├── branch
│       │   │   │   ├── cache/
│       │   │   │   │   ├── branch2-base
│       │   │   │   │   ├── rbc-names-v1
│       │   │   │   │   ├── rbc-revs-v1
│       │   │   │   │   └── tags2-visible
│       │   │   │   ├── dirstate
│       │   │   │   ├── hgrc
│       │   │   │   ├── requires
│       │   │   │   ├── store/
│       │   │   │   │   ├── 00changelog.i
│       │   │   │   │   ├── 00manifest.i
│       │   │   │   │   ├── data/
│       │   │   │   │   │   ├── _socket/
│       │   │   │   │   │   │   ├── _d_h_c_p_client.cpp.i
│       │   │   │   │   │   │   ├── _d_h_c_p_client.h.i
│       │   │   │   │   │   │   ├── _d_n_s_client.cpp.i
│       │   │   │   │   │   │   ├── _d_n_s_client.h.i
│       │   │   │   │   │   │   ├── _endpoint.cpp.i
│       │   │   │   │   │   │   ├── _endpoint.h.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_connection.cpp.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_connection.h.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_server.cpp.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_server.h.i
│       │   │   │   │   │   │   ├── _w_i_znet___socket.cpp.i
│       │   │   │   │   │   │   ├── _w_i_znet___socket.h.i
│       │   │   │   │   │   │   ├── _w_i_znet___u_d_p_socket.cpp.i
│       │   │   │   │   │   │   ├── _w_i_znet___u_d_p_socket.h.i
│       │   │   │   │   │   │   ├── dnsname.h.i
│       │   │   │   │   │   │   └── pico__string.h.i
│       │   │   │   │   │   ├── _w_i_znet_interface.cpp.i
│       │   │   │   │   │   ├── _w_i_znet_interface.h.i
│       │   │   │   │   │   ├── arch/
│       │   │   │   │   │   │   ├── ext/
│       │   │   │   │   │   │   │   ├── _w5500.cpp.i
│       │   │   │   │   │   │   │   └── _w5500.h.i
│       │   │   │   │   │   │   └── int/
│       │   │   │   │   │   │       ├── _w7500x__toe.cpp.i
│       │   │   │   │   │   │       └── _w7500x__toe.h.i
│       │   │   │   │   │   └── eth__arch.h.i
│       │   │   │   │   └── fncache
│       │   │   │   └── wcache/
│       │   │   │       └── manifestfulltextcache
│       │   │   ├── Socket/
│       │   │   │   ├── DHCPClient.cpp
│       │   │   │   ├── DHCPClient.h
│       │   │   │   ├── DNSClient.cpp
│       │   │   │   ├── DNSClient.h
│       │   │   │   ├── Endpoint.cpp
│       │   │   │   ├── Endpoint.h
│       │   │   │   ├── TCPSocketConnection.cpp
│       │   │   │   ├── TCPSocketConnection.h
│       │   │   │   ├── TCPSocketServer.cpp
│       │   │   │   ├── TCPSocketServer.h
│       │   │   │   ├── WIZnet_Socket.cpp
│       │   │   │   ├── WIZnet_Socket.h
│       │   │   │   ├── WIZnet_UDPSocket.cpp
│       │   │   │   ├── WIZnet_UDPSocket.h
│       │   │   │   ├── dnsname.h
│       │   │   │   └── pico_string.h
│       │   │   ├── WIZnetInterface.cpp
│       │   │   ├── WIZnetInterface.h
│       │   │   ├── arch/
│       │   │   │   ├── ext/
│       │   │   │   │   ├── W5500.cpp
│       │   │   │   │   └── W5500.h
│       │   │   │   └── int/
│       │   │   │       ├── W7500x_toe.cpp
│       │   │   │       └── W7500x_toe.h
│       │   │   └── eth_arch.h
│       │   ├── WIZnetInterface-OS5.lib
│       │   ├── configuration.h
│       │   ├── custom_targets.json
│       │   ├── drivers/
│       │   │   └── softPwm/
│       │   │       ├── softPwm.cpp
│       │   │       └── softPwm.h
│       │   ├── extern.h
│       │   ├── lib/
│       │   │   └── ArduinoJson6/
│       │   │       ├── ArduinoJson/
│       │   │       │   ├── Array/
│       │   │       │   │   ├── ArrayFunctions.hpp
│       │   │       │   │   ├── ArrayImpl.hpp
│       │   │       │   │   ├── ArrayIterator.hpp
│       │   │       │   │   ├── ArrayRef.hpp
│       │   │       │   │   ├── ArrayShortcuts.hpp
│       │   │       │   │   ├── ElementProxy.hpp
│       │   │       │   │   └── Utilities.hpp
│       │   │       │   ├── Collection/
│       │   │       │   │   ├── CollectionData.hpp
│       │   │       │   │   └── CollectionImpl.hpp
│       │   │       │   ├── Configuration.hpp
│       │   │       │   ├── Deserialization/
│       │   │       │   │   ├── ArduinoStreamReader.hpp
│       │   │       │   │   ├── CharPointerReader.hpp
│       │   │       │   │   ├── DeserializationError.hpp
│       │   │       │   │   ├── FlashStringReader.hpp
│       │   │       │   │   ├── IteratorReader.hpp
│       │   │       │   │   ├── NestingLimit.hpp
│       │   │       │   │   ├── StdStreamReader.hpp
│       │   │       │   │   └── deserialize.hpp
│       │   │       │   ├── Document/
│       │   │       │   │   ├── BasicJsonDocument.hpp
│       │   │       │   │   ├── DynamicJsonDocument.hpp
│       │   │       │   │   ├── JsonDocument.hpp
│       │   │       │   │   └── StaticJsonDocument.hpp
│       │   │       │   ├── Json/
│       │   │       │   │   ├── EscapeSequence.hpp
│       │   │       │   │   ├── JsonDeserializer.hpp
│       │   │       │   │   ├── JsonSerializer.hpp
│       │   │       │   │   ├── PrettyJsonSerializer.hpp
│       │   │       │   │   ├── TextFormatter.hpp
│       │   │       │   │   └── Utf8.hpp
│       │   │       │   ├── Memory/
│       │   │       │   │   ├── Alignment.hpp
│       │   │       │   │   ├── MemoryPool.hpp
│       │   │       │   │   ├── StringBuilder.hpp
│       │   │       │   │   └── StringSlot.hpp
│       │   │       │   ├── Misc/
│       │   │       │   │   ├── SerializedValue.hpp
│       │   │       │   │   └── Visitable.hpp
│       │   │       │   ├── MsgPack/
│       │   │       │   │   ├── MsgPackDeserializer.hpp
│       │   │       │   │   ├── MsgPackSerializer.hpp
│       │   │       │   │   ├── endianess.hpp
│       │   │       │   │   └── ieee754.hpp
│       │   │       │   ├── Namespace.hpp
│       │   │       │   ├── Numbers/
│       │   │       │   │   ├── Float.hpp
│       │   │       │   │   ├── FloatParts.hpp
│       │   │       │   │   ├── FloatTraits.hpp
│       │   │       │   │   ├── Integer.hpp
│       │   │       │   │   ├── convertNumber.hpp
│       │   │       │   │   ├── parseFloat.hpp
│       │   │       │   │   ├── parseInteger.hpp
│       │   │       │   │   └── parseNumber.hpp
│       │   │       │   ├── Object/
│       │   │       │   │   ├── MemberProxy.hpp
│       │   │       │   │   ├── ObjectFunctions.hpp
│       │   │       │   │   ├── ObjectImpl.hpp
│       │   │       │   │   ├── ObjectIterator.hpp
│       │   │       │   │   ├── ObjectRef.hpp
│       │   │       │   │   ├── ObjectShortcuts.hpp
│       │   │       │   │   └── Pair.hpp
│       │   │       │   ├── Operators/
│       │   │       │   │   ├── VariantCasts.hpp
│       │   │       │   │   ├── VariantComparisons.hpp
│       │   │       │   │   ├── VariantOperators.hpp
│       │   │       │   │   ├── VariantOr.hpp
│       │   │       │   │   └── VariantShortcuts.hpp
│       │   │       │   ├── Polyfills/
│       │   │       │   │   ├── alias_cast.hpp
│       │   │       │   │   ├── assert.hpp
│       │   │       │   │   ├── attributes.hpp
│       │   │       │   │   ├── ctype.hpp
│       │   │       │   │   ├── gsl/
│       │   │       │   │   │   └── not_null.hpp
│       │   │       │   │   ├── limits.hpp
│       │   │       │   │   ├── math.hpp
│       │   │       │   │   ├── mpl/
│       │   │       │   │   │   └── max.hpp
│       │   │       │   │   ├── type_traits/
│       │   │       │   │   │   ├── conditional.hpp
│       │   │       │   │   │   ├── enable_if.hpp
│       │   │       │   │   │   ├── integral_constant.hpp
│       │   │       │   │   │   ├── is_array.hpp
│       │   │       │   │   │   ├── is_base_of.hpp
│       │   │       │   │   │   ├── is_const.hpp
│       │   │       │   │   │   ├── is_floating_point.hpp
│       │   │       │   │   │   ├── is_integral.hpp
│       │   │       │   │   │   ├── is_same.hpp
│       │   │       │   │   │   ├── is_signed.hpp
│       │   │       │   │   │   ├── is_unsigned.hpp
│       │   │       │   │   │   ├── make_unsigned.hpp
│       │   │       │   │   │   ├── remove_const.hpp
│       │   │       │   │   │   ├── remove_reference.hpp
│       │   │       │   │   │   └── type_identity.hpp
│       │   │       │   │   ├── type_traits.hpp
│       │   │       │   │   └── utility.hpp
│       │   │       │   ├── Serialization/
│       │   │       │   │   ├── DummyWriter.hpp
│       │   │       │   │   ├── DynamicStringWriter.hpp
│       │   │       │   │   ├── StaticStringWriter.hpp
│       │   │       │   │   ├── StreamWriter.hpp
│       │   │       │   │   ├── measure.hpp
│       │   │       │   │   └── serialize.hpp
│       │   │       │   ├── StringStorage/
│       │   │       │   │   ├── StringCopier.hpp
│       │   │       │   │   ├── StringMover.hpp
│       │   │       │   │   └── StringStorage.hpp
│       │   │       │   ├── Strings/
│       │   │       │   │   ├── ArduinoStringAdapter.hpp
│       │   │       │   │   ├── ConstRamStringAdapter.hpp
│       │   │       │   │   ├── FlashStringAdapter.hpp
│       │   │       │   │   ├── RamStringAdapter.hpp
│       │   │       │   │   ├── SizedFlashStringAdapter.hpp
│       │   │       │   │   ├── SizedRamStringAdapter.hpp
│       │   │       │   │   ├── StlStringAdapter.hpp
│       │   │       │   │   ├── String.hpp
│       │   │       │   │   └── StringAdapters.hpp
│       │   │       │   ├── Variant/
│       │   │       │   │   ├── SlotFunctions.hpp
│       │   │       │   │   ├── VariantAs.hpp
│       │   │       │   │   ├── VariantAsImpl.hpp
│       │   │       │   │   ├── VariantContent.hpp
│       │   │       │   │   ├── VariantData.hpp
│       │   │       │   │   ├── VariantFunctions.hpp
│       │   │       │   │   ├── VariantImpl.hpp
│       │   │       │   │   ├── VariantRef.hpp
│       │   │       │   │   ├── VariantSlot.hpp
│       │   │       │   │   └── VariantTo.hpp
│       │   │       │   ├── compatibility.hpp
│       │   │       │   └── version.hpp
│       │   │       ├── ArduinoJson.h
│       │   │       └── ArduinoJson.hpp
│       │   ├── main.cpp
│       │   ├── mbed-os.lib
│       │   ├── mbed_app.json
│       │   ├── modules/
│       │   │   ├── blink/
│       │   │   │   ├── blink.cpp
│       │   │   │   └── blink.h
│       │   │   ├── debug/
│       │   │   │   ├── debug.cpp
│       │   │   │   └── debug.h
│       │   │   ├── digipot/
│       │   │   │   ├── DigipotBase.h
│       │   │   │   ├── mcp4451.cpp
│       │   │   │   └── mcp4451.h
│       │   │   ├── digitalPin/
│       │   │   │   ├── digitalPin.cpp
│       │   │   │   └── digitalPin.h
│       │   │   ├── eStop/
│       │   │   │   ├── eStop.cpp
│       │   │   │   └── eStop.h
│       │   │   ├── encoder/
│       │   │   │   ├── encoder.cpp
│       │   │   │   └── encoder.h
│       │   │   ├── module.cpp
│       │   │   ├── module.h
│       │   │   ├── motorPower/
│       │   │   │   ├── motorPower.cpp
│       │   │   │   └── motorPower.h
│       │   │   ├── pwm/
│       │   │   │   ├── hardwarePwm.cpp
│       │   │   │   ├── hardwarePwm.h
│       │   │   │   ├── pwm.cpp
│       │   │   │   └── pwm.h
│       │   │   ├── qei/
│       │   │   │   ├── qei.cpp
│       │   │   │   └── qei.h
│       │   │   ├── rcservo/
│       │   │   │   ├── rcservo.cpp
│       │   │   │   └── rcservo.h
│       │   │   ├── resetPin/
│       │   │   │   ├── resetPin.cpp
│       │   │   │   └── resetPin.h
│       │   │   ├── stepgen/
│       │   │   │   ├── stepgen.cpp
│       │   │   │   └── stepgen.h
│       │   │   ├── switch/
│       │   │   │   ├── switch.cpp
│       │   │   │   └── switch.h
│       │   │   ├── temperature/
│       │   │   │   ├── temperature.cpp
│       │   │   │   └── temperature.h
│       │   │   └── tmc/
│       │   │       ├── tmc.h
│       │   │       ├── tmc2208.cpp
│       │   │       └── tmc2209.cpp
│       │   ├── remora.h
│       │   ├── sensors/
│       │   │   ├── tempSensor.h
│       │   │   └── thermistor/
│       │   │       ├── thermistor.cpp
│       │   │       └── thermistor.h
│       │   ├── thread/
│       │   │   ├── timerInterrupt.cpp
│       │   │   └── timerInterrupt.h
│       │   └── update_mks_robin.py
│       └── Remora-OS6/
│           ├── README.md
│           ├── SoftwareSerial/
│           │   ├── SoftwareSerial.cpp
│           │   └── SoftwareSerial.h
│           ├── TARGET_MANTA8/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_MONSTER8/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_OCTOPUS_429/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_OCTOPUS_446/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_ROBIN_3/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_ROBIN_E3/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SKRV1_4/
│           │   ├── drivers/
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── qeiInterrupt.cpp
│           │       ├── qeiInterrupt.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_SKRV2/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SKRV3/
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SKR_MINI_E3/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SPIDER/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SPIDER_KING/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_STM32F1/
│           │   ├── drivers/
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_STM32F4/
│           │   ├── drivers/
│           │   │   ├── SDIO/
│           │   │   │   ├── SDIOBlockDevice.cpp
│           │   │   │   ├── SDIOBlockDevice.h
│           │   │   │   ├── sdio_device.c
│           │   │   │   └── sdio_device.h
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_STM32G0/
│           │   ├── drivers/
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_STM32H7/
│           │   ├── drivers/
│           │   │   ├── SDIO/
│           │   │   │   ├── SDIOBlockDevice.cpp
│           │   │   │   ├── SDIOBlockDevice.h
│           │   │   │   ├── sdio_device.c
│           │   │   │   └── sdio_device.h
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TMCStepper/
│           │   ├── CHOPCONF.cpp
│           │   ├── COOLCONF.cpp
│           │   ├── DRV_STATUS.cpp
│           │   ├── GCONF.cpp
│           │   ├── IHOLD_IRUN.cpp
│           │   ├── PWMCONF.cpp
│           │   ├── TMC2208Stepper.cpp
│           │   ├── TMC2208_bitfields.h
│           │   ├── TMC2209Stepper.cpp
│           │   ├── TMC2209_bitfields.h
│           │   ├── TMCStepper.cpp
│           │   ├── TMCStepper.h
│           │   └── TMC_MACROS.h
│           ├── configuration.h
│           ├── custom_targets.json
│           ├── drivers/
│           │   └── softPwm/
│           │       ├── softPwm.cpp
│           │       └── softPwm.h
│           ├── extern.h
│           ├── lib/
│           │   └── ArduinoJson6/
│           │       ├── ArduinoJson/
│           │       │   ├── Array/
│           │       │   │   ├── ArrayFunctions.hpp
│           │       │   │   ├── ArrayImpl.hpp
│           │       │   │   ├── ArrayIterator.hpp
│           │       │   │   ├── ArrayRef.hpp
│           │       │   │   ├── ArrayShortcuts.hpp
│           │       │   │   ├── ElementProxy.hpp
│           │       │   │   └── Utilities.hpp
│           │       │   ├── Collection/
│           │       │   │   ├── CollectionData.hpp
│           │       │   │   └── CollectionImpl.hpp
│           │       │   ├── Configuration.hpp
│           │       │   ├── Deserialization/
│           │       │   │   ├── ArduinoStreamReader.hpp
│           │       │   │   ├── CharPointerReader.hpp
│           │       │   │   ├── DeserializationError.hpp
│           │       │   │   ├── FlashStringReader.hpp
│           │       │   │   ├── IteratorReader.hpp
│           │       │   │   ├── NestingLimit.hpp
│           │       │   │   ├── StdStreamReader.hpp
│           │       │   │   └── deserialize.hpp
│           │       │   ├── Document/
│           │       │   │   ├── BasicJsonDocument.hpp
│           │       │   │   ├── DynamicJsonDocument.hpp
│           │       │   │   ├── JsonDocument.hpp
│           │       │   │   └── StaticJsonDocument.hpp
│           │       │   ├── Json/
│           │       │   │   ├── EscapeSequence.hpp
│           │       │   │   ├── JsonDeserializer.hpp
│           │       │   │   ├── JsonSerializer.hpp
│           │       │   │   ├── PrettyJsonSerializer.hpp
│           │       │   │   ├── TextFormatter.hpp
│           │       │   │   └── Utf8.hpp
│           │       │   ├── Memory/
│           │       │   │   ├── Alignment.hpp
│           │       │   │   ├── MemoryPool.hpp
│           │       │   │   ├── StringBuilder.hpp
│           │       │   │   └── StringSlot.hpp
│           │       │   ├── Misc/
│           │       │   │   ├── SerializedValue.hpp
│           │       │   │   └── Visitable.hpp
│           │       │   ├── MsgPack/
│           │       │   │   ├── MsgPackDeserializer.hpp
│           │       │   │   ├── MsgPackSerializer.hpp
│           │       │   │   ├── endianess.hpp
│           │       │   │   └── ieee754.hpp
│           │       │   ├── Namespace.hpp
│           │       │   ├── Numbers/
│           │       │   │   ├── Float.hpp
│           │       │   │   ├── FloatParts.hpp
│           │       │   │   ├── FloatTraits.hpp
│           │       │   │   ├── Integer.hpp
│           │       │   │   ├── convertNumber.hpp
│           │       │   │   ├── parseFloat.hpp
│           │       │   │   ├── parseInteger.hpp
│           │       │   │   └── parseNumber.hpp
│           │       │   ├── Object/
│           │       │   │   ├── MemberProxy.hpp
│           │       │   │   ├── ObjectFunctions.hpp
│           │       │   │   ├── ObjectImpl.hpp
│           │       │   │   ├── ObjectIterator.hpp
│           │       │   │   ├── ObjectRef.hpp
│           │       │   │   ├── ObjectShortcuts.hpp
│           │       │   │   └── Pair.hpp
│           │       │   ├── Operators/
│           │       │   │   ├── VariantCasts.hpp
│           │       │   │   ├── VariantComparisons.hpp
│           │       │   │   ├── VariantOperators.hpp
│           │       │   │   ├── VariantOr.hpp
│           │       │   │   └── VariantShortcuts.hpp
│           │       │   ├── Polyfills/
│           │       │   │   ├── alias_cast.hpp
│           │       │   │   ├── assert.hpp
│           │       │   │   ├── attributes.hpp
│           │       │   │   ├── ctype.hpp
│           │       │   │   ├── gsl/
│           │       │   │   │   └── not_null.hpp
│           │       │   │   ├── limits.hpp
│           │       │   │   ├── math.hpp
│           │       │   │   ├── mpl/
│           │       │   │   │   └── max.hpp
│           │       │   │   ├── type_traits/
│           │       │   │   │   ├── conditional.hpp
│           │       │   │   │   ├── enable_if.hpp
│           │       │   │   │   ├── integral_constant.hpp
│           │       │   │   │   ├── is_array.hpp
│           │       │   │   │   ├── is_base_of.hpp
│           │       │   │   │   ├── is_const.hpp
│           │       │   │   │   ├── is_floating_point.hpp
│           │       │   │   │   ├── is_integral.hpp
│           │       │   │   │   ├── is_same.hpp
│           │       │   │   │   ├── is_signed.hpp
│           │       │   │   │   ├── is_unsigned.hpp
│           │       │   │   │   ├── make_unsigned.hpp
│           │       │   │   │   ├── remove_const.hpp
│           │       │   │   │   ├── remove_reference.hpp
│           │       │   │   │   └── type_identity.hpp
│           │       │   │   ├── type_traits.hpp
│           │       │   │   └── utility.hpp
│           │       │   ├── Serialization/
│           │       │   │   ├── DummyWriter.hpp
│           │       │   │   ├── DynamicStringWriter.hpp
│           │       │   │   ├── StaticStringWriter.hpp
│           │       │   │   ├── StreamWriter.hpp
│           │       │   │   ├── measure.hpp
│           │       │   │   └── serialize.hpp
│           │       │   ├── StringStorage/
│           │       │   │   ├── StringCopier.hpp
│           │       │   │   ├── StringMover.hpp
│           │       │   │   └── StringStorage.hpp
│           │       │   ├── Strings/
│           │       │   │   ├── ArduinoStringAdapter.hpp
│           │       │   │   ├── ConstRamStringAdapter.hpp
│           │       │   │   ├── FlashStringAdapter.hpp
│           │       │   │   ├── RamStringAdapter.hpp
│           │       │   │   ├── SizedFlashStringAdapter.hpp
│           │       │   │   ├── SizedRamStringAdapter.hpp
│           │       │   │   ├── StlStringAdapter.hpp
│           │       │   │   ├── String.hpp
│           │       │   │   └── StringAdapters.hpp
│           │       │   ├── Variant/
│           │       │   │   ├── SlotFunctions.hpp
│           │       │   │   ├── VariantAs.hpp
│           │       │   │   ├── VariantAsImpl.hpp
│           │       │   │   ├── VariantContent.hpp
│           │       │   │   ├── VariantData.hpp
│           │       │   │   ├── VariantFunctions.hpp
│           │       │   │   ├── VariantImpl.hpp
│           │       │   │   ├── VariantRef.hpp
│           │       │   │   ├── VariantSlot.hpp
│           │       │   │   └── VariantTo.hpp
│           │       │   ├── compatibility.hpp
│           │       │   └── version.hpp
│           │       ├── ArduinoJson.h
│           │       └── ArduinoJson.hpp
│           ├── main.cpp
│           ├── mbed-os.lib
│           ├── mbed_app.json
│           ├── modules/
│           │   ├── blink/
│           │   │   ├── blink.cpp
│           │   │   └── blink.h
│           │   ├── debug/
│           │   │   ├── debug.cpp
│           │   │   └── debug.h
│           │   ├── digipot/
│           │   │   ├── DigipotBase.h
│           │   │   ├── mcp4451.cpp
│           │   │   └── mcp4451.h
│           │   ├── digitalPin/
│           │   │   ├── digitalPin.cpp
│           │   │   └── digitalPin.h
│           │   ├── eStop/
│           │   │   ├── eStop.cpp
│           │   │   └── eStop.h
│           │   ├── encoder/
│           │   │   ├── encoder.cpp
│           │   │   └── encoder.h
│           │   ├── module.cpp
│           │   ├── module.h
│           │   ├── motorPower/
│           │   │   ├── motorPower.cpp
│           │   │   └── motorPower.h
│           │   ├── pwm/
│           │   │   ├── hardwarePwm.cpp
│           │   │   ├── hardwarePwm.h
│           │   │   ├── pwm.cpp
│           │   │   └── pwm.h
│           │   ├── qei/
│           │   │   ├── qei.cpp
│           │   │   └── qei.h
│           │   ├── rcservo/
│           │   │   ├── rcservo.cpp
│           │   │   └── rcservo.h
│           │   ├── resetPin/
│           │   │   ├── resetPin.cpp
│           │   │   └── resetPin.h
│           │   ├── stepgen/
│           │   │   ├── stepgen.cpp
│           │   │   └── stepgen.h
│           │   ├── switch/
│           │   │   ├── switch.cpp
│           │   │   └── switch.h
│           │   ├── temperature/
│           │   │   ├── temperature.cpp
│           │   │   └── temperature.h
│           │   └── tmc/
│           │       ├── tmc.h
│           │       ├── tmc2208.cpp
│           │       └── tmc2209.cpp
│           ├── remora.h
│           ├── sensors/
│           │   ├── tempSensor.h
│           │   └── thermistor/
│           │       ├── thermistor.cpp
│           │       └── thermistor.h
│           ├── thread/
│           │   ├── timerInterrupt.cpp
│           │   └── timerInterrupt.h
│           └── update_mks_robin.py
├── LinuxCNC/
│   ├── Components/
│   │   ├── NVMPG/
│   │   │   └── nvmpg.c
│   │   ├── PIDcontroller/
│   │   │   ├── PIDcontroller.c
│   │   │   └── PIDcontroller.md
│   │   ├── PRUencoder/
│   │   │   └── PRUencoder.c
│   │   ├── README.md
│   │   ├── Remora/
│   │   │   ├── bcm2835.c
│   │   │   ├── bcm2835.h
│   │   │   ├── remora.h
│   │   │   └── remora_lpc.c
│   │   ├── Remora-eth/
│   │   │   ├── remora-eth-3.0.c
│   │   │   └── remora-eth-3.0.h
│   │   └── Remora-spi/
│   │       ├── bcm2835.c
│   │       ├── bcm2835.h
│   │       ├── dtcboards.h
│   │       ├── gpiochip_rp1.c
│   │       ├── gpiochip_rp1.h
│   │       ├── remora-spi.c
│   │       ├── remora.h
│   │       ├── rp1lib.c
│   │       ├── rp1lib.h
│   │       ├── spi-dw.c
│   │       └── spi-dw.h
│   ├── ConfigSamples/
│   │   ├── ender3/
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── custom_postgui.hal
│   │   │   ├── ender3.hal
│   │   │   ├── ender3.ini
│   │   │   ├── gcode2ngc.py
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   └── tool.tbl
│   │   ├── hypercube/
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── autosave.halscope
│   │   │   ├── compensation.py
│   │   │   ├── custom_postgui.hal
│   │   │   ├── gcode2ngc.py
│   │   │   ├── hypercube.hal
│   │   │   ├── hypercube.ini
│   │   │   ├── hypercube.pref
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   ├── tool.tbl
│   │   │   └── tool.tbl.bak
│   │   ├── remora-closed-loop/
│   │   │   ├── .qtpyvcp-messages.json
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── autosave.halscope
│   │   │   ├── compensation.py
│   │   │   ├── custom_postgui.hal
│   │   │   ├── encoder-fb.halscope
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── my.halshow
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   ├── remora.hal
│   │   │   ├── remora.ini
│   │   │   ├── remora.pref
│   │   │   └── tool.tbl
│   │   ├── remora-eth/
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── autosave.halscope
│   │   │   ├── custom_postgui.hal
│   │   │   ├── gcode2ngc.py
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   ├── remora-eth.hal
│   │   │   ├── remora-eth.ini
│   │   │   └── tool.tbl
│   │   ├── remora-octopus/
│   │   │   ├── Remora-XY.prefs
│   │   │   ├── axis.ngc
│   │   │   ├── custom_postgui.hal
│   │   │   ├── halshow.preferences
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── remora-xyz.hal
│   │   │   ├── remora-xyz.ini
│   │   │   ├── tool.tbl
│   │   │   └── usercommand_regularmac_800.py
│   │   └── remora-xyz/
│   │       ├── custom_postgui.hal
│   │       ├── postgui_call_list.hal
│   │       ├── remora-xyz.hal
│   │       ├── remora-xyz.ini
│   │       └── tool.tbl
│   └── README.md
└── README.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================

Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA.lib
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/ChangeLog.c
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/CONFIG.h
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/DATALUTS.cpp
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/example1.h
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/example2.h
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/example3.h
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/example4.h
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/INIT.cpp
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/iomacros.h
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/MODDMA.cpp
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/MODDMA.h
Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA/SETUP.cpp
Firmware/FirmwareSource/Remora-OS6/.mbed


================================================
FILE: Firmware/ConfigSamples/BTT_Octopus/OCTOPUS_ENDER3/config.txt
================================================
{
	"Board": "BIGTREETECH OCTOPUS",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_15"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X DRIVER0 - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PF_13",
		"Direction Pin": 	"PF_12",
		"Enable Pin": 		"PF_14"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y DRIVER1 - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PG_0",
		"Direction Pin": 	"PG_1",
		"Enable Pin": 		"PF_15"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z DRIVER2 - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PF_11",
		"Direction Pin": 	"PG_3",
		"Enable Pin": 		"PG_5"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 DRIVER3 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"PG_4",
		"Direction Pin": 	"PC_1",
		"Enable Pin": 		"PA_0"
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min DIAG0",
		"Pin":				"PG_6",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max DIAG4",
		"Pin":				"PG_12",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min DIAG1",
		"Pin":				"PG_9",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max DIAG5",
		"Pin":				"PG_13",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min DIAG2",
		"Pin":				"PG_10",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max DIAG6",
		"Pin":				"PG_14",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Heated Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"PF_3",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"PA_1"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Ext 0 temperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"PF_4",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"PA_2"
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 part cooling fan PWM FAN0",
		"SP[i]": 			2,
		"PWM Max":			128,
		"PWM Pin": 			"PA_8"
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe bltouch according to marlin",
		"SP[i]": 			3,
		"Servo Pin": 		"PB_6"
	}
	]
}

================================================
FILE: Firmware/ConfigSamples/BTT_Octopus/OCTOPUS_xyz/config.txt
================================================
{
	"Board": "BIGTREETECH OCTOPUS",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_15"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PF_13",
		"Direction Pin": 	"PF_12",
		"Enable Pin": 		"PF_14"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PG_0",
		"Direction Pin": 	"PG_1",
		"Enable Pin": 		"PF_15"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PF_11",
		"Direction Pin": 	"PG_3",
		"Enable Pin": 		"PG_5"
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/BTT_SKRv13/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v1.3 & v1.4",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"1.31"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"2.6",
		"Enable Pin": 		"2.1"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"0.19",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"2.08"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"0.22",
		"Direction Pin": 	"2.11",
		"Enable Pin": 		"0.21"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"2.13",
		"Direction Pin": 	"0.11",
		"Enable Pin": 		"2.12"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Extruder tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.23",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"2.0"
	},
	{
	"Thread": "Base",
	"Type": "Encoder",
		"Comment":			"Encoder",
		"PV[i]":			2,
		"ChA Pin":			"1.20",
		"ChB Pin":			"1.22"
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"1.29",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"1.28",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"1.27",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"1.26",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"1.25",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"1.24",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch",
		"Pin":				"0.0",
		"Mode":				"On",
		"PV[i]":			0,
		"SP":				25.5
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/BTT_SKRv14/SKRv14_3dp/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v1.4",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"1.31"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"2.6",
		"Enable Pin": 		"2.1"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"X - Joint 0 TMC driver",
		"RX pin": 			"1.10",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"0.19",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"2.08"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Y - Joint 1 TMC driver",
		"RX pin": 			"1.9",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"0.22",
		"Direction Pin": 	"2.11",
		"Enable Pin": 		"0.21"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Z - Joint 2 TMC driver",
		"RX pin": 			"1.8",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"2.13",
		"Direction Pin": 	"0.11",
		"Enable Pin": 		"2.12"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E0 - Joint 3 TMC driver",
		"RX pin": 			"1.4",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"1.15",
		"Direction Pin": 	"1.14",
		"Enable Pin": 		"1.16"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E1 - Joint 4 TMC driver",
		"RX pin": 			"1.1",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"2.5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.25",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Hotend 0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"2.7"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Hotend 0 tenperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.24",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Hotend 1 heater PWM",
		"SP[i]": 			2,
		"PWM Pin": 			"2.4"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Hotend 1 tenperature sensor",
		"PV[i]": 			2,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.23",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"1.29",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"1.28",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"1.27",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"E0DET",
		"Pin":				"1.26",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"E1DET",
		"Pin":				"1.25",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"PWRDET",
		"Pin":				"1.0",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Probe",
		"Pin":				"0.10",
		"Mode":				"Input",
		"Data Bit":			6
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"2.0"
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch",
		"Pin":				"0.0",
		"Mode":				"On",
		"PV[i]":			1,
		"SP":				25.5
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/BTT_SKRv14/SKRv14_TMC2209/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v1.4",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"1.31"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"2.6",
		"Enable Pin": 		"2.1"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"X - Joint 0 TMC driver",
		"RX pin": 			"1.10",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"0.19",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"2.08"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Y - Joint 1 TMC driver",
		"RX pin": 			"1.9",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"0.22",
		"Direction Pin": 	"2.11",
		"Enable Pin": 		"0.21"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Z - Joint 2 TMC driver",
		"RX pin": 			"1.8",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"2.13",
		"Direction Pin": 	"0.11",
		"Enable Pin": 		"2.12"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E0 - Joint 3 TMC driver",
		"RX pin": 			"1.4",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"1.15",
		"Direction Pin": 	"1.14",
		"Enable Pin": 		"1.16"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E1 - Joint 4 TMC driver",
		"RX pin": 			"1.1",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"2.5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.25",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Hotend 0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"2.7"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Hotend 0 tenperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.24",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Hotend 1 heater PWM",
		"SP[i]": 			2,
		"PWM Pin": 			"2.4"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Hotend 1 tenperature sensor",
		"PV[i]": 			2,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.23",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"1.29",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"1.28",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"1.27",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"E0DET",
		"Pin":				"1.26",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"E1DET",
		"Pin":				"1.25",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"PWRDET",
		"Pin":				"1.0",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Probe",
		"Pin":				"0.10",
		"Mode":				"Input",
		"Data Bit":			6
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"2.0"
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch",
		"Pin":				"0.0",
		"Mode":				"On",
		"PV[i]":			1,
		"SP":				25.5
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/BTT_SKRv14/SKRv14_xyz/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v1.3 & v1.4",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"1.31"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"2.6",
		"Enable Pin": 		"2.1"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"0.19",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"2.08"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"0.22",
		"Direction Pin": 	"2.11",
		"Enable Pin": 		"0.21"
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/BTT_SKRv2/SKRv2_TMC2209/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v2",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_4"
	},
		{
	"Thread": "On load",
	"Type": "Motor Power",
		"Comment": "Enable motor power SKR2",
		"Pin":					 "PC_13"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PE_2",
		"Direction Pin": 	"PE_1",
		"Enable Pin": 		"PE_3"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"X - Joint 0 TMC driver",
		"RX pin": 			"PE_0",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PD_5",
		"Direction Pin": 	"PD_4",
		"Enable Pin": 		"PD_6"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Y - Joint 1 TMC driver",
		"RX pin": 			"PD_3",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PA_15",
		"Direction Pin": 	"PA_8",
		"Enable Pin": 		"PD_1"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Z - Joint 2 TMC driver",
		"RX pin": 			"PD_0",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"PD_15",
		"Direction Pin": 	"PD_14",
		"Enable Pin": 		"PC_7"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E0 - Joint 3 TMC driver",
		"RX pin": 			"PC_6",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"PD_11",
		"Direction Pin": 	"PD_10",
		"Enable Pin": 		"PD_13"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E1 - Joint 4 TMC driver",
		"RX pin": 			"PD_12",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"PC_1",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"PC_2",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"PC_3",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"PA_0",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"PC_0",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"PC_15",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch",
		"Pin":				"PB_7",
		"Mode":				"On",
		"PV[i]":			0,
		"SP":				25.5
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/BTT_SKRv2/SKRv2_ender3/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v2",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_4"
	},
	{
	"Thread": "On load",
	"Type": "Motor Power",
	"Comment": "Enable motor power SKR2",
	"Pin":					 "PC_13"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PE_2",
		"Direction Pin": 	"PE_1",
		"Enable Pin": 		"PE_3"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PD_5",
		"Direction Pin": 	"PD_4",
		"Enable Pin": 		"PD_6"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PA_15",
		"Direction Pin": 	"PA_8",
		"Enable Pin": 		"PD_1"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"PD_15",
		"Direction Pin": 	"PD_14",
		"Enable Pin": 		"PC_7"
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"PC_1",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"PC_2",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"PC_3",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"PA_0",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"PC_0",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"PC_15",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Heated Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"PA_1",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"PD_7"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Ext 0 temperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"PA_2",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"PB_3"
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 part cooling fan PWM FAN0",
		"SP[i]": 			2,
		"PWM Max":			128,
		"PWM Pin": 			"PB_7"
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe bltouch according to marlin",
		"SP[i]": 			3,
		"Servo Pin": 		"PE_5"
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/BTT_SKRv2/SKRv2_xyz/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v2",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_4"
	},
	{
	"Thread": "On load",
	"Type": "Motor Power",
		"Comment": "Enable motor power SKR2",
		"Pin":					 "PC_13"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PE_2",
		"Direction Pin": 	"PE_1",
		"Enable Pin": 		"PE_3"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PD_5",
		"Direction Pin": 	"PD_4",
		"Enable Pin": 		"PD_6"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PA_15",
		"Direction Pin": 	"PA_8",
		"Enable Pin": 		"PD_1"
	},
	
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"PC_1",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"PC_2",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"PC_3",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"PA_0",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"PC_0",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"PC_15",
		"Mode":				"Input",
		"Data Bit":			5

	}
	]
}


================================================
FILE: Firmware/ConfigSamples/Fysetc_Spider/config.txt
================================================
{
	"Board": "FYSETC SPIDER",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_7"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X M1 - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PE_11",
		"Direction Pin": 	"PE_10",
		"Enable Pin": 		"PE_9"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y M2 - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PD_8",
		"Direction Pin": 	"PB_12",
		"Enable Pin": 		"PD_9"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z M3 - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PD_14",
		"Direction Pin": 	"PD_13",
		"Enable Pin": 		"PD_15"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 M4 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"PD_5",
		"Direction Pin": 	"PD_6",
		"Enable Pin": 		"PD_4"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 M5 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"PE_6",
		"Direction Pin": 	"PC_13",
		"Enable Pin": 		"PE_5"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E2 M6 - Joint 5 step generator",
		"Joint Number":		5,
		"Step Pin": 		"PE_2",
		"Direction Pin": 	"PE_4",
		"Enable Pin": 		"PE_3"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E3 M7 - Joint 6 step generator",
		"Joint Number":		6,
		"Step Pin": 		"PD_12",
		"Direction Pin": 	"PC_4",
		"Enable Pin": 		"PE_8"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E4 M8 - Joint 7 step generator",
		"Joint Number":		7,
		"Step Pin": 		"PE_1",
		"Direction Pin": 	"PE_0",
		"Enable Pin": 		"PC_5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Extruder tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"PC_0",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min X-DIAG",
		"Pin":				"PB_14",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max E0-DIAG",
		"Pin":				"PA_1",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min Y-DIAG",
		"Pin":				"PB_13",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max E1-DIAG",
		"Pin":				"PA_2",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min Z-DIAG",
		"Pin":				"PA_0",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max E2-DIAG",
		"Pin":				"PA_3",
		"Mode":				"Input",
		"Data Bit":			5
	}
	]
}

================================================
FILE: Firmware/ConfigSamples/Fysetc_Spider_King/config.txt
================================================
{
	"Board": "FYSETC SPIDER KING",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PB_11"
	}
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PE_2",
		"Direction Pin": 	"PE_1",
		"Enable Pin": 		"PE_3"
	},
	{
	"Thread": "On load",
	"Type": "TMC stepper",
		"Comment":			"X - Joint 0 TMC driver",
		"Driver": 			"2209",
		"RX pin": 			"PE_0",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PD_5",
		"Direction Pin": 	"PD_4",
		"Enable Pin": 		"PD_6"
	},
	{
	"Thread": "On load",
	"Type": "TMC stepper",
		"Comment":			"Y - Joint 1 TMC driver",
		"Driver": 			"2209",
		"RX pin": 			"PD_3",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	}
	
	]
}


================================================
FILE: Firmware/ConfigSamples/Hypercube-evolution/config.txt
================================================
{
	"Board": "MKS SBASE v1.3",
	"Modules":[
	{
	"Thread": "On load",
	"Type": "MCP4451",
		"Comment":			"Digipot for joints 0 - 3",
		"I2C SDA pin":		"0.0",
		"I2C SCL pin":		"0.1",
		"I2C address":		0,
		"Max current":		2.0,
		"Factor":			113.33,
		"Current 0":		0.8,
		"Current 1":		0.8,
		"Current 2":		0.8,
		"Current 3":		0.8
	},
	{
	"Thread": "On load",
	"Type": "MCP4451",
		"Comment":			"Digipot for joints 4 - 7",
		"I2C SDA pin":		"0.0",
		"I2C SCL pin":		"0.1",
		"I2C address":		2,
		"Max current":		2.0,
		"Factor":			113.33,
		"Current 0":		0.8,
		"Current 1":		0.8,
		"Current 2":		0.8,
		"Current 3":		0.8
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.0",
		"Direction Pin": 	"0.5",
		"Enable Pin": 		"0.4"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"2.1",
		"Direction Pin": 	"0.11",
		"Enable Pin": 		"0.10"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z1 - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"0.19"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z2 - Joint 2 step generator",
		"Joint Number":		3,
		"Step Pin": 		"2.3",
		"Direction Pin": 	"0.22",
		"Enable Pin": 		"0.21"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E - Joint 3 step generator",
		"Joint Number":		4,
		"Step Pin": 		"2.8",
		"Direction Pin": 	"2.13",
		"Enable Pin": 		"4.29"
	},
	{
	"Thread": "Servo",
	"Type": "Blink",
		"Pin":				"1.18",
		"Frequency":		2
	},	
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"1.24",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"1.25",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"1.26",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"1.27",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"1.28",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"1.29",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Heated Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.23",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"2.5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Ext 0 temperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.24",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"2.7"
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 part cooling fan PWM",
		"SP[i]": 			2,
		"PWM Max":			128,
		"PWM Pin": 			"2.4"
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"1.23"
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch",
		"Pin":				"1.22",
		"Mode":				"On",
		"PV[i]":			1,
		"SP":				35.0
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/MKS_Monster8/config.txt
================================================
{
	"Board": "MKS MONSTER8",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin USE BTN_EN2",
		"Pin":				"PE_8"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PC_14",
		"Direction Pin": 	"PC_13",
		"Enable Pin": 		"PC_15"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PE_5",
		"Direction Pin": 	"PE_4",
		"Enable Pin": 		"PC_15"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PE_1",
		"Direction Pin": 	"PE_0",
		"Enable Pin": 		"PE_2"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 DRIVER3 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"PB_5",
		"Direction Pin": 	"PB_4",
		"Enable Pin": 		"PB_6"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 DRIVER4 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"PD_6",
		"Direction Pin": 	"PD_5",
		"Enable Pin": 		"PD_7"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E2 DRIVER5 - Joint 5 step generator",
		"Joint Number":		5,
		"Step Pin": 		"PD_2",
		"Direction Pin": 	"PD_1",
		"Enable Pin": 		"PD_3"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E3 DRIVER6 - Joint 6 step generator",
		"Joint Number":		6,
		"Step Pin": 		"PC_7",
		"Direction Pin": 	"PC_6",
		"Enable Pin": 		"PC_8"
	},
		{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E4 DRIVER7 - Joint 7 step generator",
		"Joint Number":		7,
		"Step Pin": 		"PD_13",
		"Direction Pin": 	"PD_12",
		"Enable Pin": 		"PD_14"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Extruder tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"PC_1",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe bltouch according to marlin",
		"SP[i]": 			3,
		"Servo Pin": 		"PB_6"
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min ",
		"Pin":				"PA_14",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max ",
		"Pin":				"PA_13",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min ",
		"Pin":				"PA_15",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max ",
		"Pin":				"PC_5",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min ",
		"Pin":				"PB_13",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max ",
		"Pin":				"PB_12",
		"Mode":				"Input",
		"Data Bit":			5
	}
	]
}

================================================
FILE: Firmware/ConfigSamples/MKS_Robin_E3/Robin_E3/config.txt
================================================
{
	"Board": "Mks Robin E3",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_5"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PC_0",
		"Direction Pin": 	"PB_2",
		"Enable Pin": 		"PC_13"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PC_2",
		"Direction Pin": 	"PB_9",
		"Enable Pin": 		"PB_12"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PC_14",
		"Direction Pin": 	"PC_15",
		"Enable Pin": 		"PB_8"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"PB_4",
		"Direction Pin": 	"PB_3",
		"Enable Pin": 		"PB_5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Extruder tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"PA_0",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"PA_3"
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"PA_12",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"PA_11",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"PC_6",
		"Mode":				"Input",
		"Data Bit":			4
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/MKS_Sbase/MKS Sbase/Ender3/config.txt-Ender3
================================================
{
	"Board": "MKS SBASE v1.3",
	"Modules":[
	{
	"Thread": "On load",
	"Type": "MCP4451",
		"Comment":			"Digipot for joints 0 - 3",
		"I2C SDA pin":		"0.0",
		"I2C SCL pin":		"0.1",
		"I2C address":		0,
		"Max current":		2.0,
		"Factor":			113.33,
		"Current 0":		0.8,
		"Current 1":		0.8,
		"Current 2":		0.8,
		"Current 3":		0.8
	},
	{
	"Thread": "On load",
	"Type": "MCP4451",
		"Comment":			"Digipot for joints 4 - 7",
		"I2C SDA pin":		"0.0",
		"I2C SCL pin":		"0.1",
		"I2C address":		2,
		"Max current":		2.0,
		"Factor":			113.33,
		"Current 0":		0.8,
		"Current 1":		0.8,
		"Current 2":		0.8,
		"Current 3":		0.8
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.0",
		"Direction Pin": 	"0.5",
		"Enable Pin": 		"0.4"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"2.1",
		"Direction Pin": 	"0.11",
		"Enable Pin": 		"0.10"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"0.19"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"2.3",
		"Direction Pin": 	"0.22",
		"Enable Pin": 		"0.21"
	},
	{
	"Thread": "Servo",
	"Type": "Blink",
		"Pin":				"1.18",
		"Frequency":		2
	},	
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"1.24",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"1.25",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"1.26",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"1.27",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"1.28",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"1.29",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Heated Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.23",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"2.5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Ext 0 temperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.24",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"2.7"
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 part cooling fan PWM on FAN",
		"SP[i]": 			2,
		"PWM Max":			128,
		"PWM Pin": 			"2.4"
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"1.23"
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch on E2",
		"Pin":				"2.6",
		"Mode":				"On",
		"PV[i]":			1,
		"SP":				35.0
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/MKS_Sbase/MKS Sbase/config.txt
================================================
{
	"Board": "MKS SBASE v1.3",
	"Modules":[
	{
	"Thread": "On load",
	"Type": "MCP4451",
		"Comment":			"Digipot for joints 0 - 3",
		"I2C SDA pin":		"0.0",
		"I2C SCL pin":		"0.1",
		"I2C address":		0,
		"Max current":		2.0,
		"Factor":			113.33,
		"Current 0":		0.8,
		"Current 1":		0.8,
		"Current 2":		0.8,
		"Current 3":		0.8
	},
	{
	"Thread": "On load",
	"Type": "MCP4451",
		"Comment":			"Digipot for joints 4 - 7",
		"I2C SDA pin":		"0.0",
		"I2C SCL pin":		"0.1",
		"I2C address":		2,
		"Max current":		2.0,
		"Factor":			113.33,
		"Current 0":		0.8,
		"Current 1":		0.8,
		"Current 2":		0.8,
		"Current 3":		0.8
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.0",
		"Direction Pin": 	"0.5",
		"Enable Pin": 		"0.4"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"2.1",
		"Direction Pin": 	"0.11",
		"Enable Pin": 		"0.10"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"0.19"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"2.3",
		"Direction Pin": 	"0.22",
		"Enable Pin": 		"0.21"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"2.8",
		"Direction Pin": 	"2.13",
		"Enable Pin": 		"4.29"
	},
	{
	"Thread": "Servo",
	"Type": "Blink",
		"Pin":				"1.18",
		"Frequency":		2
	},	
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"1.24",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"1.25",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"1.26",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"1.27",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"1.28",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"1.29",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Heated Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.23",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"2.5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Ext 0 temperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.24",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"2.7"
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Ext0 part cooling fan PWM on FAN",
		"SP[i]": 			2,
		"PWM Max":			128,
		"PWM Pin": 			"2.4"
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"1.23"
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch on E2",
		"Pin":				"2.6",
		"Mode":				"On",
		"PV[i]":			1,
		"SP":				35.0
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/TMC2209 Example/SKRv14_TMC2209/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v1.4",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"1.31"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"2.2",
		"Direction Pin": 	"2.6",
		"Enable Pin": 		"2.1"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"X - Joint 0 TMC driver",
		"RX pin": 			"1.10",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"0.19",
		"Direction Pin": 	"0.20",
		"Enable Pin": 		"2.08"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Y - Joint 1 TMC driver",
		"RX pin": 			"1.9",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"0.22",
		"Direction Pin": 	"2.11",
		"Enable Pin": 		"0.21"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Z - Joint 2 TMC driver",
		"RX pin": 			"1.8",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"2.13",
		"Direction Pin": 	"0.11",
		"Enable Pin": 		"2.12"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E0 - Joint 3 TMC driver",
		"RX pin": 			"1.4",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"1.15",
		"Direction Pin": 	"1.14",
		"Enable Pin": 		"1.16"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E1 - Joint 4 TMC driver",
		"RX pin": 			"1.1",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Bed heater PWM",
		"SP[i]": 			0,
		"PWM Pin": 			"2.5"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Bed tenperature sensor",
		"PV[i]": 			0,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.25",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Hotend 0 heater PWM",
		"SP[i]": 			1,
		"PWM Pin": 			"2.7"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Hotend 0 tenperature sensor",
		"PV[i]": 			1,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.24",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "PWM",
		"Comment": 			"Hotend 1 heater PWM",
		"SP[i]": 			2,
		"PWM Pin": 			"2.4"
	},
	{
	"Thread": "Servo",
	"Type": "Temperature",
		"Comment": 			"Hotend 1 tenperature sensor",
		"PV[i]": 			2,
		"Sensor": 			"Thermistor",
			"Thermistor":
			{
				"Pin": 		"0.23",
				"beta": 	3990,
				"r0": 		100000,
				"t0": 		25
			}
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"1.29",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"1.28",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"1.27",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"E0DET",
		"Pin":				"1.26",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"E1DET",
		"Pin":				"1.25",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"PWRDET",
		"Pin":				"1.0",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Probe",
		"Pin":				"0.10",
		"Mode":				"Input",
		"Data Bit":			6
	},
	{
	"Thread": "Base",
	"Type": "RCServo",
		"Comment": 			"RC servo for probe",
		"SP[i]": 			3,
		"Servo Pin": 		"2.0"
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch",
		"Pin":				"0.0",
		"Mode":				"On",
		"PV[i]":			1,
		"SP":				25.5
	}
	]
}


================================================
FILE: Firmware/ConfigSamples/TMC2209 Example/SKRv2_TMC2209/config.txt
================================================
{
	"Board": "BIGTREETECH SKR v2",
	"Modules":[
	{
	"Thread": "Servo",
	"Type": "Reset Pin",
		"Comment":			"Reset pin",
		"Pin":				"PC_4"
	},
		{
	"Thread": "On load",
	"Type": "Motor Power",
		"Comment": "Enable motor power SKR2",
		"Pin":					 "PC_13"
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"X - Joint 0 step generator",
		"Joint Number":		0,
		"Step Pin": 		"PE_2",
		"Direction Pin": 	"PE_1",
		"Enable Pin": 		"PE_3"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"X - Joint 0 TMC driver",
		"RX pin": 			"PE_0",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Y - Joint 1 step generator",
		"Joint Number":		1,
		"Step Pin": 		"PD_5",
		"Direction Pin": 	"PD_4",
		"Enable Pin": 		"PD_6"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Y - Joint 1 TMC driver",
		"RX pin": 			"PD_3",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"Z - Joint 2 step generator",
		"Joint Number":		2,
		"Step Pin": 		"PA_15",
		"Direction Pin": 	"PA_8",
		"Enable Pin": 		"PD_1"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"Z - Joint 2 TMC driver",
		"RX pin": 			"PD_0",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E0 - Joint 3 step generator",
		"Joint Number":		3,
		"Step Pin": 		"PD_15",
		"Direction Pin": 	"PD_14",
		"Enable Pin": 		"PC_7"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E0 - Joint 3 TMC driver",
		"RX pin": 			"PC_6",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Base",
	"Type": "Stepgen",
		"Comment":			"E1 - Joint 4 step generator",
		"Joint Number":		4,
		"Step Pin": 		"PD_11",
		"Direction Pin": 	"PD_10",
		"Enable Pin": 		"PD_13"
	},
	{
	"Thread": "On load",
	"Type": "TMC2209",
		"Comment":			"E1 - Joint 4 TMC driver",
		"RX pin": 			"PD_12",
		"RSense":			0.11,
		"Current":			800,
		"Microsteps":		16,
		"Stealth chop":		"on",
		"Stall sensitivity":0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X min",
		"Pin":				"PC_1",
		"Mode":				"Input",
		"Data Bit":			0
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"X max",
		"Pin":				"PC_2",
		"Mode":				"Input",
		"Data Bit":			1
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y min",
		"Pin":				"PC_3",
		"Mode":				"Input",
		"Data Bit":			2
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Y max",
		"Pin":				"PA_0",
		"Mode":				"Input",
		"Data Bit":			3
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z min",
		"Pin":				"PC_0",
		"Mode":				"Input",
		"Data Bit":			4
	},
	{
	"Thread": "Servo",
	"Type": "Digital Pin",
		"Comment":			"Z max",
		"Pin":				"PC_15",
		"Mode":				"Input",
		"Data Bit":			5
	},
	{
	"Thread": "Servo",
	"Type": "Switch",
		"Comment":			"Extruder fan switch",
		"Pin":				"PB_7",
		"Mode":				"On",
		"PV[i]":			0,
		"SP":				25.5
	}
	]
}


================================================
FILE: Firmware/FirmwareSource/.gitignore
================================================
/Remora-OS5/mbed-os
/Remora-OS5/BUILD
/Remora-OS6/mbed-os
/Remora-OS6/BUILD

================================================
FILE: Firmware/FirmwareSource/Remora-OS5/.gitignore
================================================
/BUILD
/mbed-os

================================================
FILE: Firmware/FirmwareSource/Remora-OS5/.mbed
================================================
ROOT=.
<<<<<<< refs/remotes/origin/main=undefined
<<<<<<< Updated upstream=undefined
=
>>>>>>> Stashed changes=undefined
>>>>>>> update=undefined


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/MODDMA.lib
================================================
https://os.mbed.com/users/AjK/code/MODDMA/#97a16bf2ff439853ed01edd65a382207e203c733

================================================
FILE: Firmware/FirmwareSource/Remora-OS5/README.md
================================================
Remora OS5 firmware


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/SoftwareSerial/SoftwareSerial.cpp
================================================

#include "SoftwareSerial.h"
#include <cstdint>



SoftwareSerial::SoftwareSerial(std::string tx, std::string rx)
{
    if (!tx.empty()) TXportAndPin = tx;
    if (!rx.empty()) RXportAndPin = rx;
    halfDuplex = !TXportAndPin.compare(RXportAndPin);

    if(halfDuplex)
    {
        this->rxpin = new Pin(RXportAndPin,1);
        this->txpin = this->rxpin;
        setTX();
    }
    else
    {
        this->txpin = new Pin(TXportAndPin,0);
        setTX();

        this->rxpin = new Pin(RXportAndPin,1);
        setRX();
    }
    
    qin = 0;
    qout = 0;
    activeTx = false;
    activeRx = false;
}


void SoftwareSerial::begin(int baudrate)
{
    #ifdef FORCE_BAUD_RATE
    baudrate = FORCE_BAUD_RATE;     // 19200 fastest stable baud rate
    #endif
    baudRate = baudrate;
    //ticker.attach_us(callback(this, &SoftwareSerial::tickerHandler), 1000000.0 / (baudRate * 3.0));
}

void SoftwareSerial::setSpeed(int baudrate)
{
    //ticker.detach();
  
    //ticker.attach_us(callback(this, &SoftwareSerial::tickerHandler), 1000000.0 / (baudrate * 3.0));
    this->baudRate = baudrate;
}

void SoftwareSerial::setTX(void)
{
    // First write, then set output. If we do this the other way around,
    // the pin would be output low for a short while before switching to
    // output hihg. Now, it is input with pullup for a short while, which
    // is fine. With inverse logic, either order is fine.

    //this->txpin->set(1);                  // works for LPC1768 but not STM32
    this->txpin->setAsOutput();
    this->txpin->set(1);
}

void SoftwareSerial::setRX(void)
{

    this->rxpin->setAsInput();
    this->rxpin->pull_up();
}

void SoftwareSerial::setRXTX(bool input)
{
    if (halfDuplex)
    {
        if (input)
        {
            setRX();
            rxBitCnt = -1;
            rxTickCnt = 2;
            activeRx = true;
        }
        else
        {
            if (activeRx)
            {
                setTX();
                activeRx = false;
            }
        }
    }
}

bool SoftwareSerial::listen()
{
    if (rxpin != nullptr)
    {
        setRXTX(true);
        return true;
    }
    return false;
}

void SoftwareSerial::end(void)
{
    
}

void SoftwareSerial::tickerHandler(void)
{
    if (activeTx) this->send();
    if (activeRx) this->receive();
}

void SoftwareSerial::send(void)
{
    if (--txTickCnt <= 0)
    {
        if (txBitCnt++ < TX_BITS)   // count out the bits in the txBuffer
        {
            this->txpin->set(txBuffer & 0x01);   // set output equal to the LSB in txBuffer
            txBuffer >>= 1;                     // shift txBuffer to right
            txTickCnt = OVERSAMPLE;             // reset the tick counter
        }
        else    // transmit finished, stay active or wait for a period before swapping to Rx mode if half duplex mode
        {
            txTickCnt = 1;
            if (outputPending)
            {
                activeTx = false;    // output pending allow new byte to be written to txBuffer from write()
            }
            else if (txBitCnt > 10 + OVERSAMPLE*5)
            {
                if (halfDuplex)
                {
                    setRXTX(true);        // switch to receive mode
                }
                activeTx = false;
            }
        }
    }
}

void SoftwareSerial::receive()
{
    if (--rxTickCnt <= 0)
    {
        uint8_t inbit = this->rxpin->get();   // read the rx line
        if (rxBitCnt == -1)                 // waiting for start bit
        {
            if (!inbit)
            {
                // got a start bit
                rxBitCnt = 0;
                rxTickCnt = OVERSAMPLE + 1;
                rxBuffer = 0;
            }
            else
            {
                rxTickCnt = 1;
            }
        }
        else if (rxBitCnt >= RX_BITS)     // full byte has been read
        {
            // add stop bit to buffer
            inbuf[qin] = rxBuffer;
			if ( ++qin >= IN_BUF_SIZE )
            {
			    // overflow - reset inbuf-index
				qin = 0;
			}
            rxTickCnt = 1;
            rxBitCnt = -1;              // flag waiting for start bit
        }
        else                            // read data bits
        {
            rxBuffer >>= 1;
            if (inbit)  rxBuffer |= 0x80;
            rxBitCnt++;
            rxTickCnt = OVERSAMPLE;
        }
    }
}


int SoftwareSerial::available()
{
    return (qout - qin);
}


void SoftwareSerial::printStr(char* str)
{
    int i = 0;
    int len = strlen(str); 
    for(i = 0; i<len; i++)
    {
        write(str[i]);
    }
}


void SoftwareSerial::write(int b)
{
    outputPending = true;               // notify ticker handler that there are more bytes to transmit after current
    while (activeTx)                    // wait for current transmission to complete
    {
        idle();
    }
    txBuffer =      (b << 1) | 0x200;   // add start and stop bits
    txBitCnt =      0;
    txTickCnt =     OVERSAMPLE;
    if (halfDuplex) setRXTX(false);
    outputPending = false;
    activeTx =      true;
}

int16_t SoftwareSerial::read()
{
    if (qout == qin) return -1;

    char d = inbuf[qout] & 0xFF;

    if ( ++qout >= IN_BUF_SIZE ) {qout = 0;}
    
    return d;
}

================================================
FILE: Firmware/FirmwareSource/Remora-OS5/SoftwareSerial/SoftwareSerial.h
================================================
#ifndef SOFTWARESERIAL_H
#define SOFTWARESERIAL_H

//#include "LPC17xx.h"
#include "mbed.h"
#include <cstdint>
#include <string>
#include "configuration.h"
#include "pin.h"


#define FORCE_BAUD_RATE 19600 //9600
#define IN_BUF_SIZE     64
#define TX_BITS         10     // 1 Startbit, 8 Databits, 1 Stopbit = 10 Bits/Frame
#define RX_BITS         8      // startbit and stopbit parsed internally (see ISR)
//#define OVERSAMPLE      3


class SoftwareSerial
{
    private:

    //static SoftwareSerial* instance;        // there can only be one
    //void (*_rit_isr)(void);                 // storage for an appended isr function
    //void ritisr(void);                      // the default (instance) isr
    //static void _ritisr(void);              // the actual static isr

    std::string     TXportAndPin;
    std::string     RXportAndPin;
    Pin*            txpin;
    Pin*            rxpin;

    //Ticker          ticker;
    
    unsigned char   inbuf[IN_BUF_SIZE];
    unsigned char   qin;
    unsigned char   qout;
    
    int32_t  baudRate;
 
    bool     activeTx;
    bool     activeRx;
    bool     halfDuplex;
    bool     outputPending;

    int32_t  rxTickCnt;
    int32_t  txTickCnt;
    int32_t  txBitCnt;
    int32_t  rxBitCnt;
    int32_t  txBuffer;
    int32_t  rxBuffer;

    public:

    SoftwareSerial(std::string, std::string);

    void begin(int);
    void setSpeed(int);
    void end(void);
    void setTX(void);
    void setRX(void);
    void setRXTX(bool);
    void send(void);
    void receive(void);
    void write(int);
    int16_t  read(void);
    bool listen(void);
    void tickerHandler(void);

    void enableTx(void);
    void enableRx(void);
    void idle() {__NOP();}
    

    int available();

    void flush_input_buffer();
    void printStr(char*);
};


#endif

================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PeripheralNames.h
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2015, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */
#ifndef MBED_PERIPHERALNAMES_H
#define MBED_PERIPHERALNAMES_H

#include "cmsis.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    ADC_1 = (int)ADC1_BASE,
    ADC_2 = (int)ADC2_BASE,
    ADC_3 = (int)ADC3_BASE
} ADCName;

typedef enum {
    DAC_1 = (int)DAC_BASE
} DACName;

typedef enum {
    UART_1 = (int)USART1_BASE,
    UART_2 = (int)USART2_BASE,
    UART_3 = (int)USART3_BASE,
    UART_4 = (int)UART4_BASE,
    UART_5 = (int)UART5_BASE,
    UART_6 = (int)USART6_BASE,
    UART_7 = (int)UART7_BASE,
    UART_8 = (int)UART8_BASE
} UARTName;

#define DEVICE_SPI_COUNT 6
typedef enum {
    SPI_1 = (int)SPI1_BASE,
    SPI_2 = (int)SPI2_BASE,
    SPI_3 = (int)SPI3_BASE,
    SPI_4 = (int)SPI4_BASE,
    SPI_5 = (int)SPI5_BASE,
    SPI_6 = (int)SPI6_BASE
} SPIName;

typedef enum {
    I2C_1 = (int)I2C1_BASE,
    I2C_2 = (int)I2C2_BASE,
    I2C_3 = (int)I2C3_BASE
} I2CName;

typedef enum {
    PWM_1  = (int)TIM1_BASE,
    PWM_2  = (int)TIM2_BASE,
    PWM_3  = (int)TIM3_BASE,
    PWM_4  = (int)TIM4_BASE,
    PWM_5  = (int)TIM5_BASE,
    PWM_8  = (int)TIM8_BASE,
    PWM_9  = (int)TIM9_BASE,
    PWM_10 = (int)TIM10_BASE,
    PWM_11 = (int)TIM11_BASE,
    PWM_12 = (int)TIM12_BASE,
    PWM_13 = (int)TIM13_BASE,
    PWM_14 = (int)TIM14_BASE
} PWMName;

typedef enum {
    CAN_1 = (int)CAN1_BASE,
    CAN_2 = (int)CAN2_BASE
} CANName;

typedef enum {
    USB_FS = (int)USB_OTG_FS_PERIPH_BASE,
    USB_HS = (int)USB_OTG_HS_PERIPH_BASE
} USBName;

#ifdef __cplusplus
}
#endif

#endif


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PeripheralPins.c
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2018, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */

#include "PeripheralPins.h"
#include "mbed_toolchain.h"

//==============================================================================
// Notes
//
// - The pins mentioned Px_y_ALTz are alternative possibilities which use other
//   HW peripheral instances. You can use them the same way as any other "normal"
//   pin (i.e. PwmOut pwm(PA_7_ALT0);). These pins are not displayed on the board
//   pinout image on mbed.org.
//
// - The pins which are connected to other components present on the board have
//   the comment "Connected to xxx". The pin function may not work properly in this
//   case. These pins may not be displayed on the board pinout image on mbed.org.
//   Please read the board reference manual and schematic for more information.
//
// - Warning: pins connected to the default STDIO_UART_TX and STDIO_UART_RX pins are commented
//   See https://os.mbed.com/teams/ST/wiki/STDIO for more information.
//
//==============================================================================


//*** ADC ***

MBED_WEAK const PinMap PinMap_ADC[] = {
    {PA_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0 // Connected to B1 [Blue PushButton]
    {PA_0_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0 // Connected to B1 [Blue PushButton]
    {PA_0_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0 // Connected to B1 [Blue PushButton]
    {PA_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1 // Connected to MEMS_INT1 [L3GD20_INT1]
    {PA_1_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1 // Connected to MEMS_INT1 [L3GD20_INT1]
    {PA_1_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1 // Connected to MEMS_INT1 [L3GD20_INT1]
    {PA_2,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 // Connected to MEMS_INT2 [L3GD20_INT2]
    {PA_2_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2 // Connected to MEMS_INT2 [L3GD20_INT2]
    {PA_2_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2 // Connected to MEMS_INT2 [L3GD20_INT2]
    {PA_3,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 // Connected to B5
    {PA_3_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3 // Connected to B5
    {PA_3_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3 // Connected to B5
    {PA_4,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4 // Connected to VSYNC
    {PA_4_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4 // Connected to VSYNC
    {PA_5,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5
    {PA_5_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5
    {PA_6,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6 // Connected to G2
    {PA_6_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6 // Connected to G2
    {PA_7,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7 // Connected to ACP_RST
    {PA_7_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7 // Connected to ACP_RST
    {PB_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 // Connected to R3
    {PB_0_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8 // Connected to R3
    {PB_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9 // Connected to R6
    {PB_1_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9 // Connected to R6
    {PC_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10 // Connected to SDNWE
    {PC_0_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10 // Connected to SDNWE
    {PC_0_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC3_IN10 // Connected to SDNWE
    {PC_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11 // Connected to NCS_MEMS_SPI [L3GD20_CS_I2C/SPI]
    {PC_1_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11 // Connected to NCS_MEMS_SPI [L3GD20_CS_I2C/SPI]
    {PC_1_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11 // Connected to NCS_MEMS_SPI [L3GD20_CS_I2C/SPI]
    {PC_2,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12 // Connected to CSX [LCD-RGB_CSX]
    {PC_2_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12 // Connected to CSX [LCD-RGB_CSX]
    {PC_2_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12 // Connected to CSX [LCD-RGB_CSX]
    {PC_3,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
    {PC_3_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13
    {PC_3_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13
    {PC_4,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14 // Connected to OTG_FS_PSO [OTG_FS_PowerSwitchOn]
    {PC_4_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14 // Connected to OTG_FS_PSO [OTG_FS_PowerSwitchOn]
    {PC_5,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15 // Connected to OTG_FS_OC [OTG_FS_OverCurrent]
    {PC_5_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15 // Connected to OTG_FS_OC [OTG_FS_OverCurrent]
    {PF_3,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC3_IN9 // Connected to A3
    {PF_4,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC3_IN14 // Connected to A4
    {PF_5,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC3_IN15 // Connected to A5
    {PF_6,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC3_IN4
    {PF_7,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC3_IN5 // Connected to SPI5_SCK [L3GD20_SCL/SPC]
    {PF_8,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6 // Connected to SPI5_MISO [L3GD20_SDO]
    {PF_9,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7 // Connected to SPI5_MOSI [L3GD20_SDA/SDI/SDO]
    {PF_10,      ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 // Connected to ENABLE [LCD-RGB_ENABLE]
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_ADC_Internal[] = {
    {ADC_TEMP,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
    {ADC_VREF,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
    {ADC_VBAT,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)},
    {NC, NC, 0}
};

//*** DAC ***

MBED_WEAK const PinMap PinMap_DAC[] = {
    {PA_4,       DAC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1 // Connected to VSYNC
    {PA_5,       DAC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2
    {NC, NC, 0}
};

//*** I2C ***

MBED_WEAK const PinMap PinMap_I2C_SDA[] = {
    {PB_7,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
    {PB_9,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, // Connected to B7
    {PB_11,      I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, // Connected to G5
    {PC_9,       I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, // Connected to I2C3_SDA [ACP/RF_SDA]
    {PF_0,       I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, // Connected to A0
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_I2C_SCL[] = {
    {PA_8,       I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, // Connected to I2C3_SCL [ACP/RF_SCL]
    {PB_6,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, // Connected to SDNE1 [SDRAM_CS]
    {PB_8,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, // Connected to B6
    {PB_10,      I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, // Connected to G4
    {PF_1,       I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, // Connected to A1
    {NC, NC, 0}
};

//*** PWM ***

// TIM5 cannot be used because already used by the us_ticker
MBED_WEAK const PinMap PinMap_PWM[] = {
    {PA_0,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // Connected to B1 [Blue PushButton]
//  {PA_0,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1 // Connected to B1 [Blue PushButton]
    {PA_1,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 // Connected to MEMS_INT1 [L3GD20_INT1]
//  {PA_1,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2 // Connected to MEMS_INT1 [L3GD20_INT1]
    {PA_2,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 // Connected to MEMS_INT2 [L3GD20_INT2]
//  {PA_2,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 // Connected to MEMS_INT2 [L3GD20_INT2]
    {PA_2_ALT0,  PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 // Connected to MEMS_INT2 [L3GD20_INT2]
    {PA_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 // Connected to B5
//  {PA_3,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4 // Connected to B5
    {PA_3_ALT0,  PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 // Connected to B5
    {PA_5,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
    {PA_5_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N
    {PA_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 // Connected to G2
    {PA_6_ALT0,  PWM_13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 // Connected to G2
    {PA_7,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N // Connected to ACP_RST
    {PA_7_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 // Connected to ACP_RST
    {PA_7_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N // Connected to ACP_RST
    {PA_7_ALT2,  PWM_14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 // Connected to ACP_RST
    {PA_8,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 // Connected to I2C3_SCL [ACP/RF_SCL]
//  {PA_9,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 // Connected to STDIO_UART_TX
//  {PA_10,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 // Connected to STDIO_UART_RX
    {PA_11,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 // Connected to R4
    {PA_15,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // Connected to TP_INT1 [Touch Panel]
    {PB_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N // Connected to R3
    {PB_0_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 // Connected to R3
    {PB_0_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N // Connected to R3
    {PB_1,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N // Connected to R6
    {PB_1_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 // Connected to R6
    {PB_1_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N // Connected to R6
    {PB_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
    {PB_4,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
    {PB_5,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 // Connected to SDCKE1
    {PB_6,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 // Connected to SDNE1 [SDRAM_CS]
    {PB_7,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
    {PB_8,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 // Connected to B6
    {PB_8_ALT0,  PWM_10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 // Connected to B6
    {PB_9,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 // Connected to B7
    {PB_9_ALT0,  PWM_11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 // Connected to B7
    {PB_10,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 // Connected to G4
    {PB_11,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 // Connected to G5
    {PB_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N // Connected to VBUS_HS
    {PB_14,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N // Connected to OTG_HS_DM
    {PB_14_ALT0, PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N // Connected to OTG_HS_DM
    {PB_14_ALT1, PWM_12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 1, 0)}, // TIM12_CH1 // Connected to OTG_HS_DM
    {PB_15,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N // Connected to OTG_HS_DP
    {PB_15_ALT0, PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N // Connected to OTG_HS_DP
    {PB_15_ALT1, PWM_12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2 // Connected to OTG_HS_DP
    {PC_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 // Connected to HSYNC
    {PC_6_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 0)}, // TIM8_CH1 // Connected to HSYNC
    {PC_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 // Connected to G6
    {PC_7_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)}, // TIM8_CH2 // Connected to G6
    {PC_8,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
    {PC_8_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3
    {PC_9,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 // Connected to I2C3_SDA [ACP/RF_SDA]
    {PC_9_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 // Connected to I2C3_SDA [ACP/RF_SDA]
    {PD_12,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 // Connected to RDX [LDC-RGB_RDX]
    {PD_13,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 // Connected to WRX_DCX [LCD-RGB_WRX_DCX]
    {PD_14,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 // Connected to D0
    {PD_15,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 // Connected to D1
    {PE_5,       PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
    {PE_6,       PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
    {PE_8,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N // Connected to D5
    {PE_9,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 // Connected to D6
    {PE_10,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N // Connected to D7
    {PE_11,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 // Connected to D8
    {PE_12,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N // Connected to D9
    {PE_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 // Connected to D10
    {PE_14,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 // Connected to D11
    {PF_6,       PWM_10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
    {PF_7,       PWM_11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 // Connected to SPI5_SCK [L3GD20_SCL/SPC]
    {PF_8,       PWM_13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 // Connected to SPI5_MISO [L3GD20_SDO]
    {PF_9,       PWM_14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 // Connected to SPI5_MOSI [L3GD20_SDA/SDI/SDO]
    {NC, NC, 0}
};

//*** SERIAL ***

MBED_WEAK const PinMap PinMap_UART_TX[] = {
    {PA_0,       UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, // Connected to B1 [Blue PushButton]
    {PA_2,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to MEMS_INT2 [L3GD20_INT2]
    {PA_9,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to STDIO_UART_TX
    {PB_6,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to SDNE1 [SDRAM_CS]
    {PB_10,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to G4
    {PC_6,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, // Connected to HSYNC
    {PC_10,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to R2
    {PC_10_ALT0, UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, // Connected to R2
    {PC_12,      UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
    {PD_5,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PD_8,       UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to D13
    {PE_1,       UART_8,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART8)}, // Connected to NBL1 [SDRAM_UDQM]
    {PE_8,       UART_7,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART7)}, // Connected to D5
    {PF_7,       UART_7,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART7)}, // Connected to SPI5_SCK [L3GD20_SCL/SPC]
    {PG_14,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, // Connected to LD4 [Red Led]
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_RX[] = {
    {PA_1,       UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, // Connected to MEMS_INT1 [L3GD20_INT1]
    {PA_3,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to B5
    {PA_10,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to STDIO_UART_RX
    {PB_7,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
    {PB_11,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to G5
    {PC_7,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, // Connected to G6
    {PC_11,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
    {PC_11_ALT0, UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
    {PD_2,       UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
    {PD_6,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to B2
    {PD_9,       UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to D14
    {PE_0,       UART_8,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART8)}, // Connected to NBL0 [SDRAM_LDQM]
    {PE_7,       UART_7,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART7)}, // Connected to D4
    {PF_6,       UART_7,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART7)},
    {PG_9,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_RTS[] = {
    {PA_1,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to MEMS_INT1 [L3GD20_INT1]
    {PA_12,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to R5
    {PB_14,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to OTG_HS_DM
    {PD_4,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PD_12,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to RDX [LDC-RGB_RDX]
    {PG_8,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, // Connected to SDCLK
    {PG_12,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, // Connected to B4
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_CTS[] = {
    {PA_0,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to B1 [Blue PushButton]
    {PA_11,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to R4
    {PB_13,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to VBUS_HS
    {PD_3,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to G7
    {PD_11,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to TE [LCD-RGB_TE]
    {PG_13,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, // Connected to LD3 [Green Led]
    {PG_15,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, // Connected to SDNCAS
    {NC, NC, 0}
};

//*** SPI ***

MBED_WEAK const PinMap PinMap_SPI_MOSI[] = {
    {PA_7,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to ACP_RST
    {PB_5,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to SDCKE1
    {PB_5_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)}, // Connected to SDCKE1
    {PB_15,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to OTG_HS_DP
    {PC_3,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PC_12,      SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PD_6,       SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to B2
    {PE_6,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_14,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)}, // Connected to D11
    {PF_9,       SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI5)}, // Connected to SPI5_MOSI [L3GD20_SDA/SDI/SDO]
    {PF_11,      SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI5)}, // Connected to SDNRAS
    {PG_14,      SPI_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI6)}, // Connected to LD4 [Red Led]
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_MISO[] = {
    {PA_6,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to G2
    {PB_4,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_4_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PB_14,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to OTG_HS_DM
    {PC_2,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to CSX [LCD-RGB_CSX]
    {PC_11,      SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PE_5,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_13,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)}, // Connected to D10
    {PF_8,       SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI5)}, // Connected to SPI5_MISO [L3GD20_SDO]
    {PG_12,      SPI_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI6)}, // Connected to B4
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_SCLK[] = {
    {PA_5,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_3,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_3_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PB_10,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to G4
    {PB_13,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to VBUS_HS
    {PC_10,      SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)}, // Connected to R2
    {PD_3,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to G7
    {PE_2,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_12,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)}, // Connected to D9
    {PF_7,       SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI5)}, // Connected to SPI5_SCK [L3GD20_SCL/SPC]
    {PG_13,      SPI_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI6)}, // Connected to LD3 [Green Led]
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_SSEL[] = {
    {PA_4,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to VSYNC
    {PA_4_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)}, // Connected to VSYNC
    {PA_15,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to TP_INT1 [Touch Panel]
    {PA_15_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)}, // Connected to TP_INT1 [Touch Panel]
    {PB_9,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to B7
    {PB_12,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to OTG_HS_ID
    {PE_4,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_11,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)}, // Connected to D8
    {PF_6,       SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI5)},
    {PG_8,       SPI_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI6)}, // Connected to SDCLK
    {NC, NC, 0}
};

//*** CAN ***

MBED_WEAK const PinMap PinMap_CAN_RD[] = {
    {PA_11,      CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to R4
    {PB_5,       CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, // Connected to SDCKE1
    {PB_8,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to B6
    {PB_12,      CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, // Connected to OTG_HS_ID
    {PD_0,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to D2
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_CAN_TD[] = {
    {PA_12,      CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to R5
    {PB_6,       CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, // Connected to SDNE1 [SDRAM_CS]
    {PB_9,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to B7
    {PB_13,      CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, // Connected to VBUS_HS
    {PD_1,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to D3
    {NC, NC, 0}
};

//*** USBDEVICE ***

MBED_WEAK const PinMap PinMap_USB_FS[] = {
//  {PA_8,      USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_SOF // Connected to I2C3_SCL [ACP/RF_SCL]
//  {PA_9,      USB_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_FS_VBUS // Connected to STDIO_UART_TX
//  {PA_10,     USB_FS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_ID // Connected to STDIO_UART_RX
    {PA_11,     USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DM // Connected to R4
    {PA_12,     USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DP // Connected to R5
    {NC, NC, 0}
};

//*** USBDEVICE ***

MBED_WEAK const PinMap PinMap_USB_HS[] = {
#if (MBED_CONF_TARGET_USB_SPEED == USE_USB_HS_IN_FS)
//  {PA_4,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF // Connected to VSYNC
    {PB_12,     USB_HS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_ID // Connected to OTG_HS_ID
    {PB_13,     USB_HS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_HS_VBUS // Connected to VBUS_HS
    {PB_14,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DM // Connected to OTG_HS_DM
    {PB_15,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DP // Connected to OTG_HS_DP
#else /* MBED_CONF_TARGET_USB_SPEED */
    {PA_3,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D0 // Connected to B5
    {PA_5,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_CK
    {PB_0,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D1 // Connected to R3
    {PB_1,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D2 // Connected to R6
    {PB_5,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D7 // Connected to SDCKE1
    {PB_10,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D3 // Connected to G4
    {PB_11,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D4 // Connected to G5
    {PB_12,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D5 // Connected to OTG_HS_ID
    {PB_13,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D6 // Connected to VBUS_HS
    {PC_0,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_STP // Connected to SDNWE
    {PC_2,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_DIR // Connected to CSX [LCD-RGB_CSX]
    {PC_3,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_NXT
#endif /* MBED_CONF_TARGET_USB_SPEED */
    {NC, NC, 0}
};


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PinNames.h
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2018, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */

#ifndef MBED_PINNAMES_H
#define MBED_PINNAMES_H

#include "cmsis.h"
#include "PinNamesTypes.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    ALT0  = 0x100,
    ALT1  = 0x200,
    ALT2  = 0x300,
    ALT3  = 0x400
} ALTx;

typedef enum {
    PA_0  = 0x00,
    PA_0_ALT0 = PA_0 | ALT0,
    PA_0_ALT1 = PA_0 | ALT1,
    PA_1  = 0x01,
    PA_1_ALT0 = PA_1 | ALT0,
    PA_1_ALT1 = PA_1 | ALT1,
    PA_2  = 0x02,
    PA_2_ALT0 = PA_2 | ALT0,
    PA_2_ALT1 = PA_2 | ALT1,
    PA_3  = 0x03,
    PA_3_ALT0 = PA_3 | ALT0,
    PA_3_ALT1 = PA_3 | ALT1,
    PA_4  = 0x04,
    PA_4_ALT0 = PA_4 | ALT0,
    PA_5  = 0x05,
    PA_5_ALT0 = PA_5 | ALT0,
    PA_5_ALT1 = PA_5 | ALT1,
    PA_6  = 0x06,
    PA_6_ALT0 = PA_6 | ALT0,
    PA_7  = 0x07,
    PA_7_ALT0 = PA_7 | ALT0,
    PA_7_ALT1 = PA_7 | ALT1,
    PA_7_ALT2 = PA_7 | ALT2,
    PA_8  = 0x08,
    PA_9  = 0x09,
    PA_10 = 0x0A,
    PA_11 = 0x0B,
    PA_12 = 0x0C,
    PA_13 = 0x0D,
    PA_14 = 0x0E,
    PA_15 = 0x0F,
    PA_15_ALT0 = PA_15 | ALT0,

    PB_0  = 0x10,
    PB_0_ALT0 = PB_0 | ALT0,
    PB_0_ALT1 = PB_0 | ALT1,
    PB_1  = 0x11,
    PB_1_ALT0 = PB_1 | ALT0,
    PB_1_ALT1 = PB_1 | ALT1,
    PB_2  = 0x12,
    PB_3  = 0x13,
    PB_3_ALT0 = PB_3 | ALT0,
    PB_4  = 0x14,
    PB_4_ALT0 = PB_4 | ALT0,
    PB_5  = 0x15,
    PB_5_ALT0 = PB_5 | ALT0,
    PB_6  = 0x16,
    PB_7  = 0x17,
    PB_8  = 0x18,
    PB_8_ALT0 = PB_8 | ALT0,
    PB_9  = 0x19,
    PB_9_ALT0 = PB_9 | ALT0,
    PB_10 = 0x1A,
    PB_11 = 0x1B,
    PB_12 = 0x1C,
    PB_13 = 0x1D,
    PB_14 = 0x1E,
    PB_14_ALT0 = PB_14 | ALT0,
    PB_14_ALT1 = PB_14 | ALT1,
    PB_15 = 0x1F,
    PB_15_ALT0 = PB_15 | ALT0,
    PB_15_ALT1 = PB_15 | ALT1,

    PC_0  = 0x20,
    PC_0_ALT0 = PC_0 | ALT0,
    PC_0_ALT1 = PC_0 | ALT1,
    PC_1  = 0x21,
    PC_1_ALT0 = PC_1 | ALT0,
    PC_1_ALT1 = PC_1 | ALT1,
    PC_2  = 0x22,
    PC_2_ALT0 = PC_2 | ALT0,
    PC_2_ALT1 = PC_2 | ALT1,
    PC_3  = 0x23,
    PC_3_ALT0 = PC_3 | ALT0,
    PC_3_ALT1 = PC_3 | ALT1,
    PC_4  = 0x24,
    PC_4_ALT0 = PC_4 | ALT0,
    PC_5  = 0x25,
    PC_5_ALT0 = PC_5 | ALT0,
    PC_6  = 0x26,
    PC_6_ALT0 = PC_6 | ALT0,
    PC_7  = 0x27,
    PC_7_ALT0 = PC_7 | ALT0,
    PC_8  = 0x28,
    PC_8_ALT0 = PC_8 | ALT0,
    PC_9  = 0x29,
    PC_9_ALT0 = PC_9 | ALT0,
    PC_10 = 0x2A,
    PC_10_ALT0 = PC_10 | ALT0,
    PC_11 = 0x2B,
    PC_11_ALT0 = PC_11 | ALT0,
    PC_12 = 0x2C,
    PC_13 = 0x2D,
    PC_14 = 0x2E,
    PC_15 = 0x2F,

    PD_0  = 0x30,
    PD_1  = 0x31,
    PD_2  = 0x32,
    PD_3  = 0x33,
    PD_4  = 0x34,
    PD_5  = 0x35,
    PD_6  = 0x36,
    PD_7  = 0x37,
    PD_8  = 0x38,
    PD_9  = 0x39,
    PD_10 = 0x3A,
    PD_11 = 0x3B,
    PD_12 = 0x3C,
    PD_13 = 0x3D,
    PD_14 = 0x3E,
    PD_15 = 0x3F,

    PE_0  = 0x40,
    PE_1  = 0x41,
    PE_2  = 0x42,
    PE_3  = 0x43,
    PE_4  = 0x44,
    PE_5  = 0x45,
    PE_6  = 0x46,
    PE_7  = 0x47,
    PE_8  = 0x48,
    PE_9  = 0x49,
    PE_10 = 0x4A,
    PE_11 = 0x4B,
    PE_12 = 0x4C,
    PE_13 = 0x4D,
    PE_14 = 0x4E,
    PE_15 = 0x4F,

    PF_0  = 0x50,
    PF_1  = 0x51,
    PF_2  = 0x52,
    PF_3  = 0x53,
    PF_4  = 0x54,
    PF_5  = 0x55,
    PF_6  = 0x56,
    PF_7  = 0x57,
    PF_8  = 0x58,
    PF_9  = 0x59,
    PF_10 = 0x5A,
    PF_11 = 0x5B,
    PF_12 = 0x5C,
    PF_13 = 0x5D,
    PF_14 = 0x5E,
    PF_15 = 0x5F,

    PG_0  = 0x60,
    PG_1  = 0x61,
    PG_2  = 0x62,
    PG_3  = 0x63,
    PG_4  = 0x64,
    PG_5  = 0x65,
    PG_6  = 0x66,
    PG_7  = 0x67,
    PG_8  = 0x68,
    PG_9  = 0x69,
    PG_10 = 0x6A,
    PG_11 = 0x6B,
    PG_12 = 0x6C,
    PG_13 = 0x6D,
    PG_14 = 0x6E,
    PG_15 = 0x6F,

    PH_0  = 0x70,
    PH_1  = 0x71,

    // ADC internal channels
    ADC_TEMP = 0xF0,
    ADC_VREF = 0xF1,
    ADC_VBAT = 0xF2,

    // STDIO for console print
#ifdef MBED_CONF_TARGET_STDIO_UART_TX
    STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX,
#else
    STDIO_UART_TX = PA_9,
#endif
#ifdef MBED_CONF_TARGET_STDIO_UART_RX
    STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX,
#else
    STDIO_UART_RX = PA_10,
#endif

    // Generic signals namings
    LED1        = PG_13, // Corresponds to LD3 on MB1075B
    LED2        = PG_14, // Corresponds to LD4 on MB1075B
    LED3        = PG_13,
    LED4        = PG_14,
    LED_RED     = LED2,
    USER_BUTTON = PA_0,
    // Standardized button names
    BUTTON1 = USER_BUTTON,
    SERIAL_TX   = STDIO_UART_TX,
    SERIAL_RX   = STDIO_UART_RX,
    USBTX       = STDIO_UART_TX,
    USBRX       = STDIO_UART_RX,
    SPI_MOSI    = PA_7,
    SPI_MISO    = PA_6,
    SPI_SCK     = PA_5,
    SPI_CS      = PB_6,

    /**** USB FS pins ****/
    USB_OTG_FS_DM = PA_11,
    USB_OTG_FS_DP = PA_12,
    USB_OTG_FS_ID = PA_10,
    USB_OTG_FS_SOF = PA_8,
    USB_OTG_FS_VBUS = PA_9,

    /**** USB HS pins ****/
    USB_OTG_HS_DM = PB_14,
    USB_OTG_HS_DP = PB_15,
    USB_OTG_HS_ID = PB_12,
    USB_OTG_HS_SOF = PA_4,
    USB_OTG_HS_ULPI_CK = PA_5,
    USB_OTG_HS_ULPI_D0 = PA_3,
    USB_OTG_HS_ULPI_D1 = PB_0,
    USB_OTG_HS_ULPI_D2 = PB_1,
    USB_OTG_HS_ULPI_D3 = PB_10,
    USB_OTG_HS_ULPI_D4 = PB_11,
    USB_OTG_HS_ULPI_D5 = PB_12,
    USB_OTG_HS_ULPI_D6 = PB_13,
    USB_OTG_HS_ULPI_D7 = PB_5,
    USB_OTG_HS_ULPI_DIR = PC_2,
    USB_OTG_HS_ULPI_NXT = PC_3,
    USB_OTG_HS_ULPI_STP = PC_0,
    USB_OTG_HS_VBUS = PB_13,

    /**** ETHERNET pins ****/
    ETH_COL = PA_3,
    ETH_CRS = PA_0,
    ETH_CRS_DV = PA_7,
    ETH_MDC = PC_1,
    ETH_MDIO = PA_2,
    ETH_PPS_OUT = PG_8,
    ETH_PPS_OUT_ALT0 = PB_5,
    ETH_REF_CLK = PA_1,
    ETH_RXD0 = PC_4,
    ETH_RXD1 = PC_5,
    ETH_RXD2 = PB_0,
    ETH_RXD3 = PB_1,
    ETH_RX_CLK = PA_1,
    ETH_RX_DV = PA_7,
    ETH_RX_ER = PB_10,
    ETH_TXD0 = PB_12,
    ETH_TXD0_ALT0 = PG_13,
    ETH_TXD1 = PB_13,
    ETH_TXD1_ALT0 = PG_14,
    ETH_TXD2 = PC_2,
    ETH_TXD3 = PE_2,
    ETH_TXD3_ALT0 = PB_8,
    ETH_TX_CLK = PC_3,
    ETH_TX_EN = PB_11,
    ETH_TX_EN_ALT0 = PG_11,

    /**** OSCILLATOR pins ****/
    RCC_OSC32_IN = PC_14,
    RCC_OSC32_OUT = PC_15,
    RCC_OSC_IN = PH_0,
    RCC_OSC_OUT = PH_1,

    /**** DEBUG pins ****/
    SYS_JTCK_SWCLK = PA_14,
    SYS_JTDI = PA_15,
    SYS_JTDO_SWO = PB_3,
    SYS_JTMS_SWDIO = PA_13,
    SYS_JTRST = PB_4,
    SYS_TRACECLK = PE_2,
    SYS_TRACED0 = PE_3,
    SYS_TRACED1 = PE_4,
    SYS_TRACED2 = PE_5,
    SYS_TRACED3 = PE_6,
    SYS_WKUP = PA_0,

    // Not connected
    NC = (int)0xFFFFFFFF
} PinName;

#ifdef __cplusplus
}
#endif

#endif


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/system_clock.c
================================================
/* mbed Microcontroller Library
* Copyright (c) 2006-2017 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
  * This file configures the system clock as follows:
  *-----------------------------------------------------------------------------------
  * System clock source   | 1- USE_PLL_HSE_EXTC (external 8 MHz clock) |
  *                       | 2- USE_PLL_HSE_XTAL (external 8 MHz xtal)  | DEVICE_USBDEVICE=1
  *                       | 3- USE_PLL_HSI (internal 16 MHz clock)     |
  *-----------------------------------------------------------------------------------
  * SYSCLK(MHz)           |                               180          | 168
  * AHBCLK (MHz)          |                               180          | 168
  * APB1CLK (MHz)         |                                45          |  42
  * APB2CLK (MHz)         |                                90          |  84
  * USB capable (48 MHz)  |                                NO          | YES (HSI calibration needed)
  *-----------------------------------------------------------------------------------
**/

#include "stm32f4xx.h"
//#include "nvic_addr.h"         original
#include "mbed_error.h"

/*!< COPIED FROM SKR2 Uncomment the following line if you need to relocate your vector Table in
     Internal SRAM. */
/* #define VECT_TAB_SRAM */
#define VECT_TAB_OFFSET  0x8000 /*!< Vector Table base offset field.
                                   This value must be a multiple of 0x200. */


// clock source is selected with CLOCK_SOURCE in json config
#define USE_PLL_HSE_EXTC     0x8  // Use external clock (ST Link MCO)
#define USE_PLL_HSE_XTAL     0x4  // Use external xtal (X3 on board - not provided by default)
#define USE_PLL_HSI          0x2  // Use HSI internal clock


#if ( ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) )
uint8_t SetSysClock_PLL_HSE(uint8_t bypass);
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) */

#if ((CLOCK_SOURCE) & USE_PLL_HSI)
uint8_t SetSysClock_PLL_HSI(void);
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSI) */


/**
  * @brief  Setup the microcontroller system
  *         Initialize the FPU setting, vector table location and External memory
  *         configuration.
  * @param  None
  * @retval None
  */
void SystemInit(void)
{
    /* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); /* set CP10 and CP11 Full Access */
#endif
    /* Reset the RCC clock configuration to the default reset state ------------*/
    /* Set HSION bit */
    RCC->CR |= (uint32_t)0x00000001;

    /* Reset CFGR register */
    RCC->CFGR = 0x00000000;

    /* Reset HSEON, CSSON and PLLON bits */
    RCC->CR &= (uint32_t)0xFEF6FFFF;

    /* Reset PLLCFGR register */
    RCC->PLLCFGR = 0x24003010;

    /* Reset HSEBYP bit */
    RCC->CR &= (uint32_t)0xFFFBFFFF;

    /* Disable all interrupts */
    RCC->CIR = 0x00000000;

#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
    SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */

    /* Configure the Vector Table location add offset address ------------------*/
#ifdef VECT_TAB_SRAM
    SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#else
    // original line 
   
    //SCB->VTOR = NVIC_FLASH_VECTOR_ADDRESS; /* Vector Table Relocation in Internal FLASH */
    // copied from SKR2
    SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
#endif

}

/**
  * @brief  Configures the System clock source, PLL Multiplier and Divider factors,
  *               AHB/APBx prescalers and Flash settings
  * @note   This function should be called only once the RCC clock configuration
  *         is reset to the default reset state (done in SystemInit() function).
  * @param  None
  * @retval None
  */

void SetSysClock(void)
{
#if ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC)
    /* 1- Try to start with HSE and external clock */
    if (SetSysClock_PLL_HSE(1) == 0)
#endif
    {
#if ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL)
        /* 2- If fail try to start with HSE and external xtal */
        if (SetSysClock_PLL_HSE(0) == 0)
#endif
        {
#if ((CLOCK_SOURCE) & USE_PLL_HSI)
            /* 3- If fail start with HSI clock */
            if (SetSysClock_PLL_HSI() == 0)
#endif
            {
                {
                    error("SetSysClock failed\n");
                }
            }
        }
    }
}

#if ( ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) )
/******************************************************************************/
/*            PLL (clocked by HSE) used as System clock source                */
/******************************************************************************/
uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
{
    RCC_OscInitTypeDef RCC_OscInitStruct;
    RCC_ClkInitTypeDef RCC_ClkInitStruct;

    /* The voltage scaling allows optimizing the power consumption when the device is
       clocked below the maximum system frequency, to update the voltage scaling value
       regarding system frequency refer to product datasheet. */
    __HAL_RCC_PWR_CLK_ENABLE();
    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

    // Enable HSE oscillator and activate PLL with HSE as source
    RCC_OscInitStruct.OscillatorType      = RCC_OSCILLATORTYPE_HSE;
    if (bypass == 0) {
        RCC_OscInitStruct.HSEState          = RCC_HSE_ON; // External 8 MHz xtal on OSC_IN/OSC_OUT
    } else {
        RCC_OscInitStruct.HSEState          = RCC_HSE_BYPASS; // External 8 MHz clock on OSC_IN
    }

    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
    RCC_OscInitStruct.PLL.PLLM = 8;
#if (DEVICE_USBDEVICE)
    RCC_OscInitStruct.PLL.PLLN = 336;
#else
    RCC_OscInitStruct.PLL.PLLN = 360;
#endif
    RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // 180 MHz or 168 MHz if DEVICE_USBDEVICE defined
    RCC_OscInitStruct.PLL.PLLQ = 7;             //  48 MHz if DEVICE_USBDEVICE defined
    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
        return 0; // FAIL
    }

    // Activate the OverDrive to reach the 180 MHz Frequency
    if (HAL_PWREx_EnableOverDrive() != HAL_OK) {
        return 0; // FAIL
    }

    // Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers
    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 180 or 168 MHz
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  //  45 or  42 MHz
    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  //  90 or  84 MHz
    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
        return 0; // FAIL
    }

    // HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_3);

    return 1;
}
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) */

#if ((CLOCK_SOURCE) & USE_PLL_HSI)
/******************************************************************************/
/*            PLL (clocked by HSI) used as System clock source                */
/******************************************************************************/
uint8_t SetSysClock_PLL_HSI(void)
{
    RCC_OscInitTypeDef RCC_OscInitStruct;
    RCC_ClkInitTypeDef RCC_ClkInitStruct;

    /* The voltage scaling allows optimizing the power consumption when the device is
       clocked below the maximum system frequency, to update the voltage scaling value
       regarding system frequency refer to product datasheet. */
    __HAL_RCC_PWR_CLK_ENABLE();
    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

    // Enable HSI oscillator and activate PLL with HSI as source
    RCC_OscInitStruct.OscillatorType      = RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
    RCC_OscInitStruct.HSIState            = RCC_HSI_ON;
    RCC_OscInitStruct.HSEState            = RCC_HSE_OFF;
    RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
    RCC_OscInitStruct.PLL.PLLM = 8;
#if (DEVICE_USBDEVICE)
    RCC_OscInitStruct.PLL.PLLN = 168;
#else
    RCC_OscInitStruct.PLL.PLLN = 180;
#endif
    RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // 180 MHz or 168 MHz if DEVICE_USBDEVICE defined
    RCC_OscInitStruct.PLL.PLLQ = 7;             //  48 MHz if DEVICE_USBDEVICE defined
    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
        return 0; // FAIL
    }

    // Activate the OverDrive to reach the 180 MHz Frequency
    if (HAL_PWREx_EnableOverDrive() != HAL_OK) {
        return 0; // FAIL
    }

    /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
    RCC_ClkInitStruct.ClockType      = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 180 or 168 MHz
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  //  45 or  42 MHz
    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  //  90 or  84 MHz
    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
        return 0; // FAIL
    }

    // HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_3);

    return 1;
}
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSI) */


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PeripheralNames.h
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2014, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */
#ifndef MBED_PERIPHERALNAMES_H
#define MBED_PERIPHERALNAMES_H

#include "cmsis.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    ADC_1 = (int)ADC1_BASE,
    ADC_2 = (int)ADC2_BASE,
    ADC_3 = (int)ADC3_BASE
} ADCName;

typedef enum {
    DAC_1 = (int)DAC_BASE
} DACName;

typedef enum {
    UART_1 = (int)USART1_BASE,
    UART_2 = (int)USART2_BASE,
    UART_3 = (int)USART3_BASE,
    UART_4 = (int)UART4_BASE,
    UART_5 = (int)UART5_BASE,
    UART_6 = (int)USART6_BASE
} UARTName;

#define DEVICE_SPI_COUNT 4
typedef enum {
    SPI_1 = (int)SPI1_BASE,
    SPI_2 = (int)SPI2_BASE,
    SPI_3 = (int)SPI3_BASE,
    SPI_4 = (int)SPI4_BASE
} SPIName;

typedef enum {
    I2C_1 = (int)I2C1_BASE,
    I2C_2 = (int)I2C2_BASE,
    I2C_3 = (int)I2C3_BASE,
    FMPI2C_1 = (int)FMPI2C1_BASE
} I2CName;

typedef enum {
    PWM_1  = (int)TIM1_BASE,
    PWM_2  = (int)TIM2_BASE,
    PWM_3  = (int)TIM3_BASE,
    PWM_4  = (int)TIM4_BASE,
    PWM_5  = (int)TIM5_BASE,
    PWM_8  = (int)TIM8_BASE,
    PWM_9  = (int)TIM9_BASE,
    PWM_10 = (int)TIM10_BASE,
    PWM_11 = (int)TIM11_BASE,
    PWM_12 = (int)TIM12_BASE,
    PWM_13 = (int)TIM13_BASE,
    PWM_14 = (int)TIM14_BASE
} PWMName;

typedef enum {
    CAN_1 = (int)CAN1_BASE,
    CAN_2 = (int)CAN2_BASE
} CANName;

typedef enum {
    QSPI_1 = (int)QSPI_R_BASE,
} QSPIName;

typedef enum {
    USB_FS = (int)USB_OTG_FS_PERIPH_BASE,
    USB_HS = (int)USB_OTG_HS_PERIPH_BASE
} USBName;

#ifdef __cplusplus
}
#endif

#endif


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PeripheralPins.c
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2018, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */

#include "PeripheralPins.h"
#include "mbed_toolchain.h"

//==============================================================================
// Notes
//
// - The pins mentioned Px_y_ALTz are alternative possibilities which use other
//   HW peripheral instances. You can use them the same way as any other "normal"
//   pin (i.e. PwmOut pwm(PA_7_ALT0);). These pins are not displayed on the board
//   pinout image on mbed.org.
//
// - The pins which are connected to other components present on the board have
//   the comment "Connected to xxx". The pin function may not work properly in this
//   case. These pins may not be displayed on the board pinout image on mbed.org.
//   Please read the board reference manual and schematic for more information.
//
// - Warning: pins connected to the default STDIO_UART_TX and STDIO_UART_RX pins are commented
//   See https://os.mbed.com/teams/ST/wiki/STDIO for more information.
//
//==============================================================================


//*** ADC ***

MBED_WEAK const PinMap PinMap_ADC[] = {
    {PA_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0
    {PA_0_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0
    {PA_0_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0
    {PA_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1
    {PA_1_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1
    {PA_1_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1
    {PA_2,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2
    {PA_2_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2
    {PA_2_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2
    {PA_3,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3
    {PA_3_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3
    {PA_3_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3
    {PA_4,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4
    {PA_4_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4
    {PA_5,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5
    {PA_5_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5
    {PA_6,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6
    {PA_6_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6
    {PA_7,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7
    {PA_7_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7
    {PB_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 // Connected to LD1
    {PB_0_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8 // Connected to LD1
    {PB_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9
    {PB_1_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9
    {PC_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10
    {PC_0_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10
    {PC_0_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC3_IN10
    {PC_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11
    {PC_1_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11
    {PC_1_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11
    {PC_2,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12
    {PC_2_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12
    {PC_2_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12
    {PC_3,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
    {PC_3_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13
    {PC_3_ALT1,  ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13
    {PC_4,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
    {PC_4_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14
    {PC_5,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
    {PC_5_ALT0,  ADC_2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15
    {PF_3,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC3_IN9
    {PF_4,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC3_IN14
    {PF_5,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC3_IN15
    {PF_6,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC3_IN4
    {PF_7,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC3_IN5
    {PF_8,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
    {PF_9,       ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
    {PF_10,      ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_ADC_Internal[] = {
    {ADC_TEMP,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
    {ADC_VREF,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
    {ADC_VBAT,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)},
    {NC, NC, 0}
};

//*** DAC ***

MBED_WEAK const PinMap PinMap_DAC[] = {
    {PA_4,       DAC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1
    {PA_5,       DAC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2
    {NC, NC, 0}
};

//*** I2C ***

MBED_WEAK const PinMap PinMap_I2C_SDA[] = {
    {PB_3,       I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
    {PB_4,       I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
    {PB_7,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, // Connected to LD2 [Blue]
    {PB_9,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
    {PB_11,      I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
    {PC_7,       FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {PC_9,       I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
    {PC_12,      I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
    {PD_13,      FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {PD_15,      FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {PF_0,       I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
    {PF_15,      FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_I2C_SCL[] = {
    {PA_8,       I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, // Connected to USB_SOF [TP1]
    {PB_6,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
    {PB_8,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
    {PB_10,      I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
    {PC_6,       FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {PD_12,      FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {PD_14,      FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {PF_1,       I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
    {PF_14,      FMPI2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
    {NC, NC, 0}
};

//*** PWM ***

// TIM5 cannot be used because already used by the us_ticker
MBED_WEAK const PinMap PinMap_PWM[] = {
    {PA_0,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
//  {PA_0,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1
    {PA_1,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
//  {PA_1,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2
    {PA_2,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
//  {PA_2,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3
    {PA_2_ALT0,  PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
    {PA_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
//  {PA_3,       PWM_5,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4
    {PA_3_ALT0,  PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
    {PA_5,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
    {PA_5_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N
    {PA_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
    {PA_6_ALT0,  PWM_13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1
    {PA_7,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
    {PA_7_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
    {PA_7_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N
    {PA_7_ALT2,  PWM_14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1
    {PA_8,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 // Connected to USB_SOF [TP1]
    {PA_9,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 // Connected to USB_VBUS
    {PA_10,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 // Connected to USB_ID
    {PA_11,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 // Connected to USB_DM
    {PA_15,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
    {PB_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N // Connected to LD1
    {PB_0_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 // Connected to LD1
    {PB_0_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N // Connected to LD1
    {PB_1,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
    {PB_1_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
    {PB_1_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N
    {PB_2,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
    {PB_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
    {PB_4,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
    {PB_5,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
    {PB_6,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
    {PB_7,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 // Connected to LD2 [Blue]
    {PB_8,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
    {PB_8_ALT0,  PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
    {PB_8_ALT1,  PWM_10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
    {PB_9,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
    {PB_9_ALT0,  PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
    {PB_9_ALT1,  PWM_11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
    {PB_10,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
    {PB_11,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
    {PB_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
    {PB_14,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N // Connected to LD3 [Red]
    {PB_14_ALT0, PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N // Connected to LD3 [Red]
    {PB_14_ALT1, PWM_12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 1, 0)}, // TIM12_CH1 // Connected to LD3 [Red]
    {PB_15,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
    {PB_15_ALT0, PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N
    {PB_15_ALT1, PWM_12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2
    {PC_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
    {PC_6_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 0)}, // TIM8_CH1
    {PC_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
    {PC_7_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)}, // TIM8_CH2
    {PC_8,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
    {PC_8_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3
    {PC_9,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
    {PC_9_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4
    {PD_12,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
    {PD_13,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
    {PD_14,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
    {PD_15,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
    {PE_5,       PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
    {PE_6,       PWM_9,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
    {PE_8,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
    {PE_9,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1
    {PE_10,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
    {PE_11,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
    {PE_12,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
    {PE_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
    {PE_14,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4
    {PF_6,       PWM_10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
    {PF_7,       PWM_11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
    {PF_8,       PWM_13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1
    {PF_9,       PWM_14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1
    {NC, NC, 0}
};

//*** SERIAL ***

MBED_WEAK const PinMap PinMap_UART_TX[] = {
    {PA_0,       UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
    {PA_2,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PA_9,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to USB_VBUS
    {PB_6,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
//  {PB_10,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // STDIO UART
    {PC_6,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
//  {PC_10,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // STDIO UART
    {PC_10,      UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
    {PC_12,      UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
    {PD_5,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PD_8,       UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to STDIO_UART_TX
    {PE_8,       UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
    {PG_14,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_RX[] = {
    {PA_1,       UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
    {PA_3,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PA_10,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to USB_ID
    {PB_7,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to LD2 [Blue]
//  {PB_11,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // STDIO UART
    {PC_5,       UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
    {PC_7,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
//  {PC_11,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // STDIO UART
    {PC_11,      UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
    {PD_2,       UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
    {PD_6,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PD_9,       UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to STDIO_UART_RX
    {PE_7,       UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
    {PG_9,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_RTS[] = {
    {PA_1,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PA_12,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to USB_DP
    {PA_15,      UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
    {PB_14,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, // Connected to LD3 [Red]
    {PC_8,       UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_UART5)},
    {PD_4,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PD_12,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
    {PG_8,       UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
    {PG_12,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_CTS[] = {
    {PA_0,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PA_11,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to USB_DM
    {PB_0,       UART_4,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, // Connected to LD1
    {PB_13,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
    {PC_9,       UART_5,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_UART5)},
    {PD_3,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
    {PD_11,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
    {PG_13,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
    {PG_15,      UART_6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
    {NC, NC, 0}
};

//*** SPI ***

MBED_WEAK const PinMap PinMap_SPI_MOSI[] = {
    {PA_7,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_0,       SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_SPI3)}, // Connected to LD1
    {PB_2,       SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_SPI3)},
    {PB_5,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_5_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PB_15,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PC_1,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_SPI2)},
    {PC_1_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI3)},
    {PC_3,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PC_12,      SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PD_0,       SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PD_6,       SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI3)},
    {PE_6,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_14,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PG_13,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI4)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_MISO[] = {
    {PA_6,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_4,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_4_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PB_14,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to LD3 [Red]
    {PC_2,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PC_11,      SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PD_0,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_5,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_13,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PG_12,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI4)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_SCLK[] = {
    {PA_5,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PA_9,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to USB_VBUS
    {PB_3,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PB_3_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PB_10,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PB_13,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PC_7,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PC_10,      SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PD_3,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PE_2,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_12,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PG_11,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI4)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_SSEL[] = {
    {PA_4,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PA_4_ALT0,  SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PA_15,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
    {PA_15_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
    {PB_4,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_SPI2)},
    {PB_9,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PB_12,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
    {PD_1,       SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_SPI2)},
    {PE_4,       SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PE_11,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
    {PG_14,      SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI4)},
    {NC, NC, 0}
};

//*** CAN ***

MBED_WEAK const PinMap PinMap_CAN_RD[] = {
    {PA_11,      CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to USB_DM
    {PB_5,       CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
    {PB_8,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
    {PB_12,      CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
    {PD_0,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_CAN_TD[] = {
    {PA_12,      CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, // Connected to USB_DP
    {PB_6,       CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
    {PB_9,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
    {PB_13,      CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
    {PD_1,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
    {NC, NC, 0}
};

//*** QUADSPI ***

MBED_WEAK const PinMap PinMap_QSPI_DATA0[] = {
    {PC_9,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO0
    {PD_11,     QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO0
    {PF_8,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},  // QUADSPI_BK1_IO0
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_QSPI_DATA1[] = {
    {PC_10,     QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO1
    {PD_12,     QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO1
    {PF_9,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},  // QUADSPI_BK1_IO1
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_QSPI_DATA2[] = {
    {PE_2,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO2
    {PF_7,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO2
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_QSPI_DATA3[] = {
    {PA_1,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO3
    {PD_13,     QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO3
    {PF_6,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_BK1_IO3
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_QSPI_SCLK[] = {
    {PB_2,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_CLK
    {PD_3,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},  // QUADSPI_CLK
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_QSPI_SSEL[] = {
    {PB_6,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},  // QUADSPI_BK1_NCS
    {PG_6,      QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},  // QUADSPI_BK1_NCS // Connected to USB_PowerSwitchOn [STMPS2151STR_EN]
    {NC, NC, 0}
};

//*** USBDEVICE ***

MBED_WEAK const PinMap PinMap_USB_FS[] = {
//  {PA_8,      USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_SOF // Connected to USB_SOF [TP1]
    {PA_9,      USB_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_FS_VBUS // Connected to USB_VBUS
    {PA_10,     USB_FS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_ID // Connected to USB_ID
    {PA_11,     USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DM // Connected to USB_DM
    {PA_12,     USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DP // Connected to USB_DP
    {NC, NC, 0}
};

//*** USBDEVICE ***

MBED_WEAK const PinMap PinMap_USB_HS[] = {
#if (MBED_CONF_TARGET_USB_SPEED == USE_USB_HS_IN_FS)
//  {PA_4,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF
    {PB_12,     USB_HS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_ID
    {PB_13,     USB_HS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_HS_VBUS
    {PB_14,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DM // Connected to LD3 [Red]
    {PB_15,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DP
#else /* MBED_CONF_TARGET_USB_SPEED */
    {PA_3,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D0
    {PA_5,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_CK
    {PB_0,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D1
    {PB_1,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D2
    {PB_2,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D4
    {PB_5,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D7
    {PB_10,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D3
    {PB_12,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D5
    {PB_13,     USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D6
    {PC_0,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_STP
    {PC_2,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_DIR
    {PC_3,      USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_NXT
#endif /* MBED_CONF_TARGET_USB_SPEED */
    {NC, NC, 0}
};


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PinNames.h
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2018, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */

#ifndef MBED_PINNAMES_H
#define MBED_PINNAMES_H

#include "cmsis.h"
#include "PinNamesTypes.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    ALT0  = 0x100,
    ALT1  = 0x200,
    ALT2  = 0x300,
    ALT3  = 0x400
} ALTx;

typedef enum {
    PA_0  = 0x00,
    PA_0_ALT0 = PA_0 | ALT0,
    PA_0_ALT1 = PA_0 | ALT1,
    PA_1  = 0x01,
    PA_1_ALT0 = PA_1 | ALT0,
    PA_1_ALT1 = PA_1 | ALT1,
    PA_2  = 0x02,
    PA_2_ALT0 = PA_2 | ALT0,
    PA_2_ALT1 = PA_2 | ALT1,
    PA_3  = 0x03,
    PA_3_ALT0 = PA_3 | ALT0,
    PA_3_ALT1 = PA_3 | ALT1,
    PA_4  = 0x04,
    PA_4_ALT0 = PA_4 | ALT0,
    PA_5  = 0x05,
    PA_5_ALT0 = PA_5 | ALT0,
    PA_6  = 0x06,
    PA_6_ALT0 = PA_6 | ALT0,
    PA_7  = 0x07,
    PA_7_ALT0 = PA_7 | ALT0,
    PA_7_ALT1 = PA_7 | ALT1,
    PA_7_ALT2 = PA_7 | ALT2,
    PA_8  = 0x08,
    PA_9  = 0x09,
    PA_10 = 0x0A,
    PA_11 = 0x0B,
    PA_12 = 0x0C,
    PA_13 = 0x0D,
    PA_14 = 0x0E,
    PA_15 = 0x0F,
    PA_15_ALT0 = PA_15 | ALT0,

    PB_0  = 0x10,
    PB_0_ALT0 = PB_0 | ALT0,
    PB_0_ALT1 = PB_0 | ALT1,
    PB_1  = 0x11,
    PB_1_ALT0 = PB_1 | ALT0,
    PB_1_ALT1 = PB_1 | ALT1,
    PB_2  = 0x12,
    PB_3  = 0x13,
    PB_3_ALT0 = PB_3 | ALT0,
    PB_4  = 0x14,
    PB_4_ALT0 = PB_4 | ALT0,
    PB_4_ALT1 = PB_4 | ALT1,
    PB_5  = 0x15,
    PB_5_ALT0 = PB_5 | ALT0,
    PB_5_ALT1 = PB_5 | ALT1,
    PB_6  = 0x16,
    PB_7  = 0x17,
    PB_8  = 0x18,
    PB_8_ALT0 = PB_8 | ALT0,
    PB_8_ALT1 = PB_8 | ALT1,
    PB_9  = 0x19,
    PB_9_ALT0 = PB_9 | ALT0,
    PB_9_ALT1 = PB_9 | ALT1,
    PB_10 = 0x1A,
    PB_11 = 0x1B,
    PB_12 = 0x1C,
    PB_13 = 0x1D,
    PB_14 = 0x1E,
    PB_14_ALT0 = PB_14 | ALT0,
    PB_14_ALT1 = PB_14 | ALT1,
    PB_15 = 0x1F,
    PB_15_ALT0 = PB_15 | ALT0,
    PB_15_ALT1 = PB_15 | ALT1,

    PC_0  = 0x20,
    PC_0_ALT0 = PC_0 | ALT0,
    PC_0_ALT1 = PC_0 | ALT1,
    PC_1  = 0x21,
    PC_1_ALT0 = PC_1 | ALT0,
    PC_1_ALT1 = PC_1 | ALT1,
    PC_2  = 0x22,
    PC_2_ALT0 = PC_2 | ALT0,
    PC_2_ALT1 = PC_2 | ALT1,
    PC_3  = 0x23,
    PC_3_ALT0 = PC_3 | ALT0,
    PC_3_ALT1 = PC_3 | ALT1,
    PC_4  = 0x24,
    PC_4_ALT0 = PC_4 | ALT0,
    PC_5  = 0x25,
    PC_5_ALT0 = PC_5 | ALT0,
    PC_6  = 0x26,
    PC_6_ALT0 = PC_6 | ALT0,
    PC_7  = 0x27,
    PC_7_ALT0 = PC_7 | ALT0,
    PC_8  = 0x28,
    PC_8_ALT0 = PC_8 | ALT0,
    PC_9  = 0x29,
    PC_9_ALT0 = PC_9 | ALT0,
    PC_10 = 0x2A,
    PC_11 = 0x2B,
    PC_12 = 0x2C,
    PC_13 = 0x2D,
    PC_14 = 0x2E,
    PC_15 = 0x2F,

    PD_0  = 0x30,
    PD_1  = 0x31,
    PD_2  = 0x32,
    PD_3  = 0x33,
    PD_4  = 0x34,
    PD_5  = 0x35,
    PD_6  = 0x36,
    PD_7  = 0x37,
    PD_8  = 0x38,
    PD_9  = 0x39,
    PD_10 = 0x3A,
    PD_11 = 0x3B,
    PD_12 = 0x3C,
    PD_13 = 0x3D,
    PD_14 = 0x3E,
    PD_15 = 0x3F,

    PE_0  = 0x40,
    PE_1  = 0x41,
    PE_2  = 0x42,
    PE_3  = 0x43,
    PE_4  = 0x44,
    PE_5  = 0x45,
    PE_6  = 0x46,
    PE_7  = 0x47,
    PE_8  = 0x48,
    PE_9  = 0x49,
    PE_10 = 0x4A,
    PE_11 = 0x4B,
    PE_12 = 0x4C,
    PE_13 = 0x4D,
    PE_14 = 0x4E,
    PE_15 = 0x4F,

    PF_0  = 0x50,
    PF_1  = 0x51,
    PF_2  = 0x52,
    PF_3  = 0x53,
    PF_4  = 0x54,
    PF_5  = 0x55,
    PF_6  = 0x56,
    PF_7  = 0x57,
    PF_8  = 0x58,
    PF_9  = 0x59,
    PF_10 = 0x5A,
    PF_11 = 0x5B,
    PF_12 = 0x5C,
    PF_13 = 0x5D,
    PF_14 = 0x5E,
    PF_15 = 0x5F,

    PG_0  = 0x60,
    PG_1  = 0x61,
    PG_2  = 0x62,
    PG_3  = 0x63,
    PG_4  = 0x64,
    PG_5  = 0x65,
    PG_6  = 0x66,
    PG_7  = 0x67,
    PG_8  = 0x68,
    PG_9  = 0x69,
    PG_10 = 0x6A,
    PG_11 = 0x6B,
    PG_12 = 0x6C,
    PG_13 = 0x6D,
    PG_14 = 0x6E,
    PG_15 = 0x6F,

    PH_0  = 0x70,
    PH_1  = 0x71,
    PH_2  = 0x72,

    // ADC internal channels
    ADC_TEMP = 0xF0,
    ADC_VREF = 0xF1,
    ADC_VBAT = 0xF2,

    // Arduino connector namings
    A0          = PA_3,
    A1          = PC_0,
    A2          = PC_3,
    A3          = PF_3,
    A4          = PF_5,
    A5          = PF_10,
    D0          = PG_9,
    D1          = PG_14,
    D2          = PF_15,
    D3          = PE_13,
    D4          = PF_14,
    D5          = PE_11,
    D6          = PE_9,
    D7          = PF_13,
    D8          = PF_12,
    D9          = PD_15,
    D10         = PD_14,
    D11         = PA_7,
    D12         = PA_6,
    D13         = PA_5,
    D14         = PB_9,
    D15         = PB_8,

    // STDIO for console print
#ifdef MBED_CONF_TARGET_STDIO_UART_TX
    STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX,
#else
    STDIO_UART_TX = PD_8,
#endif
#ifdef MBED_CONF_TARGET_STDIO_UART_RX
    STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX,
#else
    STDIO_UART_RX = PD_9,
#endif

    // Generic signals namings
    LED1        = PB_0,
    LED2        = PB_7,
    LED3        = PB_14,
    LED4        = LED1,
    LED_RED     = LED3,
    USER_BUTTON = PC_13,
    // Standardized button names
    BUTTON1 = USER_BUTTON,
    SERIAL_TX   = STDIO_UART_TX, // Virtual Com Port
    SERIAL_RX   = STDIO_UART_RX, // Virtual Com Port
    USBTX       = STDIO_UART_TX, // Virtual Com Port
    USBRX       = STDIO_UART_RX, // Virtual Com Port
    I2C_SCL     = D15,
    I2C_SDA     = D14,
    SPI_MOSI    = D11,
    SPI_MISO    = D12,
    SPI_SCK     = D13,
    SPI_CS      = D10,
    PWM_OUT     = D9,

    /**** USB FS pins ****/
    USB_OTG_FS_DM = PA_11,
    USB_OTG_FS_DP = PA_12,
    USB_OTG_FS_ID = PA_10,
    USB_OTG_FS_SOF = PA_8,
    USB_OTG_FS_VBUS = PA_9,

    /**** USB HS pins ****/
    USB_OTG_HS_DM = PB_14,
    USB_OTG_HS_DP = PB_15,
    USB_OTG_HS_ID = PB_12,
    USB_OTG_HS_SOF = PA_4,
    USB_OTG_HS_ULPI_CK = PA_5,
    USB_OTG_HS_ULPI_D0 = PA_3,
    USB_OTG_HS_ULPI_D1 = PB_0,
    USB_OTG_HS_ULPI_D2 = PB_1,
    USB_OTG_HS_ULPI_D3 = PB_10,
    USB_OTG_HS_ULPI_D4 = PB_2,
    USB_OTG_HS_ULPI_D5 = PB_12,
    USB_OTG_HS_ULPI_D6 = PB_13,
    USB_OTG_HS_ULPI_D7 = PB_5,
    USB_OTG_HS_ULPI_DIR = PC_2,
    USB_OTG_HS_ULPI_NXT = PC_3,
    USB_OTG_HS_ULPI_STP = PC_0,
    USB_OTG_HS_VBUS = PB_13,

    /**** OSCILLATOR pins ****/
    RCC_OSC32_IN = PC_14,
    RCC_OSC32_OUT = PC_15,
    RCC_OSC_IN = PH_0,
    RCC_OSC_OUT = PH_1,

    /**** DEBUG pins ****/
    SYS_JTCK_SWCLK = PA_14,
    SYS_JTDI = PA_15,
    SYS_JTDO_SWO = PB_3,
    SYS_JTMS_SWDIO = PA_13,
    SYS_JTRST = PB_4,
    SYS_TRACECLK = PE_2,
    SYS_TRACED0 = PE_3,
    SYS_TRACED0_ALT0 = PC_8,
    SYS_TRACED1 = PE_4,
    SYS_TRACED1_ALT0 = PD_3,
    SYS_TRACED2 = PE_5,
    SYS_TRACED2_ALT0 = PG_13,
    SYS_TRACED3 = PE_6,
    SYS_TRACED3_ALT0 = PG_14,
    SYS_WKUP0 = PA_0,
    SYS_WKUP1 = PC_13,

    // Not connected
    NC = (int)0xFFFFFFFF
} PinName;

#ifdef __cplusplus
}
#endif

#endif


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/system_clock.c
================================================
/* mbed Microcontroller Library
* Copyright (c) 2006-2017 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
  * This file configures the system clock as follows:
  *-----------------------------------------------------------------------------
  * System clock source | 1- USE_PLL_HSE_EXTC (external 12 MHz clock)
  *                     | 2- USE_PLL_HSE_XTAL (external 12 MHz xtal)
  *                     | 3- USE_PLL_HSI (internal 16 MHz)
  *-----------------------------------------------------------------------------
  * SYSCLK(MHz)         | 180
  * AHBCLK (MHz)        | 180
  * APB1CLK (MHz)       |  45
  * APB2CLK (MHz)       |  90
  * USB capable         | YES
  *-----------------------------------------------------------------------------
**/

#include "stm32f4xx.h"
#include "mbed_error.h"


/*!< Uncomment the following line if you need to relocate your vector Table in
     Internal SRAM. */
/* #define VECT_TAB_SRAM */
#define VECT_TAB_OFFSET  0x0000 /*!< Vector Table base offset field.
                                   This value must be a multiple of 0x200. */


// clock source is selected with CLOCK_SOURCE in json config
#define USE_PLL_HSE_EXTC 0x8 // Use external clock (ST Link MCO)
#define USE_PLL_HSE_XTAL 0x4 // Use external xtal (X3 on board - not provided by default)
#define USE_PLL_HSI      0x2 // Use HSI internal clock

//#define DEBUG_MCO        (1) // Output the MCO1/MCO2 on PA8/PC9 for debugging (0=OFF, 1=ON)


#if ( ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) )
uint8_t SetSysClock_PLL_HSE(uint8_t bypass);
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) */

#if ((CLOCK_SOURCE) & USE_PLL_HSI)
uint8_t SetSysClock_PLL_HSI(void);
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSI) */


/**
  * @brief  Setup the microcontroller system
  *         Initialize the FPU setting, vector table location and External memory
  *         configuration.
  * @param  None
  * @retval None
  */
void SystemInit(void)
{
    /* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); /* set CP10 and CP11 Full Access */
#endif
    /* Reset the RCC clock configuration to the default reset state ------------*/
    /* Set HSION bit */
    RCC->CR |= (uint32_t)0x00000001;

    /* Reset CFGR register */
    RCC->CFGR = 0x00000000;

    /* Reset HSEON, CSSON and PLLON bits */
    RCC->CR &= (uint32_t)0xFEF6FFFF;

    /* Reset PLLCFGR register */
    RCC->PLLCFGR = 0x24003010;

    /* Reset HSEBYP bit */
    RCC->CR &= (uint32_t)0xFFFBFFFF;

    /* Disable all interrupts */
    RCC->CIR = 0x00000000;

#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
    SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */

    /* Configure the Vector Table location add offset address ------------------*/
#ifdef VECT_TAB_SRAM
    SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#else
    SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
#endif

}


/**
  * @brief  Configures the System clock source, PLL Multiplier and Divider factors,
  *               AHB/APBx prescalers and Flash settings
  * @note   This function should be called only once the RCC clock configuration
  *         is reset to the default reset state (done in SystemInit() function).
  * @param  None
  * @retval None
  */

void SetSysClock(void)
{
#if ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC)
    /* 1- Try to start with HSE and external clock */
    if (SetSysClock_PLL_HSE(1) == 0)
#endif
    {
#if ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL)
        /* 2- If fail try to start with HSE and external xtal */
        if (SetSysClock_PLL_HSE(0) == 0)
#endif
        {
#if ((CLOCK_SOURCE) & USE_PLL_HSI)
            /* 3- If fail start with HSI clock */
            if (SetSysClock_PLL_HSI() == 0)
#endif
            {
                {
                    error("SetSysClock failed\n");
                }
            }
        }
    }

    // Output clock on MCO2 pin(PC9) for debugging purpose
#if DEBUG_MCO == 1
    HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_4);
#endif
}

#if ( ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) )
/******************************************************************************/
/*            PLL (clocked by HSE) used as System clock source                */
/******************************************************************************/
uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
{
    RCC_OscInitTypeDef RCC_OscInitStruct;
    RCC_ClkInitTypeDef RCC_ClkInitStruct;
    RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;

    /* Enable Power Control clock */
    __HAL_RCC_PWR_CLK_ENABLE();

    /* The voltage scaling allows optimizing the power consumption when the device is
       clocked below the maximum system frequency, to update the voltage scaling value
       regarding system frequency refer to product datasheet. */
    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

    /* Enable HSE oscillator and activate PLL with HSE as source */
    RCC_OscInitStruct.OscillatorType      = RCC_OSCILLATORTYPE_HSE;
    if (bypass == 0) {
        RCC_OscInitStruct.HSEState          = RCC_HSE_ON; /* External 8 MHz xtal on OSC_IN/OSC_OUT */
    } else {
        RCC_OscInitStruct.HSEState          = RCC_HSE_BYPASS; /* External 8 MHz clock on OSC_IN */
    }
    RCC_OscInitStruct.PLL.PLLState  = RCC_PLL_ON;
    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
    RCC_OscInitStruct.PLL.PLLM = 6;             
    RCC_OscInitStruct.PLL.PLLN = 180;           
    RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; 
    RCC_OscInitStruct.PLL.PLLQ = 7;             
    RCC_OscInitStruct.PLL.PLLR = 2;             
    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
        return 0; // FAIL
    }

    // Activate the OverDrive to reach the 180 MHz Frequency
    if (HAL_PWREx_EnableOverDrive() != HAL_OK) {
        return 0; // FAIL
    }

#if DEVICE_USBDEVICE
    // Select PLLSAI output as USB clock source
    PeriphClkInitStruct.PLLSAI.PLLSAIM = 6;
    PeriphClkInitStruct.PLLSAI.PLLSAIN = 96;
    PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4;
    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CLK48;
    PeriphClkInitStruct.Clk48ClockSelection = RCC_CLK48CLKSOURCE_PLLSAIP;
    HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
#endif /* DEVICE_USBDEVICE */

    /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
    RCC_ClkInitStruct.ClockType      = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
    RCC_ClkInitStruct.SYSCLKSource   = RCC_SYSCLKSOURCE_PLLCLK;
    RCC_ClkInitStruct.AHBCLKDivider  = RCC_SYSCLK_DIV1; // 180 MHz
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  //  45 MHz
    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  //  90 MHz
    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
        return 0; // FAIL
    }

    // Output clock on MCO1 pin(PA8) for debugging purpose
#if DEBUG_MCO == 1
    if (bypass == 0) {
        HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSE, RCC_MCODIV_2);    // 4 MHz with xtal
    } else {
        HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSE, RCC_MCODIV_1);    // 8 MHz with external clock (MCO)
    }
#endif

    return 1; // OK
}
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) */

#if ((CLOCK_SOURCE) & USE_PLL_HSI)
/******************************************************************************/
/*            PLL (clocked by HSI) used as System clock source                */
/******************************************************************************/
uint8_t SetSysClock_PLL_HSI(void)
{
    RCC_OscInitTypeDef RCC_OscInitStruct;
    RCC_ClkInitTypeDef RCC_ClkInitStruct;
    RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;

    /* Enable Power Control clock */
    __HAL_RCC_PWR_CLK_ENABLE();

    /* The voltage scaling allows optimizing the power consumption when the device is
       clocked below the maximum system frequency, to update the voltage scaling value
       regarding system frequency refer to product datasheet. */
    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

    /* Enable HSI oscillator and activate PLL with HSI as source */
    RCC_OscInitStruct.OscillatorType      = RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
    RCC_OscInitStruct.HSIState            = RCC_HSI_ON;
    RCC_OscInitStruct.HSEState            = RCC_HSE_OFF;
    RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
    RCC_OscInitStruct.PLL.PLLState        = RCC_PLL_ON;
    RCC_OscInitStruct.PLL.PLLSource       = RCC_PLLSOURCE_HSI;
    RCC_OscInitStruct.PLL.PLLM            = 16;            // VCO input clock = 1 MHz (16 MHz / 16)
    RCC_OscInitStruct.PLL.PLLN            = 360;           // VCO output clock = 360 MHz (1 MHz * 360)
    RCC_OscInitStruct.PLL.PLLP            = RCC_PLLP_DIV2; // PLLCLK = 180 MHz (360 MHz / 2)
    RCC_OscInitStruct.PLL.PLLQ            = 7;             //
    RCC_OscInitStruct.PLL.PLLR            = 6;             //
    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
        return 0; // FAIL
    }

#if DEVICE_USBDEVICE
    /* Select PLLSAI output as USB clock source */
    PeriphClkInitStruct.PLLSAI.PLLSAIM = 8;
    PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
    PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV8;
    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CLK48;
    PeriphClkInitStruct.Clk48ClockSelection = RCC_CLK48CLKSOURCE_PLLSAIP;
    HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
#endif /* DEVICE_USBDEVICE */

    /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
    RCC_ClkInitStruct.ClockType      = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
    RCC_ClkInitStruct.SYSCLKSource   = RCC_SYSCLKSOURCE_PLLCLK; // 180 MHz
    RCC_ClkInitStruct.AHBCLKDivider  = RCC_SYSCLK_DIV1;         // 180 MHz
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;           //  45 MHz
    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;           //  90 MHz
    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
        return 0; // FAIL
    }

    // Output clock on MCO1 pin(PA8) for debugging purpose
#if DEBUG_MCO == 1
    HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1); // 16 MHz
#endif

    return 1; // OK
}
#endif /* ((CLOCK_SOURCE) & USE_PLL_HSI) */


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PeripheralNames.h
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2014, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */
#ifndef MBED_PERIPHERALNAMES_H
#define MBED_PERIPHERALNAMES_H

#include "cmsis.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    ADC_1 = (int)ADC1_BASE,
    ADC_2 = (int)ADC2_BASE,
    ADC_3 = (int)ADC3_BASE
} ADCName;

typedef enum {
    DAC_1 = (int)DAC_BASE
} DACName;

typedef enum {
    UART_1 = (int)USART1_BASE,
    UART_2 = (int)USART2_BASE,
    UART_3 = (int)USART3_BASE,
    UART_4 = (int)UART4_BASE,
    UART_5 = (int)UART5_BASE
} UARTName;

#define DEVICE_SPI_COUNT 3
typedef enum {
    SPI_1 = (int)SPI1_BASE,
    SPI_2 = (int)SPI2_BASE,
    SPI_3 = (int)SPI3_BASE
} SPIName;

typedef enum {
    I2C_1 = (int)I2C1_BASE,
    I2C_2 = (int)I2C2_BASE
} I2CName;

typedef enum {
    PWM_1  = (int)TIM1_BASE,
    PWM_2  = (int)TIM2_BASE,
    PWM_3  = (int)TIM3_BASE,
    PWM_4  = (int)TIM4_BASE,
    PWM_5  = (int)TIM5_BASE,
    PWM_8  = (int)TIM8_BASE
} PWMName;

typedef enum {
    CAN_1 = (int)CAN1_BASE
} CANName;

typedef enum {
    USB_FS = (int)USB_BASE
} USBName;

#ifdef __cplusplus
}
#endif

#endif


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PeripheralPins.c
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2018, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */

#include "PeripheralPins.h"
#include "mbed_toolchain.h"

//==============================================================================
// Notes
//
// - The pins mentioned Px_y_ALTz are alternative possibilities which use other
//   HW peripheral instances. You can use them the same way as any other "normal"
//   pin (i.e. PwmOut pwm(PA_7_ALT0);). These pins are not displayed on the board
//   pinout image on mbed.org.
//
// - The pins which are connected to other components present on the board have
//   the comment "Connected to xxx". The pin function may not work properly in this
//   case. These pins may not be displayed on the board pinout image on mbed.org.
//   Please read the board reference manual and schematic for more information.
//
// - Warning: pins connected to the default STDIO_UART_TX and STDIO_UART_RX pins are commented
//   See https://os.mbed.com/teams/ST/wiki/STDIO for more information.
//
//==============================================================================


//*** ADC ***

MBED_WEAK const PinMap PinMap_ADC[] = {
    {PA_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0
    {PA_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1
//  {PA_2,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 // Connected to STDIO_UART_TX
//  {PA_3,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 // Connected to STDIO_UART_RX
    {PA_4,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4
    {PA_5,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 // Connected to LD2 [Green Led]
    {PA_6,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6
    {PA_7,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7
    {PB_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8
    {PB_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9
    {PC_0,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10
    {PC_1,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11
    {PC_2,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12
    {PC_3,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
    {PC_4,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
    {PC_5,       ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_ADC_Internal[] = {
    {ADC_TEMP,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
    {ADC_VREF,   ADC_1,    STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
    {NC, NC, 0}
};

//*** I2C ***

MBED_WEAK const PinMap PinMap_I2C_SDA[] = {
    {PB_7,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, 0)},
    {PB_9,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, 2)}, // GPIO_Remap_I2C1
    {PB_11,      I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, 0)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_I2C_SCL[] = {
    {PB_6,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, 0)},
    {PB_8,       I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, 2)}, // GPIO_Remap_I2C1
    {PB_10,      I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, 0)},
    {NC, NC, 0}
};

//*** PWM ***

// TIM4 cannot be used because already used by the us_ticker
MBED_WEAK const PinMap PinMap_PWM[] = {
    {PA_0,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM2_CH1
    {PA_1,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM2_CH2
//  {PA_2,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 3, 0)}, // TIM2_CH3 // Connected to STDIO_UART_TX
//  {PA_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 4, 0)}, // TIM2_CH4 // Connected to STDIO_UART_RX
    {PA_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM3_CH1
    {PA_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM3_CH2
    {PA_8,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM1_CH1
    {PA_9,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM1_CH2
    {PA_10,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 3, 0)}, // TIM1_CH3
    {PA_11,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 4, 0)}, // TIM1_CH4
    {PA_15,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 8, 1, 0)}, // TIM2_CH1
    {PB_0,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 3, 0)}, // TIM3_CH3
    {PB_1,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 4, 0)}, // TIM3_CH4
    {PB_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 8, 2, 0)}, // TIM2_CH2 // Connected to SWO
    {PB_4,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 7, 1, 0)}, // TIM3_CH1
    {PB_5,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 7, 2, 0)}, // TIM3_CH2
//  {PB_6,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM4_CH1
//  {PB_7,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM4_CH2
//  {PB_8,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 3, 0)}, // TIM4_CH3
//  {PB_9,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 4, 0)}, // TIM4_CH4
    {PB_10,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 8, 3, 0)}, // TIM2_CH3
    {PB_11,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 8, 4, 0)}, // TIM2_CH4
    {PB_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 1)}, // TIM1_CH1N
    {PB_14,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 1)}, // TIM1_CH2N
    {PB_15,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 3, 1)}, // TIM1_CH3N
    {PC_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 9, 1, 0)}, // TIM3_CH1
    {PC_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 9, 2, 0)}, // TIM3_CH2
    {PC_8,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 9, 3, 0)}, // TIM3_CH3
    {PC_9,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 9, 4, 0)}, // TIM3_CH4
    {NC, NC, 0}
};

//*** SERIAL ***

MBED_WEAK const PinMap PinMap_UART_TX[] = {
    {PA_2,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)}, // Connected to STDIO_UART_TX
    {PA_9,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {PB_6,       UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 3)}, // GPIO_Remap_USART1
    {PB_10,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {PC_10,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 5)}, // GPIO_PartialRemap_USART3
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_RX[] = {
    {PA_3,       UART_2,  STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, 0)}, // Connected to STDIO_UART_RX
    {PA_10,      UART_1,  STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, 0)},
    {PB_7,       UART_1,  STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, 3)}, // GPIO_Remap_USART1
    {PB_11,      UART_3,  STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, 0)},
    {PC_11,      UART_3,  STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, 5)}, // GPIO_PartialRemap_USART3
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_RTS[] = {
    {PA_1,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {PA_12,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {PB_14,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_UART_CTS[] = {
    {PA_0,       UART_2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {PA_11,      UART_1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {PB_13,      UART_3,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, 0)},
    {NC, NC, 0}
};

//*** SPI ***

MBED_WEAK const PinMap PinMap_SPI_MOSI[] = {
    {PA_7,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {PB_5,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 1)}, // GPIO_Remap_SPI1
    {PB_15,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_MISO[] = {
    {PA_6,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {PB_4,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 1)}, // GPIO_Remap_SPI1
    {PB_14,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_SCLK[] = {
    {PA_5,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)}, // Connected to LD2 [Green Led]
    {PB_3,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 1)}, // GPIO_Remap_SPI1 // Connected to SWO
    {PB_13,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_SPI_SSEL[] = {
    {PA_4,       SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {PA_15,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 1)}, // GPIO_Remap_SPI1
    {PB_12,      SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {NC, NC, 0}
};

//*** CAN ***

MBED_WEAK const PinMap PinMap_CAN_RD[] = {
    {PA_11,      CAN_1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)},
    {PB_8,       CAN_1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 10)}, // Remap CAN_RX to PB_8
    {NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_CAN_TD[] = {
    {PA_12,      CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 0)},
    {PB_9,       CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 10)}, // Remap CAN_TX to PB_9
    {NC, NC, 0}
};

//*** USBDEVICE ***

MBED_WEAK const PinMap PinMap_USB_FS[] = {
    {PA_11,     USB_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)}, // USB_DM
    {PA_12,     USB_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)}, // USB_DP
    {NC, NC, 0}
};


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PinNames.h
================================================
/* mbed Microcontroller Library
 *******************************************************************************
 * Copyright (c) 2018, STMicroelectronics
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************
 */

#ifndef MBED_PINNAMES_H
#define MBED_PINNAMES_H

#include "cmsis.h"
#include "PinNamesTypes.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    PA_0  = 0x00,
    PA_1  = 0x01,
    PA_2  = 0x02,
    PA_3  = 0x03,
    PA_4  = 0x04,
    PA_5  = 0x05,
    PA_6  = 0x06,
    PA_7  = 0x07,
    PA_8  = 0x08,
    PA_9  = 0x09,
    PA_10 = 0x0A,
    PA_11 = 0x0B,
    PA_12 = 0x0C,
    PA_13 = 0x0D,
    PA_14 = 0x0E,
    PA_15 = 0x0F,

    PB_0  = 0x10,
    PB_1  = 0x11,
    PB_2  = 0x12,
    PB_3  = 0x13,
    PB_4  = 0x14,
    PB_5  = 0x15,
    PB_6  = 0x16,
    PB_7  = 0x17,
    PB_8  = 0x18,
    PB_9  = 0x19,
    PB_10 = 0x1A,
    PB_11 = 0x1B,
    PB_12 = 0x1C,
    PB_13 = 0x1D,
    PB_14 = 0x1E,
    PB_15 = 0x1F,

    PC_0  = 0x20,
    PC_1  = 0x21,
    PC_2  = 0x22,
    PC_3  = 0x23,
    PC_4  = 0x24,
    PC_5  = 0x25,
    PC_6  = 0x26,
    PC_7  = 0x27,
    PC_8  = 0x28,
    PC_9  = 0x29,
    PC_10 = 0x2A,
    PC_11 = 0x2B,
    PC_12 = 0x2C,
    PC_13 = 0x2D,
    PC_14 = 0x2E,
    PC_15 = 0x2F,

    PD_0  = 0x30,
    PD_1  = 0x31,
    PD_2  = 0x32,

    // ADC internal channels
    ADC_TEMP = 0xF0,
    ADC_VREF = 0xF1,

    // Arduino connector namings
    A0          = PA_0,
    A1          = PA_1,
    A2          = PA_4,
    A3          = PB_0,
    A4          = PC_1,
    A5          = PC_0,
    D0          = PA_3,
    D1          = PA_2,
    D2          = PA_10,
    D3          = PB_3,
    D4          = PB_5,
    D5          = PB_4,
    D6          = PB_10,
    D7          = PA_8,
    D8          = PA_9,
    D9          = PC_7,
    D10         = PB_6,
    D11         = PA_7,
    D12         = PA_6,
    D13         = PA_5,
    D14         = PB_9,
    D15         = PB_8,

    // STDIO for console print
#ifdef MBED_CONF_TARGET_STDIO_UART_TX
    STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX,
#else
    STDIO_UART_TX = PA_2,
#endif
#ifdef MBED_CONF_TARGET_STDIO_UART_RX
    STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX,
#else
    STDIO_UART_RX = PA_3,
#endif

    // Generic signals namings
    LED1        = PA_5,
    LED2        = PA_5,
    LED3        = PA_5,
    LED4        = PA_5,
    USER_BUTTON = PC_13,
    // Standardized button names
    BUTTON1 = USER_BUTTON,
    SERIAL_TX   = STDIO_UART_TX,
    SERIAL_RX   = STDIO_UART_RX,
    USBTX       = STDIO_UART_TX,
    USBRX       = STDIO_UART_RX,
    I2C_SCL     = PB_8,
    I2C_SDA     = PB_9,
    SPI_MOSI    = PA_7,
    SPI_MISO    = PA_6,
    SPI_SCK     = PA_5,
    SPI_CS      = PB_6,
    PWM_OUT     = PB_3,

    /**** USB pins ****/
    USB_DM = PA_11,
    USB_DP = PA_12,

    /**** OSCILLATOR pins ****/
    RCC_OSC32_IN = PC_14,
    RCC_OSC32_OUT = PC_15,
    RCC_OSC_IN = PD_0,
    RCC_OSC_OUT = PD_1,

    /**** DEBUG pins ****/
    SYS_JTCK_SWCLK = PA_14,
    SYS_JTDI = PA_15,
    SYS_JTDO_TRACESWO = PB_3,
    SYS_JTMS_SWDIO = PA_13,
    SYS_NJTRST = PB_4,
    SYS_WKUP = PA_0,

    // Not connected
    NC = (int)0xFFFFFFFF
} PinName;

#ifdef __cplusplus
}
#endif

#endif


================================================
FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/system_clock.c
================================================
/* mbed Microcontroller Library
* Copyright (c) 2006-2017 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
  * This file configures the system clock as follows:
  *-------------------------------------------------------------------------------------------
  * System clock source                | 1- PLL_HSE_EXTC  / DEVICE_USBDEVICE   | 3- PLL_HSI / DEVICE_USBDEVICE
  *                                    | (external 8 MHz clock)                | (internal 8 MHz)
  *                                    | 2- PLL_HSE_XTAL / DEVICE_USBDEVICE    |
  *                                    | (external 8 MHz xtal)                 |
  *-------------------------------------------------------------------------------------------
  * SYSCLK(MHz)                        | 72 / 72                               | 64 / 48
  *-------------------------------------------------------------------------------------------
  * AHBCLK (MHz)                       | 72 / 72                               | 64 / 48
  *---------------------------------------------------------------------
Download .txt
gitextract_caxq2qkb/

├── .gitignore
├── Firmware/
│   ├── ConfigSamples/
│   │   ├── BTT_Octopus/
│   │   │   ├── OCTOPUS_ENDER3/
│   │   │   │   └── config.txt
│   │   │   └── OCTOPUS_xyz/
│   │   │       └── config.txt
│   │   ├── BTT_SKRv13/
│   │   │   └── config.txt
│   │   ├── BTT_SKRv14/
│   │   │   ├── SKRv14_3dp/
│   │   │   │   └── config.txt
│   │   │   ├── SKRv14_TMC2209/
│   │   │   │   └── config.txt
│   │   │   └── SKRv14_xyz/
│   │   │       └── config.txt
│   │   ├── BTT_SKRv2/
│   │   │   ├── SKRv2_TMC2209/
│   │   │   │   └── config.txt
│   │   │   ├── SKRv2_ender3/
│   │   │   │   └── config.txt
│   │   │   └── SKRv2_xyz/
│   │   │       └── config.txt
│   │   ├── Fysetc_Spider/
│   │   │   └── config.txt
│   │   ├── Fysetc_Spider_King/
│   │   │   └── config.txt
│   │   ├── Hypercube-evolution/
│   │   │   └── config.txt
│   │   ├── MKS_Monster8/
│   │   │   └── config.txt
│   │   ├── MKS_Robin_E3/
│   │   │   └── Robin_E3/
│   │   │       └── config.txt
│   │   ├── MKS_Sbase/
│   │   │   └── MKS Sbase/
│   │   │       ├── Ender3/
│   │   │       │   └── config.txt-Ender3
│   │   │       └── config.txt
│   │   └── TMC2209 Example/
│   │       ├── SKRv14_TMC2209/
│   │       │   └── config.txt
│   │       └── SKRv2_TMC2209/
│   │           └── config.txt
│   └── FirmwareSource/
│       ├── .gitignore
│       ├── Remora-OS5/
│       │   ├── .gitignore
│       │   ├── .mbed
│       │   ├── MODDMA.lib
│       │   ├── README.md
│       │   ├── SoftwareSerial/
│       │   │   ├── SoftwareSerial.cpp
│       │   │   └── SoftwareSerial.h
│       │   ├── TARGET_OCTOPUS_429/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_OCTOPUS_446/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_ROBIN_E3/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_SKRV1_4/
│       │   │   ├── drivers/
│       │   │   │   ├── comms/
│       │   │   │   │   ├── MODDMA/
│       │   │   │   │   │   ├── .hg/
│       │   │   │   │   │   │   ├── 00changelog.i
│       │   │   │   │   │   │   ├── branch
│       │   │   │   │   │   │   ├── cache/
│       │   │   │   │   │   │   │   ├── branch2-base
│       │   │   │   │   │   │   │   ├── rbc-names-v1
│       │   │   │   │   │   │   │   ├── rbc-revs-v1
│       │   │   │   │   │   │   │   └── tags2-visible
│       │   │   │   │   │   │   ├── dirstate
│       │   │   │   │   │   │   ├── hgrc
│       │   │   │   │   │   │   ├── requires
│       │   │   │   │   │   │   ├── store/
│       │   │   │   │   │   │   │   ├── 00changelog.i
│       │   │   │   │   │   │   │   ├── 00manifest.i
│       │   │   │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   │   │   ├── _c_o_n_f_i_g.h.i
│       │   │   │   │   │   │   │   │   ├── _change_log.c.i
│       │   │   │   │   │   │   │   │   ├── _d_a_t_a_l_u_t_s.cpp.i
│       │   │   │   │   │   │   │   │   ├── _i_n_i_t.cpp.i
│       │   │   │   │   │   │   │   │   ├── _m_o_d_d_m_a.cpp.i
│       │   │   │   │   │   │   │   │   ├── _m_o_d_d_m_a.h.i
│       │   │   │   │   │   │   │   │   ├── _s_e_t_u_p.cpp.i
│       │   │   │   │   │   │   │   │   ├── example1.cpp.i
│       │   │   │   │   │   │   │   │   ├── example1.h.i
│       │   │   │   │   │   │   │   │   ├── example2.cpp.i
│       │   │   │   │   │   │   │   │   ├── example2.h.i
│       │   │   │   │   │   │   │   │   ├── example3.h.i
│       │   │   │   │   │   │   │   │   ├── example4.h.i
│       │   │   │   │   │   │   │   │   └── iomacros.h.i
│       │   │   │   │   │   │   │   └── fncache
│       │   │   │   │   │   │   ├── thgstatus
│       │   │   │   │   │   │   └── wcache/
│       │   │   │   │   │   │       └── manifestfulltextcache
│       │   │   │   │   │   ├── CONFIG.h
│       │   │   │   │   │   ├── ChangeLog.c
│       │   │   │   │   │   ├── DATALUTS.cpp
│       │   │   │   │   │   ├── INIT.cpp
│       │   │   │   │   │   ├── MODDMA.cpp
│       │   │   │   │   │   ├── MODDMA.h
│       │   │   │   │   │   ├── SETUP.cpp
│       │   │   │   │   │   ├── example1.h
│       │   │   │   │   │   ├── example2.h
│       │   │   │   │   │   ├── example3.h
│       │   │   │   │   │   ├── example4.h
│       │   │   │   │   │   └── iomacros.h
│       │   │   │   │   ├── MODDMA.lib
│       │   │   │   │   ├── RemoraComms.cpp
│       │   │   │   │   └── RemoraComms.h
│       │   │   │   ├── pin/
│       │   │   │   │   ├── pin.cpp
│       │   │   │   │   └── pin.h
│       │   │   │   └── qei/
│       │   │   │       ├── qeiDriver.cpp
│       │   │   │       └── qeiDriver.h
│       │   │   └── thread/
│       │   │       ├── createThreads.h
│       │   │       ├── interrupt.cpp
│       │   │       ├── interrupt.h
│       │   │       ├── irqHandlers.h
│       │   │       ├── pruThread.cpp
│       │   │       ├── pruThread.h
│       │   │       ├── qeiInterrupt.cpp
│       │   │       ├── qeiInterrupt.h
│       │   │       ├── timer.cpp
│       │   │       └── timer.h
│       │   ├── TARGET_SKRV2/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_SKR_MINI_E3/
│       │   │   ├── PeripheralNames.h
│       │   │   ├── PeripheralPins.c
│       │   │   ├── PinNames.h
│       │   │   └── system_clock.c
│       │   ├── TARGET_STM32F1/
│       │   │   ├── drivers/
│       │   │   │   ├── comms/
│       │   │   │   │   ├── RemoraComms.cpp
│       │   │   │   │   └── RemoraComms.h
│       │   │   │   ├── pin/
│       │   │   │   │   ├── pin.cpp
│       │   │   │   │   └── pin.h
│       │   │   │   └── qei/
│       │   │   │       ├── qeiDriver.cpp
│       │   │   │       └── qeiDriver.h
│       │   │   └── thread/
│       │   │       ├── createThreads.h
│       │   │       ├── interrupt.cpp
│       │   │       ├── interrupt.h
│       │   │       ├── irqHandlers.h
│       │   │       ├── pruThread.cpp
│       │   │       ├── pruThread.h
│       │   │       ├── timer.cpp
│       │   │       └── timer.h
│       │   ├── TARGET_STM32F103xC/
│       │   │   ├── device/
│       │   │   │   ├── TOOLCHAIN_ARM/
│       │   │   │   │   ├── startup_stm32f103xe.S
│       │   │   │   │   └── stm32f103xe.sct
│       │   │   │   ├── cmsis_nvic.h
│       │   │   │   ├── stm32f103xe.h
│       │   │   │   ├── stm32f1xx.h
│       │   │   │   ├── system_stm32f1xx.h
│       │   │   │   └── us_ticker_data.h
│       │   │   └── objects.h
│       │   ├── TARGET_STM32F4/
│       │   │   ├── drivers/
│       │   │   │   ├── SDIO/
│       │   │   │   │   ├── SDIOBlockDevice.cpp
│       │   │   │   │   ├── SDIOBlockDevice.h
│       │   │   │   │   ├── sdio_device.c
│       │   │   │   │   └── sdio_device.h
│       │   │   │   ├── comms/
│       │   │   │   │   ├── RemoraComms.cpp
│       │   │   │   │   └── RemoraComms.h
│       │   │   │   ├── pin/
│       │   │   │   │   ├── pin.cpp
│       │   │   │   │   └── pin.h
│       │   │   │   └── qei/
│       │   │   │       ├── qeiDriver.cpp
│       │   │   │       └── qeiDriver.h
│       │   │   └── thread/
│       │   │       ├── createThreads.h
│       │   │       ├── interrupt.cpp
│       │   │       ├── interrupt.h
│       │   │       ├── irqHandlers.h
│       │   │       ├── pruThread.cpp
│       │   │       ├── pruThread.h
│       │   │       ├── timer.cpp
│       │   │       └── timer.h
│       │   ├── TMCStepper/
│       │   │   ├── .hg/
│       │   │   │   ├── 00changelog.i
│       │   │   │   ├── branch
│       │   │   │   ├── cache/
│       │   │   │   │   ├── branch2-base
│       │   │   │   │   ├── rbc-names-v1
│       │   │   │   │   ├── rbc-revs-v1
│       │   │   │   │   └── tags2-visible
│       │   │   │   ├── dirstate
│       │   │   │   ├── hgrc
│       │   │   │   ├── requires
│       │   │   │   ├── store/
│       │   │   │   │   ├── 00changelog.i
│       │   │   │   │   ├── 00manifest.i
│       │   │   │   │   ├── data/
│       │   │   │   │   │   ├── _c_h_o_p_c_o_n_f.cpp.i
│       │   │   │   │   │   ├── _d_r_v___s_t_a_t_u_s.cpp.i
│       │   │   │   │   │   ├── _g_c_o_n_f.cpp.i
│       │   │   │   │   │   ├── _i_h_o_l_d___i_r_u_n.cpp.i
│       │   │   │   │   │   ├── _p_w_m_c_o_n_f.cpp.i
│       │   │   │   │   │   ├── _t_m_c2208__bitfields.h.i
│       │   │   │   │   │   ├── _t_m_c2208_stepper.cpp.i
│       │   │   │   │   │   ├── _t_m_c2209__bitfields.h.i
│       │   │   │   │   │   ├── _t_m_c2209_stepper.cpp.i
│       │   │   │   │   │   ├── _t_m_c___m_a_c_r_o_s.h.i
│       │   │   │   │   │   ├── _t_m_c_stepper.cpp.i
│       │   │   │   │   │   └── _t_m_c_stepper.h.i
│       │   │   │   │   └── fncache
│       │   │   │   ├── thgstatus
│       │   │   │   └── wcache/
│       │   │   │       └── manifestfulltextcache
│       │   │   ├── CHOPCONF.cpp
│       │   │   ├── COOLCONF.cpp
│       │   │   ├── DRV_STATUS.cpp
│       │   │   ├── GCONF.cpp
│       │   │   ├── IHOLD_IRUN.cpp
│       │   │   ├── PWMCONF.cpp
│       │   │   ├── TMC2208Stepper.cpp
│       │   │   ├── TMC2208_bitfields.h
│       │   │   ├── TMC2209Stepper.cpp
│       │   │   ├── TMC2209_bitfields.h
│       │   │   ├── TMCStepper.cpp
│       │   │   ├── TMCStepper.h
│       │   │   └── TMC_MACROS.h
│       │   ├── WIZnetInterface-OS5/
│       │   │   ├── .hg/
│       │   │   │   ├── 00changelog.i
│       │   │   │   ├── branch
│       │   │   │   ├── cache/
│       │   │   │   │   ├── branch2-base
│       │   │   │   │   ├── rbc-names-v1
│       │   │   │   │   ├── rbc-revs-v1
│       │   │   │   │   └── tags2-visible
│       │   │   │   ├── dirstate
│       │   │   │   ├── hgrc
│       │   │   │   ├── requires
│       │   │   │   ├── store/
│       │   │   │   │   ├── 00changelog.i
│       │   │   │   │   ├── 00manifest.i
│       │   │   │   │   ├── data/
│       │   │   │   │   │   ├── _socket/
│       │   │   │   │   │   │   ├── _d_h_c_p_client.cpp.i
│       │   │   │   │   │   │   ├── _d_h_c_p_client.h.i
│       │   │   │   │   │   │   ├── _d_n_s_client.cpp.i
│       │   │   │   │   │   │   ├── _d_n_s_client.h.i
│       │   │   │   │   │   │   ├── _endpoint.cpp.i
│       │   │   │   │   │   │   ├── _endpoint.h.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_connection.cpp.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_connection.h.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_server.cpp.i
│       │   │   │   │   │   │   ├── _t_c_p_socket_server.h.i
│       │   │   │   │   │   │   ├── _w_i_znet___socket.cpp.i
│       │   │   │   │   │   │   ├── _w_i_znet___socket.h.i
│       │   │   │   │   │   │   ├── _w_i_znet___u_d_p_socket.cpp.i
│       │   │   │   │   │   │   ├── _w_i_znet___u_d_p_socket.h.i
│       │   │   │   │   │   │   ├── dnsname.h.i
│       │   │   │   │   │   │   └── pico__string.h.i
│       │   │   │   │   │   ├── _w_i_znet_interface.cpp.i
│       │   │   │   │   │   ├── _w_i_znet_interface.h.i
│       │   │   │   │   │   ├── arch/
│       │   │   │   │   │   │   ├── ext/
│       │   │   │   │   │   │   │   ├── _w5500.cpp.i
│       │   │   │   │   │   │   │   └── _w5500.h.i
│       │   │   │   │   │   │   └── int/
│       │   │   │   │   │   │       ├── _w7500x__toe.cpp.i
│       │   │   │   │   │   │       └── _w7500x__toe.h.i
│       │   │   │   │   │   └── eth__arch.h.i
│       │   │   │   │   └── fncache
│       │   │   │   └── wcache/
│       │   │   │       └── manifestfulltextcache
│       │   │   ├── Socket/
│       │   │   │   ├── DHCPClient.cpp
│       │   │   │   ├── DHCPClient.h
│       │   │   │   ├── DNSClient.cpp
│       │   │   │   ├── DNSClient.h
│       │   │   │   ├── Endpoint.cpp
│       │   │   │   ├── Endpoint.h
│       │   │   │   ├── TCPSocketConnection.cpp
│       │   │   │   ├── TCPSocketConnection.h
│       │   │   │   ├── TCPSocketServer.cpp
│       │   │   │   ├── TCPSocketServer.h
│       │   │   │   ├── WIZnet_Socket.cpp
│       │   │   │   ├── WIZnet_Socket.h
│       │   │   │   ├── WIZnet_UDPSocket.cpp
│       │   │   │   ├── WIZnet_UDPSocket.h
│       │   │   │   ├── dnsname.h
│       │   │   │   └── pico_string.h
│       │   │   ├── WIZnetInterface.cpp
│       │   │   ├── WIZnetInterface.h
│       │   │   ├── arch/
│       │   │   │   ├── ext/
│       │   │   │   │   ├── W5500.cpp
│       │   │   │   │   └── W5500.h
│       │   │   │   └── int/
│       │   │   │       ├── W7500x_toe.cpp
│       │   │   │       └── W7500x_toe.h
│       │   │   └── eth_arch.h
│       │   ├── WIZnetInterface-OS5.lib
│       │   ├── configuration.h
│       │   ├── custom_targets.json
│       │   ├── drivers/
│       │   │   └── softPwm/
│       │   │       ├── softPwm.cpp
│       │   │       └── softPwm.h
│       │   ├── extern.h
│       │   ├── lib/
│       │   │   └── ArduinoJson6/
│       │   │       ├── ArduinoJson/
│       │   │       │   ├── Array/
│       │   │       │   │   ├── ArrayFunctions.hpp
│       │   │       │   │   ├── ArrayImpl.hpp
│       │   │       │   │   ├── ArrayIterator.hpp
│       │   │       │   │   ├── ArrayRef.hpp
│       │   │       │   │   ├── ArrayShortcuts.hpp
│       │   │       │   │   ├── ElementProxy.hpp
│       │   │       │   │   └── Utilities.hpp
│       │   │       │   ├── Collection/
│       │   │       │   │   ├── CollectionData.hpp
│       │   │       │   │   └── CollectionImpl.hpp
│       │   │       │   ├── Configuration.hpp
│       │   │       │   ├── Deserialization/
│       │   │       │   │   ├── ArduinoStreamReader.hpp
│       │   │       │   │   ├── CharPointerReader.hpp
│       │   │       │   │   ├── DeserializationError.hpp
│       │   │       │   │   ├── FlashStringReader.hpp
│       │   │       │   │   ├── IteratorReader.hpp
│       │   │       │   │   ├── NestingLimit.hpp
│       │   │       │   │   ├── StdStreamReader.hpp
│       │   │       │   │   └── deserialize.hpp
│       │   │       │   ├── Document/
│       │   │       │   │   ├── BasicJsonDocument.hpp
│       │   │       │   │   ├── DynamicJsonDocument.hpp
│       │   │       │   │   ├── JsonDocument.hpp
│       │   │       │   │   └── StaticJsonDocument.hpp
│       │   │       │   ├── Json/
│       │   │       │   │   ├── EscapeSequence.hpp
│       │   │       │   │   ├── JsonDeserializer.hpp
│       │   │       │   │   ├── JsonSerializer.hpp
│       │   │       │   │   ├── PrettyJsonSerializer.hpp
│       │   │       │   │   ├── TextFormatter.hpp
│       │   │       │   │   └── Utf8.hpp
│       │   │       │   ├── Memory/
│       │   │       │   │   ├── Alignment.hpp
│       │   │       │   │   ├── MemoryPool.hpp
│       │   │       │   │   ├── StringBuilder.hpp
│       │   │       │   │   └── StringSlot.hpp
│       │   │       │   ├── Misc/
│       │   │       │   │   ├── SerializedValue.hpp
│       │   │       │   │   └── Visitable.hpp
│       │   │       │   ├── MsgPack/
│       │   │       │   │   ├── MsgPackDeserializer.hpp
│       │   │       │   │   ├── MsgPackSerializer.hpp
│       │   │       │   │   ├── endianess.hpp
│       │   │       │   │   └── ieee754.hpp
│       │   │       │   ├── Namespace.hpp
│       │   │       │   ├── Numbers/
│       │   │       │   │   ├── Float.hpp
│       │   │       │   │   ├── FloatParts.hpp
│       │   │       │   │   ├── FloatTraits.hpp
│       │   │       │   │   ├── Integer.hpp
│       │   │       │   │   ├── convertNumber.hpp
│       │   │       │   │   ├── parseFloat.hpp
│       │   │       │   │   ├── parseInteger.hpp
│       │   │       │   │   └── parseNumber.hpp
│       │   │       │   ├── Object/
│       │   │       │   │   ├── MemberProxy.hpp
│       │   │       │   │   ├── ObjectFunctions.hpp
│       │   │       │   │   ├── ObjectImpl.hpp
│       │   │       │   │   ├── ObjectIterator.hpp
│       │   │       │   │   ├── ObjectRef.hpp
│       │   │       │   │   ├── ObjectShortcuts.hpp
│       │   │       │   │   └── Pair.hpp
│       │   │       │   ├── Operators/
│       │   │       │   │   ├── VariantCasts.hpp
│       │   │       │   │   ├── VariantComparisons.hpp
│       │   │       │   │   ├── VariantOperators.hpp
│       │   │       │   │   ├── VariantOr.hpp
│       │   │       │   │   └── VariantShortcuts.hpp
│       │   │       │   ├── Polyfills/
│       │   │       │   │   ├── alias_cast.hpp
│       │   │       │   │   ├── assert.hpp
│       │   │       │   │   ├── attributes.hpp
│       │   │       │   │   ├── ctype.hpp
│       │   │       │   │   ├── gsl/
│       │   │       │   │   │   └── not_null.hpp
│       │   │       │   │   ├── limits.hpp
│       │   │       │   │   ├── math.hpp
│       │   │       │   │   ├── mpl/
│       │   │       │   │   │   └── max.hpp
│       │   │       │   │   ├── type_traits/
│       │   │       │   │   │   ├── conditional.hpp
│       │   │       │   │   │   ├── enable_if.hpp
│       │   │       │   │   │   ├── integral_constant.hpp
│       │   │       │   │   │   ├── is_array.hpp
│       │   │       │   │   │   ├── is_base_of.hpp
│       │   │       │   │   │   ├── is_const.hpp
│       │   │       │   │   │   ├── is_floating_point.hpp
│       │   │       │   │   │   ├── is_integral.hpp
│       │   │       │   │   │   ├── is_same.hpp
│       │   │       │   │   │   ├── is_signed.hpp
│       │   │       │   │   │   ├── is_unsigned.hpp
│       │   │       │   │   │   ├── make_unsigned.hpp
│       │   │       │   │   │   ├── remove_const.hpp
│       │   │       │   │   │   ├── remove_reference.hpp
│       │   │       │   │   │   └── type_identity.hpp
│       │   │       │   │   ├── type_traits.hpp
│       │   │       │   │   └── utility.hpp
│       │   │       │   ├── Serialization/
│       │   │       │   │   ├── DummyWriter.hpp
│       │   │       │   │   ├── DynamicStringWriter.hpp
│       │   │       │   │   ├── StaticStringWriter.hpp
│       │   │       │   │   ├── StreamWriter.hpp
│       │   │       │   │   ├── measure.hpp
│       │   │       │   │   └── serialize.hpp
│       │   │       │   ├── StringStorage/
│       │   │       │   │   ├── StringCopier.hpp
│       │   │       │   │   ├── StringMover.hpp
│       │   │       │   │   └── StringStorage.hpp
│       │   │       │   ├── Strings/
│       │   │       │   │   ├── ArduinoStringAdapter.hpp
│       │   │       │   │   ├── ConstRamStringAdapter.hpp
│       │   │       │   │   ├── FlashStringAdapter.hpp
│       │   │       │   │   ├── RamStringAdapter.hpp
│       │   │       │   │   ├── SizedFlashStringAdapter.hpp
│       │   │       │   │   ├── SizedRamStringAdapter.hpp
│       │   │       │   │   ├── StlStringAdapter.hpp
│       │   │       │   │   ├── String.hpp
│       │   │       │   │   └── StringAdapters.hpp
│       │   │       │   ├── Variant/
│       │   │       │   │   ├── SlotFunctions.hpp
│       │   │       │   │   ├── VariantAs.hpp
│       │   │       │   │   ├── VariantAsImpl.hpp
│       │   │       │   │   ├── VariantContent.hpp
│       │   │       │   │   ├── VariantData.hpp
│       │   │       │   │   ├── VariantFunctions.hpp
│       │   │       │   │   ├── VariantImpl.hpp
│       │   │       │   │   ├── VariantRef.hpp
│       │   │       │   │   ├── VariantSlot.hpp
│       │   │       │   │   └── VariantTo.hpp
│       │   │       │   ├── compatibility.hpp
│       │   │       │   └── version.hpp
│       │   │       ├── ArduinoJson.h
│       │   │       └── ArduinoJson.hpp
│       │   ├── main.cpp
│       │   ├── mbed-os.lib
│       │   ├── mbed_app.json
│       │   ├── modules/
│       │   │   ├── blink/
│       │   │   │   ├── blink.cpp
│       │   │   │   └── blink.h
│       │   │   ├── debug/
│       │   │   │   ├── debug.cpp
│       │   │   │   └── debug.h
│       │   │   ├── digipot/
│       │   │   │   ├── DigipotBase.h
│       │   │   │   ├── mcp4451.cpp
│       │   │   │   └── mcp4451.h
│       │   │   ├── digitalPin/
│       │   │   │   ├── digitalPin.cpp
│       │   │   │   └── digitalPin.h
│       │   │   ├── eStop/
│       │   │   │   ├── eStop.cpp
│       │   │   │   └── eStop.h
│       │   │   ├── encoder/
│       │   │   │   ├── encoder.cpp
│       │   │   │   └── encoder.h
│       │   │   ├── module.cpp
│       │   │   ├── module.h
│       │   │   ├── motorPower/
│       │   │   │   ├── motorPower.cpp
│       │   │   │   └── motorPower.h
│       │   │   ├── pwm/
│       │   │   │   ├── hardwarePwm.cpp
│       │   │   │   ├── hardwarePwm.h
│       │   │   │   ├── pwm.cpp
│       │   │   │   └── pwm.h
│       │   │   ├── qei/
│       │   │   │   ├── qei.cpp
│       │   │   │   └── qei.h
│       │   │   ├── rcservo/
│       │   │   │   ├── rcservo.cpp
│       │   │   │   └── rcservo.h
│       │   │   ├── resetPin/
│       │   │   │   ├── resetPin.cpp
│       │   │   │   └── resetPin.h
│       │   │   ├── stepgen/
│       │   │   │   ├── stepgen.cpp
│       │   │   │   └── stepgen.h
│       │   │   ├── switch/
│       │   │   │   ├── switch.cpp
│       │   │   │   └── switch.h
│       │   │   ├── temperature/
│       │   │   │   ├── temperature.cpp
│       │   │   │   └── temperature.h
│       │   │   └── tmc/
│       │   │       ├── tmc.h
│       │   │       ├── tmc2208.cpp
│       │   │       └── tmc2209.cpp
│       │   ├── remora.h
│       │   ├── sensors/
│       │   │   ├── tempSensor.h
│       │   │   └── thermistor/
│       │   │       ├── thermistor.cpp
│       │   │       └── thermistor.h
│       │   ├── thread/
│       │   │   ├── timerInterrupt.cpp
│       │   │   └── timerInterrupt.h
│       │   └── update_mks_robin.py
│       └── Remora-OS6/
│           ├── README.md
│           ├── SoftwareSerial/
│           │   ├── SoftwareSerial.cpp
│           │   └── SoftwareSerial.h
│           ├── TARGET_MANTA8/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_MONSTER8/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_OCTOPUS_429/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_OCTOPUS_446/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_ROBIN_3/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_ROBIN_E3/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SKRV1_4/
│           │   ├── drivers/
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── qeiInterrupt.cpp
│           │       ├── qeiInterrupt.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_SKRV2/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SKRV3/
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SKR_MINI_E3/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SPIDER/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_SPIDER_KING/
│           │   ├── PeripheralNames.h
│           │   ├── PeripheralPins.c
│           │   ├── PinNames.h
│           │   └── system_clock.c
│           ├── TARGET_STM32F1/
│           │   ├── drivers/
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_STM32F4/
│           │   ├── drivers/
│           │   │   ├── SDIO/
│           │   │   │   ├── SDIOBlockDevice.cpp
│           │   │   │   ├── SDIOBlockDevice.h
│           │   │   │   ├── sdio_device.c
│           │   │   │   └── sdio_device.h
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_STM32G0/
│           │   ├── drivers/
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TARGET_STM32H7/
│           │   ├── drivers/
│           │   │   ├── SDIO/
│           │   │   │   ├── SDIOBlockDevice.cpp
│           │   │   │   ├── SDIOBlockDevice.h
│           │   │   │   ├── sdio_device.c
│           │   │   │   └── sdio_device.h
│           │   │   ├── comms/
│           │   │   │   ├── RemoraComms.cpp
│           │   │   │   └── RemoraComms.h
│           │   │   ├── pin/
│           │   │   │   ├── pin.cpp
│           │   │   │   └── pin.h
│           │   │   └── qei/
│           │   │       ├── qeiDriver.cpp
│           │   │       └── qeiDriver.h
│           │   └── thread/
│           │       ├── createThreads.h
│           │       ├── interrupt.cpp
│           │       ├── interrupt.h
│           │       ├── irqHandlers.h
│           │       ├── pruThread.cpp
│           │       ├── pruThread.h
│           │       ├── timer.cpp
│           │       └── timer.h
│           ├── TMCStepper/
│           │   ├── CHOPCONF.cpp
│           │   ├── COOLCONF.cpp
│           │   ├── DRV_STATUS.cpp
│           │   ├── GCONF.cpp
│           │   ├── IHOLD_IRUN.cpp
│           │   ├── PWMCONF.cpp
│           │   ├── TMC2208Stepper.cpp
│           │   ├── TMC2208_bitfields.h
│           │   ├── TMC2209Stepper.cpp
│           │   ├── TMC2209_bitfields.h
│           │   ├── TMCStepper.cpp
│           │   ├── TMCStepper.h
│           │   └── TMC_MACROS.h
│           ├── configuration.h
│           ├── custom_targets.json
│           ├── drivers/
│           │   └── softPwm/
│           │       ├── softPwm.cpp
│           │       └── softPwm.h
│           ├── extern.h
│           ├── lib/
│           │   └── ArduinoJson6/
│           │       ├── ArduinoJson/
│           │       │   ├── Array/
│           │       │   │   ├── ArrayFunctions.hpp
│           │       │   │   ├── ArrayImpl.hpp
│           │       │   │   ├── ArrayIterator.hpp
│           │       │   │   ├── ArrayRef.hpp
│           │       │   │   ├── ArrayShortcuts.hpp
│           │       │   │   ├── ElementProxy.hpp
│           │       │   │   └── Utilities.hpp
│           │       │   ├── Collection/
│           │       │   │   ├── CollectionData.hpp
│           │       │   │   └── CollectionImpl.hpp
│           │       │   ├── Configuration.hpp
│           │       │   ├── Deserialization/
│           │       │   │   ├── ArduinoStreamReader.hpp
│           │       │   │   ├── CharPointerReader.hpp
│           │       │   │   ├── DeserializationError.hpp
│           │       │   │   ├── FlashStringReader.hpp
│           │       │   │   ├── IteratorReader.hpp
│           │       │   │   ├── NestingLimit.hpp
│           │       │   │   ├── StdStreamReader.hpp
│           │       │   │   └── deserialize.hpp
│           │       │   ├── Document/
│           │       │   │   ├── BasicJsonDocument.hpp
│           │       │   │   ├── DynamicJsonDocument.hpp
│           │       │   │   ├── JsonDocument.hpp
│           │       │   │   └── StaticJsonDocument.hpp
│           │       │   ├── Json/
│           │       │   │   ├── EscapeSequence.hpp
│           │       │   │   ├── JsonDeserializer.hpp
│           │       │   │   ├── JsonSerializer.hpp
│           │       │   │   ├── PrettyJsonSerializer.hpp
│           │       │   │   ├── TextFormatter.hpp
│           │       │   │   └── Utf8.hpp
│           │       │   ├── Memory/
│           │       │   │   ├── Alignment.hpp
│           │       │   │   ├── MemoryPool.hpp
│           │       │   │   ├── StringBuilder.hpp
│           │       │   │   └── StringSlot.hpp
│           │       │   ├── Misc/
│           │       │   │   ├── SerializedValue.hpp
│           │       │   │   └── Visitable.hpp
│           │       │   ├── MsgPack/
│           │       │   │   ├── MsgPackDeserializer.hpp
│           │       │   │   ├── MsgPackSerializer.hpp
│           │       │   │   ├── endianess.hpp
│           │       │   │   └── ieee754.hpp
│           │       │   ├── Namespace.hpp
│           │       │   ├── Numbers/
│           │       │   │   ├── Float.hpp
│           │       │   │   ├── FloatParts.hpp
│           │       │   │   ├── FloatTraits.hpp
│           │       │   │   ├── Integer.hpp
│           │       │   │   ├── convertNumber.hpp
│           │       │   │   ├── parseFloat.hpp
│           │       │   │   ├── parseInteger.hpp
│           │       │   │   └── parseNumber.hpp
│           │       │   ├── Object/
│           │       │   │   ├── MemberProxy.hpp
│           │       │   │   ├── ObjectFunctions.hpp
│           │       │   │   ├── ObjectImpl.hpp
│           │       │   │   ├── ObjectIterator.hpp
│           │       │   │   ├── ObjectRef.hpp
│           │       │   │   ├── ObjectShortcuts.hpp
│           │       │   │   └── Pair.hpp
│           │       │   ├── Operators/
│           │       │   │   ├── VariantCasts.hpp
│           │       │   │   ├── VariantComparisons.hpp
│           │       │   │   ├── VariantOperators.hpp
│           │       │   │   ├── VariantOr.hpp
│           │       │   │   └── VariantShortcuts.hpp
│           │       │   ├── Polyfills/
│           │       │   │   ├── alias_cast.hpp
│           │       │   │   ├── assert.hpp
│           │       │   │   ├── attributes.hpp
│           │       │   │   ├── ctype.hpp
│           │       │   │   ├── gsl/
│           │       │   │   │   └── not_null.hpp
│           │       │   │   ├── limits.hpp
│           │       │   │   ├── math.hpp
│           │       │   │   ├── mpl/
│           │       │   │   │   └── max.hpp
│           │       │   │   ├── type_traits/
│           │       │   │   │   ├── conditional.hpp
│           │       │   │   │   ├── enable_if.hpp
│           │       │   │   │   ├── integral_constant.hpp
│           │       │   │   │   ├── is_array.hpp
│           │       │   │   │   ├── is_base_of.hpp
│           │       │   │   │   ├── is_const.hpp
│           │       │   │   │   ├── is_floating_point.hpp
│           │       │   │   │   ├── is_integral.hpp
│           │       │   │   │   ├── is_same.hpp
│           │       │   │   │   ├── is_signed.hpp
│           │       │   │   │   ├── is_unsigned.hpp
│           │       │   │   │   ├── make_unsigned.hpp
│           │       │   │   │   ├── remove_const.hpp
│           │       │   │   │   ├── remove_reference.hpp
│           │       │   │   │   └── type_identity.hpp
│           │       │   │   ├── type_traits.hpp
│           │       │   │   └── utility.hpp
│           │       │   ├── Serialization/
│           │       │   │   ├── DummyWriter.hpp
│           │       │   │   ├── DynamicStringWriter.hpp
│           │       │   │   ├── StaticStringWriter.hpp
│           │       │   │   ├── StreamWriter.hpp
│           │       │   │   ├── measure.hpp
│           │       │   │   └── serialize.hpp
│           │       │   ├── StringStorage/
│           │       │   │   ├── StringCopier.hpp
│           │       │   │   ├── StringMover.hpp
│           │       │   │   └── StringStorage.hpp
│           │       │   ├── Strings/
│           │       │   │   ├── ArduinoStringAdapter.hpp
│           │       │   │   ├── ConstRamStringAdapter.hpp
│           │       │   │   ├── FlashStringAdapter.hpp
│           │       │   │   ├── RamStringAdapter.hpp
│           │       │   │   ├── SizedFlashStringAdapter.hpp
│           │       │   │   ├── SizedRamStringAdapter.hpp
│           │       │   │   ├── StlStringAdapter.hpp
│           │       │   │   ├── String.hpp
│           │       │   │   └── StringAdapters.hpp
│           │       │   ├── Variant/
│           │       │   │   ├── SlotFunctions.hpp
│           │       │   │   ├── VariantAs.hpp
│           │       │   │   ├── VariantAsImpl.hpp
│           │       │   │   ├── VariantContent.hpp
│           │       │   │   ├── VariantData.hpp
│           │       │   │   ├── VariantFunctions.hpp
│           │       │   │   ├── VariantImpl.hpp
│           │       │   │   ├── VariantRef.hpp
│           │       │   │   ├── VariantSlot.hpp
│           │       │   │   └── VariantTo.hpp
│           │       │   ├── compatibility.hpp
│           │       │   └── version.hpp
│           │       ├── ArduinoJson.h
│           │       └── ArduinoJson.hpp
│           ├── main.cpp
│           ├── mbed-os.lib
│           ├── mbed_app.json
│           ├── modules/
│           │   ├── blink/
│           │   │   ├── blink.cpp
│           │   │   └── blink.h
│           │   ├── debug/
│           │   │   ├── debug.cpp
│           │   │   └── debug.h
│           │   ├── digipot/
│           │   │   ├── DigipotBase.h
│           │   │   ├── mcp4451.cpp
│           │   │   └── mcp4451.h
│           │   ├── digitalPin/
│           │   │   ├── digitalPin.cpp
│           │   │   └── digitalPin.h
│           │   ├── eStop/
│           │   │   ├── eStop.cpp
│           │   │   └── eStop.h
│           │   ├── encoder/
│           │   │   ├── encoder.cpp
│           │   │   └── encoder.h
│           │   ├── module.cpp
│           │   ├── module.h
│           │   ├── motorPower/
│           │   │   ├── motorPower.cpp
│           │   │   └── motorPower.h
│           │   ├── pwm/
│           │   │   ├── hardwarePwm.cpp
│           │   │   ├── hardwarePwm.h
│           │   │   ├── pwm.cpp
│           │   │   └── pwm.h
│           │   ├── qei/
│           │   │   ├── qei.cpp
│           │   │   └── qei.h
│           │   ├── rcservo/
│           │   │   ├── rcservo.cpp
│           │   │   └── rcservo.h
│           │   ├── resetPin/
│           │   │   ├── resetPin.cpp
│           │   │   └── resetPin.h
│           │   ├── stepgen/
│           │   │   ├── stepgen.cpp
│           │   │   └── stepgen.h
│           │   ├── switch/
│           │   │   ├── switch.cpp
│           │   │   └── switch.h
│           │   ├── temperature/
│           │   │   ├── temperature.cpp
│           │   │   └── temperature.h
│           │   └── tmc/
│           │       ├── tmc.h
│           │       ├── tmc2208.cpp
│           │       └── tmc2209.cpp
│           ├── remora.h
│           ├── sensors/
│           │   ├── tempSensor.h
│           │   └── thermistor/
│           │       ├── thermistor.cpp
│           │       └── thermistor.h
│           ├── thread/
│           │   ├── timerInterrupt.cpp
│           │   └── timerInterrupt.h
│           └── update_mks_robin.py
├── LinuxCNC/
│   ├── Components/
│   │   ├── NVMPG/
│   │   │   └── nvmpg.c
│   │   ├── PIDcontroller/
│   │   │   ├── PIDcontroller.c
│   │   │   └── PIDcontroller.md
│   │   ├── PRUencoder/
│   │   │   └── PRUencoder.c
│   │   ├── README.md
│   │   ├── Remora/
│   │   │   ├── bcm2835.c
│   │   │   ├── bcm2835.h
│   │   │   ├── remora.h
│   │   │   └── remora_lpc.c
│   │   ├── Remora-eth/
│   │   │   ├── remora-eth-3.0.c
│   │   │   └── remora-eth-3.0.h
│   │   └── Remora-spi/
│   │       ├── bcm2835.c
│   │       ├── bcm2835.h
│   │       ├── dtcboards.h
│   │       ├── gpiochip_rp1.c
│   │       ├── gpiochip_rp1.h
│   │       ├── remora-spi.c
│   │       ├── remora.h
│   │       ├── rp1lib.c
│   │       ├── rp1lib.h
│   │       ├── spi-dw.c
│   │       └── spi-dw.h
│   ├── ConfigSamples/
│   │   ├── ender3/
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── custom_postgui.hal
│   │   │   ├── ender3.hal
│   │   │   ├── ender3.ini
│   │   │   ├── gcode2ngc.py
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   └── tool.tbl
│   │   ├── hypercube/
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── autosave.halscope
│   │   │   ├── compensation.py
│   │   │   ├── custom_postgui.hal
│   │   │   ├── gcode2ngc.py
│   │   │   ├── hypercube.hal
│   │   │   ├── hypercube.ini
│   │   │   ├── hypercube.pref
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   ├── tool.tbl
│   │   │   └── tool.tbl.bak
│   │   ├── remora-closed-loop/
│   │   │   ├── .qtpyvcp-messages.json
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── autosave.halscope
│   │   │   ├── compensation.py
│   │   │   ├── custom_postgui.hal
│   │   │   ├── encoder-fb.halscope
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── my.halshow
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   ├── remora.hal
│   │   │   ├── remora.ini
│   │   │   ├── remora.pref
│   │   │   └── tool.tbl
│   │   ├── remora-eth/
│   │   │   ├── 3D_printer_panel.xml
│   │   │   ├── 3Dprinter.hal
│   │   │   ├── autosave.halscope
│   │   │   ├── custom_postgui.hal
│   │   │   ├── gcode2ngc.py
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── probe-results.txt
│   │   │   ├── pyvcp_options.hal
│   │   │   ├── remora-eth.hal
│   │   │   ├── remora-eth.ini
│   │   │   └── tool.tbl
│   │   ├── remora-octopus/
│   │   │   ├── Remora-XY.prefs
│   │   │   ├── axis.ngc
│   │   │   ├── custom_postgui.hal
│   │   │   ├── halshow.preferences
│   │   │   ├── linuxcnc.var
│   │   │   ├── linuxcnc.var.bak
│   │   │   ├── postgui_call_list.hal
│   │   │   ├── remora-xyz.hal
│   │   │   ├── remora-xyz.ini
│   │   │   ├── tool.tbl
│   │   │   └── usercommand_regularmac_800.py
│   │   └── remora-xyz/
│   │       ├── custom_postgui.hal
│   │       ├── postgui_call_list.hal
│   │       ├── remora-xyz.hal
│   │       ├── remora-xyz.ini
│   │       └── tool.tbl
│   └── README.md
└── README.md
Download .txt
Showing preview only (282K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3091 symbols across 485 files)

FILE: Firmware/FirmwareSource/Remora-OS5/SoftwareSerial/SoftwareSerial.h
  function class (line 19) | class SoftwareSerial

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 61) | typedef enum {
  type I2CName (line 70) | typedef enum {
  type PWMName (line 76) | typedef enum {
  type CANName (line 91) | typedef enum {
  type USBName (line 96) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/system_clock.c
  function SystemInit (line 65) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 145) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 203) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 59) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 73) | typedef enum {
  type CANName (line 88) | typedef enum {
  type QSPIName (line 93) | typedef enum {
  type USBName (line 97) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/system_clock.c
  function SystemInit (line 67) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 149) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 223) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 58) | typedef enum {
  type I2CName (line 64) | typedef enum {
  type PWMName (line 69) | typedef enum {
  type CANName (line 78) | typedef enum {
  type USBName (line 82) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PinNames.h
  type PinName (line 41) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/system_clock.c
  function SystemInit (line 65) | void SystemInit (void)
  function SetSysClock_PLL_HSE (line 161) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 212) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/CONFIG.h
  function namespace (line 30) | namespace AjK {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/DATALUTS.cpp
  type AjK (line 33) | namespace AjK {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/INIT.cpp
  type AjK (line 25) | namespace AjK {
    class MODDMA (line 29) | class MODDMA

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/MODDMA.cpp
  type AjK (line 25) | namespace AjK {
    class MODDMA (line 28) | class MODDMA
    class MODDMA (line 28) | class MODDMA
    function MODDMA_IRQHandler (line 75) | void MODDMA_IRQHandler(void) {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/MODDMA.h
  function namespace (line 39) | namespace AjK {
  function class (line 251) | class MODDMA

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/SETUP.cpp
  type AjK (line 25) | namespace AjK {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example1.h
  function main (line 19) | int main() {
  function dmaTCCallback (line 56) | void dmaTCCallback(void) {
  function dmaERRCallback (line 61) | void dmaERRCallback(void) {
  function TC0_callback (line 66) | void TC0_callback(void) {
  function ERR0_callback (line 86) | void ERR0_callback(void) {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example2.h
  function main (line 25) | int main() {
  function TC0_callback (line 107) | void TC0_callback(void) {
  function ERR0_callback (line 131) | void ERR0_callback(void) {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example3.h
  function main (line 37) | int main() {
  function TC0_callback (line 109) | void TC0_callback(void) {
  function ERR0_callback (line 129) | void ERR0_callback(void) {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example4.h
  function main (line 33) | int main() {
  function TC0_callback (line 111) | void TC0_callback(void) {
  function ERR0_callback (line 130) | void ERR0_callback(void) {
  function TC1_callback (line 135) | void TC1_callback(void) {
  function ERR1_callback (line 154) | void ERR1_callback(void) {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/RemoraComms.h
  function class (line 15) | class RemoraComms

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/pin/pin.cpp
  function PinName (line 166) | PinName Pin::pinToPinName()
  function PwmOut (line 191) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/qei/qeiDriver.h
  function class (line 13) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/irqHandlers.h
  function TIMER0_IRQHandler (line 3) | void TIMER0_IRQHandler()
  function TIMER1_IRQHandler (line 13) | void TIMER1_IRQHandler(void)
  function TIMER2_IRQHandler (line 23) | void TIMER2_IRQHandler(void)
  function QEI_IRQHandler (line 33) | void QEI_IRQHandler(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/qeiInterrupt.h
  function class (line 8) | class qeiInterrupt : public Interrupt

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/timer.h
  function class (line 10) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV2/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 50) | typedef enum {
  type SPIName (line 60) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 72) | typedef enum {
  type CANName (line 87) | typedef enum {
  type USBName (line 92) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV2/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV2/system_clock.c
  function SystemInit (line 64) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 142) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 197) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKR_MINI_E3/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 58) | typedef enum {
  type I2CName (line 64) | typedef enum {
  type PWMName (line 69) | typedef enum {
  type CANName (line 78) | typedef enum {
  type USBName (line 82) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKR_MINI_E3/PinNames.h
  type PinName (line 41) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_SKR_MINI_E3/system_clock.c
  function SystemInit (line 65) | void SystemInit (void)
  function SetSysClock_PLL_HSE (line 161) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 212) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/comms/RemoraComms.h
  function class (line 12) | class RemoraComms

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/pin/pin.cpp
  function PinName (line 176) | PinName Pin::pinToPinName()
  function PwmOut (line 184) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/qei/qeiDriver.h
  function class (line 14) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/irqHandlers.h
  function TIM1_IRQHandler (line 4) | void TIM1_IRQHandler()
  function TIM2_IRQHandler (line 14) | void TIM2_IRQHandler()
  function TIM3_IRQHandler (line 24) | void TIM3_IRQHandler()

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/timer.h
  function class (line 14) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/stm32f103xe.h
  type IRQn_Type (line 69) | typedef enum
  type ADC_TypeDef (line 161) | typedef struct
  type ADC_Common_TypeDef (line 185) | typedef struct
  type BKP_TypeDef (line 198) | typedef struct
  type CAN_TxMailBox_TypeDef (line 253) | typedef struct
  type CAN_FIFOMailBox_TypeDef (line 265) | typedef struct
  type CAN_FilterRegister_TypeDef (line 277) | typedef struct
  type CAN_TypeDef (line 287) | typedef struct
  type CRC_TypeDef (line 317) | typedef struct
  type DAC_TypeDef (line 330) | typedef struct
  type DBGMCU_TypeDef (line 351) | typedef struct
  type DMA_Channel_TypeDef (line 361) | typedef struct
  type DMA_TypeDef (line 369) | typedef struct
  type EXTI_TypeDef (line 381) | typedef struct
  type FLASH_TypeDef (line 395) | typedef struct
  type OB_TypeDef (line 412) | typedef struct
  type FSMC_Bank1_TypeDef (line 428) | typedef struct
  type FSMC_Bank1E_TypeDef (line 437) | typedef struct
  type FSMC_Bank2_3_TypeDef (line 446) | typedef struct
  type FSMC_Bank4_TypeDef (line 468) | typedef struct
  type GPIO_TypeDef (line 481) | typedef struct
  type AFIO_TypeDef (line 496) | typedef struct
  type I2C_TypeDef (line 508) | typedef struct
  type IWDG_TypeDef (line 525) | typedef struct
  type PWR_TypeDef (line 537) | typedef struct
  type RCC_TypeDef (line 547) | typedef struct
  type RTC_TypeDef (line 567) | typedef struct
  type SDIO_TypeDef (line 585) | typedef struct
  type SPI_TypeDef (line 613) | typedef struct
  type TIM_TypeDef (line 629) | typedef struct
  type USART_TypeDef (line 659) | typedef struct
  type USB_TypeDef (line 674) | typedef struct
  type WWDG_TypeDef (line 709) | typedef struct

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/stm32f1xx.h
  type FlagStatus (line 169) | typedef enum
  type FunctionalState (line 175) | typedef enum
  type ErrorStatus (line 182) | typedef enum

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/objects.h
  type gpio_irq_s (line 42) | struct gpio_irq_s {
  type port_s (line 49) | struct port_s {

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/SDIOBlockDevice.cpp
  type mbed (line 22) | namespace mbed
    function bd_size_t (line 370) | bd_size_t SDIOBlockDevice::get_read_size() const
    function bd_size_t (line 375) | bd_size_t SDIOBlockDevice::get_program_size() const
    function bd_size_t (line 380) | bd_size_t SDIOBlockDevice::size() const

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/SDIOBlockDevice.h
  function namespace (line 26) | namespace mbed

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/sdio_device.c
  function _SDIO_IRQHandler (line 36) | void _SDIO_IRQHandler(void)
  function _DMA_Stream_Rx_IRQHandler (line 44) | void _DMA_Stream_Rx_IRQHandler(void)
  function _DMA_Stream_Tx_IRQHandler (line 52) | void _DMA_Stream_Tx_IRQHandler(void)
  function HAL_SD_MspInit (line 61) | void HAL_SD_MspInit(SD_HandleTypeDef *hsd)
  function HAL_SD_MspDeInit (line 176) | void HAL_SD_MspDeInit(SD_HandleTypeDef *hsd)
  function __weak (line 207) | __weak void SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params)
  function SD_WideBus_Enable (line 236) | static uint32_t SD_WideBus_Enable(SD_HandleTypeDef *hsd)
  function SD_Init (line 269) | uint8_t SD_Init(void)
  function SD_DeInit (line 300) | uint8_t SD_DeInit(void)
  function SD_ReadBlocks (line 327) | uint8_t SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOf...
  function SD_WriteBlocks (line 347) | uint8_t SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t Num...
  function SD_ReadBlocks_DMA (line 366) | uint8_t SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t N...
  function SD_WriteBlocks_DMA (line 388) | uint8_t SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t...
  function SD_Erase (line 409) | uint8_t SD_Erase(uint32_t StartAddr, uint32_t EndAddr)
  function SD_GetCardState (line 429) | uint8_t SD_GetCardState(void)
  function SD_GetCardInfo (line 439) | void SD_GetCardInfo(SD_Cardinfo_t *CardInfo)
  function SD_DMA_ReadPending (line 466) | uint8_t SD_DMA_ReadPending(void)
  function SD_DMA_WritePending (line 478) | uint8_t SD_DMA_WritePending(void)
  function HAL_SD_RxCpltCallback (line 488) | void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
  function HAL_SD_TxCpltCallback (line 498) | void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/sdio_device.h
  type SD_Cardinfo_t (line 30) | typedef struct

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/comms/RemoraComms.h
  function class (line 12) | class RemoraComms

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/pin/pin.cpp
  function PinName (line 189) | PinName Pin::pinToPinName()
  function PwmOut (line 197) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/qei/qeiDriver.cpp
  function HAL_TIM_Encoder_MspInit (line 83) | void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/qei/qeiDriver.h
  function class (line 14) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/irqHandlers.h
  function TIM9_IRQHandler (line 14) | void TIM9_IRQHandler()
  function TIM10_IRQHandler (line 24) | void TIM10_IRQHandler()
  function TIM11_IRQHandler (line 34) | void TIM11_IRQHandler()

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/timer.h
  function class (line 14) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMC2208_bitfields.h
  function namespace (line 4) | namespace TMC2208_n {
  function namespace (line 25) | namespace TMC2208_n {
  function namespace (line 48) | namespace TMC2224_n {
  type FACTORY_CONF_t (line 70) | struct FACTORY_CONF_t {
  function namespace (line 82) | namespace TMC2208_n {
  type MSCURACT_t (line 89) | struct MSCURACT_t {
  function namespace (line 101) | namespace TMC2208_n {

FILE: Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMC2209_bitfields.h
  function namespace (line 4) | namespace TMC2209_n {
  type SLAVECONF_t (line 55) | struct SLAVECONF_t {
  type PWM_AUTO_t (line 66) | struct PWM_AUTO_t {
  type GCONF_t (line 78) | struct GCONF_t {
  type IHOLD_IRUN_t (line 115) | struct IHOLD_IRUN_t {
  type GSTAT_t (line 129) | struct GSTAT_t {
  type TPOWERDOWN_t (line 141) | struct TPOWERDOWN_t {
  type TPWMTHRS_t (line 146) | struct TPWMTHRS_t {
  type TCOOLTHRS_t (line 151) | struct TCOOLTHRS_t {
  type THIGH_t (line 156) | struct THIGH_t {
  type XDIRECT_t (line 161) | struct XDIRECT_t {
  type VDCMIN_t (line 173) | struct VDCMIN_t {
  type CHOPCONF_t (line 178) | struct CHOPCONF_t {
  type DCCTRL_t (line 209) | struct DCCTRL_t {
  type PWMCONF_t (line 221) | struct PWMCONF_t {
  type ENCM_CTRL_t (line 236) | struct ENCM_CTRL_t {

FILE: Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMCStepper.h
  function class (line 21) | class TMCStepper {
  function class (line 110) | class TMC2208Stepper : public TMCStepper {
  function class (line 304) | class TMC2209Stepper : public TMC2208Stepper {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/DHCPClient.h
  function class (line 24) | class DHCPClient {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/DNSClient.h
  function class (line 6) | class DNSClient {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/Endpoint.h
  function class (line 28) | class Endpoint {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/TCPSocketServer.h
  function class (line 26) | class TCPSocketServer : public WIZnet_Socket

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/WIZnet_Socket.h
  function class (line 30) | class WIZnet_Socket {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/WIZnet_UDPSocket.h
  function class (line 28) | class WIZnet_UDPSocket: public WIZnet_Socket {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/dnsname.h
  function class (line 5) | class dnsname {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/pico_string.h
  function class (line 3) | class pico_string {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/WIZnetInterface.h
  function class (line 24) | class WIZnetInterface: public WIZnet_Chip {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/ext/W5500.cpp
  function str_to_ip (line 421) | uint32_t str_to_ip(const char* str)
  function printfBytes (line 437) | void printfBytes(char* str, uint8_t* buf, int len)
  function printHex (line 446) | void printHex(uint8_t* buf, int len)
  function debug_hex (line 460) | void debug_hex(uint8_t* buf, int len)

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/ext/W5500.h
  type PHYMode (line 147) | enum PHYMode {
  function class (line 154) | class WIZnet_Chip {
  function setMR (line 396) | void setMR(uint8_t mr) {
  function getMR (line 407) | uint8_t getMR() {
  function setGAR (line 417) | void setGAR(uint8_t * gar) {
  function getGAR (line 427) | void getGAR(uint8_t * gar) {
  function setSUBR (line 437) | void setSUBR(uint8_t * subr) {
  function getSUBR (line 448) | void getSUBR(uint8_t * subr) {
  function setSHAR (line 458) | void setSHAR(uint8_t * shar) {
  function getSHAR (line 468) | void getSHAR(uint8_t * shar) {
  function setSIPR (line 478) | void setSIPR(uint8_t * sipr) {
  function getSIPR (line 488) | void getSIPR(uint8_t * sipr) {
  function setIR (line 498) | void setIR(uint8_t ir) {
  function getIR (line 508) | uint8_t getIR() {
  function setIMR (line 518) | void setIMR(uint8_t imr) {
  function getIMR (line 528) | uint8_t getIMR() {
  function setSIR (line 539) | void setSIR(uint8_t sir) {
  function getSIR (line 549) | uint8_t getSIR() {
  function setSIMR (line 558) | void setSIMR(uint8_t simr) {
  function getSIMR (line 568) | uint8_t getSIMR() {
  function setRTR (line 578) | void setRTR(uint16_t rtr)   {
  function getRTR (line 588) | uint16_t getRTR() {
  function setRCR (line 598) | void setRCR(uint8_t rcr) {
  function getRCR (line 608) | uint8_t getRCR() {
  function setPHYCFGR (line 620) | void setPHYCFGR(uint8_t phycfgr) {
  function getPHYCFGR (line 630) | uint8_t getPHYCFGR() {
  function setSn_MR (line 647) | void setSn_MR(uint8_t sn, uint8_t mr) {
  function getSn_MR (line 658) | uint8_t getSn_MR(uint8_t sn) {
  function setSn_CR (line 669) | void setSn_CR(uint8_t sn, uint8_t cr) {
  function getSn_CR (line 680) | uint8_t getSn_CR(uint8_t sn) {
  function setSn_IR (line 691) | void setSn_IR(uint8_t sn, uint8_t ir) {
  function getSn_IR (line 702) | uint8_t getSn_IR(uint8_t sn) {
  function setSn_IMR (line 713) | void setSn_IMR(uint8_t sn, uint8_t imr) {
  function getSn_IMR (line 724) | uint8_t getSn_IMR(uint8_t sn) {
  function getSn_SR (line 734) | uint8_t getSn_SR(uint8_t sn) {
  function setSn_PORT (line 745) | void setSn_PORT(uint8_t sn, uint16_t port)  {
  function getSn_PORT (line 756) | uint16_t getSn_PORT(uint8_t sn) {
  function setSn_DHAR (line 767) | void setSn_DHAR(uint8_t sn, uint8_t * dhar) {
  function getSn_DHAR (line 778) | void getSn_DHAR(uint8_t sn, uint8_t * dhar) {
  function setSn_DIPR (line 789) | void setSn_DIPR(uint8_t sn, uint8_t * dipr) {
  function getSn_DIPR (line 800) | void getSn_DIPR(uint8_t sn, uint8_t * dipr) {
  function setSn_DPORT (line 811) | void setSn_DPORT(uint8_t sn, uint16_t dport) {
  function getSn_DPORT (line 822) | uint16_t getSn_DPORT(uint8_t sn) {
  function setSn_RXBUF_SIZE (line 834) | void setSn_RXBUF_SIZE(uint8_t sn, uint8_t rxbufsize) {
  function getSn_RXBUF_SIZE (line 846) | uint8_t getSn_RXBUF_SIZE(uint8_t sn) {
  function setSn_TXBUF_SIZE (line 857) | void setSn_TXBUF_SIZE(uint8_t sn, uint8_t txbufsize) {
  function getSn_TXBUF_SIZE (line 868) | uint8_t getSn_TXBUF_SIZE(uint8_t sn) {
  function getSn_TX_FSR (line 878) | uint16_t getSn_TX_FSR(uint8_t sn) {
  function getSn_TX_RD (line 889) | uint16_t getSn_TX_RD(uint8_t sn) {
  function setSn_TX_WR (line 900) | void setSn_TX_WR(uint8_t sn, uint16_t txwr) {
  function getSn_TX_WR (line 911) | uint16_t getSn_TX_WR(uint8_t sn) {
  function getSn_RX_RSR (line 922) | uint16_t getSn_RX_RSR(uint8_t sn) {
  function setSn_RX_RD (line 934) | void setSn_RX_RD(uint8_t sn, uint16_t rxrd) {
  function getSn_RX_RD (line 945) | uint16_t getSn_RX_RD(uint8_t sn) {
  function getSn_RX_WR (line 955) | uint16_t getSn_RX_WR(uint8_t sn) {
  function getSn_RxMAX (line 970) | uint16_t getSn_RxMAX(uint8_t sn) {
  function getSn_TxMAX (line 980) | uint16_t getSn_TxMAX(uint8_t sn) {
  function reg_wr_mac (line 1002) | void reg_wr_mac(uint16_t addr, uint8_t* data) {

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/int/W7500x_toe.cpp
  function str_to_ip (line 368) | uint32_t str_to_ip(const char* str)
  function printfBytes (line 384) | void printfBytes(char* str, uint8_t* buf, int len)
  function printHex (line 393) | void printHex(uint8_t* buf, int len)
  function debug_hex (line 407) | void debug_hex(uint8_t* buf, int len)
  function mdio_init (line 428) | void mdio_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin_MDC, uint16_t GPIO...
  function output_MDIO (line 439) | void output_MDIO(GPIO_TypeDef* GPIOx, uint32_t val, uint32_t n)
  function input_MDIO (line 455) | uint32_t input_MDIO( GPIO_TypeDef* GPIOx )
  function turnaround_MDIO (line 470) | void turnaround_MDIO( GPIO_TypeDef* GPIOx)
  function idle_MDIO (line 479) | void idle_MDIO( GPIO_TypeDef* GPIOx )
  function mdio_read (line 488) | uint32_t mdio_read(GPIO_TypeDef* GPIOx, uint32_t PhyRegAddr)
  function mdio_write (line 500) | void mdio_write(GPIO_TypeDef* GPIOx, uint32_t PhyRegAddr, uint32_t val)

FILE: Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/int/W7500x_toe.h
  type PHYMode (line 61) | enum PHYMode {
  function class (line 71) | class WIZnet_Chip {
  function reg_wr_mac (line 287) | void reg_wr_mac(uint16_t addr, uint8_t* data) {

FILE: Firmware/FirmwareSource/Remora-OS5/drivers/softPwm/softPwm.h
  function class (line 9) | class SoftPWM : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson.hpp
  type ArduinoJson (line 41) | namespace ArduinoJson {
    type DeserializationOption (line 66) | namespace DeserializationOption {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayFunctions.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function VariantData (line 11) | inline VariantData *arrayAdd(CollectionData *arr, MemoryPool *pool) {
    function arrayAccept (line 16) | inline void arrayAccept(const CollectionData *arr, Visitor &visitor) {
    function arrayEquals (line 23) | inline bool arrayEquals(const CollectionData *lhs, const CollectionDat...

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function ArrayRef (line 13) | inline ArrayRef ArrayShortcuts<TArray>::createNestedArray() const {
    function ObjectRef (line 18) | inline ObjectRef ArrayShortcuts<TArray>::createNestedObject() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayIterator.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class VariantPtr (line 12) | class VariantPtr {
      method VariantPtr (line 14) | VariantPtr(MemoryPool *pool, VariantData *data) : _variant(pool, dat...
      method VariantRef (line 16) | VariantRef *operator->() {
      method VariantRef (line 20) | VariantRef &operator*() {
    class ArrayIterator (line 28) | class ArrayIterator {
      method ArrayIterator (line 30) | ArrayIterator() : _slot(0) {}
      method ArrayIterator (line 31) | explicit ArrayIterator(MemoryPool *pool, VariantSlot *slot)
      method VariantRef (line 34) | VariantRef operator*() const {
      method VariantPtr (line 37) | VariantPtr operator->() {
      method ArrayIterator (line 49) | ArrayIterator &operator++() {
      method ArrayIterator (line 54) | ArrayIterator &operator+=(size_t distance) {
      method VariantSlot (line 59) | VariantSlot *internal() {
    class VariantConstPtr (line 68) | class VariantConstPtr {
      method VariantConstPtr (line 70) | VariantConstPtr(const VariantData *data) : _variant(data) {}
      method VariantConstRef (line 72) | VariantConstRef *operator->() {
      method VariantConstRef (line 76) | VariantConstRef &operator*() {
    class ArrayConstRefIterator (line 84) | class ArrayConstRefIterator {
      method ArrayConstRefIterator (line 86) | ArrayConstRefIterator() : _slot(0) {}
      method ArrayConstRefIterator (line 87) | explicit ArrayConstRefIterator(const VariantSlot *slot) : _slot(slot...
      method VariantConstRef (line 89) | VariantConstRef operator*() const {
      method VariantConstPtr (line 92) | VariantConstPtr operator->() {
      method ArrayConstRefIterator (line 104) | ArrayConstRefIterator &operator++() {
      method ArrayConstRefIterator (line 109) | ArrayConstRefIterator &operator+=(size_t distance) {
      method VariantSlot (line 114) | const VariantSlot *internal() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayRef.hpp
  type ARDUINOJSON_NAMESPACE (line 16) | namespace ARDUINOJSON_NAMESPACE {
    class ObjectRef (line 18) | class ObjectRef
    class ElementProxy (line 20) | class ElementProxy
    class ArrayRefBase (line 23) | class ArrayRefBase {
      method FORCE_INLINE (line 31) | FORCE_INLINE void accept(Visitor& visitor) const {
      method FORCE_INLINE (line 35) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 39) | FORCE_INLINE size_t memoryUsage() const {
      method FORCE_INLINE (line 43) | FORCE_INLINE size_t nesting() const {
      method FORCE_INLINE (line 47) | FORCE_INLINE size_t size() const {
      method ArrayRefBase (line 52) | ArrayRefBase(TData* data) : _data(data) {}
    class ArrayConstRef (line 56) | class ArrayConstRef : public ArrayRefBase<const CollectionData>,
      method FORCE_INLINE (line 64) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 69) | FORCE_INLINE iterator end() const {
      method FORCE_INLINE (line 73) | FORCE_INLINE ArrayConstRef() : base_type(0) {}
      method FORCE_INLINE (line 74) | FORCE_INLINE ArrayConstRef(const CollectionData* data) : base_type(d...
      method FORCE_INLINE (line 76) | FORCE_INLINE bool operator==(ArrayConstRef rhs) const {
      method getElement (line 84) | getElement(size_t index) const {
    class ArrayRef (line 89) | class ArrayRef : public ArrayRefBase<CollectionData>,
      method VariantRef (line 110) | VariantRef addElement() const {
      method FORCE_INLINE (line 114) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 119) | FORCE_INLINE iterator end() const {
      method FORCE_INLINE (line 124) | FORCE_INLINE bool set(ArrayConstRef src) const {
      method FORCE_INLINE (line 129) | FORCE_INLINE bool operator==(ArrayRef rhs) const {
      method FORCE_INLINE (line 134) | FORCE_INLINE VariantRef getElement(size_t index) const {
      method FORCE_INLINE (line 139) | FORCE_INLINE void remove(iterator it) const {
      method FORCE_INLINE (line 145) | FORCE_INLINE void remove(size_t index) const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayShortcuts.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class ElementProxy (line 13) | class ElementProxy
    class ArrayShortcuts (line 16) | class ArrayShortcuts {
      method FORCE_INLINE (line 31) | FORCE_INLINE bool add(const T &value) const {
      method FORCE_INLINE (line 38) | FORCE_INLINE bool add(T *value) const {
      method TArray (line 43) | const TArray *impl() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ElementProxy.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class ElementProxy (line 18) | class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
      method FORCE_INLINE (line 26) | FORCE_INLINE this_type& operator=(const this_type& src) {
      method FORCE_INLINE (line 37) | FORCE_INLINE this_type& operator=(const T& src) {
      method FORCE_INLINE (line 45) | FORCE_INLINE this_type& operator=(T* src) {
      method FORCE_INLINE (line 50) | FORCE_INLINE void clear() const {
      method FORCE_INLINE (line 54) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 59) | FORCE_INLINE typename VariantAs<T>::type as() const {
      method FORCE_INLINE (line 64) | FORCE_INLINE bool is() const {
      method FORCE_INLINE (line 69) | FORCE_INLINE typename VariantTo<T>::type to() const {
      method FORCE_INLINE (line 79) | FORCE_INLINE bool set(const TValue& value) const {
      method FORCE_INLINE (line 86) | FORCE_INLINE bool set(TValue* value) const {
      method accept (line 91) | void accept(Visitor& visitor) const {
      method FORCE_INLINE (line 95) | FORCE_INLINE size_t size() const {
      method VariantRef (line 100) | VariantRef getMember(TNestedKey* key) const {
      method VariantRef (line 105) | VariantRef getMember(const TNestedKey& key) const {
      method VariantRef (line 110) | VariantRef getOrAddMember(TNestedKey* key) const {
      method VariantRef (line 115) | VariantRef getOrAddMember(const TNestedKey& key) const {
      method VariantRef (line 119) | VariantRef addElement() const {
      method VariantRef (line 123) | VariantRef getElement(size_t index) const {
      method FORCE_INLINE (line 127) | FORCE_INLINE void remove(size_t index) const {
      method FORCE_INLINE (line 134) | FORCE_INLINE typename enable_if<IsString<TChar*>::value>::type remove(
      method FORCE_INLINE (line 141) | FORCE_INLINE typename enable_if<IsString<TString>::value>::type remove(
      method FORCE_INLINE (line 147) | FORCE_INLINE VariantRef getUpstreamElement() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/Utilities.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function copyArray (line 13) | inline bool copyArray(T (&src)[N], ArrayRef dst) {
    function copyArray (line 19) | inline bool copyArray(T* src, size_t len, ArrayRef dst) {
    function copyArray (line 29) | inline bool copyArray(T (&src)[N1][N2], ArrayRef dst) {
    function copyArray (line 42) | inline size_t copyArray(ArrayConstRef src, T (&dst)[N]) {
    function copyArray (line 48) | inline size_t copyArray(ArrayConstRef src, T* dst, size_t len) {
    function copyArray (line 58) | inline void copyArray(ArrayConstRef src, T (&dst)[N1][N2]) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Collection/CollectionData.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class MemoryPool (line 9) | class MemoryPool
    class VariantData (line 10) | class VariantData
    class VariantSlot (line 11) | class VariantSlot
    class CollectionData (line 13) | class CollectionData {
      method VariantSlot (line 45) | VariantSlot *head() const {
      method remove (line 52) | void remove(TAdaptedString key) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Collection/CollectionImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function VariantSlot (line 12) | inline VariantSlot* CollectionData::addSlot(MemoryPool* pool) {
    function VariantData (line 28) | inline VariantData* CollectionData::add(MemoryPool* pool) {
    function VariantData (line 33) | inline VariantData* CollectionData::add(TAdaptedString key, MemoryPool...
    function VariantSlot (line 92) | inline VariantSlot* CollectionData::getSlot(TAdaptedString key) const {
    function VariantSlot (line 101) | inline VariantSlot* CollectionData::getSlot(size_t index) const {
    function VariantSlot (line 105) | inline VariantSlot* CollectionData::getPreviousSlot(VariantSlot* targe...
    function VariantData (line 116) | inline VariantData* CollectionData::get(TAdaptedString key) const {
    function VariantData (line 121) | inline VariantData* CollectionData::get(size_t index) const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/ArduinoStreamReader.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    type ArduinoStreamReader (line 13) | struct ArduinoStreamReader {
      method ArduinoStreamReader (line 19) | explicit ArduinoStreamReader(Stream& stream)
      method read (line 22) | char read() {
      method ended (line 29) | bool ended() const {
    function ArduinoStreamReader (line 34) | inline ArduinoStreamReader makeReader(Stream& input) {
      method ArduinoStreamReader (line 19) | explicit ArduinoStreamReader(Stream& stream)
      method read (line 22) | char read() {
      method ended (line 29) | bool ended() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/CharPointerReader.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class UnsafeCharPointerReader (line 9) | class UnsafeCharPointerReader {
      method UnsafeCharPointerReader (line 13) | explicit UnsafeCharPointerReader(const char* ptr)
      method read (line 16) | char read() {
      method ended (line 20) | bool ended() const {
    class SafeCharPointerReader (line 26) | class SafeCharPointerReader {
      method SafeCharPointerReader (line 31) | explicit SafeCharPointerReader(const char* ptr, size_t len)
      method read (line 34) | char read() {
      method ended (line 38) | bool ended() const {
    function UnsafeCharPointerReader (line 44) | inline UnsafeCharPointerReader makeReader(TChar* input) {
      method UnsafeCharPointerReader (line 13) | explicit UnsafeCharPointerReader(const char* ptr)
      method read (line 16) | char read() {
      method ended (line 20) | bool ended() const {
    function SafeCharPointerReader (line 49) | inline SafeCharPointerReader makeReader(TChar* input, size_t n) {
      method SafeCharPointerReader (line 31) | explicit SafeCharPointerReader(const char* ptr, size_t len)
      method read (line 34) | char read() {
      method ended (line 38) | bool ended() const {
    function SafeCharPointerReader (line 54) | inline SafeCharPointerReader makeReader(const ::String& input) {
      method SafeCharPointerReader (line 31) | explicit SafeCharPointerReader(const char* ptr, size_t len)
      method read (line 34) | char read() {
      method ended (line 38) | bool ended() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/DeserializationError.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    class DeserializationError (line 13) | class DeserializationError {
      method safeBoolHelper (line 16) | void safeBoolHelper() const {}
      type Code (line 19) | enum Code {
      method DeserializationError (line 28) | DeserializationError() {}
      method DeserializationError (line 29) | DeserializationError(Code c) : _code(c) {}
      method Code (line 73) | Code code() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/FlashStringReader.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class UnsafeFlashStringReader (line 10) | class UnsafeFlashStringReader {
      method UnsafeFlashStringReader (line 14) | explicit UnsafeFlashStringReader(const __FlashStringHelper* ptr)
      method read (line 17) | char read() {
      method ended (line 21) | bool ended() const {
    class SafeFlashStringReader (line 27) | class SafeFlashStringReader {
      method SafeFlashStringReader (line 32) | explicit SafeFlashStringReader(const __FlashStringHelper* ptr, size_...
      method read (line 35) | char read() {
      method ended (line 39) | bool ended() const {
    function UnsafeFlashStringReader (line 44) | inline UnsafeFlashStringReader makeReader(const __FlashStringHelper* i...
      method UnsafeFlashStringReader (line 14) | explicit UnsafeFlashStringReader(const __FlashStringHelper* ptr)
      method read (line 17) | char read() {
      method ended (line 21) | bool ended() const {
    function SafeFlashStringReader (line 48) | inline SafeFlashStringReader makeReader(const __FlashStringHelper* input,
      method SafeFlashStringReader (line 32) | explicit SafeFlashStringReader(const __FlashStringHelper* ptr, size_...
      method read (line 35) | char read() {
      method ended (line 39) | bool ended() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/IteratorReader.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class IteratorReader (line 10) | class IteratorReader {
      method IteratorReader (line 14) | explicit IteratorReader(TIterator begin, TIterator end)
      method ended (line 17) | bool ended() const {
      method read (line 21) | char read() {
    function makeReader (line 27) | inline IteratorReader<typename TInput::const_iterator> makeReader(

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/NestingLimit.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type NestingLimit (line 11) | struct NestingLimit {
      method NestingLimit (line 12) | NestingLimit() : value(ARDUINOJSON_DEFAULT_NESTING_LIMIT) {}
      method NestingLimit (line 13) | explicit NestingLimit(uint8_t n) : value(n) {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/StdStreamReader.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    class StdStreamReader (line 13) | class StdStreamReader {
      method StdStreamReader (line 18) | explicit StdStreamReader(std::istream& stream)
      method ended (line 21) | bool ended() const {
      method read (line 25) | char read() {
    function StdStreamReader (line 33) | inline StdStreamReader makeReader(std::istream& input) {
      method StdStreamReader (line 18) | explicit StdStreamReader(std::istream& stream)
      method ended (line 21) | bool ended() const {
      method read (line 25) | char read() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/deserialize.hpp
  type ARDUINOJSON_NAMESPACE (line 16) | namespace ARDUINOJSON_NAMESPACE {
    function makeDeserializer (line 20) | TDeserializer<TReader, TWriter> makeDeserializer(MemoryPool &pool,
    function deserialize (line 29) | typename enable_if<!is_array<TString>::value, DeserializationError>::type
    function DeserializationError (line 43) | DeserializationError deserialize(JsonDocument &doc, TChar *input,
    function DeserializationError (line 56) | DeserializationError deserialize(JsonDocument &doc, TChar *input,
    function DeserializationError (line 68) | DeserializationError deserialize(JsonDocument &doc, TStream &input,

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Document/BasicJsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class AllocatorOwner (line 12) | class AllocatorOwner {
      method AllocatorOwner (line 14) | AllocatorOwner() {}
      method AllocatorOwner (line 15) | AllocatorOwner(const AllocatorOwner& src) : _allocator(src._allocato...
      method AllocatorOwner (line 16) | AllocatorOwner(TAllocator allocator) : _allocator(allocator) {}
      method deallocate (line 22) | void deallocate(void* p) {
    class BasicJsonDocument (line 31) | class BasicJsonDocument : AllocatorOwner<TAllocator>, public JsonDocum...
      method BasicJsonDocument (line 33) | explicit BasicJsonDocument(size_t capa, TAllocator allocator = TAllo...
      method BasicJsonDocument (line 36) | BasicJsonDocument(const BasicJsonDocument& src)
      method BasicJsonDocument (line 43) | BasicJsonDocument(const T& src,
      method BasicJsonDocument (line 50) | BasicJsonDocument(VariantRef src)
      method BasicJsonDocument (line 59) | BasicJsonDocument& operator=(const BasicJsonDocument& src) {
      method BasicJsonDocument (line 66) | BasicJsonDocument& operator=(const T& src) {
      method MemoryPool (line 73) | MemoryPool allocPool(size_t requiredSize) {
      method reallocPoolIfTooSmall (line 78) | void reallocPoolIfTooSmall(size_t requiredSize) {
      method freePool (line 84) | void freePool() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Document/DynamicJsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    type DefaultAllocator (line 13) | struct DefaultAllocator {
      method deallocate (line 18) | void deallocate(void* p) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Document/JsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class JsonDocument (line 17) | class JsonDocument : public Visitable {
      method accept (line 20) | void accept(Visitor& visitor) const {
      method as (line 25) | typename VariantAs<T>::type as() {
      method as (line 30) | typename VariantConstAs<T>::type as() const {
      method clear (line 34) | void clear() {
      method is (line 40) | bool is() const {
      method isNull (line 44) | bool isNull() const {
      method memoryUsage (line 48) | size_t memoryUsage() const {
      method nesting (line 52) | size_t nesting() const {
      method capacity (line 56) | size_t capacity() const {
      method size (line 60) | size_t size() const {
      method set (line 64) | bool set(const JsonDocument& src) {
      method set (line 69) | typename enable_if<!is_base_of<JsonDocument, T>::value, bool>::type ...
      method to (line 75) | typename VariantTo<T>::type to() {
      method MemoryPool (line 81) | MemoryPool& memoryPool() {
      method VariantData (line 85) | VariantData& data() {
      method ArrayRef (line 89) | ArrayRef createNestedArray() {
      method ArrayRef (line 97) | ArrayRef createNestedArray(TChar* key) {
      method ArrayRef (line 104) | ArrayRef createNestedArray(const TString& key) {
      method ObjectRef (line 108) | ObjectRef createNestedObject() {
      method ObjectRef (line 116) | ObjectRef createNestedObject(TChar* key) {
      method ObjectRef (line 123) | ObjectRef createNestedObject(const TString& key) {
      method containsKey (line 131) | bool containsKey(TChar* key) const {
      method containsKey (line 138) | bool containsKey(const TString& key) const {
      method FORCE_INLINE (line 145) | FORCE_INLINE
      method FORCE_INLINE (line 156) | FORCE_INLINE typename enable_if<IsString<TChar*>::value,
      method FORCE_INLINE (line 165) | FORCE_INLINE
      method FORCE_INLINE (line 175) | FORCE_INLINE
      method FORCE_INLINE (line 189) | FORCE_INLINE VariantRef getElement(size_t index) {
      method getElement (line 193) | getElement(size_t index) const {
      method FORCE_INLINE (line 201) | FORCE_INLINE VariantConstRef getMember(TChar* key) const {
      method FORCE_INLINE (line 208) | FORCE_INLINE
      method FORCE_INLINE (line 218) | FORCE_INLINE VariantRef getMember(TChar* key) {
      method FORCE_INLINE (line 225) | FORCE_INLINE typename enable_if<IsString<TString>::value, VariantRef...
      method FORCE_INLINE (line 234) | FORCE_INLINE VariantRef getOrAddMember(TChar* key) {
      method FORCE_INLINE (line 241) | FORCE_INLINE VariantRef getOrAddMember(const TString& key) {
      method FORCE_INLINE (line 245) | FORCE_INLINE VariantRef addElement() {
      method FORCE_INLINE (line 250) | FORCE_INLINE bool add(const TValue& value) {
      method FORCE_INLINE (line 258) | FORCE_INLINE bool add(TChar* value) {
      method FORCE_INLINE (line 262) | FORCE_INLINE void remove(size_t index) {
      method FORCE_INLINE (line 269) | FORCE_INLINE typename enable_if<IsString<TChar*>::value>::type remove(
      method FORCE_INLINE (line 276) | FORCE_INLINE typename enable_if<IsString<TString>::value>::type remove(
      method JsonDocument (line 282) | JsonDocument(MemoryPool pool) : _pool(pool) {
      method JsonDocument (line 286) | JsonDocument(char* buf, size_t capa) : _pool(buf, capa) {
      method replacePool (line 290) | void replacePool(MemoryPool pool) {
      method VariantRef (line 295) | VariantRef getVariant() {
      method VariantConstRef (line 299) | VariantConstRef getVariant() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Document/StaticJsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class StaticJsonDocument (line 12) | class StaticJsonDocument : public JsonDocument {
      method StaticJsonDocument (line 17) | StaticJsonDocument() : JsonDocument(_buffer, _capacity) {}
      method StaticJsonDocument (line 19) | StaticJsonDocument(const StaticJsonDocument& src)
      method StaticJsonDocument (line 25) | StaticJsonDocument(const T& src,
      method StaticJsonDocument (line 32) | StaticJsonDocument(VariantRef src) : JsonDocument(_buffer, _capacity) {
      method StaticJsonDocument (line 36) | StaticJsonDocument operator=(const StaticJsonDocument& src) {
      method StaticJsonDocument (line 42) | StaticJsonDocument operator=(const T& src) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Json/EscapeSequence.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class EscapeSequence (line 9) | class EscapeSequence {
      method escapeChar (line 12) | static char escapeChar(char c) {
      method unescapeChar (line 21) | static char unescapeChar(char c) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Json/JsonDeserializer.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class JsonDeserializer (line 18) | class JsonDeserializer {
      method JsonDeserializer (line 23) | JsonDeserializer(MemoryPool &pool, TReader reader,
      method DeserializationError (line 30) | DeserializationError parse(VariantData &variant) {
      method current (line 49) | char current() {
      method move (line 60) | void move() {
      method FORCE_INLINE (line 64) | FORCE_INLINE bool eat(char charToSkip) {
      method DeserializationError (line 70) | DeserializationError parseArray(CollectionData &array) {
      method DeserializationError (line 105) | DeserializationError parseObject(CollectionData &object) {
      method DeserializationError (line 155) | DeserializationError parseValue(VariantData &variant) {
      method DeserializationError (line 163) | DeserializationError parseKey(const char *&key) {
      method DeserializationError (line 171) | DeserializationError parseStringValue(VariantData &variant) {
      method DeserializationError (line 179) | DeserializationError parseQuotedString(const char *&result) {
      method DeserializationError (line 220) | DeserializationError parseNonQuotedString(const char *&result) {
      method DeserializationError (line 241) | DeserializationError parseNumericValue(VariantData &result) {
      method DeserializationError (line 289) | DeserializationError parseCodepoint(uint16_t &codepoint) {
      method isBetween (line 302) | static inline bool isBetween(char c, char min, char max) {
      method canBeInNonQuotedString (line 306) | static inline bool canBeInNonQuotedString(char c) {
      method isQuote (line 311) | static inline bool isQuote(char c) {
      method decodeHex (line 315) | static inline uint8_t decodeHex(char c) {
      method DeserializationError (line 321) | DeserializationError skipSpacesAndComments() {
    function DeserializationError (line 389) | DeserializationError deserializeJson(
    function DeserializationError (line 396) | DeserializationError deserializeJson(
    function DeserializationError (line 403) | DeserializationError deserializeJson(
    function DeserializationError (line 410) | DeserializationError deserializeJson(

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Json/JsonSerializer.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    class JsonSerializer (line 15) | class JsonSerializer {
      method JsonSerializer (line 17) | JsonSerializer(TWriter &writer) : _formatter(writer) {}
      method FORCE_INLINE (line 19) | FORCE_INLINE void visitArray(const CollectionData &array) {
      method visitObject (line 36) | void visitObject(const CollectionData &object) {
      method visitFloat (line 55) | void visitFloat(Float value) {
      method visitString (line 59) | void visitString(const char *value) {
      method visitRawJson (line 63) | void visitRawJson(const char *data, size_t n) {
      method visitNegativeInteger (line 67) | void visitNegativeInteger(UInt value) {
      method visitPositiveInteger (line 71) | void visitPositiveInteger(UInt value) {
      method visitBoolean (line 75) | void visitBoolean(bool value) {
      method visitNull (line 79) | void visitNull() {
      method bytesWritten (line 83) | size_t bytesWritten() const {
      method write (line 88) | void write(char c) {
      method write (line 92) | void write(const char *s) {
    function serializeJson (line 101) | size_t serializeJson(const TSource &source, TDestination &destination) {
    function serializeJson (line 106) | size_t serializeJson(const TSource &source, char *buffer, size_t buffe...
    function measureJson (line 111) | size_t measureJson(const TSource &source) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Json/PrettyJsonSerializer.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    class PrettyJsonSerializer (line 15) | class PrettyJsonSerializer : public JsonSerializer<TWriter> {
      method PrettyJsonSerializer (line 19) | PrettyJsonSerializer(TWriter &writer) : base(writer), _nesting(0) {}
      method visitArray (line 21) | void visitArray(const CollectionData &array) {
      method visitObject (line 39) | void visitObject(const CollectionData &object) {
      method indent (line 60) | void indent() {
    function serializeJsonPretty (line 68) | size_t serializeJsonPretty(const TSource &source, TDestination &destin...
    function serializeJsonPretty (line 73) | size_t serializeJsonPretty(const TSource &source, char *buffer,
    function measureJsonPretty (line 79) | size_t measureJsonPretty(const TSource &source) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Json/TextFormatter.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    class TextFormatter (line 17) | class TextFormatter {
      method TextFormatter (line 19) | explicit TextFormatter(TWriter &writer) : _writer(writer), _length(0...
      method bytesWritten (line 22) | size_t bytesWritten() const {
      method writeBoolean (line 26) | void writeBoolean(bool value) {
      method writeString (line 33) | void writeString(const char *value) {
      method writeChar (line 43) | void writeChar(char c) {
      method writeFloat (line 54) | void writeFloat(T value) {
      method writeNegativeInteger (line 80) | void writeNegativeInteger(UInt value) {
      method writePositiveInteger (line 86) | void writePositiveInteger(T value) {
      method writeDecimals (line 101) | void writeDecimals(uint32_t value, int8_t width) {
      method writeRaw (line 118) | void writeRaw(const char *s) {
      method writeRaw (line 122) | void writeRaw(const char *s, size_t n) {
      method writeRaw (line 126) | void writeRaw(const char *begin, const char *end) {
      method writeRaw (line 132) | void writeRaw(const char (&s)[N]) {
      method writeRaw (line 135) | void writeRaw(char c) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Json/Utf8.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    type Utf8 (line 9) | namespace Utf8 {
      function encodeCodepoint (line 11) | inline void encodeCodepoint(uint16_t codepoint, TStringBuilder &str) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Memory/Alignment.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function isAligned (line 11) | inline bool isAligned(void *ptr) {
    function addPadding (line 17) | inline size_t addPadding(size_t bytes) {
    type AddPadding (line 23) | struct AddPadding {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Memory/MemoryPool.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    class MemoryPool (line 24) | class MemoryPool {
      method MemoryPool (line 26) | MemoryPool(char* buf, size_t capa)
      method capacity (line 41) | size_t capacity() const {
      method size (line 45) | size_t size() const {
      method VariantSlot (line 49) | VariantSlot* allocVariant() {
      method StringSlot (line 61) | StringSlot allocExpandableString() {
      method freezeString (line 70) | void freezeString(StringSlot& s, size_t newSize) {
      method clear (line 76) | void clear() {
      method canAlloc (line 81) | bool canAlloc(size_t bytes) const {
      method owns (line 85) | bool owns(void* p) const {
      method T (line 90) | T* allocRight() {
      method StringSlot (line 106) | StringSlot* allocStringSlot() {
      method checkInvariants (line 110) | void checkInvariants() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Memory/StringBuilder.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class StringBuilder (line 11) | class StringBuilder {
      method StringBuilder (line 13) | explicit StringBuilder(MemoryPool* parent) : _parent(parent), _size(...
      method append (line 17) | void append(const char* s) {
      method append (line 21) | void append(const char* s, size_t n) {
      method append (line 25) | void append(char c) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Memory/StringSlot.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    type StringSlot (line 14) | struct StringSlot {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Misc/SerializedValue.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class SerializedValue (line 13) | class SerializedValue {
      method SerializedValue (line 15) | explicit SerializedValue(T str) : _str(str) {}
      method size (line 24) | size_t size() const {
    class SerializedValue<TChar*> (line 34) | class SerializedValue<TChar*> {
      method SerializedValue (line 36) | explicit SerializedValue(TChar* p, size_t n) : _data(p), _size(n) {}
      method TChar (line 41) | TChar* data() const {
      method size (line 45) | size_t size() const {
    function serialized (line 55) | inline SerializedValue<T> serialized(T str) {
    function serialized (line 60) | inline SerializedValue<TChar*> serialized(TChar* p) {
    function serialized (line 65) | inline SerializedValue<TChar*> serialized(TChar* p, size_t n) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Misc/Visitable.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type Visitable (line 11) | struct Visitable {
    type IsVisitable (line 17) | struct IsVisitable : is_base_of<Visitable, T> {}
    type IsVisitable<T&> (line 20) | struct IsVisitable<T&> : IsVisitable<T> {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/MsgPack/MsgPackDeserializer.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    class MsgPackDeserializer (line 17) | class MsgPackDeserializer {
      method MsgPackDeserializer (line 22) | MsgPackDeserializer(MemoryPool &pool, TReader reader,
      method DeserializationError (line 29) | DeserializationError parse(VariantData &variant) {
      method skip (line 137) | bool skip(uint8_t n) {
      method readByte (line 145) | bool readByte(uint8_t &value) {
      method readBytes (line 151) | bool readBytes(uint8_t *p, size_t n) {
      method readBytes (line 159) | bool readBytes(T &value) {
      method T (line 164) | T readInteger() {
      method readInteger (line 172) | bool readInteger(T &value) {
      method DeserializationError (line 179) | DeserializationError readInteger(VariantData &variant) {
      method readFloat (line 187) | typename enable_if<sizeof(T) == 4, DeserializationError>::type readF...
      method readDouble (line 197) | typename enable_if<sizeof(T) == 8, DeserializationError>::type readD...
      method readDouble (line 207) | typename enable_if<sizeof(T) == 4, DeserializationError>::type readD...
      method DeserializationError (line 220) | DeserializationError readString(VariantData &variant) {
      method DeserializationError (line 227) | DeserializationError readString(const char *&str) {
      method DeserializationError (line 233) | DeserializationError readString(VariantData &variant, size_t n) {
      method DeserializationError (line 240) | DeserializationError readString(const char *&result, size_t n) {
      method DeserializationError (line 253) | DeserializationError readArray(CollectionData &array) {
      method DeserializationError (line 259) | DeserializationError readArray(CollectionData &array, size_t n) {
      method DeserializationError (line 274) | DeserializationError readObject(CollectionData &object) {
      method DeserializationError (line 280) | DeserializationError readObject(CollectionData &object, size_t n) {
      method DeserializationError (line 299) | DeserializationError parseKey(const char *&key) {
    function DeserializationError (line 327) | DeserializationError deserializeMsgPack(
    function DeserializationError (line 334) | DeserializationError deserializeMsgPack(
    function DeserializationError (line 341) | DeserializationError deserializeMsgPack(
    function DeserializationError (line 348) | DeserializationError deserializeMsgPack(

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/MsgPack/MsgPackSerializer.hpp
  type ARDUINOJSON_NAMESPACE (line 13) | namespace ARDUINOJSON_NAMESPACE {
    class MsgPackSerializer (line 16) | class MsgPackSerializer {
      method MsgPackSerializer (line 18) | MsgPackSerializer(TWriter& writer) : _writer(&writer), _bytesWritten...
      method visitFloat (line 21) | typename enable_if<sizeof(T) == 4>::type visitFloat(T value32) {
      method ARDUINOJSON_NO_SANITIZE (line 27) | ARDUINOJSON_NO_SANITIZE("float-cast-overflow")
      method visitArray (line 39) | void visitArray(const CollectionData& array) {
      method visitObject (line 55) | void visitObject(const CollectionData& object) {
      method visitString (line 72) | void visitString(const char* value) {
      method visitRawJson (line 92) | void visitRawJson(const char* data, size_t size) {
      method visitNegativeInteger (line 96) | void visitNegativeInteger(UInt value) {
      method visitPositiveInteger (line 118) | void visitPositiveInteger(UInt value) {
      method visitBoolean (line 139) | void visitBoolean(bool value) {
      method visitNull (line 143) | void visitNull() {
      method bytesWritten (line 147) | size_t bytesWritten() const {
      method writeByte (line 152) | void writeByte(uint8_t c) {
      method writeBytes (line 156) | void writeBytes(const uint8_t* p, size_t n) {
      method writeInteger (line 161) | void writeInteger(T value) {
    function serializeMsgPack (line 171) | inline size_t serializeMsgPack(const TSource& source, TDestination& ou...
    function serializeMsgPack (line 176) | inline size_t serializeMsgPack(const TSource& source, TDestination* ou...
    function measureMsgPack (line 182) | inline size_t measureMsgPack(const TSource& source) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/MsgPack/endianess.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function fixEndianess (line 13) | inline void fixEndianess(uint8_t *p, integral_constant<size_t, 8>) {
    function fixEndianess (line 20) | inline void fixEndianess(uint8_t *p, integral_constant<size_t, 4>) {
    function fixEndianess (line 25) | inline void fixEndianess(uint8_t *p, integral_constant<size_t, 2>) {
    function fixEndianess (line 29) | inline void fixEndianess(uint8_t *, integral_constant<size_t, 1>) {}
    function fixEndianess (line 32) | inline void fixEndianess(T &value) {
    function fixEndianess (line 38) | inline void fixEndianess(T &) {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/MsgPack/ieee754.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    function doubleToFloat (line 9) | inline void doubleToFloat(const uint8_t d[8], uint8_t f[4]) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/Float.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/FloatParts.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    type FloatParts (line 14) | struct FloatParts {
      method FloatParts (line 20) | FloatParts(TFloat value) {
      method normalize (line 57) | static int16_t normalize(TFloat& value) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/FloatTraits.hpp
  type ARDUINOJSON_NAMESPACE (line 13) | namespace ARDUINOJSON_NAMESPACE {
    type FloatTraits (line 16) | struct FloatTraits {}
    type FloatTraits<T, 8 /*64bits*/> (line 19) | struct FloatTraits<T, 8 /*64bits*/> {
      method T (line 29) | static T make_float(T m, TExponent e) {
      method T (line 45) | static T positiveBinaryPowerOfTen(int index) {
      method T (line 60) | static T negativeBinaryPowerOfTen(int index) {
      method T (line 75) | static T negativeBinaryPowerOfTenPlusOne(int index) {
      method T (line 90) | static T nan() {
      method T (line 94) | static T inf() {
      method T (line 98) | static T highest() {
      method T (line 102) | static T lowest() {
      method T (line 109) | static T forge(uint32_t msb, uint32_t lsb) {
    type FloatTraits<T, 4 /*32bits*/> (line 115) | struct FloatTraits<T, 4 /*32bits*/> {
      method T (line 125) | static T make_float(T m, TExponent e) {
      method T (line 141) | static T positiveBinaryPowerOfTen(int index) {
      method T (line 146) | static T negativeBinaryPowerOfTen(int index) {
      method T (line 151) | static T negativeBinaryPowerOfTenPlusOne(int index) {
      method T (line 156) | static T forge(uint32_t bits) {
      method T (line 160) | static T nan() {
      method T (line 164) | static T inf() {
      method T (line 168) | static T highest() {
      method T (line 172) | static T lowest() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/Integer.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/convertNumber.hpp
  type ARDUINOJSON_NAMESPACE (line 22) | namespace ARDUINOJSON_NAMESPACE {
    function canStorePositiveInteger (line 25) | typename enable_if<is_integral<TOut>::value && sizeof(TOut) <= sizeof(...
    function canStorePositiveInteger (line 32) | typename enable_if<is_integral<TOut>::value && sizeof(TIn) < sizeof(TO...
    function canStorePositiveInteger (line 39) | typename enable_if<is_floating_point<TOut>::value, bool>::type
    function canStoreNegativeInteger (line 45) | typename enable_if<is_floating_point<TOut>::value, bool>::type
    function canStoreNegativeInteger (line 51) | typename enable_if<is_integral<TOut>::value && is_signed<TOut>::value &&
    function canStoreNegativeInteger (line 59) | typename enable_if<is_integral<TOut>::value && is_signed<TOut>::value &&
    function canStoreNegativeInteger (line 67) | typename enable_if<is_integral<TOut>::value && is_unsigned<TOut>::value,
    function TOut (line 74) | TOut convertPositiveInteger(TIn value) {
    function TOut (line 79) | TOut convertNegativeInteger(TIn value) {
    function convertFloat (line 84) | typename enable_if<is_floating_point<TOut>::value, TOut>::type convert...
    function convertFloat (line 90) | typename enable_if<!is_floating_point<TOut>::value, TOut>::type conver...

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/parseFloat.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function T (line 13) | inline T parseFloat(const char* s) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/parseInteger.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    function T (line 13) | T parseInteger(const char *s) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Numbers/parseNumber.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    type ParsedNumber (line 18) | struct ParsedNumber {
      method ParsedNumber (line 19) | ParsedNumber() : uintValue(0), floatValue(0), _type(VALUE_IS_NULL) {}
      method ParsedNumber (line 21) | ParsedNumber(TUInt value, bool is_negative)
      method ParsedNumber (line 26) | ParsedNumber(TFloat value) : floatValue(value), _type(VALUE_IS_FLOAT...
      method T (line 29) | T as() const {
      method type (line 42) | uint8_t type() const {
    type choose_largest (line 52) | struct choose_largest : conditional<(sizeof(A) > sizeof(B)), A, B> {}
    function parseNumber (line 55) | inline ParsedNumber<TFloat, TUInt> parseNumber(const char *s) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Object/MemberProxy.hpp
  type ARDUINOJSON_NAMESPACE (line 16) | namespace ARDUINOJSON_NAMESPACE {
    class MemberProxy (line 19) | class MemberProxy : public VariantOperators<MemberProxy<TObject, TStri...
      method FORCE_INLINE (line 27) | FORCE_INLINE operator VariantConstRef() const {
      method FORCE_INLINE (line 31) | FORCE_INLINE this_type &operator=(const this_type &src) {
      method FORCE_INLINE (line 37) | FORCE_INLINE typename enable_if<!is_array<TValue>::value, this_type ...
      method FORCE_INLINE (line 47) | FORCE_INLINE this_type &operator=(TChar *src) {
      method FORCE_INLINE (line 52) | FORCE_INLINE void clear() const {
      method FORCE_INLINE (line 56) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 61) | FORCE_INLINE typename VariantAs<TValue>::type as() const {
      method FORCE_INLINE (line 66) | FORCE_INLINE bool is() const {
      method FORCE_INLINE (line 70) | FORCE_INLINE size_t size() const {
      method FORCE_INLINE (line 74) | FORCE_INLINE void remove(size_t index) const {
      method FORCE_INLINE (line 81) | FORCE_INLINE typename enable_if<IsString<TChar *>::value>::type remove(
      method FORCE_INLINE (line 88) | FORCE_INLINE typename enable_if<IsString<TString>::value>::type remove(
      method FORCE_INLINE (line 94) | FORCE_INLINE typename VariantTo<TValue>::type to() {
      method FORCE_INLINE (line 99) | FORCE_INLINE typename enable_if<!is_array<TValue>::value, bool>::typ...
      method FORCE_INLINE (line 108) | FORCE_INLINE bool set(const TChar *value) {
      method accept (line 113) | void accept(Visitor &visitor) const {
      method FORCE_INLINE (line 117) | FORCE_INLINE VariantRef addElement() const {
      method FORCE_INLINE (line 122) | FORCE_INLINE VariantRef getElement(size_t index) const {
      method FORCE_INLINE (line 130) | FORCE_INLINE VariantRef getMember(TChar *key) const {
      method FORCE_INLINE (line 137) | FORCE_INLINE VariantRef getMember(const TString &key) const {
      method FORCE_INLINE (line 145) | FORCE_INLINE VariantRef getOrAddMember(TChar *key) const {
      method FORCE_INLINE (line 152) | FORCE_INLINE VariantRef getOrAddMember(const TString &key) const {
      method FORCE_INLINE (line 157) | FORCE_INLINE VariantRef getUpstreamMember() const {
      method FORCE_INLINE (line 161) | FORCE_INLINE VariantRef getOrAddUpstreamMember() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Object/ObjectFunctions.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function objectAccept (line 12) | void objectAccept(const CollectionData *obj, Visitor &visitor) {
    function objectEquals (line 19) | inline bool objectEquals(const CollectionData *lhs, const CollectionDa...
    function VariantData (line 26) | inline VariantData *objectGet(const CollectionData *obj, TAdaptedStrin...
    function objectRemove (line 32) | void objectRemove(CollectionData *obj, TAdaptedString key) {
    function VariantData (line 38) | inline VariantData *objectGetOrCreate(CollectionData *obj, TAdaptedStr...

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Object/ObjectImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function ArrayRef (line 14) | inline ArrayRef ObjectShortcuts<TObject>::createNestedArray(
    function ArrayRef (line 21) | inline ArrayRef ObjectShortcuts<TObject>::createNestedArray(TChar* key...
    function ObjectRef (line 27) | inline ObjectRef ObjectShortcuts<TObject>::createNestedObject(
    function ObjectRef (line 34) | inline ObjectRef ObjectShortcuts<TObject>::createNestedObject(

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Object/ObjectIterator.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class PairPtr (line 12) | class PairPtr {
      method PairPtr (line 14) | PairPtr(MemoryPool *pool, VariantSlot *slot) : _pair(pool, slot) {}
      method Pair (line 16) | const Pair *operator->() const {
      method Pair (line 20) | const Pair &operator*() const {
    class ObjectIterator (line 28) | class ObjectIterator {
      method ObjectIterator (line 30) | ObjectIterator() : _slot(0) {}
      method ObjectIterator (line 32) | explicit ObjectIterator(MemoryPool *pool, VariantSlot *slot)
      method Pair (line 35) | Pair operator*() const {
      method PairPtr (line 38) | PairPtr operator->() {
      method ObjectIterator (line 50) | ObjectIterator &operator++() {
      method ObjectIterator (line 55) | ObjectIterator &operator+=(size_t distance) {
      method VariantSlot (line 60) | VariantSlot *internal() {
    class PairConstPtr (line 69) | class PairConstPtr {
      method PairConstPtr (line 71) | PairConstPtr(const VariantSlot *slot) : _pair(slot) {}
      method PairConst (line 73) | const PairConst *operator->() const {
      method PairConst (line 77) | const PairConst &operator*() const {
    class ObjectConstIterator (line 85) | class ObjectConstIterator {
      method ObjectConstIterator (line 87) | ObjectConstIterator() : _slot(0) {}
      method ObjectConstIterator (line 89) | explicit ObjectConstIterator(const VariantSlot *slot) : _slot(slot) {}
      method PairConst (line 91) | PairConst operator*() const {
      method PairConstPtr (line 94) | PairConstPtr operator->() {
      method ObjectConstIterator (line 106) | ObjectConstIterator &operator++() {
      method ObjectConstIterator (line 111) | ObjectConstIterator &operator+=(size_t distance) {
      method VariantSlot (line 116) | const VariantSlot *internal() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Object/ObjectRef.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class ObjectRefBase (line 18) | class ObjectRefBase {
      method FORCE_INLINE (line 26) | FORCE_INLINE void accept(Visitor& visitor) const {
      method FORCE_INLINE (line 30) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 34) | FORCE_INLINE size_t memoryUsage() const {
      method FORCE_INLINE (line 38) | FORCE_INLINE size_t nesting() const {
      method FORCE_INLINE (line 42) | FORCE_INLINE size_t size() const {
      method ObjectRefBase (line 47) | ObjectRefBase(TData* data) : _data(data) {}
    class ObjectConstRef (line 51) | class ObjectConstRef : public ObjectRefBase<const CollectionData>,
      method ObjectConstRef (line 59) | ObjectConstRef() : base_type(0) {}
      method ObjectConstRef (line 60) | ObjectConstRef(const CollectionData* data) : base_type(data) {}
      method FORCE_INLINE (line 62) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 67) | FORCE_INLINE iterator end() const {
      method FORCE_INLINE (line 74) | FORCE_INLINE bool containsKey(const TString& key) const {
      method FORCE_INLINE (line 82) | FORCE_INLINE bool containsKey(TChar* key) const {
      method FORCE_INLINE (line 89) | FORCE_INLINE VariantConstRef getMember(const TString& key) const {
      method FORCE_INLINE (line 97) | FORCE_INLINE VariantConstRef getMember(TChar* key) const {
      method FORCE_INLINE (line 104) | FORCE_INLINE
      method FORCE_INLINE (line 114) | FORCE_INLINE
      method FORCE_INLINE (line 120) | FORCE_INLINE bool operator==(ObjectConstRef rhs) const {
      method FORCE_INLINE (line 126) | FORCE_INLINE VariantConstRef get_impl(TAdaptedString key) const {
    class ObjectRef (line 131) | class ObjectRef : public ObjectRefBase<CollectionData>,
      method FORCE_INLINE (line 152) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 157) | FORCE_INLINE iterator end() const {
      method clear (line 161) | void clear() const {
      method FORCE_INLINE (line 166) | FORCE_INLINE bool set(ObjectConstRef src) {
      method FORCE_INLINE (line 174) | FORCE_INLINE VariantRef getMember(const TString& key) const {
      method FORCE_INLINE (line 182) | FORCE_INLINE VariantRef getMember(TChar* key) const {
      method FORCE_INLINE (line 189) | FORCE_INLINE VariantRef getOrAddMember(const TString& key) const {
      method FORCE_INLINE (line 197) | FORCE_INLINE VariantRef getOrAddMember(TChar* key) const {
      method FORCE_INLINE (line 201) | FORCE_INLINE bool operator==(ObjectRef rhs) const {
      method FORCE_INLINE (line 205) | FORCE_INLINE void remove(iterator it) const {
      method FORCE_INLINE (line 213) | FORCE_INLINE void remove(const TString& key) const {
      method FORCE_INLINE (line 221) | FORCE_INLINE void remove(TChar* key) const {
      method FORCE_INLINE (line 227) | FORCE_INLINE VariantRef get_impl(TAdaptedString key) const {
      method FORCE_INLINE (line 232) | FORCE_INLINE VariantRef getOrCreate_impl(TAdaptedString key) const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Object/ObjectShortcuts.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    class MemberProxy (line 13) | class MemberProxy
    class ObjectShortcuts (line 16) | class ObjectShortcuts {
      method TObject (line 70) | const TObject *impl() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Object/Pair.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class Pair (line 12) | class Pair {
      method Pair (line 14) | Pair(MemoryPool* pool, VariantSlot* slot) {
      method String (line 21) | String key() const {
      method VariantRef (line 25) | VariantRef value() const {
    class PairConst (line 34) | class PairConst {
      method PairConst (line 36) | PairConst(const VariantSlot* slot) {
      method String (line 43) | String key() const {
      method VariantConstRef (line 47) | VariantConstRef value() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Operators/VariantCasts.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class VariantCasts (line 12) | class VariantCasts {
      method FORCE_INLINE (line 15) | FORCE_INLINE operator T() const {
      method TImpl (line 20) | const TImpl *impl() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Operators/VariantComparisons.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type is_simple_value (line 11) | struct is_simple_value {
    class VariantComparisons (line 18) | class VariantComparisons {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Operators/VariantOperators.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    class VariantOperators (line 15) | class VariantOperators : public VariantCasts<TImpl>,

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Operators/VariantOr.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    class VariantOr (line 14) | class VariantOr {
      method TImpl (line 45) | const TImpl *impl() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Operators/VariantShortcuts.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class VariantShortcuts (line 13) | class VariantShortcuts : public ObjectShortcuts<TVariant>,

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/alias_cast.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    type alias_cast_t (line 15) | struct alias_cast_t {
    function T (line 23) | T alias_cast(F raw_data) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/ctype.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    function isdigit (line 9) | inline bool isdigit(char c) {
    function issign (line 13) | inline bool issign(char c) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/gsl/not_null.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class not_null (line 12) | class not_null {
      method not_null (line 14) | explicit not_null(T ptr) : _ptr(ptr) {
      method T (line 18) | T get() const {
    function make_not_null (line 28) | not_null<T> make_not_null(T ptr) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/limits.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    type numeric_limits (line 18) | struct numeric_limits
    type numeric_limits<T, typename enable_if<is_unsigned<T>::value>::type> (line 21) | struct numeric_limits<T, typename enable_if<is_unsigned<T>::value>::ty...
      method T (line 22) | static T lowest() {
      method T (line 25) | static T highest() {
    type numeric_limits<
    T, typename enable_if<is_integral<T>::value && is_signed<T>::value>::type> (line 31) | struct numeric_limits<
      method T (line 33) | static T lowest() {
      method T (line 36) | static T highest() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/math.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    function isnan (line 14) | bool isnan(T x) {
    function isinf (line 21) | bool isinf(T x) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/mpl/max.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type Max (line 13) | struct Max {}
    type Max<X, Y, true> (line 16) | struct Max<X, Y, true> {
    type Max<X, Y, false> (line 21) | struct Max<X, Y, false> {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/conditional.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    type conditional (line 10) | struct conditional {
    type conditional<false, TrueType, FalseType> (line 15) | struct conditional<false, TrueType, FalseType> {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/enable_if.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    type enable_if (line 11) | struct enable_if {}
    type enable_if<true, T> (line 14) | struct enable_if<true, T> {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/integral_constant.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    type integral_constant (line 10) | struct integral_constant {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_array.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type is_array (line 12) | struct is_array : false_type {}
    type is_array<T[]> (line 15) | struct is_array<T[]> : true_type {}
    type is_array<T[N]> (line 18) | struct is_array<T[N]> : true_type {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_base_of.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class is_base_of (line 12) | class is_base_of {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_const.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type is_const (line 13) | struct is_const : false_type {}
    type is_const<const T> (line 16) | struct is_const<const T> : true_type {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type is_floating_point (line 12) | struct is_floating_point : false_type {}
    type is_floating_point<float> (line 15) | struct is_floating_point<float> : true_type {}
    type is_floating_point<double> (line 18) | struct is_floating_point<double> : true_type {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_integral.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    type is_integral (line 14) | struct is_integral {
    type is_integral<const T> (line 34) | struct is_integral<const T> : is_integral<T> {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_same.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type is_same (line 13) | struct is_same : false_type {}
    type is_same<T, T> (line 16) | struct is_same<T, T> : true_type {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_signed.hpp
  type ARDUINOJSON_NAMESPACE (line 8) | namespace ARDUINOJSON_NAMESPACE {
    type is_signed (line 11) | struct is_signed : false_type {}
    type is_signed<char> (line 14) | struct is_signed<char> : true_type {}
    type is_signed<signed char> (line 17) | struct is_signed<signed char> : true_type {}
    type is_signed<signed short> (line 20) | struct is_signed<signed short> : true_type {}
    type is_signed<signed int> (line 23) | struct is_signed<signed int> : true_type {}
    type is_signed<signed long> (line 26) | struct is_signed<signed long> : true_type {}
    type is_signed<float> (line 29) | struct is_signed<float> : true_type {}
    type is_signed<double> (line 32) | struct is_signed<double> : true_type {}
    type is_signed<signed long long> (line 36) | struct is_signed<signed long long> : true_type {}
    type is_signed<signed __int64> (line 41) | struct is_signed<signed __int64> : true_type {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp
  type ARDUINOJSON_NAMESPACE (line 8) | namespace ARDUINOJSON_NAMESPACE {
    type is_unsigned (line 11) | struct is_unsigned : false_type {}
    type is_unsigned<bool> (line 14) | struct is_unsigned<bool> : true_type {}
    type is_unsigned<unsigned char> (line 17) | struct is_unsigned<unsigned char> : true_type {}
    type is_unsigned<unsigned short> (line 20) | struct is_unsigned<unsigned short> : true_type {}
    type is_unsigned<unsigned int> (line 23) | struct is_unsigned<unsigned int> : true_type {}
    type is_unsigned<unsigned long> (line 26) | struct is_unsigned<unsigned long> : true_type {}
    type is_unsigned<unsigned __int64> (line 30) | struct is_unsigned<unsigned __int64> : true_type {}
    type is_unsigned<unsigned long long> (line 35) | struct is_unsigned<unsigned long long> : true_type {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp
  type ARDUINOJSON_NAMESPACE (line 8) | namespace ARDUINOJSON_NAMESPACE {
    type make_unsigned (line 11) | struct make_unsigned
    type make_unsigned<char> (line 14) | struct make_unsigned<char> : type_identity<unsigned char> {}
    type make_unsigned<signed char> (line 17) | struct make_unsigned<signed char> : type_identity<unsigned char> {}
    type make_unsigned<unsigned char> (line 19) | struct make_unsigned<unsigned char> : type_identity<unsigned char> {}
    type make_unsigned<signed short> (line 22) | struct make_unsigned<signed short> : type_identity<unsigned short> {}
    type make_unsigned<unsigned short> (line 24) | struct make_unsigned<unsigned short> : type_identity<unsigned short> {}
    type make_unsigned<signed int> (line 27) | struct make_unsigned<signed int> : type_identity<unsigned int> {}
    type make_unsigned<unsigned int> (line 29) | struct make_unsigned<unsigned int> : type_identity<unsigned int> {}
    type make_unsigned<signed long> (line 32) | struct make_unsigned<signed long> : type_identity<unsigned long> {}
    type make_unsigned<unsigned long> (line 34) | struct make_unsigned<unsigned long> : type_identity<unsigned long> {}
    type make_unsigned<signed long long> (line 38) | struct make_unsigned<signed long long> : type_identity<unsigned long l...
    type make_unsigned<unsigned long long> (line 40) | struct make_unsigned<unsigned long long> : type_identity<unsigned long...
    type make_unsigned<signed __int64> (line 45) | struct make_unsigned<signed __int64> : type_identity<unsigned __int64> {}
    type make_unsigned<unsigned __int64> (line 47) | struct make_unsigned<unsigned __int64> : type_identity<unsigned __int6...

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/remove_const.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    type remove_const (line 11) | struct remove_const {
    type remove_const<const T> (line 15) | struct remove_const<const T> {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/remove_reference.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    type remove_reference (line 11) | struct remove_reference {
    type remove_reference<T&> (line 15) | struct remove_reference<T&> {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/type_traits/type_identity.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type type_identity (line 12) | struct type_identity {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Polyfills/utility.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    function swap (line 9) | inline void swap(T& a, T& b) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Serialization/DummyWriter.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class DummyWriter (line 9) | class DummyWriter {
      method write (line 11) | size_t write(uint8_t) {
      method write (line 15) | size_t write(const uint8_t*, size_t n) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Serialization/DynamicStringWriter.hpp
  type ARDUINOJSON_NAMESPACE (line 17) | namespace ARDUINOJSON_NAMESPACE {
    type IsWriteableString (line 20) | struct IsWriteableString : false_type {}
    class DynamicStringWriter (line 24) | class DynamicStringWriter {}
    type IsWriteableString<String> (line 28) | struct IsWriteableString<String> : true_type {}
    class DynamicStringWriter<String> (line 31) | class DynamicStringWriter<String> {
      method DynamicStringWriter (line 33) | DynamicStringWriter(String &str) : _str(&str) {}
      method write (line 35) | size_t write(uint8_t c) {
      method write (line 40) | size_t write(const uint8_t *s, size_t n) {
    type IsWriteableString<std::string> (line 58) | struct IsWriteableString<std::string> : true_type {}
    class DynamicStringWriter<std::string> (line 61) | class DynamicStringWriter<std::string> {
      method DynamicStringWriter (line 63) | DynamicStringWriter(std::string &str) : _str(&str) {}
      method write (line 65) | size_t write(uint8_t c) {
      method write (line 70) | size_t write(const uint8_t *s, size_t n) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Serialization/StaticStringWriter.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class StaticStringWriter (line 10) | class StaticStringWriter {
      method StaticStringWriter (line 12) | StaticStringWriter(char *buf, size_t size) : end(buf + size - 1), p(...
      method write (line 16) | size_t write(uint8_t c) {
      method write (line 23) | size_t write(const uint8_t *s, size_t n) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Serialization/StreamWriter.hpp
  type ARDUINOJSON_NAMESPACE (line 13) | namespace ARDUINOJSON_NAMESPACE {
    class StreamWriter (line 15) | class StreamWriter {
      method StreamWriter (line 17) | explicit StreamWriter(std::ostream& os) : _os(os) {}
      method write (line 19) | size_t write(uint8_t c) {
      method write (line 24) | size_t write(const uint8_t* s, size_t n) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Serialization/measure.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function measure (line 12) | size_t measure(const TSource &source) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Serialization/serialize.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    function doSerialize (line 18) | size_t doSerialize(const TSource &source, TDestination &destination) {
    function serialize (line 26) | size_t serialize(const TSource &source, std::ostream &destination) {
    function serialize (line 34) | size_t serialize(const TSource &source, Print &destination) {
    function serialize (line 40) | size_t serialize(const TSource &source, char *buffer, size_t bufferSiz...
    function serialize (line 46) | size_t serialize(const TSource &source, char (&buffer)[N]) {
    function serialize (line 53) | typename enable_if<IsWriteableString<TString>::value, size_t>::type se...

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/StringStorage/StringCopier.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class StringCopier (line 12) | class StringCopier {
      method StringCopier (line 16) | StringCopier(MemoryPool* pool) : _pool(pool) {}
      method StringBuilder (line 18) | StringBuilder startString() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/StringStorage/StringMover.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class StringMover (line 9) | class StringMover {
      class StringBuilder (line 11) | class StringBuilder {
        method StringBuilder (line 13) | StringBuilder(char** ptr) : _writePtr(ptr), _startPtr(*ptr) {}
        method append (line 15) | void append(char c) {
      method StringMover (line 29) | StringMover(char* ptr) : _ptr(ptr) {}
      method StringBuilder (line 31) | StringBuilder startString() {
        method StringBuilder (line 13) | StringBuilder(char** ptr) : _writePtr(ptr), _startPtr(*ptr) {}
        method append (line 15) | void append(char c) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/StringStorage/StringStorage.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    type StringStorage (line 13) | struct StringStorage {
      method type (line 16) | static type create(MemoryPool& pool, TInput&) {
    type StringStorage<TChar*,
                     typename enable_if<!is_const<TChar>::value>::type> (line 22) | struct StringStorage<TChar*,
      method type (line 26) | static type create(MemoryPool&, TChar* input) {
    function makeStringStorage (line 32) | typename StringStorage<TInput>::type makeStringStorage(MemoryPool& pool,
    function makeStringStorage (line 38) | typename StringStorage<TChar*>::type makeStringStorage(MemoryPool& pool,

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/ArduinoStringAdapter.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class ArduinoStringAdapter (line 11) | class ArduinoStringAdapter {
      method ArduinoStringAdapter (line 13) | ArduinoStringAdapter(const ::String& str) : _str(&str) {}
      method isNull (line 23) | bool isNull() const {
      method equals (line 28) | bool equals(const char* expected) const {
      method size (line 39) | size_t size() const {
      method isStatic (line 43) | bool isStatic() const {
    type IsString< ::String> (line 52) | struct IsString< ::String> : true_type {}
    type IsString< ::StringSumHelper> (line 55) | struct IsString< ::StringSumHelper> : true_type {}
    function ArduinoStringAdapter (line 57) | inline ArduinoStringAdapter adaptString(const ::String& str) {
      method ArduinoStringAdapter (line 13) | ArduinoStringAdapter(const ::String& str) : _str(&str) {}
      method isNull (line 23) | bool isNull() const {
      method equals (line 28) | bool equals(const char* expected) const {
      method size (line 39) | size_t size() const {
      method isStatic (line 43) | bool isStatic() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/ConstRamStringAdapter.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class ConstRamStringAdapter (line 12) | class ConstRamStringAdapter {
      method ConstRamStringAdapter (line 14) | ConstRamStringAdapter(const char* str = 0) : _str(str) {}
      method equals (line 16) | bool equals(const char* expected) const {
      method isNull (line 22) | bool isNull() const {
      method size (line 31) | size_t size() const {
      method isStatic (line 40) | bool isStatic() const {
    function ConstRamStringAdapter (line 48) | inline ConstRamStringAdapter adaptString(const char* str) {
      method ConstRamStringAdapter (line 14) | ConstRamStringAdapter(const char* str = 0) : _str(str) {}
      method equals (line 16) | bool equals(const char* expected) const {
      method isNull (line 22) | bool isNull() const {
      method size (line 31) | size_t size() const {
      method isStatic (line 40) | bool isStatic() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/FlashStringAdapter.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class FlashStringAdapter (line 9) | class FlashStringAdapter {
      method FlashStringAdapter (line 11) | FlashStringAdapter(const __FlashStringHelper* str) : _str(str) {}
      method equals (line 13) | bool equals(const char* expected) const {
      method isNull (line 19) | bool isNull() const {
      method size (line 35) | size_t size() const {
      method isStatic (line 40) | bool isStatic() const {
    function FlashStringAdapter (line 48) | inline FlashStringAdapter adaptString(const __FlashStringHelper* str) {
      method FlashStringAdapter (line 11) | FlashStringAdapter(const __FlashStringHelper* str) : _str(str) {}
      method equals (line 13) | bool equals(const char* expected) const {
      method isNull (line 19) | bool isNull() const {
      method size (line 35) | size_t size() const {
      method isStatic (line 40) | bool isStatic() const {
    type IsString<const __FlashStringHelper*> (line 53) | struct IsString<const __FlashStringHelper*> : true_type {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/RamStringAdapter.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class RamStringAdapter (line 11) | class RamStringAdapter : public ConstRamStringAdapter {
      method RamStringAdapter (line 13) | RamStringAdapter(const char* str) : ConstRamStringAdapter(str) {}
      method isStatic (line 23) | bool isStatic() const {
    function RamStringAdapter (line 29) | inline RamStringAdapter adaptString(const TChar* str) {
      method RamStringAdapter (line 13) | RamStringAdapter(const char* str) : ConstRamStringAdapter(str) {}
      method isStatic (line 23) | bool isStatic() const {
    function RamStringAdapter (line 33) | inline RamStringAdapter adaptString(char* str) {
      method RamStringAdapter (line 13) | RamStringAdapter(const char* str) : ConstRamStringAdapter(str) {}
      method isStatic (line 23) | bool isStatic() const {
    type IsString<TChar*> (line 38) | struct IsString<TChar*> {
    type IsString<void*> (line 43) | struct IsString<void*> {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/SizedFlashStringAdapter.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class SizedFlashStringAdapter (line 9) | class SizedFlashStringAdapter {
      method SizedFlashStringAdapter (line 11) | SizedFlashStringAdapter(const __FlashStringHelper* str, size_t sz)
      method equals (line 14) | bool equals(const char* expected) const {
      method isNull (line 20) | bool isNull() const {
      method size (line 31) | size_t size() const {
      method isStatic (line 35) | bool isStatic() const {
    function SizedFlashStringAdapter (line 44) | inline SizedFlashStringAdapter adaptString(const __FlashStringHelper* ...
      method SizedFlashStringAdapter (line 11) | SizedFlashStringAdapter(const __FlashStringHelper* str, size_t sz)
      method equals (line 14) | bool equals(const char* expected) const {
      method isNull (line 20) | bool isNull() const {
      method size (line 31) | size_t size() const {
      method isStatic (line 35) | bool isStatic() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/SizedRamStringAdapter.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class SizedRamStringAdapter (line 11) | class SizedRamStringAdapter {
      method SizedRamStringAdapter (line 13) | SizedRamStringAdapter(const char* str, size_t n) : _str(str), _size(...
      method equals (line 15) | bool equals(const char* expected) const {
      method isNull (line 21) | bool isNull() const {
      method size (line 32) | size_t size() const {
      method isStatic (line 36) | bool isStatic() const {
    function SizedRamStringAdapter (line 46) | inline SizedRamStringAdapter adaptString(const TChar* str, size_t size) {
      method SizedRamStringAdapter (line 13) | SizedRamStringAdapter(const char* str, size_t n) : _str(str), _size(...
      method equals (line 15) | bool equals(const char* expected) const {
      method isNull (line 21) | bool isNull() const {
      method size (line 32) | size_t size() const {
      method isStatic (line 36) | bool isStatic() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/StlStringAdapter.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class StlStringAdapter (line 11) | class StlStringAdapter {
      method StlStringAdapter (line 13) | StlStringAdapter(const std::string& str) : _str(&str) {}
      method isNull (line 22) | bool isNull() const {
      method equals (line 26) | bool equals(const char* expected) const {
      method size (line 35) | size_t size() const {
      method isStatic (line 39) | bool isStatic() const {
    type IsString<std::string> (line 48) | struct IsString<std::string> : true_type {}
    function StlStringAdapter (line 50) | inline StlStringAdapter adaptString(const std::string& str) {
      method StlStringAdapter (line 13) | StlStringAdapter(const std::string& str) : _str(&str) {}
      method isNull (line 22) | bool isNull() const {
      method equals (line 26) | bool equals(const char* expected) const {
      method size (line 35) | size_t size() const {
      method isStatic (line 39) | bool isStatic() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/String.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class String (line 11) | class String {
      method String (line 13) | String() : _data(0), _isStatic(true) {}
      method String (line 14) | String(const char* data, bool isStaticData = true)
      method isNull (line 21) | bool isNull() const {
      method isStatic (line 25) | bool isStatic() const {
    class StringAdapter (line 41) | class StringAdapter : public RamStringAdapter {
      method StringAdapter (line 43) | StringAdapter(const String& str)
      method isStatic (line 46) | bool isStatic() const {
    type IsString<String> (line 60) | struct IsString<String> : true_type {}
    function StringAdapter (line 62) | inline StringAdapter adaptString(const String& str) {
      method StringAdapter (line 43) | StringAdapter(const String& str)
      method isStatic (line 46) | bool isStatic() const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Strings/StringAdapters.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    type IsString (line 12) | struct IsString : false_type {}
    type IsString<const T> (line 15) | struct IsString<const T> : IsString<T> {}
    type IsString<T&> (line 18) | struct IsString<T&> : IsString<T> {}

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/SlotFunctions.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    function slotSetKey (line 15) | inline bool slotSetKey(VariantSlot* var, TAdaptedString key, MemoryPoo...
    function slotSize (line 27) | inline size_t slotSize(const VariantSlot* var) {
    function VariantData (line 36) | inline VariantData* slotData(VariantSlot* slot) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantAs.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class ArrayRef (line 11) | class ArrayRef
    class ArrayConstRef (line 12) | class ArrayConstRef
    class ObjectRef (line 13) | class ObjectRef
    class ObjectConstRef (line 14) | class ObjectConstRef
    class VariantRef (line 15) | class VariantRef
    class VariantConstRef (line 16) | class VariantConstRef
    type VariantAs (line 21) | struct VariantAs {
    type VariantAs<char*> (line 26) | struct VariantAs<char*> {
    type VariantConstAs (line 33) | struct VariantConstAs {
    type VariantConstAs<VariantRef> (line 38) | struct VariantConstAs<VariantRef> {
    type VariantConstAs<ObjectRef> (line 43) | struct VariantConstAs<ObjectRef> {
    type VariantConstAs<ArrayRef> (line 48) | struct VariantConstAs<ArrayRef> {
    function variantAs (line 55) | inline typename enable_if<is_integral<T>::value, T>::type variantAs(
    function variantAs (line 61) | inline typename enable_if<is_same<T, bool>::value, T>::type variantAs(
    function variantAs (line 67) | inline typename enable_if<is_floating_point<T>::value, T>::type varian...
    function variantAs (line 73) | inline typename enable_if<is_same<T, const char*>::value ||

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantAsImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    function variantAs (line 14) | inline typename enable_if<is_same<ArrayConstRef, T>::value, T>::type v...
    function variantAs (line 20) | inline typename enable_if<is_same<ObjectConstRef, T>::value, T>::type ...
    function variantAs (line 26) | inline typename enable_if<is_same<VariantConstRef, T>::value, T>::type
    function variantAs (line 32) | inline typename enable_if<IsWriteableString<T>::value, T>::type varian...

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantContent.hpp
  type ARDUINOJSON_NAMESPACE (line 13) | namespace ARDUINOJSON_NAMESPACE {
    type RawData (line 36) | struct RawData {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantData.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    class VariantData (line 14) | class VariantData {
      method accept (line 26) | void accept(Visitor &visitor) const {
      method CollectionData (line 69) | CollectionData *asArray() {
      method CollectionData (line 73) | const CollectionData *asArray() const {
      method CollectionData (line 77) | CollectionData *asObject() {
      method CollectionData (line 81) | const CollectionData *asObject() const {
      method copyFrom (line 85) | bool copyFrom(const VariantData &src, MemoryPool *pool) {
      method equals (line 103) | bool equals(const VariantData &other) const {
      method isArray (line 137) | bool isArray() const {
      method isBoolean (line 141) | bool isBoolean() const {
      method isCollection (line 145) | bool isCollection() const {
      method isInteger (line 150) | bool isInteger() const {
      method isFloat (line 163) | bool isFloat() const {
      method isString (line 168) | bool isString() const {
      method isObject (line 172) | bool isObject() const {
      method isNull (line 176) | bool isNull() const {
      method remove (line 180) | void remove(size_t index) {
      method remove (line 185) | void remove(TAdaptedString key) {
      method setBoolean (line 189) | void setBoolean(bool value) {
      method setFloat (line 194) | void setFloat(Float value) {
      method setLinkedRaw (line 199) | void setLinkedRaw(SerializedValue<const char *> value) {
      method setOwnedRaw (line 210) | bool setOwnedRaw(SerializedValue<T> value, MemoryPool *pool) {
      method setInteger (line 224) | typename enable_if<is_unsigned<T>::value>::type setInteger(T value) {
      method setInteger (line 229) | typename enable_if<is_signed<T>::value>::type setInteger(T value) {
      method setSignedInteger (line 234) | void setSignedInteger(T value) {
      method setPositiveInteger (line 242) | void setPositiveInteger(UInt value) {
      method setNegativeInteger (line 247) | void setNegativeInteger(UInt value) {
      method setLinkedString (line 252) | void setLinkedString(const char *value) {
      method setNull (line 261) | void setNull() {
      method setOwnedString (line 265) | void setOwnedString(not_null<const char *> s) {
      method setOwnedString (line 270) | bool setOwnedString(const char *s) {
      method setOwnedString (line 281) | bool setOwnedString(T value, MemoryPool *pool) {
      method setUnsignedInteger (line 285) | void setUnsignedInteger(UInt value) {
      method CollectionData (line 290) | CollectionData &toArray() {
      method CollectionData (line 296) | CollectionData &toObject() {
      method memoryUsage (line 302) | size_t memoryUsage() const {
      method nesting (line 316) | size_t nesting() const {
      method size (line 320) | size_t size() const {
      method VariantData (line 324) | VariantData *addElement(MemoryPool *pool) {
      method VariantData (line 330) | VariantData *getElement(size_t index) const {
      method VariantData (line 335) | VariantData *getMember(TAdaptedString key) const {
      method VariantData (line 340) | VariantData *getOrAddMember(TAdaptedString key, MemoryPool *pool) {
      method type (line 349) | uint8_t type() const {
      method setType (line 353) | void setType(uint8_t t) {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantFunctions.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function variantAccept (line 12) | inline void variantAccept(const VariantData *var, Visitor &visitor) {
    function CollectionData (line 19) | inline const CollectionData *variantAsArray(const VariantData *var) {
    function CollectionData (line 23) | inline const CollectionData *variantAsObject(const VariantData *var) {
    function CollectionData (line 27) | inline CollectionData *variantAsObject(VariantData *var) {
    function variantCopyFrom (line 31) | inline bool variantCopyFrom(VariantData *dst, const VariantData *src,
    function variantEquals (line 41) | inline bool variantEquals(const VariantData *a, const VariantData *b) {
    function variantIsArray (line 47) | inline bool variantIsArray(const VariantData *var) {
    function variantIsBoolean (line 51) | inline bool variantIsBoolean(const VariantData *var) {
    function variantIsInteger (line 56) | inline bool variantIsInteger(const VariantData *var) {
    function variantIsFloat (line 60) | inline bool variantIsFloat(const VariantData *var) {
    function variantIsString (line 64) | inline bool variantIsString(const VariantData *var) {
    function variantIsObject (line 68) | inline bool variantIsObject(const VariantData *var) {
    function variantIsNull (line 72) | inline bool variantIsNull(const VariantData *var) {
    function variantSetBoolean (line 76) | inline bool variantSetBoolean(VariantData *var, bool value) {
    function variantSetFloat (line 82) | inline bool variantSetFloat(VariantData *var, Float value) {
    function variantSetLinkedRaw (line 88) | inline bool variantSetLinkedRaw(VariantData *var,
    function variantSetOwnedRaw (line 96) | inline bool variantSetOwnedRaw(VariantData *var, SerializedValue<T> va...
    function variantSetSignedInteger (line 102) | inline bool variantSetSignedInteger(VariantData *var, T value) {
    function variantSetLinkedString (line 108) | inline bool variantSetLinkedString(VariantData *var, const char *value) {
    function variantSetNull (line 114) | inline void variantSetNull(VariantData *var) {
    function variantSetOwnedString (line 119) | inline bool variantSetOwnedString(VariantData *var, char *value) {
    function variantSetOwnedString (line 126) | inline bool variantSetOwnedString(VariantData *var, T value, MemoryPoo...
    function variantSetUnsignedInteger (line 130) | inline bool variantSetUnsignedInteger(VariantData *var, UInt value) {
    function variantSize (line 136) | inline size_t variantSize(const VariantData *var) {
    function CollectionData (line 140) | inline CollectionData *variantToArray(VariantData *var) {
    function CollectionData (line 145) | inline CollectionData *variantToObject(VariantData *var) {
    function NO_INLINE (line 150) | inline NO_INLINE VariantData *variantAdd(VariantData *var, MemoryPool ...
    function NO_INLINE (line 155) | NO_INLINE VariantData *variantGetOrCreate(VariantData *var, TChar *key,
    function NO_INLINE (line 161) | NO_INLINE VariantData *variantGetOrCreate(VariantData *var, const TStr...

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    function T (line 18) | inline T VariantData::asIntegral() const {
    function T (line 53) | inline T VariantData::asFloat() const {
    function VariantConstRef (line 118) | inline VariantConstRef VariantConstRef::operator[](size_t index) const {
    function VariantRef (line 122) | inline VariantRef VariantRef::addElement() const {
    function VariantRef (line 126) | inline VariantRef VariantRef::getElement(size_t index) const {
    function VariantRef (line 131) | inline VariantRef VariantRef::getMember(TChar *key) const {
    function VariantRef (line 142) | inline VariantRef VariantRef::getOrAddMember(TChar *key) const {
    function VariantRef (line 147) | inline VariantRef VariantRef::getOrAddMember(const TString &key) const {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantRef.hpp
  type ARDUINOJSON_NAMESPACE (line 18) | namespace ARDUINOJSON_NAMESPACE {
    class ArrayRef (line 21) | class ArrayRef
    class ObjectRef (line 22) | class ObjectRef
    class MemberProxy (line 25) | class MemberProxy
    class VariantRefBase (line 29) | class VariantRefBase {
      method FORCE_INLINE (line 44) | FORCE_INLINE typename enable_if<is_integral<T>::value, bool>::type is()
      method FORCE_INLINE (line 52) | FORCE_INLINE typename enable_if<is_floating_point<T>::value, bool>::...
      method FORCE_INLINE (line 59) | FORCE_INLINE typename enable_if<is_same<T, bool>::value, bool>::type...
      method FORCE_INLINE (line 69) | FORCE_INLINE typename enable_if<is_same<T, const char *>::value ||
      method FORCE_INLINE (line 80) | FORCE_INLINE typename enable_if<
      method FORCE_INLINE (line 89) | FORCE_INLINE typename enable_if<
      method FORCE_INLINE (line 95) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 99) | FORCE_INLINE bool isUndefined() const {
      method FORCE_INLINE (line 103) | FORCE_INLINE size_t memoryUsage() const {
      method FORCE_INLINE (line 107) | FORCE_INLINE size_t nesting() const {
      method size (line 111) | size_t size() const {
      method VariantRefBase (line 116) | VariantRefBase(TData *data) : _data(data) {}
    class VariantRef (line 127) | class VariantRef : public VariantRefBase<VariantData>,
      method FORCE_INLINE (line 141) | FORCE_INLINE void clear() const {
      method FORCE_INLINE (line 146) | FORCE_INLINE bool set(bool value) const {
      method FORCE_INLINE (line 153) | FORCE_INLINE bool set(
      method FORCE_INLINE (line 165) | FORCE_INLINE bool set(
      method FORCE_INLINE (line 176) | FORCE_INLINE bool set(
      method FORCE_INLINE (line 183) | FORCE_INLINE bool set(SerializedValue<const char *> value) const {
      method FORCE_INLINE (line 191) | FORCE_INLINE bool set(
      method FORCE_INLINE (line 200) | FORCE_INLINE bool set(
      method FORCE_INLINE (line 209) | FORCE_INLINE bool set(
      method FORCE_INLINE (line 215) | FORCE_INLINE bool set(const char *value) const {
      method FORCE_INLINE (line 234) | FORCE_INLINE typename enable_if<!is_same<T, ArrayRef>::value &&
      method FORCE_INLINE (line 256) | FORCE_INLINE typename enable_if<is_same<T, VariantRef>::value, T>::t...
      method accept (line 262) | void accept(Visitor &visitor) const {
      method FORCE_INLINE (line 266) | FORCE_INLINE bool operator==(VariantRef lhs) const {
      method FORCE_INLINE (line 270) | FORCE_INLINE bool operator!=(VariantRef lhs) const {
      method FORCE_INLINE (line 315) | FORCE_INLINE void remove(size_t index) const {
      method FORCE_INLINE (line 322) | FORCE_INLINE typename enable_if<IsString<TChar *>::value>::type remove(
      method FORCE_INLINE (line 329) | FORCE_INLINE typename enable_if<IsString<TString>::value>::type remove(
    class VariantConstRef (line 338) | class VariantConstRef : public VariantRefBase<const VariantData>,
      method VariantConstRef (line 345) | VariantConstRef() : base_type(0) {}
      method VariantConstRef (line 346) | VariantConstRef(const VariantData *data) : base_type(data) {}
      method VariantConstRef (line 347) | VariantConstRef(VariantRef var) : base_type(var._data) {}
      method accept (line 350) | void accept(Visitor &visitor) const {
      method FORCE_INLINE (line 357) | FORCE_INLINE typename VariantConstAs<T>::type as() const {
      method FORCE_INLINE (line 366) | FORCE_INLINE
      method FORCE_INLINE (line 376) | FORCE_INLINE

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantSlot.hpp
  type ARDUINOJSON_NAMESPACE (line 13) | namespace ARDUINOJSON_NAMESPACE {
    class VariantSlot (line 17) | class VariantSlot {
      method VariantData (line 33) | VariantData* data() {
      method VariantData (line 37) | const VariantData* data() const {
      method VariantSlot (line 41) | VariantSlot* next() {
      method VariantSlot (line 45) | const VariantSlot* next() const {
      method VariantSlot (line 49) | VariantSlot* next(size_t distance) {
      method VariantSlot (line 58) | const VariantSlot* next(size_t distance) const {
      method setNext (line 62) | void setNext(VariantSlot* slot) {
      method setNextNotNull (line 66) | void setNextNotNull(VariantSlot* slot) {
      method setOwnedKey (line 71) | void setOwnedKey(not_null<const char*> k) {
      method setLinkedKey (line 76) | void setLinkedKey(not_null<const char*> k) {
      method ownsKey (line 85) | bool ownsKey() const {
      method clear (line 89) | void clear() {

FILE: Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Variant/VariantTo.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class ArrayRef (line 8) | class ArrayRef
    class ObjectRef (line 9) | class ObjectRef
    class VariantRef (line 10) | class VariantRef
    type VariantTo (line 15) | struct VariantTo {}
    type VariantTo<ArrayRef> (line 18) | struct VariantTo<ArrayRef> {
    type VariantTo<ObjectRef> (line 22) | struct VariantTo<ObjectRef> {
    type VariantTo<VariantRef> (line 26) | struct VariantTo<VariantRef> {

FILE: Firmware/FirmwareSource/Remora-OS5/main.cpp
  type State (line 74) | enum State {
  function readJsonConfig (line 163) | void readJsonConfig()
  function setup (line 206) | void setup()
  function deserialiseJSON (line 228) | void deserialiseJSON()
  function configThreads (line 260) | void configThreads()
  function loadModules (line 290) | void loadModules()
  function debugThreadHigh (line 386) | void debugThreadHigh()
  function debugThreadLow (line 398) | void debugThreadLow()
  function main (line 411) | int main()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/blink/blink.cpp
  function createBlink (line 7) | void createBlink()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/blink/blink.h
  function class (line 14) | class Blink : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/debug/debug.h
  function class (line 10) | class Debug : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/digipot/DigipotBase.h
  function class (line 8) | class DigipotBase : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/digipot/mcp4451.cpp
  function createMCP4451 (line 6) | void createMCP4451()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/digipot/mcp4451.h
  function class (line 15) | class MCP4451 : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/digitalPin/digitalPin.cpp
  function createDigitalPin (line 7) | void createDigitalPin()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/digitalPin/digitalPin.h
  function class (line 13) | class DigitalPin : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/eStop/eStop.cpp
  function createEStop (line 7) | void createEStop()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/eStop/eStop.h
  function class (line 17) | class eStop : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/encoder/encoder.cpp
  function createEncoder (line 6) | void createEncoder()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/encoder/encoder.h
  function class (line 16) | class Encoder : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/module.h
  function class (line 9) | class Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/motorPower/motorPower.cpp
  function createMotorPower (line 7) | void createMotorPower()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/motorPower/motorPower.h
  function class (line 13) | class MotorPower : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/pwm/hardwarePwm.h
  function class (line 10) | class HardwarePWM : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/pwm/pwm.cpp
  function createPWM (line 11) | void createPWM()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/pwm/pwm.h
  function class (line 15) | class PWM : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/qei/qei.cpp
  function createQEI (line 7) | void createQEI()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/qei/qei.h
  function class (line 14) | class QEI : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/rcservo/rcservo.cpp
  function createRCServo (line 7) | void createRCServo()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/rcservo/rcservo.h
  function class (line 15) | class RCServo : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/resetPin/resetPin.cpp
  function createResetPin (line 7) | void createResetPin()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/resetPin/resetPin.h
  function class (line 13) | class ResetPin : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/stepgen/stepgen.cpp
  function createStepgen (line 8) | void createStepgen()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/stepgen/stepgen.h
  function class (line 15) | class Stepgen : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/switch/switch.cpp
  function createSwitch (line 7) | void createSwitch()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/switch/switch.h
  function class (line 15) | class Switch : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/temperature/temperature.cpp
  function createTemperature (line 8) | void createTemperature()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/temperature/temperature.h
  function class (line 16) | class Temperature : public Module

FILE: Firmware/FirmwareSource/Remora-OS5/modules/tmc/tmc.h
  function class (line 17) | class TMC : public Module
  function class (line 30) | class TMC2208 : public TMC
  function class (line 52) | class TMC2209 : public TMC

FILE: Firmware/FirmwareSource/Remora-OS5/modules/tmc/tmc2208.cpp
  function createTMC2208 (line 10) | void createTMC2208()

FILE: Firmware/FirmwareSource/Remora-OS5/modules/tmc/tmc2209.cpp
  function createTMC2209 (line 10) | void createTMC2209()

FILE: Firmware/FirmwareSource/Remora-OS5/remora.h
  type rxData_t (line 6) | typedef union
  type txData_t (line 27) | typedef union

FILE: Firmware/FirmwareSource/Remora-OS5/sensors/tempSensor.h
  function class (line 6) | class TempSensor

FILE: Firmware/FirmwareSource/Remora-OS5/sensors/thermistor/thermistor.h
  function class (line 12) | class Thermistor : public TempSensor

FILE: Firmware/FirmwareSource/Remora-OS5/thread/timerInterrupt.h
  function class (line 8) | class TimerInterrupt : public Interrupt

FILE: Firmware/FirmwareSource/Remora-OS5/update_mks_robin.py
  function main (line 16) | def main():

FILE: Firmware/FirmwareSource/Remora-OS6/SoftwareSerial/SoftwareSerial.h
  function class (line 19) | class SoftwareSerial

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_MANTA8/PeripheralNames.h
  type ADCName (line 24) | typedef enum {
  type DACName (line 29) | typedef enum {
  type UARTName (line 34) | typedef enum {
  type SPIName (line 58) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 74) | typedef enum {
  type CANName (line 92) | typedef enum {
  type USBName (line 101) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_MANTA8/PinNames.h
  type ALTx (line 30) | typedef enum {
  type PinName (line 36) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_MANTA8/system_clock.c
  function SystemInit (line 55) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 123) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_MONSTER8/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 50) | typedef enum {
  type SPIName (line 60) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 72) | typedef enum {
  type CANName (line 87) | typedef enum {
  type USBName (line 92) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_MONSTER8/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_MONSTER8/system_clock.c
  function SystemInit (line 65) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 143) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_OCTOPUS_429/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 61) | typedef enum {
  type I2CName (line 70) | typedef enum {
  type PWMName (line 76) | typedef enum {
  type CANName (line 91) | typedef enum {
  type USBName (line 96) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_OCTOPUS_429/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_OCTOPUS_429/system_clock.c
  function SystemInit (line 65) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 145) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 203) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_OCTOPUS_446/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 59) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 73) | typedef enum {
  type CANName (line 88) | typedef enum {
  type QSPIName (line 93) | typedef enum {
  type USBName (line 97) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_OCTOPUS_446/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_OCTOPUS_446/system_clock.c
  function SystemInit (line 67) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 149) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_ROBIN_3/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 50) | typedef enum {
  type SPIName (line 60) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 72) | typedef enum {
  type CANName (line 87) | typedef enum {
  type USBName (line 92) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_ROBIN_3/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_ROBIN_3/system_clock.c
  function SetSysClock_PLL_HSE (line 100) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_ROBIN_E3/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 58) | typedef enum {
  type I2CName (line 64) | typedef enum {
  type PWMName (line 69) | typedef enum {
  type CANName (line 78) | typedef enum {
  type USBName (line 82) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_ROBIN_E3/PinNames.h
  type PinName (line 41) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_ROBIN_E3/system_clock.c
  function SetSysClock_PLL_HSE (line 99) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 150) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/RemoraComms.h
  function class (line 15) | class RemoraComms

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/pin/pin.cpp
  function PinName (line 166) | PinName Pin::pinToPinName()
  function PwmOut (line 191) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/qei/qeiDriver.h
  function class (line 13) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/thread/irqHandlers.h
  function TIMER0_IRQHandler (line 3) | void TIMER0_IRQHandler()
  function TIMER1_IRQHandler (line 13) | void TIMER1_IRQHandler(void)
  function TIMER2_IRQHandler (line 23) | void TIMER2_IRQHandler(void)
  function QEI_IRQHandler (line 33) | void QEI_IRQHandler(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/thread/qeiInterrupt.h
  function class (line 8) | class qeiInterrupt : public Interrupt

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/thread/timer.h
  function class (line 10) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV2/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 50) | typedef enum {
  type SPIName (line 60) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 72) | typedef enum {
  type CANName (line 87) | typedef enum {
  type USBName (line 92) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV2/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV2/system_clock.c
  function SystemInit (line 64) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 142) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 197) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV3/PinNames.h
  type ALTx (line 32) | typedef enum {
  type PinName (line 40) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKRV3/system_clock.c
  function SetSysClock_PLL_HSE (line 101) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 175) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKR_MINI_E3/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 58) | typedef enum {
  type I2CName (line 64) | typedef enum {
  type PWMName (line 69) | typedef enum {
  type CANName (line 78) | typedef enum {
  type USBName (line 82) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKR_MINI_E3/PinNames.h
  type PinName (line 41) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SKR_MINI_E3/system_clock.c
  function SetSysClock_PLL_HSE (line 99) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
  function SetSysClock_PLL_HSI (line 150) | uint8_t SetSysClock_PLL_HSI(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SPIDER/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 49) | typedef enum {
  type SPIName (line 59) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 73) | typedef enum {
  type CANName (line 88) | typedef enum {
  type QSPIName (line 93) | typedef enum {
  type USBName (line 97) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SPIDER/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SPIDER/system_clock.c
  function SystemInit (line 67) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 149) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SPIDER_KING/PeripheralNames.h
  type ADCName (line 39) | typedef enum {
  type DACName (line 45) | typedef enum {
  type UARTName (line 50) | typedef enum {
  type SPIName (line 60) | typedef enum {
  type I2CName (line 66) | typedef enum {
  type PWMName (line 72) | typedef enum {
  type CANName (line 87) | typedef enum {
  type USBName (line 92) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SPIDER_KING/PinNames.h
  type ALTx (line 41) | typedef enum {
  type PinName (line 48) | typedef enum {

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_SPIDER_KING/system_clock.c
  function SystemInit (line 65) | void SystemInit(void)
  function SetSysClock_PLL_HSE (line 143) | uint8_t SetSysClock_PLL_HSE(uint8_t bypass)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/drivers/comms/RemoraComms.h
  function class (line 12) | class RemoraComms : public Module

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/drivers/pin/pin.cpp
  function PinName (line 176) | PinName Pin::pinToPinName()
  function PwmOut (line 184) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/drivers/qei/qeiDriver.h
  function class (line 14) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/thread/irqHandlers.h
  function TIM1_IRQHandler (line 4) | void TIM1_IRQHandler()
  function TIM2_IRQHandler (line 14) | void TIM2_IRQHandler()
  function TIM3_IRQHandler (line 24) | void TIM3_IRQHandler()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F1/thread/timer.h
  function class (line 14) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/SDIO/SDIOBlockDevice.cpp
  type mbed (line 22) | namespace mbed
    function bd_size_t (line 370) | bd_size_t SDIOBlockDevice::get_read_size() const
    function bd_size_t (line 375) | bd_size_t SDIOBlockDevice::get_program_size() const
    function bd_size_t (line 380) | bd_size_t SDIOBlockDevice::size() const

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/SDIO/SDIOBlockDevice.h
  function namespace (line 26) | namespace mbed

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/SDIO/sdio_device.c
  function _SDIO_IRQHandler (line 36) | void _SDIO_IRQHandler(void)
  function _DMA_Stream_Rx_IRQHandler (line 44) | void _DMA_Stream_Rx_IRQHandler(void)
  function _DMA_Stream_Tx_IRQHandler (line 52) | void _DMA_Stream_Tx_IRQHandler(void)
  function HAL_SD_MspInit (line 61) | void HAL_SD_MspInit(SD_HandleTypeDef *hsd)
  function HAL_SD_MspDeInit (line 176) | void HAL_SD_MspDeInit(SD_HandleTypeDef *hsd)
  function __weak (line 207) | __weak void SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params)
  function SD_WideBus_Enable (line 236) | static uint32_t SD_WideBus_Enable(SD_HandleTypeDef *hsd)
  function SD_Init (line 269) | uint8_t SD_Init(void)
  function SD_DeInit (line 300) | uint8_t SD_DeInit(void)
  function SD_ReadBlocks (line 327) | uint8_t SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOf...
  function SD_WriteBlocks (line 347) | uint8_t SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t Num...
  function SD_ReadBlocks_DMA (line 366) | uint8_t SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t N...
  function SD_WriteBlocks_DMA (line 388) | uint8_t SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t...
  function SD_Erase (line 409) | uint8_t SD_Erase(uint32_t StartAddr, uint32_t EndAddr)
  function SD_GetCardState (line 429) | uint8_t SD_GetCardState(void)
  function SD_GetCardInfo (line 439) | void SD_GetCardInfo(SD_Cardinfo_t *CardInfo)
  function SD_DMA_ReadPending (line 466) | uint8_t SD_DMA_ReadPending(void)
  function SD_DMA_WritePending (line 478) | uint8_t SD_DMA_WritePending(void)
  function HAL_SD_RxCpltCallback (line 488) | void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
  function HAL_SD_TxCpltCallback (line 498) | void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/SDIO/sdio_device.h
  type SD_Cardinfo_t (line 30) | typedef struct

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/comms/RemoraComms.h
  function class (line 12) | class RemoraComms : public Module

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/pin/pin.cpp
  function PinName (line 189) | PinName Pin::pinToPinName()
  function PwmOut (line 197) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/qei/qeiDriver.cpp
  function HAL_TIM_Encoder_MspInit (line 83) | void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/drivers/qei/qeiDriver.h
  function class (line 14) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/thread/irqHandlers.h
  function TIM9_IRQHandler (line 14) | void TIM9_IRQHandler()
  function TIM10_IRQHandler (line 24) | void TIM10_IRQHandler()
  function TIM11_IRQHandler (line 34) | void TIM11_IRQHandler()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32F4/thread/timer.h
  function class (line 14) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/drivers/comms/RemoraComms.h
  function class (line 12) | class RemoraComms

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/drivers/pin/pin.cpp
  function PinName (line 176) | PinName Pin::pinToPinName()
  function PwmOut (line 184) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/drivers/qei/qeiDriver.h
  function class (line 14) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/thread/irqHandlers.h
  function TIM1_IRQHandler (line 4) | void TIM1_IRQHandler()
  function TIM2_IRQHandler (line 14) | void TIM2_IRQHandler()
  function TIM3_IRQHandler (line 24) | void TIM3_IRQHandler()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32G0/thread/timer.h
  function class (line 14) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/SDIO/SDIOBlockDevice.cpp
  type mbed (line 23) | namespace mbed
    function bd_size_t (line 376) | bd_size_t SDIOBlockDevice::get_read_size() const
    function bd_size_t (line 381) | bd_size_t SDIOBlockDevice::get_program_size() const
    function bd_size_t (line 386) | bd_size_t SDIOBlockDevice::size() const

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/SDIO/SDIOBlockDevice.h
  function namespace (line 26) | namespace mbed

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/SDIO/sdio_device.c
  function _SDMMC1_IRQHandler (line 29) | static void _SDMMC1_IRQHandler(void)
  function HAL_SD_MspInit (line 39) | void HAL_SD_MspInit(SD_HandleTypeDef *hsd)
  function HAL_SD_MspDeInit (line 102) | void HAL_SD_MspDeInit(SD_HandleTypeDef *hsd)
  function SD_MspDeInit (line 127) | void SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params)
  function SD_Init (line 142) | uint8_t SD_Init(void)
  function SD_DeInit (line 166) | uint8_t SD_DeInit(void)
  function SD_ReadBlocks (line 190) | uint8_t SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOf...
  function SD_WriteBlocks (line 210) | uint8_t SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t Num...
  function SD_ReadBlocks_DMA (line 229) | uint8_t SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t N...
  function SD_WriteBlocks_DMA (line 262) | uint8_t SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t...
  function SD_Erase (line 286) | uint8_t SD_Erase(uint32_t StartAddr, uint32_t EndAddr)
  function SD_GetCardState (line 306) | uint8_t SD_GetCardState(void)
  function SD_GetCardInfo (line 316) | void SD_GetCardInfo(SD_Cardinfo_t *CardInfo)
  function SD_DMA_ReadPending (line 343) | uint8_t SD_DMA_ReadPending(void)
  function SD_DMA_WritePending (line 355) | uint8_t SD_DMA_WritePending(void)
  function HAL_SD_RxCpltCallback (line 365) | void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
  function HAL_SD_TxCpltCallback (line 375) | void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)
  function HAL_SD_AbortCallback (line 385) | void HAL_SD_AbortCallback(SD_HandleTypeDef *hsd)
  function HAL_SD_ErrorCallback (line 390) | void HAL_SD_ErrorCallback(SD_HandleTypeDef *hsd)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/SDIO/sdio_device.h
  type SD_Cardinfo_t (line 31) | typedef struct

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/comms/RemoraComms.h
  function class (line 13) | class RemoraComms : public Module

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/pin/pin.cpp
  function PinName (line 189) | PinName Pin::pinToPinName()
  function PwmOut (line 197) | PwmOut* Pin::hardware_pwm()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/pin/pin.h
  function class (line 22) | class Pin

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/qei/qeiDriver.cpp
  function HAL_TIM_Encoder_MspInit (line 82) | void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/drivers/qei/qeiDriver.h
  function class (line 14) | class QEIdriver

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/thread/createThreads.h
  function createThreads (line 4) | void createThreads(void)

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/thread/interrupt.h
  function class (line 8) | class Interrupt

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/thread/irqHandlers.h
  function TIM3_IRQHandler (line 14) | void TIM3_IRQHandler()
  function TIM4_IRQHandler (line 24) | void TIM4_IRQHandler()
  function TIM5_IRQHandler (line 34) | void TIM5_IRQHandler()

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/thread/pruThread.h
  function class (line 15) | class pruThread

FILE: Firmware/FirmwareSource/Remora-OS6/TARGET_STM32H7/thread/timer.h
  function class (line 14) | class pruTimer

FILE: Firmware/FirmwareSource/Remora-OS6/TMCStepper/TMC2208_bitfields.h
  function namespace (line 4) | namespace TMC2208_n {
  function namespace (line 25) | namespace TMC2208_n {
  function namespace (line 48) | namespace TMC2224_n {
  type FACTORY_CONF_t (line 70) | struct FACTORY_CONF_t {
  function namespace (line 82) | namespace TMC2208_n {
  type MSCURACT_t (line 89) | struct MSCURACT_t {
  function namespace (line 101) | namespace TMC2208_n {

FILE: Firmware/FirmwareSource/Remora-OS6/TMCStepper/TMC2209_bitfields.h
  function namespace (line 4) | namespace TMC2209_n {
  type SLAVECONF_t (line 55) | struct SLAVECONF_t {
  type PWM_AUTO_t (line 66) | struct PWM_AUTO_t {
  type GCONF_t (line 78) | struct GCONF_t {
  type IHOLD_IRUN_t (line 115) | struct IHOLD_IRUN_t {
  type GSTAT_t (line 129) | struct GSTAT_t {
  type TPOWERDOWN_t (line 141) | struct TPOWERDOWN_t {
  type TPWMTHRS_t (line 146) | struct TPWMTHRS_t {
  type TCOOLTHRS_t (line 151) | struct TCOOLTHRS_t {
  type THIGH_t (line 156) | struct THIGH_t {
  type XDIRECT_t (line 161) | struct XDIRECT_t {
  type VDCMIN_t (line 173) | struct VDCMIN_t {
  type CHOPCONF_t (line 178) | struct CHOPCONF_t {
  type DCCTRL_t (line 209) | struct DCCTRL_t {
  type PWMCONF_t (line 221) | struct PWMCONF_t {
  type ENCM_CTRL_t (line 236) | struct ENCM_CTRL_t {

FILE: Firmware/FirmwareSource/Remora-OS6/TMCStepper/TMCStepper.h
  function class (line 21) | class TMCStepper {
  function class (line 110) | class TMC2208Stepper : public TMCStepper {
  function class (line 304) | class TMC2209Stepper : public TMC2208Stepper {

FILE: Firmware/FirmwareSource/Remora-OS6/drivers/softPwm/softPwm.h
  function class (line 9) | class SoftPWM : public Module

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson.hpp
  type ArduinoJson (line 41) | namespace ArduinoJson {
    type DeserializationOption (line 66) | namespace DeserializationOption {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Array/ArrayFunctions.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function VariantData (line 11) | inline VariantData *arrayAdd(CollectionData *arr, MemoryPool *pool) {
    function arrayAccept (line 16) | inline void arrayAccept(const CollectionData *arr, Visitor &visitor) {
    function arrayEquals (line 23) | inline bool arrayEquals(const CollectionData *lhs, const CollectionDat...

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Array/ArrayImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function ArrayRef (line 13) | inline ArrayRef ArrayShortcuts<TArray>::createNestedArray() const {
    function ObjectRef (line 18) | inline ObjectRef ArrayShortcuts<TArray>::createNestedObject() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Array/ArrayIterator.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class VariantPtr (line 12) | class VariantPtr {
      method VariantPtr (line 14) | VariantPtr(MemoryPool *pool, VariantData *data) : _variant(pool, dat...
      method VariantRef (line 16) | VariantRef *operator->() {
      method VariantRef (line 20) | VariantRef &operator*() {
    class ArrayIterator (line 28) | class ArrayIterator {
      method ArrayIterator (line 30) | ArrayIterator() : _slot(0) {}
      method ArrayIterator (line 31) | explicit ArrayIterator(MemoryPool *pool, VariantSlot *slot)
      method VariantRef (line 34) | VariantRef operator*() const {
      method VariantPtr (line 37) | VariantPtr operator->() {
      method ArrayIterator (line 49) | ArrayIterator &operator++() {
      method ArrayIterator (line 54) | ArrayIterator &operator+=(size_t distance) {
      method VariantSlot (line 59) | VariantSlot *internal() {
    class VariantConstPtr (line 68) | class VariantConstPtr {
      method VariantConstPtr (line 70) | VariantConstPtr(const VariantData *data) : _variant(data) {}
      method VariantConstRef (line 72) | VariantConstRef *operator->() {
      method VariantConstRef (line 76) | VariantConstRef &operator*() {
    class ArrayConstRefIterator (line 84) | class ArrayConstRefIterator {
      method ArrayConstRefIterator (line 86) | ArrayConstRefIterator() : _slot(0) {}
      method ArrayConstRefIterator (line 87) | explicit ArrayConstRefIterator(const VariantSlot *slot) : _slot(slot...
      method VariantConstRef (line 89) | VariantConstRef operator*() const {
      method VariantConstPtr (line 92) | VariantConstPtr operator->() {
      method ArrayConstRefIterator (line 104) | ArrayConstRefIterator &operator++() {
      method ArrayConstRefIterator (line 109) | ArrayConstRefIterator &operator+=(size_t distance) {
      method VariantSlot (line 114) | const VariantSlot *internal() {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Array/ArrayRef.hpp
  type ARDUINOJSON_NAMESPACE (line 16) | namespace ARDUINOJSON_NAMESPACE {
    class ObjectRef (line 18) | class ObjectRef
    class ElementProxy (line 20) | class ElementProxy
    class ArrayRefBase (line 23) | class ArrayRefBase {
      method FORCE_INLINE (line 31) | FORCE_INLINE void accept(Visitor& visitor) const {
      method FORCE_INLINE (line 35) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 39) | FORCE_INLINE size_t memoryUsage() const {
      method FORCE_INLINE (line 43) | FORCE_INLINE size_t nesting() const {
      method FORCE_INLINE (line 47) | FORCE_INLINE size_t size() const {
      method ArrayRefBase (line 52) | ArrayRefBase(TData* data) : _data(data) {}
    class ArrayConstRef (line 56) | class ArrayConstRef : public ArrayRefBase<const CollectionData>,
      method FORCE_INLINE (line 64) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 69) | FORCE_INLINE iterator end() const {
      method FORCE_INLINE (line 73) | FORCE_INLINE ArrayConstRef() : base_type(0) {}
      method FORCE_INLINE (line 74) | FORCE_INLINE ArrayConstRef(const CollectionData* data) : base_type(d...
      method FORCE_INLINE (line 76) | FORCE_INLINE bool operator==(ArrayConstRef rhs) const {
      method getElement (line 84) | getElement(size_t index) const {
    class ArrayRef (line 89) | class ArrayRef : public ArrayRefBase<CollectionData>,
      method VariantRef (line 110) | VariantRef addElement() const {
      method FORCE_INLINE (line 114) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 119) | FORCE_INLINE iterator end() const {
      method FORCE_INLINE (line 124) | FORCE_INLINE bool set(ArrayConstRef src) const {
      method FORCE_INLINE (line 129) | FORCE_INLINE bool operator==(ArrayRef rhs) const {
      method FORCE_INLINE (line 134) | FORCE_INLINE VariantRef getElement(size_t index) const {
      method FORCE_INLINE (line 139) | FORCE_INLINE void remove(iterator it) const {
      method FORCE_INLINE (line 145) | FORCE_INLINE void remove(size_t index) const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Array/ArrayShortcuts.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class ElementProxy (line 13) | class ElementProxy
    class ArrayShortcuts (line 16) | class ArrayShortcuts {
      method FORCE_INLINE (line 31) | FORCE_INLINE bool add(const T &value) const {
      method FORCE_INLINE (line 38) | FORCE_INLINE bool add(T *value) const {
      method TArray (line 43) | const TArray *impl() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Array/ElementProxy.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class ElementProxy (line 18) | class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
      method FORCE_INLINE (line 26) | FORCE_INLINE this_type& operator=(const this_type& src) {
      method FORCE_INLINE (line 37) | FORCE_INLINE this_type& operator=(const T& src) {
      method FORCE_INLINE (line 45) | FORCE_INLINE this_type& operator=(T* src) {
      method FORCE_INLINE (line 50) | FORCE_INLINE void clear() const {
      method FORCE_INLINE (line 54) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 59) | FORCE_INLINE typename VariantAs<T>::type as() const {
      method FORCE_INLINE (line 64) | FORCE_INLINE bool is() const {
      method FORCE_INLINE (line 69) | FORCE_INLINE typename VariantTo<T>::type to() const {
      method FORCE_INLINE (line 79) | FORCE_INLINE bool set(const TValue& value) const {
      method FORCE_INLINE (line 86) | FORCE_INLINE bool set(TValue* value) const {
      method accept (line 91) | void accept(Visitor& visitor) const {
      method FORCE_INLINE (line 95) | FORCE_INLINE size_t size() const {
      method VariantRef (line 100) | VariantRef getMember(TNestedKey* key) const {
      method VariantRef (line 105) | VariantRef getMember(const TNestedKey& key) const {
      method VariantRef (line 110) | VariantRef getOrAddMember(TNestedKey* key) const {
      method VariantRef (line 115) | VariantRef getOrAddMember(const TNestedKey& key) const {
      method VariantRef (line 119) | VariantRef addElement() const {
      method VariantRef (line 123) | VariantRef getElement(size_t index) const {
      method FORCE_INLINE (line 127) | FORCE_INLINE void remove(size_t index) const {
      method FORCE_INLINE (line 134) | FORCE_INLINE typename enable_if<IsString<TChar*>::value>::type remove(
      method FORCE_INLINE (line 141) | FORCE_INLINE typename enable_if<IsString<TString>::value>::type remove(
      method FORCE_INLINE (line 147) | FORCE_INLINE VariantRef getUpstreamElement() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Array/Utilities.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function copyArray (line 13) | inline bool copyArray(T (&src)[N], ArrayRef dst) {
    function copyArray (line 19) | inline bool copyArray(T* src, size_t len, ArrayRef dst) {
    function copyArray (line 29) | inline bool copyArray(T (&src)[N1][N2], ArrayRef dst) {
    function copyArray (line 42) | inline size_t copyArray(ArrayConstRef src, T (&dst)[N]) {
    function copyArray (line 48) | inline size_t copyArray(ArrayConstRef src, T* dst, size_t len) {
    function copyArray (line 58) | inline void copyArray(ArrayConstRef src, T (&dst)[N1][N2]) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Collection/CollectionData.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class MemoryPool (line 9) | class MemoryPool
    class VariantData (line 10) | class VariantData
    class VariantSlot (line 11) | class VariantSlot
    class CollectionData (line 13) | class CollectionData {
      method VariantSlot (line 45) | VariantSlot *head() const {
      method remove (line 52) | void remove(TAdaptedString key) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Collection/CollectionImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function VariantSlot (line 12) | inline VariantSlot* CollectionData::addSlot(MemoryPool* pool) {
    function VariantData (line 28) | inline VariantData* CollectionData::add(MemoryPool* pool) {
    function VariantData (line 33) | inline VariantData* CollectionData::add(TAdaptedString key, MemoryPool...
    function VariantSlot (line 92) | inline VariantSlot* CollectionData::getSlot(TAdaptedString key) const {
    function VariantSlot (line 101) | inline VariantSlot* CollectionData::getSlot(size_t index) const {
    function VariantSlot (line 105) | inline VariantSlot* CollectionData::getPreviousSlot(VariantSlot* targe...
    function VariantData (line 116) | inline VariantData* CollectionData::get(TAdaptedString key) const {
    function VariantData (line 121) | inline VariantData* CollectionData::get(size_t index) const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/ArduinoStreamReader.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    type ArduinoStreamReader (line 13) | struct ArduinoStreamReader {
      method ArduinoStreamReader (line 19) | explicit ArduinoStreamReader(Stream& stream)
      method read (line 22) | char read() {
      method ended (line 29) | bool ended() const {
    function ArduinoStreamReader (line 34) | inline ArduinoStreamReader makeReader(Stream& input) {
      method ArduinoStreamReader (line 19) | explicit ArduinoStreamReader(Stream& stream)
      method read (line 22) | char read() {
      method ended (line 29) | bool ended() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/CharPointerReader.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class UnsafeCharPointerReader (line 9) | class UnsafeCharPointerReader {
      method UnsafeCharPointerReader (line 13) | explicit UnsafeCharPointerReader(const char* ptr)
      method read (line 16) | char read() {
      method ended (line 20) | bool ended() const {
    class SafeCharPointerReader (line 26) | class SafeCharPointerReader {
      method SafeCharPointerReader (line 31) | explicit SafeCharPointerReader(const char* ptr, size_t len)
      method read (line 34) | char read() {
      method ended (line 38) | bool ended() const {
    function UnsafeCharPointerReader (line 44) | inline UnsafeCharPointerReader makeReader(TChar* input) {
      method UnsafeCharPointerReader (line 13) | explicit UnsafeCharPointerReader(const char* ptr)
      method read (line 16) | char read() {
      method ended (line 20) | bool ended() const {
    function SafeCharPointerReader (line 49) | inline SafeCharPointerReader makeReader(TChar* input, size_t n) {
      method SafeCharPointerReader (line 31) | explicit SafeCharPointerReader(const char* ptr, size_t len)
      method read (line 34) | char read() {
      method ended (line 38) | bool ended() const {
    function SafeCharPointerReader (line 54) | inline SafeCharPointerReader makeReader(const ::String& input) {
      method SafeCharPointerReader (line 31) | explicit SafeCharPointerReader(const char* ptr, size_t len)
      method read (line 34) | char read() {
      method ended (line 38) | bool ended() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/DeserializationError.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    class DeserializationError (line 13) | class DeserializationError {
      method safeBoolHelper (line 16) | void safeBoolHelper() const {}
      type Code (line 19) | enum Code {
      method DeserializationError (line 28) | DeserializationError() {}
      method DeserializationError (line 29) | DeserializationError(Code c) : _code(c) {}
      method Code (line 73) | Code code() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/FlashStringReader.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class UnsafeFlashStringReader (line 10) | class UnsafeFlashStringReader {
      method UnsafeFlashStringReader (line 14) | explicit UnsafeFlashStringReader(const __FlashStringHelper* ptr)
      method read (line 17) | char read() {
      method ended (line 21) | bool ended() const {
    class SafeFlashStringReader (line 27) | class SafeFlashStringReader {
      method SafeFlashStringReader (line 32) | explicit SafeFlashStringReader(const __FlashStringHelper* ptr, size_...
      method read (line 35) | char read() {
      method ended (line 39) | bool ended() const {
    function UnsafeFlashStringReader (line 44) | inline UnsafeFlashStringReader makeReader(const __FlashStringHelper* i...
      method UnsafeFlashStringReader (line 14) | explicit UnsafeFlashStringReader(const __FlashStringHelper* ptr)
      method read (line 17) | char read() {
      method ended (line 21) | bool ended() const {
    function SafeFlashStringReader (line 48) | inline SafeFlashStringReader makeReader(const __FlashStringHelper* input,
      method SafeFlashStringReader (line 32) | explicit SafeFlashStringReader(const __FlashStringHelper* ptr, size_...
      method read (line 35) | char read() {
      method ended (line 39) | bool ended() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/IteratorReader.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class IteratorReader (line 10) | class IteratorReader {
      method IteratorReader (line 14) | explicit IteratorReader(TIterator begin, TIterator end)
      method ended (line 17) | bool ended() const {
      method read (line 21) | char read() {
    function makeReader (line 27) | inline IteratorReader<typename TInput::const_iterator> makeReader(

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/NestingLimit.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type NestingLimit (line 11) | struct NestingLimit {
      method NestingLimit (line 12) | NestingLimit() : value(ARDUINOJSON_DEFAULT_NESTING_LIMIT) {}
      method NestingLimit (line 13) | explicit NestingLimit(uint8_t n) : value(n) {}

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/StdStreamReader.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    class StdStreamReader (line 13) | class StdStreamReader {
      method StdStreamReader (line 18) | explicit StdStreamReader(std::istream& stream)
      method ended (line 21) | bool ended() const {
      method read (line 25) | char read() {
    function StdStreamReader (line 33) | inline StdStreamReader makeReader(std::istream& input) {
      method StdStreamReader (line 18) | explicit StdStreamReader(std::istream& stream)
      method ended (line 21) | bool ended() const {
      method read (line 25) | char read() {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Deserialization/deserialize.hpp
  type ARDUINOJSON_NAMESPACE (line 16) | namespace ARDUINOJSON_NAMESPACE {
    function makeDeserializer (line 20) | TDeserializer<TReader, TWriter> makeDeserializer(MemoryPool &pool,
    function deserialize (line 29) | typename enable_if<!is_array<TString>::value, DeserializationError>::type
    function DeserializationError (line 43) | DeserializationError deserialize(JsonDocument &doc, TChar *input,
    function DeserializationError (line 56) | DeserializationError deserialize(JsonDocument &doc, TChar *input,
    function DeserializationError (line 68) | DeserializationError deserialize(JsonDocument &doc, TStream &input,

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Document/BasicJsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class AllocatorOwner (line 12) | class AllocatorOwner {
      method AllocatorOwner (line 14) | AllocatorOwner() {}
      method AllocatorOwner (line 15) | AllocatorOwner(const AllocatorOwner& src) : _allocator(src._allocato...
      method AllocatorOwner (line 16) | AllocatorOwner(TAllocator allocator) : _allocator(allocator) {}
      method deallocate (line 22) | void deallocate(void* p) {
    class BasicJsonDocument (line 31) | class BasicJsonDocument : AllocatorOwner<TAllocator>, public JsonDocum...
      method BasicJsonDocument (line 33) | explicit BasicJsonDocument(size_t capa, TAllocator allocator = TAllo...
      method BasicJsonDocument (line 36) | BasicJsonDocument(const BasicJsonDocument& src)
      method BasicJsonDocument (line 43) | BasicJsonDocument(const T& src,
      method BasicJsonDocument (line 50) | BasicJsonDocument(VariantRef src)
      method BasicJsonDocument (line 59) | BasicJsonDocument& operator=(const BasicJsonDocument& src) {
      method BasicJsonDocument (line 66) | BasicJsonDocument& operator=(const T& src) {
      method MemoryPool (line 73) | MemoryPool allocPool(size_t requiredSize) {
      method reallocPoolIfTooSmall (line 78) | void reallocPoolIfTooSmall(size_t requiredSize) {
      method freePool (line 84) | void freePool() {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Document/DynamicJsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    type DefaultAllocator (line 13) | struct DefaultAllocator {
      method deallocate (line 18) | void deallocate(void* p) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Document/JsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class JsonDocument (line 17) | class JsonDocument : public Visitable {
      method accept (line 20) | void accept(Visitor& visitor) const {
      method as (line 25) | typename VariantAs<T>::type as() {
      method as (line 30) | typename VariantConstAs<T>::type as() const {
      method clear (line 34) | void clear() {
      method is (line 40) | bool is() const {
      method isNull (line 44) | bool isNull() const {
      method memoryUsage (line 48) | size_t memoryUsage() const {
      method nesting (line 52) | size_t nesting() const {
      method capacity (line 56) | size_t capacity() const {
      method size (line 60) | size_t size() const {
      method set (line 64) | bool set(const JsonDocument& src) {
      method set (line 69) | typename enable_if<!is_base_of<JsonDocument, T>::value, bool>::type ...
      method to (line 75) | typename VariantTo<T>::type to() {
      method MemoryPool (line 81) | MemoryPool& memoryPool() {
      method VariantData (line 85) | VariantData& data() {
      method ArrayRef (line 89) | ArrayRef createNestedArray() {
      method ArrayRef (line 97) | ArrayRef createNestedArray(TChar* key) {
      method ArrayRef (line 104) | ArrayRef createNestedArray(const TString& key) {
      method ObjectRef (line 108) | ObjectRef createNestedObject() {
      method ObjectRef (line 116) | ObjectRef createNestedObject(TChar* key) {
      method ObjectRef (line 123) | ObjectRef createNestedObject(const TString& key) {
      method containsKey (line 131) | bool containsKey(TChar* key) const {
      method containsKey (line 138) | bool containsKey(const TString& key) const {
      method FORCE_INLINE (line 145) | FORCE_INLINE
      method FORCE_INLINE (line 156) | FORCE_INLINE typename enable_if<IsString<TChar*>::value,
      method FORCE_INLINE (line 165) | FORCE_INLINE
      method FORCE_INLINE (line 175) | FORCE_INLINE
      method FORCE_INLINE (line 189) | FORCE_INLINE VariantRef getElement(size_t index) {
      method getElement (line 193) | getElement(size_t index) const {
      method FORCE_INLINE (line 201) | FORCE_INLINE VariantConstRef getMember(TChar* key) const {
      method FORCE_INLINE (line 208) | FORCE_INLINE
      method FORCE_INLINE (line 218) | FORCE_INLINE VariantRef getMember(TChar* key) {
      method FORCE_INLINE (line 225) | FORCE_INLINE typename enable_if<IsString<TString>::value, VariantRef...
      method FORCE_INLINE (line 234) | FORCE_INLINE VariantRef getOrAddMember(TChar* key) {
      method FORCE_INLINE (line 241) | FORCE_INLINE VariantRef getOrAddMember(const TString& key) {
      method FORCE_INLINE (line 245) | FORCE_INLINE VariantRef addElement() {
      method FORCE_INLINE (line 250) | FORCE_INLINE bool add(const TValue& value) {
      method FORCE_INLINE (line 258) | FORCE_INLINE bool add(TChar* value) {
      method FORCE_INLINE (line 262) | FORCE_INLINE void remove(size_t index) {
      method FORCE_INLINE (line 269) | FORCE_INLINE typename enable_if<IsString<TChar*>::value>::type remove(
      method FORCE_INLINE (line 276) | FORCE_INLINE typename enable_if<IsString<TString>::value>::type remove(
      method JsonDocument (line 282) | JsonDocument(MemoryPool pool) : _pool(pool) {
      method JsonDocument (line 286) | JsonDocument(char* buf, size_t capa) : _pool(buf, capa) {
      method replacePool (line 290) | void replacePool(MemoryPool pool) {
      method VariantRef (line 295) | VariantRef getVariant() {
      method VariantConstRef (line 299) | VariantConstRef getVariant() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Document/StaticJsonDocument.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class StaticJsonDocument (line 12) | class StaticJsonDocument : public JsonDocument {
      method StaticJsonDocument (line 17) | StaticJsonDocument() : JsonDocument(_buffer, _capacity) {}
      method StaticJsonDocument (line 19) | StaticJsonDocument(const StaticJsonDocument& src)
      method StaticJsonDocument (line 25) | StaticJsonDocument(const T& src,
      method StaticJsonDocument (line 32) | StaticJsonDocument(VariantRef src) : JsonDocument(_buffer, _capacity) {
      method StaticJsonDocument (line 36) | StaticJsonDocument operator=(const StaticJsonDocument& src) {
      method StaticJsonDocument (line 42) | StaticJsonDocument operator=(const T& src) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Json/EscapeSequence.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    class EscapeSequence (line 9) | class EscapeSequence {
      method escapeChar (line 12) | static char escapeChar(char c) {
      method unescapeChar (line 21) | static char unescapeChar(char c) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Json/JsonDeserializer.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class JsonDeserializer (line 18) | class JsonDeserializer {
      method JsonDeserializer (line 23) | JsonDeserializer(MemoryPool &pool, TReader reader,
      method DeserializationError (line 30) | DeserializationError parse(VariantData &variant) {
      method current (line 49) | char current() {
      method move (line 60) | void move() {
      method FORCE_INLINE (line 64) | FORCE_INLINE bool eat(char charToSkip) {
      method DeserializationError (line 70) | DeserializationError parseArray(CollectionData &array) {
      method DeserializationError (line 105) | DeserializationError parseObject(CollectionData &object) {
      method DeserializationError (line 155) | DeserializationError parseValue(VariantData &variant) {
      method DeserializationError (line 163) | DeserializationError parseKey(const char *&key) {
      method DeserializationError (line 171) | DeserializationError parseStringValue(VariantData &variant) {
      method DeserializationError (line 179) | DeserializationError parseQuotedString(const char *&result) {
      method DeserializationError (line 220) | DeserializationError parseNonQuotedString(const char *&result) {
      method DeserializationError (line 241) | DeserializationError parseNumericValue(VariantData &result) {
      method DeserializationError (line 289) | DeserializationError parseCodepoint(uint16_t &codepoint) {
      method isBetween (line 302) | static inline bool isBetween(char c, char min, char max) {
      method canBeInNonQuotedString (line 306) | static inline bool canBeInNonQuotedString(char c) {
      method isQuote (line 311) | static inline bool isQuote(char c) {
      method decodeHex (line 315) | static inline uint8_t decodeHex(char c) {
      method DeserializationError (line 321) | DeserializationError skipSpacesAndComments() {
    function DeserializationError (line 389) | DeserializationError deserializeJson(
    function DeserializationError (line 396) | DeserializationError deserializeJson(
    function DeserializationError (line 403) | DeserializationError deserializeJson(
    function DeserializationError (line 410) | DeserializationError deserializeJson(

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Json/JsonSerializer.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    class JsonSerializer (line 15) | class JsonSerializer {
      method JsonSerializer (line 17) | JsonSerializer(TWriter &writer) : _formatter(writer) {}
      method FORCE_INLINE (line 19) | FORCE_INLINE void visitArray(const CollectionData &array) {
      method visitObject (line 36) | void visitObject(const CollectionData &object) {
      method visitFloat (line 55) | void visitFloat(Float value) {
      method visitString (line 59) | void visitString(const char *value) {
      method visitRawJson (line 63) | void visitRawJson(const char *data, size_t n) {
      method visitNegativeInteger (line 67) | void visitNegativeInteger(UInt value) {
      method visitPositiveInteger (line 71) | void visitPositiveInteger(UInt value) {
      method visitBoolean (line 75) | void visitBoolean(bool value) {
      method visitNull (line 79) | void visitNull() {
      method bytesWritten (line 83) | size_t bytesWritten() const {
      method write (line 88) | void write(char c) {
      method write (line 92) | void write(const char *s) {
    function serializeJson (line 101) | size_t serializeJson(const TSource &source, TDestination &destination) {
    function serializeJson (line 106) | size_t serializeJson(const TSource &source, char *buffer, size_t buffe...
    function measureJson (line 111) | size_t measureJson(const TSource &source) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Json/PrettyJsonSerializer.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    class PrettyJsonSerializer (line 15) | class PrettyJsonSerializer : public JsonSerializer<TWriter> {
      method PrettyJsonSerializer (line 19) | PrettyJsonSerializer(TWriter &writer) : base(writer), _nesting(0) {}
      method visitArray (line 21) | void visitArray(const CollectionData &array) {
      method visitObject (line 39) | void visitObject(const CollectionData &object) {
      method indent (line 60) | void indent() {
    function serializeJsonPretty (line 68) | size_t serializeJsonPretty(const TSource &source, TDestination &destin...
    function serializeJsonPretty (line 73) | size_t serializeJsonPretty(const TSource &source, char *buffer,
    function measureJsonPretty (line 79) | size_t measureJsonPretty(const TSource &source) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Json/TextFormatter.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    class TextFormatter (line 17) | class TextFormatter {
      method TextFormatter (line 19) | explicit TextFormatter(TWriter &writer) : _writer(writer), _length(0...
      method bytesWritten (line 22) | size_t bytesWritten() const {
      method writeBoolean (line 26) | void writeBoolean(bool value) {
      method writeString (line 33) | void writeString(const char *value) {
      method writeChar (line 43) | void writeChar(char c) {
      method writeFloat (line 54) | void writeFloat(T value) {
      method writeNegativeInteger (line 80) | void writeNegativeInteger(UInt value) {
      method writePositiveInteger (line 86) | void writePositiveInteger(T value) {
      method writeDecimals (line 101) | void writeDecimals(uint32_t value, int8_t width) {
      method writeRaw (line 118) | void writeRaw(const char *s) {
      method writeRaw (line 122) | void writeRaw(const char *s, size_t n) {
      method writeRaw (line 126) | void writeRaw(const char *begin, const char *end) {
      method writeRaw (line 132) | void writeRaw(const char (&s)[N]) {
      method writeRaw (line 135) | void writeRaw(char c) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Json/Utf8.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    type Utf8 (line 9) | namespace Utf8 {
      function encodeCodepoint (line 11) | inline void encodeCodepoint(uint16_t codepoint, TStringBuilder &str) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Memory/Alignment.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function isAligned (line 11) | inline bool isAligned(void *ptr) {
    function addPadding (line 17) | inline size_t addPadding(size_t bytes) {
    type AddPadding (line 23) | struct AddPadding {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Memory/MemoryPool.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    class MemoryPool (line 24) | class MemoryPool {
      method MemoryPool (line 26) | MemoryPool(char* buf, size_t capa)
      method capacity (line 41) | size_t capacity() const {
      method size (line 45) | size_t size() const {
      method VariantSlot (line 49) | VariantSlot* allocVariant() {
      method StringSlot (line 61) | StringSlot allocExpandableString() {
      method freezeString (line 70) | void freezeString(StringSlot& s, size_t newSize) {
      method clear (line 76) | void clear() {
      method canAlloc (line 81) | bool canAlloc(size_t bytes) const {
      method owns (line 85) | bool owns(void* p) const {
      method T (line 90) | T* allocRight() {
      method StringSlot (line 106) | StringSlot* allocStringSlot() {
      method checkInvariants (line 110) | void checkInvariants() {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Memory/StringBuilder.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class StringBuilder (line 11) | class StringBuilder {
      method StringBuilder (line 13) | explicit StringBuilder(MemoryPool* parent) : _parent(parent), _size(...
      method append (line 17) | void append(const char* s) {
      method append (line 21) | void append(const char* s, size_t n) {
      method append (line 25) | void append(char c) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Memory/StringSlot.hpp
  type ARDUINOJSON_NAMESPACE (line 12) | namespace ARDUINOJSON_NAMESPACE {
    type StringSlot (line 14) | struct StringSlot {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Misc/SerializedValue.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    class SerializedValue (line 13) | class SerializedValue {
      method SerializedValue (line 15) | explicit SerializedValue(T str) : _str(str) {}
      method size (line 24) | size_t size() const {
    class SerializedValue<TChar*> (line 34) | class SerializedValue<TChar*> {
      method SerializedValue (line 36) | explicit SerializedValue(TChar* p, size_t n) : _data(p), _size(n) {}
      method TChar (line 41) | TChar* data() const {
      method size (line 45) | size_t size() const {
    function serialized (line 55) | inline SerializedValue<T> serialized(T str) {
    function serialized (line 60) | inline SerializedValue<TChar*> serialized(TChar* p) {
    function serialized (line 65) | inline SerializedValue<TChar*> serialized(TChar* p, size_t n) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Misc/Visitable.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    type Visitable (line 11) | struct Visitable {
    type IsVisitable (line 17) | struct IsVisitable : is_base_of<Visitable, T> {}
    type IsVisitable<T&> (line 20) | struct IsVisitable<T&> : IsVisitable<T> {}

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/MsgPack/MsgPackDeserializer.hpp
  type ARDUINOJSON_NAMESPACE (line 14) | namespace ARDUINOJSON_NAMESPACE {
    class MsgPackDeserializer (line 17) | class MsgPackDeserializer {
      method MsgPackDeserializer (line 22) | MsgPackDeserializer(MemoryPool &pool, TReader reader,
      method DeserializationError (line 29) | DeserializationError parse(VariantData &variant) {
      method skip (line 137) | bool skip(uint8_t n) {
      method readByte (line 145) | bool readByte(uint8_t &value) {
      method readBytes (line 151) | bool readBytes(uint8_t *p, size_t n) {
      method readBytes (line 159) | bool readBytes(T &value) {
      method T (line 164) | T readInteger() {
      method readInteger (line 172) | bool readInteger(T &value) {
      method DeserializationError (line 179) | DeserializationError readInteger(VariantData &variant) {
      method readFloat (line 187) | typename enable_if<sizeof(T) == 4, DeserializationError>::type readF...
      method readDouble (line 197) | typename enable_if<sizeof(T) == 8, DeserializationError>::type readD...
      method readDouble (line 207) | typename enable_if<sizeof(T) == 4, DeserializationError>::type readD...
      method DeserializationError (line 220) | DeserializationError readString(VariantData &variant) {
      method DeserializationError (line 227) | DeserializationError readString(const char *&str) {
      method DeserializationError (line 233) | DeserializationError readString(VariantData &variant, size_t n) {
      method DeserializationError (line 240) | DeserializationError readString(const char *&result, size_t n) {
      method DeserializationError (line 253) | DeserializationError readArray(CollectionData &array) {
      method DeserializationError (line 259) | DeserializationError readArray(CollectionData &array, size_t n) {
      method DeserializationError (line 274) | DeserializationError readObject(CollectionData &object) {
      method DeserializationError (line 280) | DeserializationError readObject(CollectionData &object, size_t n) {
      method DeserializationError (line 299) | DeserializationError parseKey(const char *&key) {
    function DeserializationError (line 327) | DeserializationError deserializeMsgPack(
    function DeserializationError (line 334) | DeserializationError deserializeMsgPack(
    function DeserializationError (line 341) | DeserializationError deserializeMsgPack(
    function DeserializationError (line 348) | DeserializationError deserializeMsgPack(

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/MsgPack/MsgPackSerializer.hpp
  type ARDUINOJSON_NAMESPACE (line 13) | namespace ARDUINOJSON_NAMESPACE {
    class MsgPackSerializer (line 16) | class MsgPackSerializer {
      method MsgPackSerializer (line 18) | MsgPackSerializer(TWriter& writer) : _writer(&writer), _bytesWritten...
      method visitFloat (line 21) | typename enable_if<sizeof(T) == 4>::type visitFloat(T value32) {
      method ARDUINOJSON_NO_SANITIZE (line 27) | ARDUINOJSON_NO_SANITIZE("float-cast-overflow")
      method visitArray (line 39) | void visitArray(const CollectionData& array) {
      method visitObject (line 55) | void visitObject(const CollectionData& object) {
      method visitString (line 72) | void visitString(const char* value) {
      method visitRawJson (line 92) | void visitRawJson(const char* data, size_t size) {
      method visitNegativeInteger (line 96) | void visitNegativeInteger(UInt value) {
      method visitPositiveInteger (line 118) | void visitPositiveInteger(UInt value) {
      method visitBoolean (line 139) | void visitBoolean(bool value) {
      method visitNull (line 143) | void visitNull() {
      method bytesWritten (line 147) | size_t bytesWritten() const {
      method writeByte (line 152) | void writeByte(uint8_t c) {
      method writeBytes (line 156) | void writeBytes(const uint8_t* p, size_t n) {
      method writeInteger (line 161) | void writeInteger(T value) {
    function serializeMsgPack (line 171) | inline size_t serializeMsgPack(const TSource& source, TDestination& ou...
    function serializeMsgPack (line 176) | inline size_t serializeMsgPack(const TSource& source, TDestination* ou...
    function measureMsgPack (line 182) | inline size_t measureMsgPack(const TSource& source) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/MsgPack/endianess.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function fixEndianess (line 13) | inline void fixEndianess(uint8_t *p, integral_constant<size_t, 8>) {
    function fixEndianess (line 20) | inline void fixEndianess(uint8_t *p, integral_constant<size_t, 4>) {
    function fixEndianess (line 25) | inline void fixEndianess(uint8_t *p, integral_constant<size_t, 2>) {
    function fixEndianess (line 29) | inline void fixEndianess(uint8_t *, integral_constant<size_t, 1>) {}
    function fixEndianess (line 32) | inline void fixEndianess(T &value) {
    function fixEndianess (line 38) | inline void fixEndianess(T &) {}

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/MsgPack/ieee754.hpp
  type ARDUINOJSON_NAMESPACE (line 7) | namespace ARDUINOJSON_NAMESPACE {
    function doubleToFloat (line 9) | inline void doubleToFloat(const uint8_t d[8], uint8_t f[4]) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/Float.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/FloatParts.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    type FloatParts (line 14) | struct FloatParts {
      method FloatParts (line 20) | FloatParts(TFloat value) {
      method normalize (line 57) | static int16_t normalize(TFloat& value) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/FloatTraits.hpp
  type ARDUINOJSON_NAMESPACE (line 13) | namespace ARDUINOJSON_NAMESPACE {
    type FloatTraits (line 16) | struct FloatTraits {}
    type FloatTraits<T, 8 /*64bits*/> (line 19) | struct FloatTraits<T, 8 /*64bits*/> {
      method T (line 29) | static T make_float(T m, TExponent e) {
      method T (line 45) | static T positiveBinaryPowerOfTen(int index) {
      method T (line 60) | static T negativeBinaryPowerOfTen(int index) {
      method T (line 75) | static T negativeBinaryPowerOfTenPlusOne(int index) {
      method T (line 90) | static T nan() {
      method T (line 94) | static T inf() {
      method T (line 98) | static T highest() {
      method T (line 102) | static T lowest() {
      method T (line 109) | static T forge(uint32_t msb, uint32_t lsb) {
    type FloatTraits<T, 4 /*32bits*/> (line 115) | struct FloatTraits<T, 4 /*32bits*/> {
      method T (line 125) | static T make_float(T m, TExponent e) {
      method T (line 141) | static T positiveBinaryPowerOfTen(int index) {
      method T (line 146) | static T negativeBinaryPowerOfTen(int index) {
      method T (line 151) | static T negativeBinaryPowerOfTenPlusOne(int index) {
      method T (line 156) | static T forge(uint32_t bits) {
      method T (line 160) | static T nan() {
      method T (line 164) | static T inf() {
      method T (line 168) | static T highest() {
      method T (line 172) | static T lowest() {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/Integer.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/convertNumber.hpp
  type ARDUINOJSON_NAMESPACE (line 22) | namespace ARDUINOJSON_NAMESPACE {
    function canStorePositiveInteger (line 25) | typename enable_if<is_integral<TOut>::value && sizeof(TOut) <= sizeof(...
    function canStorePositiveInteger (line 32) | typename enable_if<is_integral<TOut>::value && sizeof(TIn) < sizeof(TO...
    function canStorePositiveInteger (line 39) | typename enable_if<is_floating_point<TOut>::value, bool>::type
    function canStoreNegativeInteger (line 45) | typename enable_if<is_floating_point<TOut>::value, bool>::type
    function canStoreNegativeInteger (line 51) | typename enable_if<is_integral<TOut>::value && is_signed<TOut>::value &&
    function canStoreNegativeInteger (line 59) | typename enable_if<is_integral<TOut>::value && is_signed<TOut>::value &&
    function canStoreNegativeInteger (line 67) | typename enable_if<is_integral<TOut>::value && is_unsigned<TOut>::value,
    function TOut (line 74) | TOut convertPositiveInteger(TIn value) {
    function TOut (line 79) | TOut convertNegativeInteger(TIn value) {
    function convertFloat (line 84) | typename enable_if<is_floating_point<TOut>::value, TOut>::type convert...
    function convertFloat (line 90) | typename enable_if<!is_floating_point<TOut>::value, TOut>::type conver...

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/parseFloat.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function T (line 13) | inline T parseFloat(const char* s) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/parseInteger.hpp
  type ARDUINOJSON_NAMESPACE (line 11) | namespace ARDUINOJSON_NAMESPACE {
    function T (line 13) | T parseInteger(const char *s) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Numbers/parseNumber.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    type ParsedNumber (line 18) | struct ParsedNumber {
      method ParsedNumber (line 19) | ParsedNumber() : uintValue(0), floatValue(0), _type(VALUE_IS_NULL) {}
      method ParsedNumber (line 21) | ParsedNumber(TUInt value, bool is_negative)
      method ParsedNumber (line 26) | ParsedNumber(TFloat value) : floatValue(value), _type(VALUE_IS_FLOAT...
      method T (line 29) | T as() const {
      method type (line 42) | uint8_t type() const {
    type choose_largest (line 52) | struct choose_largest : conditional<(sizeof(A) > sizeof(B)), A, B> {}
    function parseNumber (line 55) | inline ParsedNumber<TFloat, TUInt> parseNumber(const char *s) {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Object/MemberProxy.hpp
  type ARDUINOJSON_NAMESPACE (line 16) | namespace ARDUINOJSON_NAMESPACE {
    class MemberProxy (line 19) | class MemberProxy : public VariantOperators<MemberProxy<TObject, TStri...
      method FORCE_INLINE (line 27) | FORCE_INLINE operator VariantConstRef() const {
      method FORCE_INLINE (line 31) | FORCE_INLINE this_type &operator=(const this_type &src) {
      method FORCE_INLINE (line 37) | FORCE_INLINE typename enable_if<!is_array<TValue>::value, this_type ...
      method FORCE_INLINE (line 47) | FORCE_INLINE this_type &operator=(TChar *src) {
      method FORCE_INLINE (line 52) | FORCE_INLINE void clear() const {
      method FORCE_INLINE (line 56) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 61) | FORCE_INLINE typename VariantAs<TValue>::type as() const {
      method FORCE_INLINE (line 66) | FORCE_INLINE bool is() const {
      method FORCE_INLINE (line 70) | FORCE_INLINE size_t size() const {
      method FORCE_INLINE (line 74) | FORCE_INLINE void remove(size_t index) const {
      method FORCE_INLINE (line 81) | FORCE_INLINE typename enable_if<IsString<TChar *>::value>::type remove(
      method FORCE_INLINE (line 88) | FORCE_INLINE typename enable_if<IsString<TString>::value>::type remove(
      method FORCE_INLINE (line 94) | FORCE_INLINE typename VariantTo<TValue>::type to() {
      method FORCE_INLINE (line 99) | FORCE_INLINE typename enable_if<!is_array<TValue>::value, bool>::typ...
      method FORCE_INLINE (line 108) | FORCE_INLINE bool set(const TChar *value) {
      method accept (line 113) | void accept(Visitor &visitor) const {
      method FORCE_INLINE (line 117) | FORCE_INLINE VariantRef addElement() const {
      method FORCE_INLINE (line 122) | FORCE_INLINE VariantRef getElement(size_t index) const {
      method FORCE_INLINE (line 130) | FORCE_INLINE VariantRef getMember(TChar *key) const {
      method FORCE_INLINE (line 137) | FORCE_INLINE VariantRef getMember(const TString &key) const {
      method FORCE_INLINE (line 145) | FORCE_INLINE VariantRef getOrAddMember(TChar *key) const {
      method FORCE_INLINE (line 152) | FORCE_INLINE VariantRef getOrAddMember(const TString &key) const {
      method FORCE_INLINE (line 157) | FORCE_INLINE VariantRef getUpstreamMember() const {
      method FORCE_INLINE (line 161) | FORCE_INLINE VariantRef getOrAddUpstreamMember() const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Object/ObjectFunctions.hpp
  type ARDUINOJSON_NAMESPACE (line 9) | namespace ARDUINOJSON_NAMESPACE {
    function objectAccept (line 12) | void objectAccept(const CollectionData *obj, Visitor &visitor) {
    function objectEquals (line 19) | inline bool objectEquals(const CollectionData *lhs, const CollectionDa...
    function VariantData (line 26) | inline VariantData *objectGet(const CollectionData *obj, TAdaptedStrin...
    function objectRemove (line 32) | void objectRemove(CollectionData *obj, TAdaptedString key) {
    function VariantData (line 38) | inline VariantData *objectGetOrCreate(CollectionData *obj, TAdaptedStr...

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Object/ObjectImpl.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    function ArrayRef (line 14) | inline ArrayRef ObjectShortcuts<TObject>::createNestedArray(
    function ArrayRef (line 21) | inline ArrayRef ObjectShortcuts<TObject>::createNestedArray(TChar* key...
    function ObjectRef (line 27) | inline ObjectRef ObjectShortcuts<TObject>::createNestedObject(
    function ObjectRef (line 34) | inline ObjectRef ObjectShortcuts<TObject>::createNestedObject(

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Object/ObjectIterator.hpp
  type ARDUINOJSON_NAMESPACE (line 10) | namespace ARDUINOJSON_NAMESPACE {
    class PairPtr (line 12) | class PairPtr {
      method PairPtr (line 14) | PairPtr(MemoryPool *pool, VariantSlot *slot) : _pair(pool, slot) {}
      method Pair (line 16) | const Pair *operator->() const {
      method Pair (line 20) | const Pair &operator*() const {
    class ObjectIterator (line 28) | class ObjectIterator {
      method ObjectIterator (line 30) | ObjectIterator() : _slot(0) {}
      method ObjectIterator (line 32) | explicit ObjectIterator(MemoryPool *pool, VariantSlot *slot)
      method Pair (line 35) | Pair operator*() const {
      method PairPtr (line 38) | PairPtr operator->() {
      method ObjectIterator (line 50) | ObjectIterator &operator++() {
      method ObjectIterator (line 55) | ObjectIterator &operator+=(size_t distance) {
      method VariantSlot (line 60) | VariantSlot *internal() {
    class PairConstPtr (line 69) | class PairConstPtr {
      method PairConstPtr (line 71) | PairConstPtr(const VariantSlot *slot) : _pair(slot) {}
      method PairConst (line 73) | const PairConst *operator->() const {
      method PairConst (line 77) | const PairConst &operator*() const {
    class ObjectConstIterator (line 85) | class ObjectConstIterator {
      method ObjectConstIterator (line 87) | ObjectConstIterator() : _slot(0) {}
      method ObjectConstIterator (line 89) | explicit ObjectConstIterator(const VariantSlot *slot) : _slot(slot) {}
      method PairConst (line 91) | PairConst operator*() const {
      method PairConstPtr (line 94) | PairConstPtr operator->() {
      method ObjectConstIterator (line 106) | ObjectConstIterator &operator++() {
      method ObjectConstIterator (line 111) | ObjectConstIterator &operator+=(size_t distance) {
      method VariantSlot (line 116) | const VariantSlot *internal() {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Object/ObjectRef.hpp
  type ARDUINOJSON_NAMESPACE (line 15) | namespace ARDUINOJSON_NAMESPACE {
    class ObjectRefBase (line 18) | class ObjectRefBase {
      method FORCE_INLINE (line 26) | FORCE_INLINE void accept(Visitor& visitor) const {
      method FORCE_INLINE (line 30) | FORCE_INLINE bool isNull() const {
      method FORCE_INLINE (line 34) | FORCE_INLINE size_t memoryUsage() const {
      method FORCE_INLINE (line 38) | FORCE_INLINE size_t nesting() const {
      method FORCE_INLINE (line 42) | FORCE_INLINE size_t size() const {
      method ObjectRefBase (line 47) | ObjectRefBase(TData* data) : _data(data) {}
    class ObjectConstRef (line 51) | class ObjectConstRef : public ObjectRefBase<const CollectionData>,
      method ObjectConstRef (line 59) | ObjectConstRef() : base_type(0) {}
      method ObjectConstRef (line 60) | ObjectConstRef(const CollectionData* data) : base_type(data) {}
      method FORCE_INLINE (line 62) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 67) | FORCE_INLINE iterator end() const {
      method FORCE_INLINE (line 74) | FORCE_INLINE bool containsKey(const TString& key) const {
      method FORCE_INLINE (line 82) | FORCE_INLINE bool containsKey(TChar* key) const {
      method FORCE_INLINE (line 89) | FORCE_INLINE VariantConstRef getMember(const TString& key) const {
      method FORCE_INLINE (line 97) | FORCE_INLINE VariantConstRef getMember(TChar* key) const {
      method FORCE_INLINE (line 104) | FORCE_INLINE
      method FORCE_INLINE (line 114) | FORCE_INLINE
      method FORCE_INLINE (line 120) | FORCE_INLINE bool operator==(ObjectConstRef rhs) const {
      method FORCE_INLINE (line 126) | FORCE_INLINE VariantConstRef get_impl(TAdaptedString key) const {
    class ObjectRef (line 131) | class ObjectRef : public ObjectRefBase<CollectionData>,
      method FORCE_INLINE (line 152) | FORCE_INLINE iterator begin() const {
      method FORCE_INLINE (line 157) | FORCE_INLINE iterator end() const {
      method clear (line 161) | void clear() const {
      method FORCE_INLINE (line 166) | FORCE_INLINE bool set(ObjectConstRef src) {
      method FORCE_INLINE (line 174) | FORCE_INLINE VariantRef getMember(const TString& key) const {
      method FORCE_INLINE (line 182) | FORCE_INLINE VariantRef getMember(TChar* key) const {
      method FORCE_INLINE (line 189) | FORCE_INLINE VariantRef getOrAddMember(const TString& key) const {
      method FORCE_INLINE (line 197) | FORCE_INLINE VariantRef getOrAddMember(TChar* key) const {
      method FORCE_INLINE (line 201) | FORCE_INLINE bool operator==(ObjectRef rhs) const {
      method FORCE_INLINE (line 205) | FORCE_INLINE void remove(iterator it) const {
      method FORCE_INLINE (line 213) | FORCE_INLINE void remove(const TString& key) const {
      method FORCE_INLINE (line 221) | FORCE_INLINE void remove(TChar* key) const {
      method FORCE_INLINE (line 227) | FORCE_INLINE VariantRef get_impl(TAdaptedString key) const {
      method FORCE_INLINE (line 232) | FORCE_INLINE VariantRef getOrCreate_impl(TAdaptedString key) const {

FILE: Firmware/FirmwareSource/Remora-OS6/lib/ArduinoJson6/ArduinoJson/Object/ObjectShortcuts.hpp
  type ARDUINOJSON_NAMESPACE (line 11) 
Condensed preview — 813 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,123K chars).
[
  {
    "path": ".gitignore",
    "chars": 1097,
    "preview": "\nFirmware/FirmwareSource/Remora-OS6/TARGET_SKRV1_4/drivers/comms/MODDMA.lib\nFirmware/FirmwareSource/Remora-OS6/TARGET_SK"
  },
  {
    "path": "Firmware/ConfigSamples/BTT_Octopus/OCTOPUS_ENDER3/config.txt",
    "chars": 2979,
    "preview": "{\r\n\t\"Board\": \"BIGTREETECH OCTOPUS\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"Servo\",\r\n\t\"Type\": \"Reset Pin\",\r\n\t\t\"Comment\":\t\t\t\"Reset"
  },
  {
    "path": "Firmware/ConfigSamples/BTT_Octopus/OCTOPUS_xyz/config.txt",
    "chars": 762,
    "preview": "{\r\n\t\"Board\": \"BIGTREETECH OCTOPUS\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"Servo\",\r\n\t\"Type\": \"Reset Pin\",\r\n\t\t\"Comment\":\t\t\t\"Reset"
  },
  {
    "path": "Firmware/ConfigSamples/BTT_SKRv13/config.txt",
    "chars": 2381,
    "preview": "{\n\t\"Board\": \"BIGTREETECH SKR v1.3 & v1.4\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Res"
  },
  {
    "path": "Firmware/ConfigSamples/BTT_SKRv14/SKRv14_3dp/config.txt",
    "chars": 4525,
    "preview": "{\n\t\"Board\": \"BIGTREETECH SKR v1.4\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Reset pin\""
  },
  {
    "path": "Firmware/ConfigSamples/BTT_SKRv14/SKRv14_TMC2209/config.txt",
    "chars": 4525,
    "preview": "{\n\t\"Board\": \"BIGTREETECH SKR v1.4\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Reset pin\""
  },
  {
    "path": "Firmware/ConfigSamples/BTT_SKRv14/SKRv14_xyz/config.txt",
    "chars": 761,
    "preview": "{\r\n\t\"Board\": \"BIGTREETECH SKR v1.3 & v1.4\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"Servo\",\r\n\t\"Type\": \"Reset Pin\",\r\n\t\t\"Comment\":\t"
  },
  {
    "path": "Firmware/ConfigSamples/BTT_SKRv2/SKRv2_TMC2209/config.txt",
    "chars": 3305,
    "preview": "{\n\t\"Board\": \"BIGTREETECH SKR v2\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Reset pin\",\n"
  },
  {
    "path": "Firmware/ConfigSamples/BTT_SKRv2/SKRv2_ender3/config.txt",
    "chars": 3025,
    "preview": "{\r\n\t\"Board\": \"BIGTREETECH SKR v2\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"Servo\",\r\n\t\"Type\": \"Reset Pin\",\r\n\t\t\"Comment\":\t\t\t\"Reset "
  },
  {
    "path": "Firmware/ConfigSamples/BTT_SKRv2/SKRv2_xyz/config.txt",
    "chars": 1647,
    "preview": "{\n\t\"Board\": \"BIGTREETECH SKR v2\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Reset pin\",\n"
  },
  {
    "path": "Firmware/ConfigSamples/Fysetc_Spider/config.txt",
    "chars": 2949,
    "preview": "{\r\n\t\"Board\": \"FYSETC SPIDER\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"Servo\",\r\n\t\"Type\": \"Reset Pin\",\r\n\t\t\"Comment\":\t\t\t\"Reset pin\","
  },
  {
    "path": "Firmware/ConfigSamples/Fysetc_Spider_King/config.txt",
    "chars": 1083,
    "preview": "{\r\n\t\"Board\": \"FYSETC SPIDER KING\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"Servo\",\r\n\t\"Type\": \"Reset Pin\",\r\n\t\t\"Comment\":\t\t\t\"Reset "
  },
  {
    "path": "Firmware/ConfigSamples/Hypercube-evolution/config.txt",
    "chars": 3817,
    "preview": "{\r\n\t\"Board\": \"MKS SBASE v1.3\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"On load\",\r\n\t\"Type\": \"MCP4451\",\r\n\t\t\"Comment\":\t\t\t\"Digipot fo"
  },
  {
    "path": "Firmware/ConfigSamples/MKS_Monster8/config.txt",
    "chars": 3099,
    "preview": "{\r\n\t\"Board\": \"MKS MONSTER8\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"Servo\",\r\n\t\"Type\": \"Reset Pin\",\r\n\t\t\"Comment\":\t\t\t\"Reset pin US"
  },
  {
    "path": "Firmware/ConfigSamples/MKS_Robin_E3/Robin_E3/config.txt",
    "chars": 1684,
    "preview": "{\n\t\"Board\": \"Mks Robin E3\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Reset pin\",\n\t\t\"Pin"
  },
  {
    "path": "Firmware/ConfigSamples/MKS_Sbase/MKS Sbase/Ender3/config.txt-Ender3",
    "chars": 3629,
    "preview": "{\r\n\t\"Board\": \"MKS SBASE v1.3\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"On load\",\r\n\t\"Type\": \"MCP4451\",\r\n\t\t\"Comment\":\t\t\t\"Digipot fo"
  },
  {
    "path": "Firmware/ConfigSamples/MKS_Sbase/MKS Sbase/config.txt",
    "chars": 3829,
    "preview": "{\r\n\t\"Board\": \"MKS SBASE v1.3\",\r\n\t\"Modules\":[\r\n\t{\r\n\t\"Thread\": \"On load\",\r\n\t\"Type\": \"MCP4451\",\r\n\t\t\"Comment\":\t\t\t\"Digipot fo"
  },
  {
    "path": "Firmware/ConfigSamples/TMC2209 Example/SKRv14_TMC2209/config.txt",
    "chars": 4525,
    "preview": "{\n\t\"Board\": \"BIGTREETECH SKR v1.4\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Reset pin\""
  },
  {
    "path": "Firmware/ConfigSamples/TMC2209 Example/SKRv2_TMC2209/config.txt",
    "chars": 3305,
    "preview": "{\n\t\"Board\": \"BIGTREETECH SKR v2\",\n\t\"Modules\":[\n\t{\n\t\"Thread\": \"Servo\",\n\t\"Type\": \"Reset Pin\",\n\t\t\"Comment\":\t\t\t\"Reset pin\",\n"
  },
  {
    "path": "Firmware/FirmwareSource/.gitignore",
    "chars": 75,
    "preview": "/Remora-OS5/mbed-os\n/Remora-OS5/BUILD\n/Remora-OS6/mbed-os\n/Remora-OS6/BUILD"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/.gitignore",
    "chars": 15,
    "preview": "/BUILD\n/mbed-os"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/.mbed",
    "chars": 146,
    "preview": "ROOT=.\n<<<<<<< refs/remotes/origin/main=undefined\n<<<<<<< Updated upstream=undefined\n=\n>>>>>>> Stashed changes=undefined"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/MODDMA.lib",
    "chars": 83,
    "preview": "https://os.mbed.com/users/AjK/code/MODDMA/#97a16bf2ff439853ed01edd65a382207e203c733"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/README.md",
    "chars": 20,
    "preview": "Remora OS5 firmware\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/SoftwareSerial/SoftwareSerial.cpp",
    "chars": 5225,
    "preview": "\n#include \"SoftwareSerial.h\"\n#include <cstdint>\n\n\n\nSoftwareSerial::SoftwareSerial(std::string tx, std::string rx)\n{\n    "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/SoftwareSerial/SoftwareSerial.h",
    "chars": 1809,
    "preview": "#ifndef SOFTWARESERIAL_H\n#define SOFTWARESERIAL_H\n\n//#include \"LPC17xx.h\"\n#include \"mbed.h\"\n#include <cstdint>\n#include "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PeripheralNames.h",
    "chars": 3370,
    "preview": "/* mbed Microcontroller Library\r\n *******************************************************************************\r\n * Co"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PeripheralPins.c",
    "chars": 34330,
    "preview": "/* mbed Microcontroller Library\r\n *******************************************************************************\r\n * Co"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/PinNames.h",
    "chars": 8485,
    "preview": "/* mbed Microcontroller Library\r\n *******************************************************************************\r\n * Co"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_429/system_clock.c",
    "chars": 10450,
    "preview": "/* mbed Microcontroller Library\r\n* Copyright (c) 2006-2017 ARM Limited\r\n*\r\n* Licensed under the Apache License, Version "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PeripheralNames.h",
    "chars": 3242,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PeripheralPins.c",
    "chars": 33020,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/PinNames.h",
    "chars": 8381,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_OCTOPUS_446/system_clock.c",
    "chars": 11231,
    "preview": "/* mbed Microcontroller Library\n* Copyright (c) 2006-2017 ARM Limited\n*\n* Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PeripheralNames.h",
    "chars": 2799,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PeripheralPins.c",
    "chars": 11833,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/PinNames.h",
    "chars": 4756,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_ROBIN_E3/system_clock.c",
    "chars": 10712,
    "preview": "/* mbed Microcontroller Library\n* Copyright (c) 2006-2017 ARM Limited\n*\n* Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/branch",
    "chars": 8,
    "preview": "default\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/cache/branch2-base",
    "chars": 95,
    "preview": "97a16bf2ff439853ed01edd65a382207e203c733 17\n97a16bf2ff439853ed01edd65a382207e203c733 o default\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/cache/rbc-names-v1",
    "chars": 7,
    "preview": "default"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/cache/tags2-visible",
    "chars": 44,
    "preview": "17 97a16bf2ff439853ed01edd65a382207e203c733\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/hgrc",
    "chars": 619,
    "preview": "# example repository config (see 'hg help config' for more info)\n[paths]\nmbed-studio-cache = c:\\Users\\tanya\\AppData\\Loca"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/requires",
    "chars": 59,
    "preview": "dotencode\nfncache\ngeneraldelta\nrevlogv1\nsparserevlog\nstore\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/store/fncache",
    "chars": 252,
    "preview": "data/example4.h.i\ndata/example2.h.i\ndata/ChangeLog.c.i\ndata/example2.cpp.i\ndata/CONFIG.h.i\ndata/example1.h.i\ndata/MODDMA"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/.hg/thgstatus",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/CONFIG.h",
    "chars": 4128,
    "preview": "/*\n    Copyright (c) 2010 Andy Kirkham\n \n    Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/ChangeLog.c",
    "chars": 2158,
    "preview": "/* $Id:$\n\n1.13- 2 Mar 2013\n\n    * Update RESERVED9 to DMAREQSEL in SETUP.cpp\n      Thanks Bryce Chee for pointing it out"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/DATALUTS.cpp",
    "chars": 5147,
    "preview": "/*\n    Copyright (c) 2010 Andy Kirkham\n \n    Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/INIT.cpp",
    "chars": 2611,
    "preview": "/*\n    Copyright (c) 2010 Andy Kirkham\n \n    Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/MODDMA.cpp",
    "chars": 6618,
    "preview": "/*\n    Copyright (c) 2010 Andy Kirkham\n \n    Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/MODDMA.h",
    "chars": 24985,
    "preview": "/*\n    Copyright (c) 2010 Andy Kirkham\n \n    Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/SETUP.cpp",
    "chars": 8071,
    "preview": "/*\n    Copyright (c) 2010 Andy Kirkham\n \n    Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example1.h",
    "chars": 2310,
    "preview": "#include \"mbed.h\"\n#include \"MODDMA.h\"\n#include \"MODSERIAL.h\"\n\nDigitalOut led1(LED1);\nDigitalOut led2(LED2);\nDigitalOut l"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example2.h",
    "chars": 4389,
    "preview": "/*\n * This example was provided to support Mbed forum thread:-\n * http://mbed.org/forum/mbed/topic/1798\n */\n \n#include \""
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example3.h",
    "chars": 3904,
    "preview": "/*\n * Demonstrates capturing the GPIO P0.4 to P0.7 \"nibble\" to memory \n * using GPDMA. The transfers from port pins to m"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/example4.h",
    "chars": 4898,
    "preview": "/*\n * Demonstrates sending a buffer repeatedly to the DAC using DMA.\n * Connect an oscilloscope to Mbed pin 18. This exa"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA/iomacros.h",
    "chars": 19963,
    "preview": "/*\n    Copyright (c) 2011 Andy Kirkham\n \n    Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/MODDMA.lib",
    "chars": 83,
    "preview": "https://os.mbed.com/users/AjK/code/MODDMA/#97a16bf2ff439853ed01edd65a382207e203c733"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/RemoraComms.cpp",
    "chars": 6001,
    "preview": "#include \"mbed.h\"\n#include \"RemoraComms.h\"\n\n\nRemoraComms::RemoraComms(volatile rxData_t* ptrRxData, volatile txData_t* p"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/comms/RemoraComms.h",
    "chars": 1335,
    "preview": "#ifndef REMORASPI_H\n#define REMORASPI_H\n\n#include \"mbed.h\"\n#include \"configuration.h\"\n#include \"remora.h\"\n#include \"MODD"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/pin/pin.cpp",
    "chars": 8189,
    "preview": "#include \"mbed.h\"\n\n#include \"pin.h\"\n#include <cstdio>\n#include <cerrno>\n#include <string>\n\n#include \"LPC17xx.h\"\n\nPin::Pi"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/pin/pin.h",
    "chars": 1214,
    "preview": "#ifndef PIN_H\n#define PIN_H\n\n#include \"mbed.h\"\n\n#include <cstdint>\n#include <cstdlib>\n#include <cstdio>\n#include <string"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/qei/qeiDriver.cpp",
    "chars": 3132,
    "preview": "#include \"mbed.h\"\n\n#include \"qeiDriver.h\"\n#include \"interrupt.h\"\n#include \"qeiInterrupt.h\"\n\nQEIdriver::QEIdriver()\n{\n   "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/drivers/qei/qeiDriver.h",
    "chars": 21046,
    "preview": "#ifndef QEIDRIVER_H\n#define QEIDRIVER_H\n\n#include \"mbed.h\"\n\n#include <cstdint>\n#include <cstdlib>\n#include <cstdio>\n#inc"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/createThreads.h",
    "chars": 1084,
    "preview": "#include \"extern.h\"\n\n\nvoid createThreads(void)\n{\n    // Create the thread objects and set the interrupt vectors to RAM. "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/interrupt.cpp",
    "chars": 782,
    "preview": "#include \"interrupt.h\"\n#include \"LPC17xx.h\"\n\n#include <cstdio>\n\n// Define the vector table, it is only declared in the c"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/interrupt.h",
    "chars": 2968,
    "preview": "#ifndef INTERRUPT_H\n#define INTERRUPT_H\n\n// Base class for all interrupt derived classes\n\n#define PERIPH_COUNT_IRQn\t32\t\t"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/irqHandlers.h",
    "chars": 808,
    "preview": "#include \"interrupt.h\"\n\nvoid TIMER0_IRQHandler()\n{\n    // Base thread interrupt handler\n    unsigned int isrMask = LPC_T"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/pruThread.cpp",
    "chars": 907,
    "preview": "#include \"pruThread.h\"\n#include \"modules/module.h\"\n\n\nusing namespace std;\n\n// Thread constructor\npruThread::pruThread(LP"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/pruThread.h",
    "chars": 702,
    "preview": "#ifndef PRUTHREAD_H\n#define PRUTHREAD_H\n\n#include \"LPC17xx.h\"\n#include \"timer.h\"\n\n// Standard Template Library (STL) inc"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/qeiInterrupt.cpp",
    "chars": 543,
    "preview": "#include \"interrupt.h\"\n#include \"qeiInterrupt.h\"\n#include \"qei.h\"\n\n\nqeiInterrupt::qeiInterrupt(int interruptNumber, QEId"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/qeiInterrupt.h",
    "chars": 326,
    "preview": "#ifndef QEIINTERRUPT_H\n#define QEIINTERRUPT_H\n\n// Derived class for timer interrupts\n\nclass QEIdriver; // forward declat"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/timer.cpp",
    "chars": 1819,
    "preview": "#include \"mbed.h\"\n#include \"LPC17xx.h\"\n\n#include <iostream>\n#include <stdio.h>\n\n#include \"interrupt.h\"\n#include \"timerIn"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV1_4/thread/timer.h",
    "chars": 579,
    "preview": "#ifndef TIMER_H\n#define TIMER_H\n\n#include \"mbed.h\"\n#include <stdint.h>\n\nclass TimerInterrupt; // forward declatation\ncla"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV2/PeripheralNames.h",
    "chars": 3121,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV2/PeripheralPins.c",
    "chars": 27537,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV2/PinNames.h",
    "chars": 8861,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKRV2/system_clock.c",
    "chars": 10098,
    "preview": "/* mbed Microcontroller Library\n* Copyright (c) 2006-2017 ARM Limited\n*\n* Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKR_MINI_E3/PeripheralNames.h",
    "chars": 2799,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKR_MINI_E3/PeripheralPins.c",
    "chars": 11833,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKR_MINI_E3/PinNames.h",
    "chars": 4756,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_SKR_MINI_E3/system_clock.c",
    "chars": 10712,
    "preview": "/* mbed Microcontroller Library\n* Copyright (c) 2006-2017 ARM Limited\n*\n* Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/comms/RemoraComms.cpp",
    "chars": 7256,
    "preview": "#include \"mbed.h\"\n#include \"RemoraComms.h\"\n\n#include \"stm32f1xx_hal.h\"\n\nRemoraComms::RemoraComms(volatile rxData_t* ptrR"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/comms/RemoraComms.h",
    "chars": 1112,
    "preview": "#ifndef REMORASPI_H\n#define REMORASPI_H\n\n#include \"mbed.h\"\n#include \"configuration.h\"\n#include \"remora.h\"\n\n#include \"stm"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/pin/pin.cpp",
    "chars": 5163,
    "preview": "#include \"mbed.h\"\n\n#include \"pin.h\"\n#include <cstdio>\n#include <cerrno>\n#include <string>\n\n#include \"stm32f1xx_hal.h\"\n\nP"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/pin/pin.h",
    "chars": 1505,
    "preview": "#ifndef PIN_H\n#define PIN_H\n\n#include \"mbed.h\"\n\n#include <cstdint>\n#include <cstdlib>\n#include <cstdio>\n#include <string"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/qei/qeiDriver.cpp",
    "chars": 450,
    "preview": "#include \"mbed.h\"\n\n#include \"qeiDriver.h\"\n\nQEIdriver::QEIdriver() :\n    qeiIndex(NC)\n{\n    this->init();\n\n}\n\nQEIdriver::"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/drivers/qei/qeiDriver.h",
    "chars": 778,
    "preview": "#ifndef QEIDRIVER_H\n#define QEIDRIVER_H\n\n#include \"mbed.h\"\n\n#include <cstdint>\n#include <cstdlib>\n#include <cstdio>\n#inc"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/createThreads.h",
    "chars": 768,
    "preview": "#include \"extern.h\"\n\n\nvoid createThreads(void)\n{\n    // Create the thread objects and set the interrupt vectors to RAM. "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/interrupt.cpp",
    "chars": 698,
    "preview": "#include \"interrupt.h\"\n#include \"stm32f1xx_hal.h\"\n\n#include <cstdio>\n\n// Define the vector table, it is only declared in"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/interrupt.h",
    "chars": 6588,
    "preview": "#ifndef INTERRUPT_H\n#define INTERRUPT_H\n\n// Base class for all interrupt derived classes\n\n#define PERIPH_COUNT_IRQn\t60\t\t"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/irqHandlers.h",
    "chars": 530,
    "preview": "#include \"interrupt.h\"\n\n\nvoid TIM1_IRQHandler()\n{\n  if(TIM1->SR & TIM_SR_UIF) // if UIF flag is set\n  {\n    TIM1->SR &= "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/pruThread.cpp",
    "chars": 903,
    "preview": "#include \"pruThread.h\"\n#include \"modules/module.h\"\n\n\nusing namespace std;\n\n// Thread constructor\npruThread::pruThread(TI"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/pruThread.h",
    "chars": 704,
    "preview": "#ifndef PRUTHREAD_H\n#define PRUTHREAD_H\n\n#include \"stm32f1xx_hal.h\"\n#include \"timer.h\"\n\n// Standard Template Library (ST"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/timer.cpp",
    "chars": 1924,
    "preview": "#include \"mbed.h\"\n#include \"stm32f1xx_hal.h\"\n\n#include <iostream>\n#include <stdio.h>\n\n#include \"interrupt.h\"\n#include \"t"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F1/thread/timer.h",
    "chars": 658,
    "preview": "#ifndef TIMER_H\n#define TIMER_H\n\n#include \"mbed.h\"\n#include <stdint.h>\n\n#define TIM_PSC 1\n#define APB1CLK SystemCoreCloc"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/TOOLCHAIN_ARM/startup_stm32f103xe.S",
    "chars": 14061,
    "preview": ";******************** (C) COPYRIGHT 2017 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/TOOLCHAIN_ARM/stm32f103xe.sct",
    "chars": 1800,
    "preview": "#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m3\n; Scatter-Loading Description File\n;\n; SPDX-License-Ident"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/cmsis_nvic.h",
    "chars": 1067,
    "preview": "/* mbed Microcontroller Library\n * SPDX-License-Identifier: BSD-3-Clause\n **********************************************"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/stm32f103xe.h",
    "chars": 962348,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f103xe.h\n  * @aut"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/stm32f1xx.h",
    "chars": 8529,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f1xx.h\n  * @autho"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/system_stm32f1xx.h",
    "chars": 3253,
    "preview": "/**\n  ******************************************************************************\n  * @file    system_stm32f10x.h\n  *"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/device/us_ticker_data.h",
    "chars": 1265,
    "preview": "/* mbed Microcontroller Library\n * Copyright (c) 2006-2018 ARM Limited\n *\n * Licensed under the Apache License, Version "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F103xC/objects.h",
    "chars": 2263,
    "preview": "/* mbed Microcontroller Library\n *******************************************************************************\n * Copy"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/SDIOBlockDevice.cpp",
    "chars": 10950,
    "preview": "/* mbed Microcontroller Library\n * Copyright (c) 2017 ARM Limited\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/SDIOBlockDevice.h",
    "chars": 4630,
    "preview": "/* mbed Microcontroller Library\n * Copyright (c) 2017 ARM Limited\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/sdio_device.c",
    "chars": 14929,
    "preview": "/* mbed Microcontroller Library\n * Copyright (c) 2017 ARM Limited\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/SDIO/sdio_device.h",
    "chars": 2923,
    "preview": "/* mbed Microcontroller Library\n * Copyright (c) 2017 ARM Limited\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/comms/RemoraComms.cpp",
    "chars": 8282,
    "preview": "#include \"mbed.h\"\n#include \"RemoraComms.h\"\n\n#include \"stm32f4xx_hal.h\"\n\nRemoraComms::RemoraComms(volatile rxData_t* ptrR"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/comms/RemoraComms.h",
    "chars": 1112,
    "preview": "#ifndef REMORASPI_H\n#define REMORASPI_H\n\n#include \"mbed.h\"\n#include \"configuration.h\"\n#include \"remora.h\"\n\n#include \"stm"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/pin/pin.cpp",
    "chars": 7496,
    "preview": "#include \"mbed.h\"\n\n#include \"pin.h\"\n#include <cstdio>\n#include <cerrno>\n#include <string>\n\n#include \"stm32f4xx_hal.h\"\n\nP"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/pin/pin.h",
    "chars": 1505,
    "preview": "#ifndef PIN_H\n#define PIN_H\n\n#include \"mbed.h\"\n\n#include <cstdint>\n#include <cstdlib>\n#include <cstdio>\n#include <string"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/qei/qeiDriver.cpp",
    "chars": 2673,
    "preview": "#include \"mbed.h\"\n\n#include \"qeiDriver.h\"\n\nQEIdriver::QEIdriver() :\n    qeiIndex(NC)\n{\n    this->hasIndex = false;\n    t"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/drivers/qei/qeiDriver.h",
    "chars": 778,
    "preview": "#ifndef QEIDRIVER_H\n#define QEIDRIVER_H\n\n#include \"mbed.h\"\n\n#include <cstdint>\n#include <cstdlib>\n#include <cstdio>\n#inc"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/createThreads.h",
    "chars": 856,
    "preview": "#include \"extern.h\"\n\n\nvoid createThreads(void)\n{\n    // Create the thread objects and set the interrupt vectors to RAM. "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/interrupt.cpp",
    "chars": 820,
    "preview": "#include \"interrupt.h\"\n#include \"stm32f4xx_hal.h\"\n\n#include <cstdio>\n\n// Define the vector table, it is only declared in"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/interrupt.h",
    "chars": 9660,
    "preview": "#ifndef INTERRUPT_H\n#define INTERRUPT_H\n\n// Base class for all interrupt derived classes\n\n#define PERIPH_COUNT_IRQn\t82\t\t"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/irqHandlers.h",
    "chars": 723,
    "preview": "#include \"interrupt.h\"\n\n//void TIM3_IRQHandler()\n//{\n//  if(TIM3->SR & TIM_SR_UIF) // if UIF flag is set\n//  {\n//    TIM"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/pruThread.cpp",
    "chars": 903,
    "preview": "#include \"pruThread.h\"\n#include \"modules/module.h\"\n\n\nusing namespace std;\n\n// Thread constructor\npruThread::pruThread(TI"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/pruThread.h",
    "chars": 704,
    "preview": "#ifndef PRUTHREAD_H\n#define PRUTHREAD_H\n\n#include \"stm32f4xx_hal.h\"\n#include \"timer.h\"\n\n// Standard Template Library (ST"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/timer.cpp",
    "chars": 2047,
    "preview": "#include \"mbed.h\"\n#include \"stm32f4xx_hal.h\"\n\n#include <iostream>\n#include <stdio.h>\n\n#include \"interrupt.h\"\n#include \"t"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TARGET_STM32F4/thread/timer.h",
    "chars": 660,
    "preview": "#ifndef TIMER_H\n#define TIMER_H\n\n#include \"mbed.h\"\n#include <stdint.h>\n\n#define TIM_PSC 4\n#define APB1CLK SystemCoreCloc"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/branch",
    "chars": 8,
    "preview": "default\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/cache/branch2-base",
    "chars": 94,
    "preview": "5ba0c258c4ed90a7b2d84a782374f254077a2acc 1\n5ba0c258c4ed90a7b2d84a782374f254077a2acc o default\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/cache/rbc-names-v1",
    "chars": 7,
    "preview": "default"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/cache/tags2-visible",
    "chars": 43,
    "preview": "1 5ba0c258c4ed90a7b2d84a782374f254077a2acc\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/hgrc",
    "chars": 633,
    "preview": "# example repository config (see 'hg help config' for more info)\n[paths]\nmbed-studio-cache = c:\\Users\\tanya\\AppData\\Loca"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/requires",
    "chars": 59,
    "preview": "dotencode\nfncache\ngeneraldelta\nrevlogv1\nsparserevlog\nstore\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/store/fncache",
    "chars": 268,
    "preview": "data/DRV_STATUS.cpp.i\ndata/TMC_MACROS.h.i\ndata/TMCStepper.cpp.i\ndata/TMC2208Stepper.cpp.i\ndata/GCONF.cpp.i\ndata/IHOLD_IR"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/.hg/thgstatus",
    "chars": 2,
    "preview": "m\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/CHOPCONF.cpp",
    "chars": 6348,
    "preview": "#include \"TMCStepper.h\"\n#include \"TMC_MACROS.h\"\n\n#define SET_REG(SETTING) CHOPCONF_register.SETTING = B; write(CHOPCONF_"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/COOLCONF.cpp",
    "chars": 992,
    "preview": "#include \"TMCStepper.h\"\n#include \"TMC_MACROS.h\"\n\n#define SET_REG(SETTING) COOLCONF_register.SETTING = B; write(COOLCONF_"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/DRV_STATUS.cpp",
    "chars": 2301,
    "preview": "#include \"TMCStepper.h\"\n#include \"TMC_MACROS.h\"\n\n#define GET_REG(NS, SETTING) NS::DRV_STATUS_t r{0}; r.sr = DRV_STATUS()"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/GCONF.cpp",
    "chars": 6687,
    "preview": "#include \"TMCStepper.h\"\n#include \"TMC_MACROS.h\"\n\n#define SET_REG(SETTING) GCONF_register.SETTING = B; write(GCONF_regist"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/IHOLD_IRUN.cpp",
    "chars": 881,
    "preview": "#include \"TMCStepper.h\"\n#include \"TMC_MACROS.h\"\n\n#define SET_REG(SETTING) IHOLD_IRUN_register.SETTING = B; write(IHOLD_I"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/PWMCONF.cpp",
    "chars": 5282,
    "preview": "#include \"TMCStepper.h\"\n#include \"TMC_MACROS.h\"\n\n#define SET_REG(SETTING) PWMCONF_register.SETTING = B; write(PWMCONF_re"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMC2208Stepper.cpp",
    "chars": 11238,
    "preview": "#include \"TMCStepper.h\"\n#include \"TMC_MACROS.h\"\n\n// Protected\n// addr needed for TMC2209\nTMC2208Stepper::TMC2208Stepper("
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMC2208_bitfields.h",
    "chars": 3578,
    "preview": "#pragma once\n#pragma pack(push, 1)\n\nnamespace TMC2208_n {\n  struct GCONF_t {\n    constexpr static uint8_t address = 0x00"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMC2209Stepper.cpp",
    "chars": 1874,
    "preview": "#include \"TMCStepper.h\"\n\nuint32_t TMC2209Stepper::IOIN() {\n    return read(TMC2209_n::IOIN_t::address);\n}\nbool TMC2209St"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMC2209_bitfields.h",
    "chars": 4953,
    "preview": "#pragma once\n#pragma pack(push, 1)\n\nnamespace TMC2209_n {\n  struct IOIN_t {\n    constexpr static uint8_t address = 0x06;"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMCStepper.cpp",
    "chars": 4278,
    "preview": "#include \"TMCStepper.h\"\n\n\n/*\n  Requested current = mA = I_rms/1000\n  Equation for current:\n  I_rms = (CS+1)/32 * V_fs/(R"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMCStepper.h",
    "chars": 10085,
    "preview": "#include \"mbed.h\"\n#include <cstdint>\n#include \"../SoftwareSerial/SoftwareSerial.h\"\n#include \"../pin/pin.h\"\n\n//#include \""
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/TMCStepper/TMC_MACROS.h",
    "chars": 242,
    "preview": "#pragma once\n\n#define DEBUG_PRINT(CFG, VAL) Serial.print(CFG); Serial.print('('); Serial.print(VAL, HEX); Serial.println"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/.hg/branch",
    "chars": 8,
    "preview": "default\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/.hg/cache/branch2-base",
    "chars": 94,
    "preview": "d4c8fe4d9b29d4e5614620b0820a49d31087b512 0\nd4c8fe4d9b29d4e5614620b0820a49d31087b512 o default\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/.hg/cache/rbc-names-v1",
    "chars": 7,
    "preview": "default"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/.hg/cache/tags2-visible",
    "chars": 43,
    "preview": "0 d4c8fe4d9b29d4e5614620b0820a49d31087b512\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/.hg/hgrc",
    "chars": 650,
    "preview": "# example repository config (see 'hg help config' for more info)\n[paths]\nmbed-studio-cache = c:\\Users\\tanya\\AppData\\Loca"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/.hg/requires",
    "chars": 59,
    "preview": "dotencode\nfncache\ngeneraldelta\nrevlogv1\nsparserevlog\nstore\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/.hg/store/fncache",
    "chars": 664,
    "preview": "data/Socket/DNSClient.h.i\ndata/arch/int/W7500x_toe.cpp.i\ndata/Socket/TCPSocketServer.h.i\ndata/Socket/TCPSocketConnection"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/DHCPClient.cpp",
    "chars": 5600,
    "preview": "// DHCPClient.cpp 2013/4/10\n#include \"mbed.h\"\n#include \"mbed_debug.h\"\n#include \"WIZnet_UDPSocket.h\"\n#include \"DHCPClient"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/DHCPClient.h",
    "chars": 1323,
    "preview": "// DHCPClient.h 2013/4/10\n#ifndef DHCPCLIENT_H\n#define DHCPCLIENT_H\n#include \"eth_arch.h\"\n#include \"WIZnet_UDPSocket.h\"\n"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/DNSClient.cpp",
    "chars": 4664,
    "preview": "// DNSClient.cpp 2013/8/27\n#include \"mbed.h\"\n#include \"mbed_debug.h\"\n#include \"DNSClient.h\"\n#include \"WIZnet_UDPSocket.h"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/DNSClient.h",
    "chars": 795,
    "preview": "// DNSClient.h 2013/4/5\n#pragma once\n\n#include \"WIZnet_UDPSocket.h\"\n \nclass DNSClient {\npublic:\n    DNSClient(const char"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/Endpoint.cpp",
    "chars": 2075,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/Endpoint.h",
    "chars": 2126,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/TCPSocketConnection.cpp",
    "chars": 4062,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/TCPSocketConnection.h",
    "chars": 3075,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/TCPSocketServer.cpp",
    "chars": 3196,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/TCPSocketServer.h",
    "chars": 2067,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/WIZnet_Socket.cpp",
    "chars": 1769,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/WIZnet_Socket.h",
    "chars": 2024,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/WIZnet_UDPSocket.cpp",
    "chars": 3651,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/WIZnet_UDPSocket.h",
    "chars": 2596,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/dnsname.h",
    "chars": 1219,
    "preview": "// dnsname.h 2013/8/27\n#pragma once\n//#include <string>\n#include \"pico_string.h\"\nclass dnsname {\npublic:\n    uint8_t *bu"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/Socket/pico_string.h",
    "chars": 880,
    "preview": "// pico_string.h 2013/8/27\n#pragma once\nclass pico_string {\npublic:\n    pico_string(){\n        _len = 0;\n        _buf = "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/WIZnetInterface.cpp",
    "chars": 4697,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/WIZnetInterface.h",
    "chars": 3217,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/ext/W5500.cpp",
    "chars": 13145,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/ext/W5500.h",
    "chars": 28527,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/int/W7500x_toe.cpp",
    "chars": 14806,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * and associated documentation files (the \"Software\"), to deal in the So"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/arch/int/W7500x_toe.h",
    "chars": 8349,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5/eth_arch.h",
    "chars": 1491,
    "preview": "/* Copyright (C) 2012 mbed.org, MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/WIZnetInterface-OS5.lib",
    "chars": 98,
    "preview": "http://os.mbed.com/teams/WIZnet/code/WIZnetInterface-OS5/#d4c8fe4d9b29d4e5614620b0820a49d31087b512"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/configuration.h",
    "chars": 1795,
    "preview": "#ifndef CONFIGURATION_H\n#define CONFIGURATION_H\n\n#define PRU_BASEFREQ    \t40000 //24000   // PRU Base thread ISR update "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/custom_targets.json",
    "chars": 4853,
    "preview": "{\n    \"SKRV1_4\": {\n        \"inherits\": [\"LPC1768\"]\n    },\n    \"SKRV1_4_TURBO\": {\n        \"inherits\": [\"SKRV1_4\"],\n      "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/drivers/softPwm/softPwm.cpp",
    "chars": 2120,
    "preview": "#include \"softPwm.h\"\n\n#include <algorithm>\n\n#define confine(value, min, max) (((value) < (min))?(min):(((value) > (max))"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/drivers/softPwm/softPwm.h",
    "chars": 2605,
    "preview": "#ifndef SOFTPWM_H\n#define SOFTPWM_H\n\n#include <string>\n\n#include \"modules/module.h\"\n#include \"drivers/pin/pin.h\"\n\nclass "
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/extern.h",
    "chars": 999,
    "preview": "#ifndef EXTERN_H\n#define EXTERN_H\n\n#include \"configuration.h\"\n#include \"remora.h\"\n\n#include \"ArduinoJson.h\"\n#include \"pr"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayFunctions.hpp",
    "chars": 684,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Colle"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayImpl.hpp",
    "chars": 544,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Objec"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayIterator.hpp",
    "chars": 2387,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Varia"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayRef.hpp",
    "chars": 3887,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Varia"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ArrayShortcuts.hpp",
    "chars": 1257,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Polyf"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/ElementProxy.hpp",
    "chars": 4326,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Confi"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Array/Utilities.hpp",
    "chars": 1638,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"ArrayRef"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Collection/CollectionData.hpp",
    "chars": 1495,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\nnamespace ARDUINOJ"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Collection/CollectionImpl.hpp",
    "chars": 4120,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Varia"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Configuration.hpp",
    "chars": 4137,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#if defined(_MSC_V"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/ArduinoStreamReader.hpp",
    "chars": 733,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#if ARDUINOJSON_EN"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/CharPointerReader.hpp",
    "chars": 1351,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\nnamespace ARDUINOJ"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/DeserializationError.hpp",
    "chars": 2828,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#if ARDUINOJSON_EN"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/FlashStringReader.hpp",
    "chars": 1190,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#if ARDUINOJSON_EN"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/IteratorReader.hpp",
    "chars": 724,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\nnamespace ARDUINOJ"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/NestingLimit.hpp",
    "chars": 363,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Confi"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/StdStreamReader.hpp",
    "chars": 708,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#if ARDUINOJSON_EN"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Deserialization/deserialize.hpp",
    "chars": 3098,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"../Strin"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Document/BasicJsonDocument.hpp",
    "chars": 2147,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"JsonDocu"
  },
  {
    "path": "Firmware/FirmwareSource/Remora-OS5/lib/ArduinoJson6/ArduinoJson/Document/DynamicJsonDocument.hpp",
    "chars": 445,
    "preview": "// ArduinoJson - arduinojson.org\n// Copyright Benoit Blanchon 2014-2019\n// MIT License\n\n#pragma once\n\n#include \"BasicJso"
  }
]

// ... and 613 more files (download for full content)

About this extraction

This page contains the full source code of the scottalford75/Remora GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 813 files (3.7 MB), approximately 1.0M tokens, and a symbol index with 3091 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!