I would like to inform you that I have recently started to analyze the firmware for the EXOS-2 controller to find out how they implemented things (like e.g. the annoying beep but also the ASCOM interface via UART).
I already made some progress so that I can even build my own firmware with basic functions like access to the object database in the flash and all the menu pages.
The far goal would be to enable the USB port and also the card slot in the controller. At the moment these peripherials are not available by the official firmware simply because there is no more space in the processor's flash. On the other hand the firmware is not at all optimized (not even by the compiler settings ).
If anyone is interested, you can find my results here: https://github.com/S..._HandController.
The official firmware was build using a special ARM compiler and (due to its size) requires a license.
I have already added also a Makefile for the GNU compiler and I hope to provide the sources also buildable completely with free tools.
If all this sounds interesting, please let me hear your ideas.
I think it's a great idea trying to load this handbox with custom firmware since there is room for improvement. Also the open source tools and info we can glean from the board itself lends itself to such an activity.
I think attempting USB control and SD Card support is an unnecessary tall order that has little return on effort. If we have serial support then USB is a complexity that isn't required and the SD card doesn't have a socket and I'm not sure if the connections properly terminate back to the MCU ... furthermore I think if you get the SD SPI working it means you lose the 16Mbit NOR Flash that is already available. I also think they didn't bother because they ran out of the 512KB internal memory headroom; just my speculations from giving the board a look. I think a more adventurous addition might be to use that SD Card area for a BT Serial Transceiver to aid in going wireless?
What I think can be improved is ease of usability, alignment reliability, probably UI, controlling audio, maybe add PEC, full LX200 protocol compliance, computer interoperability through ASCOM/ INDI, PHD2 Guiding support, create different motor drive versions (stepper/ servo), etc...
I also see in the GitHub link you have a FreeRTOS port for LPC2148. I like the idea of using a RTOS and I'am looking at NuttX which also supports the MCU. I can't tell which is a better route at this point although NuttX does support the graphics LCD, has a framebuffer driver, motor control library, RTC support, audio/ tone generator support, and the NOR Flash is also supported downside is documentation is not the best and the board level implementation doesn't exist ... but using another LPC2148 board implementation called MCU-123 LPC2148 development board as a template I think we can implement/ port NuttX for the handbox. Once an RTOS is loaded then app development for the controller is simplified. I think something like the rDuinoScope Arduino implementation can be made into a handbox app using the built-in peripherals. An RTOS also makes the application a little more hardware agnostic as the lower level hardware is abstracted from the OS services available to the application.
Anyways I think these ideas are ambitious but doable. Although I think the primary efforts should be into understanding the netlist for the board ... at least the MCU to Peripherals connections. I have started a spreadsheet outlining these connections for the SkyVision rev 1.09 model which is what my handbox is. This is ongoing and others can contribute, verify and or correct. I also mapped the 5x4 matrix 20 character keypad ... which is how they are connected to each other not how they are connected to the MCU so the row and column numbering is arbitrary ... the MCU connection is yet to come but somebody else can do that. In my board one of the crystals is easily identifiable as 11.0592 MHz and it's connected to the system clock pin, the serial connection setting instruction says 14.745MHz, and the other crystal is for the RTC but is obstructed from my view yet I think it's ~32kHz ... I have to examine the datasheet to understand the clocking discrepancy. The handbox also has a unicode character generator which has a Chinese language datasheet. Since it interfaces between the board and the GLCD ... it might be an issue. The GLCD also has a completely Chinese language datasheet but in reality the driver is ST7565R which has documentation and is supported on NuttX. I haven't yet mapped all the connections like LED's to the MCU; maybe others can contribute and I'll update it depending on free time but feel free to host the spreadsheet on the your GitHub for others.
LPC2148 Netlist.ods 13.78KB
Edited by mabdinur85, 15 December 2019 - 08:15 PM.