TypeScript and Node.js library for controlling FlashForge 3D printers over the modern HTTP API and the legacy TCP protocol.
| Printer | Support |
|---|---|
| Adventurer 5M | Full |
| Adventurer 5M Pro | Full |
| AD5X | Full |
| Adventurer 3 / 4 | Dedicated TCP clients |
npm install @ghosttypes/ff-apiUse FiveMClient for Adventurer 5M, 5M Pro, and AD5X.
import { FiveMClient } from '@ghosttypes/ff-api';
async function main() {
const client = new FiveMClient('192.168.1.100', 'SERIAL_NUMBER', 'CHECK_CODE');
if (!(await client.initialize())) {
return;
}
await client.initControl();
console.log(`Printer: ${client.printerName}`);
console.log(`Firmware: ${client.firmwareVersion}`);
const status = await client.info.get();
console.log(`State: ${status?.Status}`);
await client.control.homeAxes();
await client.dispose();
}
main();Use FlashForgeA4Client or FlashForgeA3Client for documented legacy TCP control. FlashForgeClient remains available as a generic fallback.
import { FlashForgeA4Client } from '@ghosttypes/ff-api';
async function main() {
const client = new FlashForgeA4Client('192.168.1.101');
if (await client.initControl()) {
const info = await client.getPrinterInfo();
console.log(`${info?.machineType} (${info?.variant})`);
}
await client.dispose();
}
main();FiveMClient: modern HTTP + TCP client for 5M, 5M Pro, and AD5XPrinterDiscovery: UDP discovery for supported FlashForge printersFlashForgeA4Client: documented TCP client for Adventurer 4 Lite / Pro printersFlashForgeA3Client: documented TCP client for Adventurer 3 printersFlashForgeClient: generic legacy TCP fallback for direct G-code workflows
- printer discovery
- printer status and machine information
- job control
- file listing, uploads, and thumbnails
- temperature and motion control
- LED, camera, and filtration control where supported
- AD5X-specific job and material-station support