KBox connects your boat networks together and translates message from one bus to the other. KBox also includes multiple sensors that publish information on your boat networks. Finally KBox has a screen that can be used to repeat some of your boat parameters.
Of course KBox is designed with the SignalK specification in mind and will be compatible with it.
KBox hardware includes:
- One NMEA2000 interface,
- Two NMEA0183 inputs (one of them can be used as a Seatalk input),
- Two NMEA0183 outputs,
- One WiFi interface that can connect to an existing network or create a new network on your boat,
- Three analog inputs to measure voltages between 0 and 23V (batteries, solar panels, generators, etc),
- One shunt input to measure current consumption of your main house battery,
- One barometer,
- One inertial measurement unit providing a magnetic compass, an accelerometer to measure roll, pitch and yaw as well as a gyroscope,
- An SDCard to record data.
KBox is an open-source hardware project. You can review the schematics and build it yourself. You can also order a fully assembled and tested KBox from tindie. Every KBox sold via tindie helps support the project. Thank you!
Find more news about KBox on hackaday.io.
You can now order KBox on tindie.com. Supply is limited so use the "Join Waitlist" button to help me figure out how many I need to order and build.
We are still working hard on the software but we anticipate that the first and most useful use-cases will be:
- Relay GPS and AIS information to your mobile devices (for example, an iPad running iNavX).
- Monitor your energy and display voltages and currents on your existing NMEA2000 equipment
- Record your boat position, and all its parameters (speed over ground, speed over water, heeling angle, apparent and true wind, etc) to an SDCard to replay the race at a later point.
Because KBox is open-source, you can do a lot more things with it:
- Use KBox as a basic NMEA2000 to USB or Network gateway (for example, for SignalK development)
- Build an open-source autopilot and use KBox hardware as the main sensor and computer (we have extension ports to connect to the actuator)
- etc ...
As of December 2017, the KBox firmware:
- General functionality
- Creates a new WiFi network (KBox) or can join an existing network (via simple code modification and recompiling)
- Supports up to 8 simultaneous TCP clients connected on port 10110
- Integrated web server
- NMEA0183
- Forwards all NMEA0183 sentences to WiFi clients via TCP
- Converts RMC (GPS speed and coordinates) and MWV (Wind) to SignalK
- NMEA2000
- Forwards all NMEA2000 messages to WiFi (even the ones not understood by
KBox) in Seasmart format (they look like NMEA sentences and start with
$PCDIN
) - Converts PGN 127245 (Rudder), 127250 (heading), 128259 (boat speed), 128267 (depth), 129025 (position rapid lat/lon), 129026 (sog/cog rapid) and 130306 (wind speed and angle/direction) to SignalK
- Generates PGN 127508 (battery), 130310 (baro pressure), 130306 (wind), 127257 (attitude), 127250 (magnetic heading), 129026 (sog/cog rapid) from SignalK
- Forwards all NMEA2000 messages to WiFi (even the ones not understood by
KBox) in Seasmart format (they look like NMEA sentences and start with
- Sensors
- Measure nmea2000 bus voltage as well as all three battery banks voltage.
- Measure barometric pressure
- Measure roll, pitch and magnetic heading
- Sensor data is available in SignalK and is automatically converted to the relevant NMEA and NMEA2000 messages
- SignalK:
- All updates generated from NMEA, NMEA2000 and internal sensors are available over websocket
- Data logging
- All NMEA and NMEA2000 messages are logged to the SDCard
- Display
- Battery monitor page: shows voltages of all battery
- Stats page: shows number of received and transmitted messages on all interfaces
For more information on current work and future updates, please refer to our issue tracker.
KBox is based on the Teensy 3.2 architecture and is compatible with the Arduino development environment. The WiFi module is an ESP8266-13 and is also programmed with an Arduino compatible SDK.
This project contains the source code for the firmware running on the host micro-controller (teensy-like Cortex M4 micro-controller) and the firmware running on the WiFi module.
Read the Developer setup page of the Wiki to learn how to install and run the tools required to program KBox.
Please join the KBox-Discussion mailing list! This is the best place to ask questions and discuss KBox.
If you run into problems or would like to suggest new features for this project, please use the GitHub issue tracker.
You can also find me (@sarfata) on the SignalK Slack server.
Please post contributions on GitHub, in the form of pull-requests and add your name to the list of contributors below. We kindly ask that all contributors share their code under the MIT license. If you wish to share your code under a different release, please make it a library and post a pull-request to include your library.
List of contributors:
The original code of this project is distributed under the MIT license.
Please note that most of the libraries have their own license:
- Adafruit Sensor is under the Apache license
- Adafruit BMP280 is under the BSD license
- Adafruit BNO055 is under the MIT license
- ADC library is a permissive custom license
- Arduino JSON is under the MIT license
- FlexCAN is licensed under "The Unlicense"
- i2c_t3 is under the LGPL
- ILI9341_t3 is under the MIT license
- NMEA2000 is under the MIT license
- NMEA2000_teensy is under the MIT license
- Time is under the LGPL
- SdFat is under the MIT license
- ESPAsyncTCP and ESPAsyncWebServer are under the LGPL
- The Teensy core files are distributed under the MIT license with a specific clause. The KBox hardware includes a bootloader chip sold by pjrc.com and supports the Teensy project.
To work on KBox and program the WiFi module, you will also use ESPTool which is under the GPL.
Fair winds and following seas to the authors of these libraries! Without them, this project would not have been possible!
- 2017 12 07
- Merge develop branch into master - Start the changelog
- The old master branch is not in
kbox-v0